Backend & Architecture
Designing and building resilient, event-driven microservices and the contracts between them.
- Java
- Spring Boot
- REST APIs
- Apache Kafka
- Event-driven design
- PostgreSQL
- JUnit
- MapStruct
- Maven multi-module
- SOLID
- Domain modeling
Software Engineer · Architecture · Platform Engineering
Backend engineer in the telecom B2B / BSS domain, designing event-driven Java / Spring Boot systems for product ordering, offerings, billing and shipping. I pair that with deep platform engineering and a track record of turning engineering friction into shipped developer tools, IDE plugins, and AI/MCP automations.
About
I work across the full stack of a large microservice estate — from designing event-driven services with Kafka and shipping them on OpenShift / Kubernetes, to building the editor tooling that lets my team understand and maintain that estate without drowning in it.
My approach is consistent across everything I build: SOLID, security-first (CIA triad), performance-aware, and well-documented. I care about the seams of a system — clear boundaries, testability, observability — and about removing the repetitive pain that slows engineers down.
On the side I co-run WeDontTrack, an open-source org building privacy-respecting apps, and I write about backend, DevOps, and security on dev.to. I'm currently going deeper on the QUIC protocol, Linux internals, AWS, and DSA in Go & Python.
Capabilities
Three connected disciplines — I rarely stop at just writing the service.
Designing and building resilient, event-driven microservices and the contracts between them.
Getting services to production reliably and keeping quality gates honest along the way.
Turning recurring friction into shipped tools — extensions, plugins, MCP servers, agents.
Shipping clean, accessible UIs when the tool needs a face — and full apps end to end.
Selected work
A mix of developer platforms, open-source apps, and infrastructure.
An IDE extension that surfaces JUnit/JaCoCo coverage and runs SonarQube rules fully offline via the bundled SonarLint engine — full rule parity with the server, no per-scan calls. Resolves dev/test/generated sources and respects quality thresholds.
Draws a visual dependency graph of TestNG flows (@Test +
dependsOnMethods), layering tests by depth to expose parallel groups and
inherited steps — shipped on two IDE platforms.
A local-first Swagger/OpenAPI preview extension — embedded Swagger UI with zero callbacks to any server, plus unused-definition detection and safe bulk cleanup. Published under WeDontTrack.
A CLI that upgrades a microservice version in an OpenShift environment with "happy helming" — pulling charts from Nexus, logging into OCP, and templating the deploy. Part of a wider set of ops + E2E automation.
Why I'm worth it
Beyond closing tickets — I multiply the team around me.
The tools I build (coverage, static analysis, flow visualization) speed up every engineer who touches the codebase — not just my own output.
SOLID boundaries, clear contracts, and test coverage mean my services stay changeable as requirements move — lower long-term cost of ownership.
I think in deployments, quality gates, observability and security from day one — Helm/OpenShift, Sonar/JaCoCo, TLS and RBAC are part of how I work.
I build with and for AI agents — MCP integrations, automated triage, and standards-as-guardrails — turning emerging tooling into real productivity.
Java, TypeScript, Go, Python, Dart — I pick the right tool, ramp quickly, and ship across backend, infra, and frontend.
Every project ships with architecture diagrams, settings tables, and troubleshooting guides. Knowledge doesn't stay locked in my head.
* Metrics reflect measured improvements in shipped tooling (e.g. DisplayFlow caching/analysis); see project docs for context.