Vaka çalışmasıYayında
Postgradia
Koçların, öğrencilerin ve velilerin aynı haftalık plan üzerinden çalıştığı bir koçluk platformu.
- Rol
- Kurucu ortak & CTO — backend ve DevOps lideri
- Ne zaman
- 2024 → bugün
- Backend
- DevOps
- Full-stack
Kaynak kod gizli — bir görüşmede kodu ve pipeline’ı birlikte gezmekten memnuniyet duyarım.

Kimin için
- Onlarca öğrenciye haftalık ödev planlayan ve bunu tablolarla, mesaj gruplarıyla yürüten eğitim koçları ve öğretmenler.
- Bu hafta ne yapacağını tek ve net bir listede, webde ya da telefonunda görmek isteyen öğrenciler.
- Koçun peşine düşmeden ilerlemeyi görmek isteyen veliler ve birçok koçu tek hesap altında yöneten kurumlar.
Ne yaptım
- Bitnodia’yı kurduk; üç kişilik kurucu ekipte CTO olarak mühendisliği yönetiyorum. Backend ve teslimat platformu bende; ürün bir ekip işi.
- NestJS API’de: öğrenci modülü, bildirimler ve push, partner ve referans programı, kimlik doğrulama, i18n, config doğrulama, e-posta şablonları ve toplu ödev planlayıcı.
- Platformda: API’nin Docker imajı, uçtan uca Jenkins pipeline’ı ve Azure’a GitHub Actions deploy’ları.
- API işinin gerektirdiği her yerde React web uygulamasında ve Expo mobil uygulamada da elim kodda.
Nasıl çalışıyor
1Öğrencileri ekle
Koç (ya da kurum) öğrencileri ve velileri organizasyona ekler; kredi kartı istemeyen ücretsiz denemeyle başlar.
2Haftayı planla
Ödevler sürükle-bırak haftalık planlayıcıya girer — şablonlardan, tek öğrenciye ya da bütün bir gruba aynı anda.
3Öğrenci çalışır
Öğrenci haftasını webde ya da mobil uygulamada görür, hatırlatma alır ve görevleri tamamladıkça işaretler.
4Deneme ve hedef takibi
Deneme sonuçları, kitaplar ve hedefler koçun üzerine aksiyon alabileceği öğrenci analizlerinde toplanır.
5Veli takip eder
Veli ekranı ilerlemeyi gösterir; bildirimler push, SMS ya da e-postayla gider.
Önemli kararlar
01
Mikroservis değil, modüler monolit
Yerine: Her alan için ayrı servis (öğrenci, ödev, ödeme…).
Neden: Üç kişilik bir ekip tek deploy edilebilir birim, tek veritabanı ve tek transaction sınırıyla daha hızlı ilerler. NestJS modülleri dikiş yerlerini koruyor; bir parça ileride gerçekten hak ederse dışarı taşınabilir.
02
Yetkilendirme bir politika, organizasyona göre
Yerine: Controller’lara dağılmış rol kontrolleri.
Neden: Koçlar, öğrenciler, veliler ve kurum yöneticileri aynı verinin farklı dilimlerini görüyor. Global guard’lardaki CASL politikaları multi-tenancy’yi her endpoint’in hatırlaması gereken bir gelenek değil, API’nin uyguladığı bir kural yapıyor — ve test edilebiliyor.
03
Idempotent ve sıra bağımsız ödeme webhook’ları
Yerine: En son gelen webhook’a güvenmek.
Neden: Abonelik webhook’ları iki kez ve karışık sırayla gelir. Hangi olayları uyguladığını hatırlayan küçük bir state machine (deneme, aktif, gecikmiş ödeme süresi, duraklatılmış, ödeme duvarı) sayesinde bir retry ödeme yapan bir koçu asla düşürmüyor.
04
Helm ile Kubernetes, secret’lar Git dışında
Yerine: Container’ları elle çalıştıran tek bir sanal makine.
Neden: API, ingress-nginx ve cert-manager arkasında AKS’te çalışıyor; staging ve production değerleriyle tek bir chart, secret’lar External Secrets ile bir key vault’tan geliyor. Rollout’lar tekrarlanabilir ve hiçbir kimlik bilgisi repoda ya da CI değişkenlerinde durmuyor.
Mimari
Yeniden çizildi ve sadeleştirildi — host adı ya da kimlik yok. Vurgulu kutular benim yaptığım ya da sahibi olduğum parçalar.
Sayılar
- öğretmen kullanıyor (postgradia.com)
- 1.000+
- uygulama: API, web, mobil, landing, doküman
- 5
- API’de domain varlığı
- 40+
- API test dosyası — unit + seed’li DB’de e2e
- ≈ 45
Teknolojiler
Backend
- NestJS
- TypeScript
- MikroORM
- PostgreSQL
- CASL
- Passport · JWT
- Swagger
- React Email
İstemciler
- React Router 7
- TanStack Query
- shadcn/ui
- Expo
- React Native
- Next.js
Platform
- Azure AKS
- Helm
- ingress-nginx
- cert-manager
- External Secrets
- Static Web Apps
- GitHub Actions
- Jenkins
- Docker
Entegrasyonlar
- LemonSqueezy
- AWS S3
- Expo push
- SMS & e-mail providers
- Sentry
Galeri

Ödev, bildirim ve kaynak takibi — ana döngü. 
Geri bildirim, motivasyon ve veli ekranı. 
Paketler ve ücretsiz deneme — abonelik state machine’i yönetiyor. 
Paket karşılaştırması: pakete göre öğrenci limiti ve özellikler.
Uzun versiyonu ister misin — kod, pipeline, ödünleşimler?
E-posta gönder