About
Detail-oriented senior software engineer who translates complex requirements into reliable, user-focused solutions.
Experience spans scalable systems across web, mobile, and cloud, with emphasis on clean architecture, automation, and continuous improvement.
At Nabu Demy, leads backend and Android development using ASP.NET Core/C# and Android SDK, building secure, high-performance services for thousands of users. Enjoys mentoring teams and delivering practical solutions with real impact.
About
Detail-oriented senior software engineer who translates complex requirements into reliable, user-focused solutions.
Experience spans scalable systems across web, mobile, and cloud, with emphasis on clean architecture, automation, and continuous improvement.
At Nabu Demy, leads backend and Android development using ASP.NET Core/C# and Android SDK, building secure, high-performance services for thousands of users. Enjoys mentoring teams and delivering practical solutions with real impact.
Publications
Publications
Most migrations succeed in a demo environment and fail in production. The reason is predictable: distributed systems do not fail like monoliths. They fail partially, they fail silently, and they fail in ways that look like “slow” rather than “down”. That is why distributed systems observability is now a board level capability, not an engineering nice to have.
Most migrations succeed in a demo environment and fail in production. The reason is predictable: distributed systems do not fail like monoliths. They fail partially, they fail silently, and they fail in ways that look like “slow” rather than “down”. That is why distributed systems observability is now a board level capability, not an engineering nice to have.
If you are migrating from a monolith to microservices, the hard part is not the APIs or the containers. It is the data. Specifically, it is how you maintain trust in your numbers when you no longer have one database, one transaction boundary, and one place to “just fix it”.
If you are migrating from a monolith to microservices, the hard part is not the APIs or the containers. It is the data. Specifically, it is how you maintain trust in your numbers when you no longer have one database, one transaction boundary, and one place to “just fix it”.
If your microservices programme disappoints, the root cause is often not Kubernetes, CI/CD, or cloud cost. It is service boundaries that do not match how the business actually works. When you slice a monolith the wrong way, you create a distributed monolith: more deployments, more integrations, and more incidents, with little agility to show for it.
If your microservices programme disappoints, the root cause is often not Kubernetes, CI/CD, or cloud cost. It is service boundaries that do not match how the business actually works. When you slice a monolith the wrong way, you create a distributed monolith: more deployments, more integrations, and more incidents, with little agility to show for it.
The strangler fig pattern has become the default migration play for a reason. It lets enterprises modernise without betting the business on a big bang cutover. That matters now because most organisations are under pressure to deliver faster while costs and risk are moving in the opposite direction.
The strangler fig pattern has become the default migration play for a reason. It lets enterprises modernise without betting the business on a big bang cutover. That matters now because most organisations are under pressure to deliver faster while costs and risk are moving in the opposite direction.
“Move to microservices” has become a default recommendation in many enterprise roadmaps. In practice, the monolith vs microservices decision is not a style choice. It is a capital allocation decision with operational consequences.
“Move to microservices” has become a default recommendation in many enterprise roadmaps. In practice, the monolith vs microservices decision is not a style choice. It is a capital allocation decision with operational consequences.
Most microservices programmes fail before the first service is extracted. The root cause is not the code. It is missing microservices prerequisites across delivery, ownership, and operational control. The market has moved to cloud native at scale, but readiness is uneven.
Most microservices programmes fail before the first service is extracted. The root cause is not the code. It is missing microservices prerequisites across delivery, ownership, and operational control. The market has moved to cloud native at scale, but readiness is uneven.


