Skip to content

About

Engineering Philosophy

I believe in building systems that are simple, observable, and maintainable. Good engineering is not about using the latest technology — it's about making the right trade-offs for the problem at hand.

Principles

  • Simplicity first — Prefer straightforward solutions over clever ones. Complexity should be justified.
  • Design for failure — Distributed systems fail. Design with resilience, graceful degradation, and clear failure modes.
  • Observability over debugging — Structured logging, metrics, and tracing should be first-class citizens, not afterthoughts.
  • Automate the boring stuff — CI/CD, infrastructure-as-code, and repeatable processes free up time for real engineering work.

Tech Stack Overview

LayerTechnologies
BackendJava, Spring Boot, Kotlin
InfrastructureAWS, Kubernetes, Terraform
DataPostgreSQL, Redis, Kafka
ObservabilityGrafana, Prometheus, OpenTelemetry
CI/CDGitHub Actions, ArgoCD

About This Site

This site serves as a personal engineering archive — a place to document architecture decisions, system designs, and lessons learned from real-world projects. It's built with VitePress and deployed via GitHub Pages.