Field Notes
Long-form pieces on backend engineering, distributed systems, and the bugs that survived the test suite. Mostly in English, sometimes in Turkish.
Beyond Vibe Coding: Preparing an AI-Assisted Go Backend for Production
Türkçe için: https://medium.com/@aynacialiriza/ba8faecd9f43 I used AI heavily while building the MVP for a new mobile fitness app. It helped me move fast: authentication, workout templates, workout logs, bodyweight…
Vibe Coding’in Ötesi: AI ile Başlayan Bir Go Backend’i Production’a Hazırlama Hikayesi
For English: https://medium.com/@aynacialiriza/e6f379f2009d Bir mobil uygulama MVP’sini hızlı çıkarmak için AI araçlarından ciddi şekilde yararlandım. Kısa sürede çalışan endpoint’ler, auth akışları, antrenman…
Hexagonal Architecture: Nedir, Neden Önemlidir, Go’da Interface ve Struct’lar ile Nasıl Kurgulanır?
Mülakatlara hazırlanırken birçok konuyu PoC (proof of concept) olarak uygulamaya çalışıyorum fakat şu ana kadar çalıştığım konular içerisinde beni en çok zorlayan ve sıfırdan tasarlayıp kurması gerçekten zor hissettiren…
Implementing Raft in Go: 3 Concurrency Lessons from a Proof of Concept
Distributed consensus is one of the most challenging topics in software engineering. To truly grasp its nuances, I recently started building a Raft implementation in Go as a Proof of Concept (PoC) . My goal wasn’t to…
Redis Sharding in Go: From Single Node Bottleneck to Horizontal Scale
When I was building RLaaS (Rate Limiting as a Service) , something critical dawned on me. My project is built for developers to embed into their own systems. But those systems have their own users — potentially…
Google OAuth2 Login in Go: A Minimal and Complete Guide
While building my side project RLaaS (a multi-tenant rate limiting service in Go), I needed a simple and secure way to authenticate users — ideally using their existing Google accounts. That’s when I decided to…
Designing a Scalable Rate Limiter: Algorithms, Architecture, and Distributed Challenges
Introduction In today’s internet-scale applications, controlling how often a user or system can hit your API isn’t optional — it’s survival. Rate limiting acts as the first line of defense against abuse, outages, and…
Go Programlama ile MongoDB Bağlantısı: Başlangıç Rehberi
Son zamanlarda Go programlama diliyle ilgilenirken, proje içinde kullanacağım bir serviste MongoDB bağlantısı yapmakta birkaç hata ile karşılaştım. Bu hataları çözdükten sonra, hem yeni başlayanlar için yol gösterici…
Concurrency and Synchronization in Go: Using Goroutines, Mutex, and WaitGroup
Recently, while researching various topics related to Go, one of the areas I’ve focused on the most is concurrency. In this article, I will discuss Go’s approach to concurrency, its tools in this area, and its…
CQRS (Command Query Responsibility Segregation): Detaylı Bir İnceleme
https://www.geeksforgeeks.org/cqrs-command-query-responsibility-segregation/ Yazılım mimarilerinde sürdürülebilir, modüler ve ölçeklenebilir sistemler geliştirmek oldukça kritik bir hedeftir. Daha önce Onion…