~/writing
Deep-dives on Flutter, mobile architecture, Go, and software craft.
I thought burnout meant not wanting to code anymore. I was wrong. I still loved building — I just hated what building had become.
For most of my twenties, I lived in a constant haze of self-stimulation. Then I stopped filling every gap — and something strange happened.
AI makes me faster. But I'm starting to wonder if it also makes me a worse engineer — and whether anyone's noticing.
Being busy and being productive are not the same thing. It took a toxic environment for me to finally understand the difference.
Coming from Flutter, Jetpack Compose feels surprisingly familiar — but the mental model shifts matter. Here's what I learned moving between the two.
Golang is designed for simplicity, scalability, and high performance — an excellent choice for building modern distributed systems. This is Part One of building Realio, an innovative property management platform, with a microservices architecture.
Asynq is a reliable distributed task queue in Go designed for asynchronous task processing. Built on Redis, it combines simplicity and scalability, making it a powerful tool for distributed systems and high-concurrent applications.
Dependency injection makes code more flexible, reusable, and easier to test. This guide walks through what DI is, why it matters in Go, and how Uber Fx makes wiring large applications effortless.
gRPC is powerful when working across distributed teams. It generates type-safe client and server code for Go, Dart, Swift, Kotlin and more — making it a natural fit for Flutter apps backed by Go microservices.
Unit testing in Flutter helps identify bugs early and ensures code quality. This guide covers how to write clean, comprehensive unit tests for Riverpod state management using best practices and the right tooling.