Five layers, one problem.
Software engineering, databases, distributed systems, data and security are not five careers — they are one problem viewed from five angles. This is where the work sits in each, and which project is the evidence.
The strongest part of the work.
Backend
I care about how a backend is structured, not only whether the endpoints return 200. Where do the boundaries go, what owns which data, what happens when a dependency is down, and how does the next engineer find their way around it. Most of what I build is a modular monolith with real internal seams, because that buys the operational simplicity of one process without giving up the option to split later.
- Go
- Node.js
- TypeScript
- Fastify
- Gin
- REST APIs
- Authentication
- Authorization
- Validation
- Caching
- Background processing
- API documentation
How one application evolves.
Architecture
Monolith → modular monolith → microservices is not a ladder you are supposed to climb; it is a set of trade-offs you pick between, and the interesting question is how one codebase moves along it without a rewrite. That question is what Zudojs came out of: how do developers build complex backend systems without reinventing the architecture every time?
- Modular monolith
- Microservices
- Event-driven systems
- CQRS
- Dependency injection
- Hexagonal ports & adapters
- Domain boundaries
- Lifecycle & graceful shutdown
- Multi-tenancy
Where the work is heading.
Data
Deliberately moving toward Python and data engineering — pipelines, event processing, ranking and recommendation, and the analytics that make a product improve rather than just run. In Zudomart this is a separate Python service so a retrained ranker never requires redeploying the payments path.
- Python
- FastAPI
- Data pipelines
- Event processing
- Analytics
- Recommendation systems
- Ranking
- Vector search
- Automation
Not a separate identity — a way of building.
Security
I am a cybersecurity enthusiast rather than a security professional, and the honest framing is that it changes how I build backends rather than being its own job. Argon2 over bcrypt. Magic bytes over file extensions. Verify before you persist a TOTP secret. Rate limits that survive a restart. Audit trails written before the first dispute, not after it.
- Secure API design
- Argon2 & password hashing
- TOTP / 2FA
- JWT & session design
- RBAC & permissions
- Cryptography
- Rate limiting
- Input validation
- Webhook signature verification
- Linux & Kali
I do not only meet software through an IDE.
Infrastructure
Most of what I do starts in a shell. Bash, SSH, Docker, Postgres and MariaDB on the box, Nginx or Apache in front, and a deploy that can be rolled back. Knowing the environment underneath the application is what makes the application's failure modes legible.
- Linux
- Docker
- Bash
- Git & GitHub
- SSH
- PostgreSQL
- MariaDB
- Redis
- Nginx
- CI/CD
- Postman
- pgAdmin