I build systems that keep working when things go wrong.
Backend and distributed systems in Go, TypeScript, and Rust. Focused on fault tolerance, concurrency, and understanding how systems actually work—from application layer down to kernel and network.
Systems I've designed and built to solve real distributed systems challenges. Each project explores different aspects of fault tolerance, scalability, and system design.
01
Go1
go-saga-axon
DAG-based saga orchestration for distributed transactions
DAG-based orchestration with automatic compensation
Production-grade DAG-based saga orchestration engine for Go. Coordinates distributed transactions across microservices with automatic compensation, timeout monitoring, CQRS event sourcing, and split idempotency — built to never lose a transaction.
Engineering Challenges
→What happens when one service succeeds and another fails?
→How do you handle timeouts without losing transactions?
→What if the orchestrator crashes mid-transaction?
→How do you handle late-arriving responses after timeout?
→What if compensation itself fails?
→How do you ensure idempotency across retries?
→How do parallel DAG branches coordinate?
GoDAGCQRSEvent SourcingIdempotencyDistributed Systems
Production-grade Go SDK for Change Data Capture. Taps directly into PostgreSQL's Write-Ahead Log and MongoDB's change streams, relaying outbox events to any message broker with at-least-once delivery, crash recovery, and pluggable persistence.
Engineering Challenges
→How do you capture database changes without polling?
Type-safe Express validation with compile-time guarantees
Express middleware that makes unvalidated request access a compile-time error. Zod + branded types strip req.body/params/query after validation and replace them with typed, validated data.
Tracing a request through the complete stack—from application code through kernel, network, AWS edge services, VPC, and into distributed infrastructure.
Application
1/13
CLIENT
SocketTCP/IPKernel
NETWORK
InternetDNS
AWS EDGE
ACMAPI GWALB
VPC
EC2Subnets
INFRA
RedisKafkaRDSS3
02
Technical Stack
Technologies organized by engineering domain. Not a list of buzzwords—these are tools I've used to build real systems.
Tokio internals, epoll/kqueue, reactor pattern, futures, work-stealing
◇
Infrastructure
ALBNLBVPC
Load balancing, TLS termination, VPC design, auto scaling patterns
"The kernel knows when I/O can make progress; the Reactor observes that readiness; the Executor schedules that computation; and the Future's poll() advances its state machine."
— Understanding async from first principles
03
How I Approach Systems
Engineering principles that guide how I think about building reliable, scalable systems.
01
Understand the failure modes
Don't only ask how the happy path works. Ask what happens when the network fails, a dependency times out, a process crashes, a message is duplicated, or a response arrives late.
02
Understand the abstraction boundary
Don't stop at "Go gives me a network connection." Ask: What happens inside the kernel? Where is the socket stored? How does epoll notify the application? How does the packet reach the NIC?
03
Design for scale
Ask: What becomes the bottleneck? What becomes stateful? What can be horizontally scaled? Where is coordination required? Where does backpressure occur?
In practice: When building the Saga orchestrator, I didn't just implement the happy path. I asked: What if the orchestrator crashes after sending a payment request but before recording the response? What if a timeout fires but the service actually succeeded? These questions shaped the entire architecture—CQRS event log for crash recovery, split idempotency for duplicate handling, and timeout monitoring with late-success reconciliation.
04
Deep Dives
Topics I've studied in depth—not surface-level overviews, but understanding how things actually work underneath the abstractions.
Distributed Systems
Saga Orchestration
Systems
Kernel Networking
Networking
DNS Resolution
Security
TLS Handshake
Async I/O
Tokio Internals
Networking
BGP Routing
Infrastructure
Load Balancing
Systems
epoll/kqueue
Distributed Systems
Saga Orchestration
Systems
Kernel Networking
Networking
DNS Resolution
Security
TLS Handshake
Async I/O
Tokio Internals
Networking
BGP Routing
Infrastructure
Load Balancing
Systems
epoll/kqueue
Documented in personal notes · Applied in projects
05
About
I like understanding systems from the outside-in and inside-out—from cloud infrastructure and networking down to sockets, concurrency and kernel behavior.
I'm particularly interested in understanding why systems fail, how they recover, how concurrency behaves under load, how data moves through distributed services, and how infrastructure decisions affect application behavior.
My approach is to dig deeper than the API surface. When I use a tool, I want to understand what it's doing underneath—not because I need to reimplement it, but because understanding the internals helps me use it correctly and debug it when things go wrong.
What I think about
→Why systems fail and how they recover
→How distributed services coordinate
→How concurrency behaves under contention
→How data moves through a system
→How infrastructure affects applications
What I build
→Distributed transaction orchestrators
→Message queue clients with resilience
→Change data capture systems
→Type-safe middleware frameworks
→Infrastructure automation
06
Resume
Summary of technical background and experience
Backend Engineering
Go, Node.js, TypeScript, Rust — Building APIs, microservices, and distributed systems with focus on reliability and performance.
Infrastructure
AWS, Terraform, Docker — VPC design, IAM, Auto Scaling, RDS, DynamoDB, and infrastructure as code.
Systems
Concurrency, networking, TCP/IP, sockets, kernel concepts — Understanding systems at multiple abstraction levels.