About Me

Over the past few years I have worked across the full development cycle—from designing domain-driven architectures and scalable APIs to managing cloud deployments and CI/CD pipelines. Beyond my day job, I am deeply committed to pushing my technical abilities further than my daily work allows, continuously exploring areas of infrastructure and engineering that challenge and expand my skill set.

Background

My Story

I didn't start as a developer. I studied civil engineering, drawn to the idea of building things that last. But somewhere along the way I discovered that software offers something even more compelling—we can build anything, iterate in hours not years, and share it with the world instantly.

I started with data science. The math drew me in, and data felt like the currency of the decade. Courses on Coursera and Udemy got me going, but real depth came from documentation, technical blogs, research papers, and coursebooks I worked through cover to cover. I built the mathematical foundation first—linear algebra and statistical learning—then moved into the practical side: data wrangling, visualization, and exploratory analysis. Databases came next, both relational and non-relational, including the modeling patterns behind schemas that scale. From there I went deeper into machine learning and deep learning: balancing model complexity against accuracy, benchmarking approaches, training models to avoid over- and underfitting, and building proper data pipelines.

Programming had crept in along the way. By the time I started job hunting in data science, I'd picked up enough full-stack basics that—unexpectedly—I landed a software engineering role instead. That pivot opened a new world. I went deep on the fundamentals: data structures and algorithms, OOP, AOP, SOLID, and the design patterns that let me move between codebases without losing my footing. I didn't just study them—I argued for them in code reviews, brought them to the team where they fit, and mentored juniors along the way.

A few years in, the lesson that kept resurfacing was that scalability and maintainability are what separate code that works from code that lasts. I started studying software architecture seriously—DDD, CQRS, event sourcing, microservices—and applying those patterns in production where they earned their keep.

Most recently, I've been moving into infrastructure. I built a homelab to learn what my day job doesn't quite cover: QEMU/KVM virtualization with libvirt, declarative provisioning with Terraform, configuration automation with Ansible, and end-to-end CI/CD pipelines built on GitLab, GitHub Actions, Jenkins, and Kubernetes. The pattern hasn't changed since I started: find the next thing I don't understand, and go deep until I do.

I believe in learning in public, building systems that are simple enough to reason about, and writing documentation that treats readers as intelligent adults.

Career

Work Experience

Backend Developer (hybrid DevOps Engineer)

APD Bank

2025 – Present

Phnom Penh, Cambodia

  • Set up and managed the ELK stack for logging, monitoring, and analytics for the network team
  • Contributed to the development of the internet banking system
  • Provided maintenance and support for system issues and production incidents
  • Reduced costs by building in-house AI capabilities, including designing training pipelines and fine-tuning models
  • Migrated existing projects to improve reliability and boost performance
  • Mentored and supported team members in technical tasks
  • Developed common packages and utilities to improve developer productivity
  • Conducted ongoing research on on-premise infrastructure
  • Contributed to infrastructure design, CI/CD pipeline development using Jenkins, and container orchestration

Software Developer

Emcast

2023 – 2025

Phnom Penh, Cambodia / Seoul, South Korea

  • Designed and implemented a highly extensible, loosely coupled architecture using software design patterns and SOLID principles
  • Built scalable backend services for ERP and learning management systems
  • Applied Domain-Driven Design (DDD), Microservices, Event Sourcing (ES), and CQRS patterns to manage complex business rules
  • Managed deployments and CI/CD pipelines using GitLab and AWS infrastructure
  • Conducted regular code reviews and mentored junior developers on system design and testing best practices
  • Developed custom frameworks, tools, and utilities to support the teams
  • Contributed to frontend development

Contributor

  • Volunteer technical advisor to local tech startups, providing guidance on system design, engineering best practices, and hands-on coding support
  • Share industry knowledge and real-world experience with newcomers to the field, helping them build strong technical foundations and grow into capable developers
  • Make quality engineering guidance accessible to early-stage teams and aspiring developers
Skills

Technical Expertise

Languages

Java Python R TypeScript Bash

Frameworks

Spring Boot FastAPI NestJS

Infrastructure & DevOps

AWS GCP Azure Kubernetes Docker Terraform Ansible Jenkins Helm ArgoCD GitLab CI GitHub Actions

Databases & Messaging

PostgreSQL Redis RabbitMQ Kafka EventStoreDB

Architecture & Patterns

Domain-Driven Design Hexagonal Architecture CQRS & Event Sourcing Microservices Event-Driven Architecture

Observability

ELK Stack Prometheus Grafana OpenTelemetry