Tools I use, languages I work with, and infrastructure I build on.
Here's an overview of the technologies and tools that power my day-to-day work as a backend engineer.
Languages & Frameworks
Java & Kotlin
My primary languages for over a decade. I use them daily for building microservices, APIs, and backend systems with Spring Boot and Spring Cloud.
Spring Boot & Spring Cloud
The backbone of most systems I build. From REST APIs to event-driven microservices, Spring Boot is my go-to framework for production-grade Java/Kotlin applications.
Python
I use Python for scripting, automation, and increasingly for AI/ML experiments with LLMs and agentic workflows.
Cloud & Infrastructure
Azure & Google Cloud
My primary cloud platforms. On Azure I work with AKS, Cosmos DB, Azure DevOps, and Azure AI Services. On GCP I use Cloud Run, GKE, and Cloud Build. I hold multiple Azure certifications.
Docker & Kubernetes
Essential for containerized deployments. I use Docker for local development environments and Kubernetes (AKS, GKE) for production orchestration.
Terraform
My infrastructure as code tool for provisioning and managing cloud resources across Azure and GCP reproducibly.
GitHub Actions
My CI/CD platform of choice. I design workflows for module-specific builds, automated testing, and deployment pipelines.
Databases
PostgreSQL
My go-to relational database for most projects. I use it with Flyway for schema migrations and Spring Data JPA for persistence.
Redis
For caching, session management, and high-throughput data scenarios where low latency matters.
Azure Cosmos DB & MongoDB
For document-oriented data models and globally distributed applications. I hold the Azure Cosmos DB Developer Specialty certification.
Development Tools
IntelliJ IDEA
My primary IDE for Java and Kotlin development. The refactoring tools and Spring Boot integration are unmatched.
VS Code & Claude Code
VS Code is my editor for TypeScript, Python, and general-purpose work. Claude Code is my AI-powered CLI for autonomous coding tasks, code review, and rapid prototyping.
iTerm2 + Zsh + Oh My Zsh
My terminal setup. Combined with custom aliases and plugins, it makes navigating projects and running commands efficient.
SDKMAN, nvm, uv
Version managers for Java/Kotlin (SDKMAN), Node.js (nvm), and Python (uv). Essential for managing multiple projects with different runtime versions.
Build & Package
Maven & Gradle
Build tools for JVM projects. I use Maven for most Spring Boot projects and Gradle when more flexibility is needed.
pnpm
My preferred package manager for JavaScript/TypeScript projects. Fast, disk-efficient, and strict about dependency resolution.