12 years of experience. 15+ apps delivered. One dedicated point of contact.
In short: I build iOS and Android apps for clients in San Francisco (873,965 residents) and across California. One single point of contact, 12 years of experience, delivery from concept to publication in 8 to 16 weeks.
I will tell you the truth, even when it's uncomfortable. That is the promise I make to all my clients from Cannes.
Creating an iOS or Android app takes time and money. So, no sugarcoating between us. With 12 years of experience under my belt, if your requirements are all over the place, I will pull the brakes.
The most important factor: I am here to make sure your investment actually serves your users. That is how we build great applications.
You are based in San Francisco and you have a mobile app idea.
It is the classic scenario. Enthusiasm is at its peak. You are already picturing your logo on everyone's home screen across California.
The journey between an idea on a napkin and a published app on the stores is long. Very long.
Spoiler: the vast majority of app projects never reach profitability. Not because the initial idea was bad, but because the execution was a mess.
How do we actually build an application in San Francisco? It is not just a developer locked in a basement typing random code. It is an industrial, creative, and highly rigorous process.
If you want your project to survive in California, you must follow four major manufacturing steps.
Here is how it really happens.
The first step is concept validation. What precise problem does your application solve? For whom? You must be able to answer in a single sentence. If it is too vague, that is a bad sign. Spoiler: trying to build a Swiss Army knife is a fatal mistake. Knowing that most app features are never actually used, we are going to prune your idea to keep only the pure value.
The second step is technical architecture and design. Before building a house in San Francisco, you draw blueprints. It is exactly the same here. We choose the right engine for your app, whether that is native code like Swift or Kotlin, or hybrid tech like Flutter. We design the screens following strict ergonomic rules, taking inspiration from standards like Google's Material Design. We build solid foundations before we start painting the walls.
San Francisco is the one place where I am usually not the first developer someone has spoken to, and often not the first to have written code for the idea. Inheriting a half-finished app is a different job from starting one — the first week goes on reading what exists and telling you honestly which parts are worth keeping.
That week is not billable padding, it is the most valuable week of the project. There are really only three verdicts. The code is sound and undocumented, in which case we keep it and I write down how it works. The code is unsound but the data model is right, in which case we keep the database and rebuild above it, which is far cheaper than it sounds. Or the foundations are wrong, in which case the honest answer is to start again, and hearing that early costs you a week instead of a quarter.
The hardest part of that conversation is usually not technical. Someone has already paid for the existing work, and "start again" sounds like admitting the money was wasted. It usually was not: the existing version taught you what the product should be, which is exactly what a first attempt is for. But sunk cost is a poor reason to keep an architecture that will slow every future change, and I would rather have that argument in week one than deliver a build that stays fragile forever.
The nine-hour gap is real and shapes how we work. Our days barely overlap — your early morning is my evening. That suits a project with defined weekly deliverables you review at your desk and I act on the next day. It suits badly a project that needs live discussion to make progress. I will tell you which of the two yours is before we start, because getting that wrong wastes a month for both of us.
The number one fear when starting an app project is losing control: you sign an estimate, hand over your idea, and hear nothing for three months. The way of working described here exists so that does not happen.
Three rules, the same on every project:
You test the app on your own phone every two weeks.
With Invent Better you get an installable build every two weeks, even when it is incomplete. That is the difference between following a project and waiting for one. You have access to the code repository from day one, and every decision is written down rather than remembered. A disagreement surfaces after two weeks, not at final delivery.
Software development is far too often treated as a terrifying black box.
In many traditional projects, you sign a massive specification document, you pay a hefty deposit, and then you just wait. For months, you receive nothing but vague updates. A few reassuring emails. A lot of "trust us, it is coming along great."
And then the day of the final big reveal in San Francisco arrives... and your heart sinks. The product looks and feels nothing like what you envisioned. But it is entirely too late, and your budget is completely gone.
The most important factor: when you work with me, that black box simply does not exist. Everything is entirely transparent.
You do not need to be in the same office to build an excellent application.
Today, the digital economy in San Francisco operates without borders. But for remote work to be truly effective, you need military-grade organization. Technical chaos is incredibly expensive.
The key advantage of my approach is absolute transparency. Here is how we will collaborate, even if hundreds or thousands of miles separate us.
Let's start with the tools. There are no black boxes with me.
For design, I work code-first with visual mockups validated with you. For projects requiring specialized UX/UI work, I partner with a trusted designer. You can click through them, leave comments directly on specific buttons, and validate the interface before I ever write a single line of code.
For the code itself, I use GitHub. You have full access to the engine room. You are the sole owner of your product from A to Z.
Sometimes, the worst enemy of a project is a deal that seems too good to be true. The following case comes up often enough to be worth describing: a tech company in total panic.
They had inherited a mobile app developed by a very cheap offshore team. The result? The application was crashing several times a day.
The store rating had plummeted. Users were leaving disastrous one-star reviews on a daily basis. The CEO was ready to throw the entire thing in the trash.
This is a critical situation, because we know that most users read reviews before downloading an application. The company's reputation was collapsing.
The technical challenge was heavy. The codebase was pure spaghetti code. There was no documentation, no automated testing, and no monitoring tools. Fixing a simple color bug would create three new crashes somewhere else.
There is no single price for a mobile app. What sets the amount is the scope: the number of screens, whether it needs a server and user accounts, and whether it targets one platform or two. A scoping call gives a real range.
Three factors set the budget, plus two fixed costs:
The healthcare sector leaves absolutely no room for error. Building a medical app for patients or doctors in California is not just about coding a pretty interface. It is about building a digital vault.
You have to seamlessly manage patient follow-ups, appointment bookings, medication reminders, and secure messaging. Strict compliance with data protection laws is non-negotiable. That is why we integrate heavy biometric authentication systems.
And let's not forget offline mode, which is absolutely vital for a rural doctor consulting in an area with poor signal.
If you are targeting travelers visiting San Francisco, your application must be their ultimate guide. And a guide that stops working the moment you cross a border is completely useless.
Offline mode is a matter of survival here to help your customers avoid roaming charges. They must be able to check a real-time itinerary or scan a QR code ticket even without an internet connection.
Not always, which is good news for the budget. An app that only handles its own user's data — a list, a tracker, a calculation — can keep everything on the phone and cost nothing to run. As soon as data has to be shared between people, synced across two devices, or seen by you on your side, a server is needed, and that is a cost that comes back every month.
It depends entirely on what was decided at the start, and it is one of the few choices that cannot be postponed. An app can keep its data on the device, let people work, then sync as soon as the network returns — with nobody pressing anything. It is essential the moment work happens in a warehouse, a basement, or on the road. Added afterwards, it often means rewriting half the app.
We pick a floor, and that choice has a price. Supporting older OS versions means more testing and giving up some capabilities. We look at who your users are: a consumer app and an internal tool deployed on a known fleet do not get the same answer. The floor can be raised later, when usage data shows nobody is left behind it.
It matters more than people think, because a heavy app is the first uninstalled when storage runs short. The weight rarely comes from the code: it is the bundled images and fonts. Loading images from the server rather than shipping them, and serving them at the right size, often halves it. That is invisible work, and it is the work that keeps the app installed.
Technically, sending costs almost nothing. What costs is everything around it: a server to decide what to send to whom and when, and enough care not to become intrusive. It is also the easiest mechanism to waste — a useless notification is the first cause of uninstalls, and an uninstalled app does not come back. Send few and make them useful, or send none.
Yes, with the user's permission, and how you ask matters as much as the feature. A permission demanded on first launch, with no context, is refused most of the time — and once refused it is painful to recover. Asked at the moment the person understands why, it is granted. Apple also requires a written explanation for every permission, and a vague one gets the app rejected.
Through the stores, and not instantly: Apple and Google review every version before it is published, and phones update at the pace of their own settings. So expect a share of your users to stay on an older version for weeks. That is why the server has to keep talking to previous versions, and why we avoid changes that break everything at once.
Often yes, and it all hangs on one thing: does your vendor provide a documented API. If they do, it is ordinary work. If they do not, or bill it per module, or refuse to open it to a third party, no app will work around that cleanly — workarounds exist and break at the vendor's next update. It is a question to put to your supplier before you put yours to me.
A website can be installed on the home screen, work offline and launch full-screen, with no store involved. It is a real third answer, and it is under-recommended because it earns less for whoever recommends it. Its limits: notifications stay restricted on iPhone, sensor access is partial, and you are not present in the stores — which matters if your customers look for you there.
Only if you have an audience in another language — and then it has to be designed in, not added on. Translation is not what costs; room is. German makes labels half again as long and overflows buttons drawn for English. Leaving room from the start costs nothing; redoing the screens afterwards costs days. The legal texts and the store listing count too.
While you hesitate, your competitors in San Francisco are moving forward.
The mobile world moves fast. Very fast. Today, most global web traffic comes from mobile devices. If you keep pushing back the creation of your app, someone else will happily take your spot in California.
But be careful, do not confuse speed with haste. Launching an unstable application is the worst possible strategy.
In short: you have to act fast, but above all, you have to do it right. ⏳

30 minutes to start
Book →Most of my projects run remotely, and in practice that changes very little. We talk over video whenever you need to, not only at major milestones, and you can reach me with questions at any point during the project — I always answer.
Once we are working together, travelling to meet you on site can absolutely be arranged if your project calls for it. Travel costs are quoted separately, upfront and with no surprises.