Back
7 min read

7 Years of Mobile Development: Lessons That Actually Mattered

CareerMobile DevelopmentLessons LearnedReact NativeSoftware Engineering

The Disclaimer

I'm not writing this because I have it all figured out. I'm writing it because I made enough mistakes to have opinions.


1. The Framework Horse Race Is a Distraction

I've shipped apps with React Native, Flutter, and plain Android (Java). Clients often ask: "What's the best framework?"

The honest answer: the one your team knows best.

I've seen React Native apps outperform Flutter apps and vice versa. The framework was never the bottleneck. The team's familiarity with the ecosystem, debugging tools, and deployment pipeline was always the differentiator.

Pick a framework. Get good at it. Ship.


2. Offline-First Should Be the Default

Every app I've built that didn't start offline-first had to be retrofitted later. Every retrofitting was painful.

The food delivery app. The construction inspection app. The scholarship platform. All of them needed to work without connectivity at some point.

Now I start every project with:

  • Local database (SQLite or WatermelonDB)
  • Queue-based sync engine
  • Optimistic UI updates
  • Conflict resolution strategy

Adding offline support later costs 3x more than building it in from the start.


3. Clients Don't Care About Your Architecture

They care about:

  • Does it work?
  • Can I ship it this quarter?
  • Can someone else maintain it when you're gone?

Clean architecture matters. But I've wasted weeks on abstractions that made the code "cleaner" but didn't improve the product. The food delivery app had a beautifully layered architecture. The client cared about delivery time estimates and order accuracy.

Find the balance between maintainable code and shipping velocity.


4. The Build Pipeline Is More Important Than the Code

A well-tested CI/CD pipeline saves more time than any code optimization. If deploying to TestFlight or Play Store requires manual steps, automate them. If you don't have crash reporting, add it. If you're not monitoring API errors, start.

The best code is useless if users can't get the update.


5. Say No More Often

  • "Can you add just one more feature?"
  • "Can you support iOS 12?"
  • "Can you build an admin dashboard?"
  • "Can you make it work offline?"

Each request has a cost. Learn to estimate honestly and push back when the cost exceeds the value.

I learned this the hard way by building features that were used by exactly zero users.


6. Nepal's Tech Scene Is Underrated

I've worked remotely for US and European companies for years. The talent in Nepal's developer community is strong. The challenges are different — internet reliability, payment infrastructure, load-shedding — but the engineering quality is world-class.

The remote work trend is an opportunity for Nepalese developers. The time zone overlap with Asia and Australia is excellent. The cost of living allows competitive rates. The work ethic is strong.

More companies should be hiring in Nepal.


What I'm Still Learning

How to estimate accurately. How to mentor without micromanaging. How to recognize when a project should be killed instead of shipped.

Seven years in, and I'm still figuring it out.