I design systems that are
still standing two years on.
Software architect. I work on both ends of the same problem: the app people actually touch, and the infrastructure that holds it up once it stops being a prototype. iOS apps in Swift, and the APIs that feed them.
- Swift · SwiftUI
- VIPER · MVVM
- TypeScript · Fastify
- PostgreSQL
- Docker
- Cloudflare
Two schools at once
I have been building iOS apps since 2016, most of that time on banking and large-scale retail projects where the app is not the product: it is the tool someone works with or moves their money through. There a slip is not a charming bug, and you learn quickly to design for day 500 rather than day 1.
Alongside that I run my own products end to end. That forces you down into what someone else handles on a large team: the API, the database schema, the deployment, the certificates and the three-in-the-morning call. It is the other half of the craft, and the half that taught me most about why things break.
That combination is what interests me: the rigour a large project demands, and the judgement you only develop when there is nobody else to hand the problem to.
Apps in production
iOS applications used daily by thousands of people, in sectors where going down is not an option. I do not go into the internals of each project: they are their owners' products, not mine.
- Inditex — Internal store management across the group worldwide. Swift 5
- Mercadona — Purchasing at fish markets and boats. Swift 5
- Unicaja — Bizum instant-payments integration in the bank's app. Swift
- Pibank — Private customer area for Banco Pichincha. Swift 4
From idea to server
Two apps shipped under the OgamLabs label. There is no team here: design, app, API, database, deployment and on-call are all mine.
-
CholloGas
On the App StoreFinds the cheapest fuel stations in Spain using the public MITECO dataset.
- Rating
- 5.0 ★
- Stations
- 11,000+
- Fuel types
- 13
An iOS app in Swift and SwiftUI with a local cache so it works offline, and a TypeScript API on Fastify backed by PostgreSQL. The whole path is mine: design, app, backend, database, deployment and on-call.
- The problem
- Price history threatened to run away. With over 11,000 stations and up to thirteen fuel types, writing every reading on every sync adds tens of thousands of rows a day. And history is not a nice-to-have: it is what tells you whether today is a good day to fill up.
- Alternatives
- Store every reading and prune later with a cleanup job, or store only genuine price changes.
- The decision
- A delta-based sync: a row is written only when the price actually changes. History stays in the millions of rows rather than growing unchecked, and queries stay direct with no recurring maintenance work.
- What it cost
- The date the user sees now means "the last time this price changed", not "the last time we checked". That is counter-intuitive: a two-week-old date looks stale when it actually means a stable price. Accepting that meant explaining it inside the app and giving it a section on the pricing data page.
- Swift
- SwiftUI
- Fastify
- PostgreSQL
- Docker
-
Hilo
Coming soonA daily word game: five words hiding one common thread. A short break, not a game that asks for your time and gives nothing back.
Decisions I stand behind
Not slogans: choices made on my own products, with their costs accepted.
- No accounts when they add nothing. CholloGas has no login. If the product works without knowing who you are, there is no reason to ask.
- Finishing costs more than starting. The bulk of an app goes up quickly. What is left after that — the empty states, the network error, the text that breaks on a small screen, the animation that does not make you queasy — is what separates a demo from something someone opens every day. That stretch decides whether the product is any good, and it is where I put the time.
- I never force a subscription. CholloGas is paid for once and that is that. Hilo also has a one-time purchase, plus monthly and annual plans for anyone who would rather pay gradually. A subscription is fine as an option; what I object to is it being the only door in.
- Official data, unretouched. Prices come from the public source and are shown as they are: not rounded, corrected or predicted.
- Operate what I build. Deployment, certificates, backups and monitoring. A system you cannot operate is not finished.
Get in touch
For proposals, collaborations or questions about any of the apps: [email protected].
I am also on LinkedIn.
Site owner
This is a personal portfolio, published for informational purposes. It does not sell, use cookies or collect visitor data.
- Owner
- Oscar Canton Garcia
- [email protected]
- Activity
- Mobile application development and publishing