Building software across mobile, web, and backend.
Johannesburg, South Africa
Building architecture driven Android systems using Kotlin, Jetpack Compose, and structured state flows.
I care about architecture.
Not just making something work, but making sure it still works when the system grows, when requirements change, and when new engineers join the codebase.
I have worked across Android apps, backend services, databases, and web platforms. Most of the systems I build focus on clear structure. I prefer strong layering, predictable state management, and a clean separation between business logic and UI.
The goal is simple. A codebase should still make sense six months later.
- Designing modular mobile systems
- Building UI flows driven by domain models
- Structuring backend services that scale properly
- Modeling data correctly instead of patching it later
- Keeping frontend and backend contracts clear
- Reducing complexity through better boundaries
- Prefer explicit boundaries over hidden coupling
- Keep business logic out of the UI layer
- Optimize for maintainability rather than short term speed
- Build systems that survive growth
- Favor predictable data flow
- Avoid unnecessary complexity
How I think about systems
Good systems are defined by clarity.
Data flow should be obvious. Responsibilities should be clear. Engineers should be able to understand behavior quickly without digging through multiple layers of code.
This usually means focusing on clear boundaries, proper state ownership, and predictable system behavior.