Why I'm Leaving Comfortable Android Development for AI
If youāve been following Iced Tea Labs for a while, you know me as the Android guy. Custom Views, Dagger, Hilt, Clean Architecture, RxJava ā thatās been my world for over a decade. Iāve shipped apps at Lazada, built side projects like Buckist and myMoney, and honestly? Android development has been very good to me.
But something has been nagging at me for the past year.
Every time I open tech news, every conference talk, every job posting that catches my eye ā it all points to the same direction: AI and Machine Learning. And Iām not talking about the hype. Iām talking about the fundamental shift in how software is being built.
So here I am, publicly committing to a new chapter: Iām spending the next 6 months transitioning from Android engineering to Machine Learning. And Iām going to document every step of it on this blog.
The Comfortable Trap
Letās be honest. After 10+ years of Android development, I can build pretty much anything thrown at me. New Jetpack library? Give me a weekend. Compose migration? Been there. Complex RecyclerView with custom animations? Easy.
And thatās exactly the problem.
Comfort is the enemy of growth. Itās like staying on compileSdkVersion 28 while the rest of the world has moved to SDK 35. Your app still compiles, it still runs ā but youāre slowly becoming irrelevant. You donāt notice it until one day you look up and the ecosystem has moved on without you.
Meanwhile, the world around us is changing fast:
- The edge AI market is projected to grow from $25 billion to $119 billion by 2033
- Google, Apple, Samsung, and Meta are actively hiring for āMobile ML Engineerā roles ā positions that explicitly demand both Android AND ML skills
- On-device inference is becoming the standard, not the exception. LiteRT (formerly TensorFlow Lite), ML Kit, PyTorch Mobile ā these arenāt experimental anymore
The intersection of mobile and ML isnāt some far-off future. Itās happening right now. And I donāt want to watch from the sidelines.
Why AI? Why Now?
Hereās what convinced me this isnāt just hype:
The job market is screaming for ML engineers. ML engineering postings have seen a 150% year-over-year increase as of mid-2025. But hereās the surprising part: entry-level ML roles make up only 3% of job postings. Companies donāt want fresh graduates for ML ā they want it as a second career stage. They want people who already know how to ship production software.
Thatās⦠literally us. Software engineers.
Another stat that blew my mind: 23.9% of ML job listings donāt even mention degree requirements. A strong portfolio can substitute for a masterās degree. You donāt need to go back to university ā you need to build things.
And then thereās the niche that made me go āwait, this role was designed for meā: the Mobile ML Engineer. Google has open positions (base salary $141Kā$202K+) that explicitly require āfamiliarity with edge device development on Androidā combined with āgeneral AI and ML methods.ā Apple, Samsung, Meta, Snap, and Qualcomm have similar roles.
The competition for general ML Engineer positions? Brutal. The competition for Mobile ML Engineer positions that need someone who can both train a model AND deploy it on Android with smooth performance? Much, much thinner.
My Android Background Is Not Baggage
This is the insight that really changed my perspective. When I first thought about switching to ML, my instinct was: āI need to forget everything I know and start from scratch.ā
Wrong.
My Android experience isnāt baggage to shed ā itās a rare competitive weapon. Hereās how the skills translate:
- Clean Architecture / MVVM ā ML pipeline architecture. Most ML candidates write monolithic Jupyter notebooks. Iāll instinctively structure code with separation of concerns, testability, and maintainability.
- Performance optimization ā Model optimization. Years of fighting with Android memory constraints, APK size, and render performance? That maps directly to model quantization, pruning, and latency profiling. ProGuard/R8 ā model compression.
- JUnit + Espresso testing ā ML testing. Unit testing models, integration testing APIs, CI/CD for ML pipelines ā this is a massive gap in the ML world that software engineers can fill.
- Firebase A/B testing ā ML model A/B testing. Same concepts: controlled experiments, statistical significance, measuring impact on user metrics.
While thousands of career changers flood into ML from non-engineering backgrounds, I already know how to write production-grade code, set up CI/CD, handle edge cases, and ship software that real users depend on. Most ML candidates canāt say that.
This isnāt a career restart. Itās a career expansion.
The 6-Month Roadmap
Hereās the high-level plan. Iāll go deeper into each phase in future posts:
Month 1 ā Python for Data Science + Statistics NumPy, pandas, matplotlib, seaborn. Statistical foundations: distributions, hypothesis testing, Bayesian thinking. Capstone: a full EDA project deployed as a Streamlit app.
Month 2 ā SQL + Visualization + First ML Course Analytical SQL (window functions, CTEs), Tableau/Power BI dashboards. Start Andrew Ngās Machine Learning Specialization on Coursera.
Month 3 ā Machine Learning with scikit-learn Classical ML algorithms (random forests, XGBoost, SVMs). Feature engineering, handling messy data, the full modeling workflow. Project: customer churn prediction end-to-end.
Month 4 ā Deep Learning + MLOps PyTorch, CNNs, transformers, transfer learning. MLflow for experiment tracking, FastAPI + Docker for model serving. Project: NLP sentiment analysis pipeline.
Month 5 ā The Capstone: ML-Powered Android App This is the killer differentiator. Train a model in Python, optimize it, deploy on Android with Kotlin. On-device inference with LiteRT or PyTorch Mobile. Very few ML engineers can build polished Android apps ā this is my unfair advantage.
Month 6 ā Certification + Interview Prep + Job Search One cloud ML certification (AWS/GCP/Azure). System design for ML. Polish the portfolio and start applying.
Building in Public
Iām not just learning in private ā Iām writing about every step. This is part of a 12-post blog series covering the entire journey:
- Why Iām leaving Android for AI (this post)
- Math for ML: a software engineerās survival guide
- My first ML model: what tutorials didnāt teach me
- SQL for data science: beyond SELECT *
- PyTorch from a software engineerās perspective
- Building my first end-to-end ML project
- The 80% nobody talks about: data wrangling
- MLOps for software engineers: CI/CD for ML
- Deploying ML on Android: my mobile background as a career advantage
- Kaggle competitions vs. real-world projects
- Building in public: how blogging opened unexpected doors
- 6 months in: the honest retrospective
Why blog about it? Three reasons:
- The Feynman technique works. If I canāt explain something clearly in writing, I donāt truly understand it.
- Accountability. Publicly committing to a 6-month plan makes it much harder to quit when things get tough (and they will).
- Paying it forward. When I started Android development, other developersā blog posts were invaluable. Time to return the favor for the next person making this transition.
Iām not going to pretend this will be easy. Iāll struggle with statistics (I already know I will). Iāll feel like an imposter when comparing myself to people with CS PhDs. There will be weeks where nothing makes sense and Iāll want to go back to my comfortable RecyclerView adapters.
But as Iāve learned from bouldering: Analyze ā Attempt ā Fail ā Adjust ā Send.
The wall is set. Time to start climbing.
See you in the next post ā where weāll get our hands dirty with NumPy and discover why arrays are NOT lists.
Happy learning! š»š§