Akkan

Muzaffer Mert Akkan

Yazılım mühendisi — ERP ve iş sistemleri

Semerkant, Özbekistan

Tam zamanlı olarak bir üniversite ERP’si geliştiriyorum · Seçili projelere açığım

Bir kurumun üzerinde çalıştığı yazılımı geliştiriyorum — ve ilk görüşmeden canlıdaki ürüne kadar tamamını ben üstleniyorum.

mert@akkan.dev

Muzaffer Mert Akkan — yazılım mühendisi, ERP ve iş sistemleri, Semerkant

Gereksinimler. Sistemler. Devreye alma.

Çoğu kurum işini tablolarla, kimsenin dokunmaya cesaret edemediği eski bir sistemle ve neredeyse uyan bir araçla yürütür. Ben bunların yerine, işin gerçekte nasıl yapıldığı üzerine kurulmuş bir yazılım getiriyorum.

Tek başıma, uçtan uca çalışıyorum. İşi yapan insanlarla oturuyor, kayıtlarını ve kurallarını modelliyor, her gün kullandıkları arayüzleri geliştiriyor ve sonucu bakımını kendim yaptığım bir sunucuya kuruyorum. Sorunu anlayan kişiyle kodu yazan kişi arasında bir devir teslim yok.

Son çalışmalar: insan kaynakları biriminin her gün kullandığı bir üniversite ERP’si; bir alüminyum üreticisi için masaüstü, mobil ve web’de çalışan bir teklif ve tasarım sistemi; bir konut geliştiricisi için satış arka ofisi; ilk haftasında 4 000 öğrencinin tek bir başarısız istek olmadan kullandığı bir anket.

Ne geliştiriyorum

  • ERP ve arka ofis sistemleri

    Personel, öğrenciler, müşteriler, stok, rezervasyonlar, sözleşmeler — geçmişi, yetkileri ve denetim izi olan kayıtlar.

  • Fiyatlandırma, teklif ve belge üretimi

    Kesin fiyatlandırma kuralları, malzeme listeleri, muhasebenin güvenebileceği PDF ve Excel çıktıları.

  • Tek kod tabanından masaüstü, mobil ve web

    Müşterinin çalışanlarının gerçekten kullandığı her cihazda, çevrimdışı dahil, aynı iş mantığı.

  • Eski ve hazır araçların yerini almak

    Tablolardan ve eski sistemlerden veri taşıma: her kaydın mutabakatı yapılır, kullananlar için kesinti olmaz.

  • Varsayılan olarak çok dilli

    Özbekçe, Rusça, İngilizce ve Türkçe arayüzler; hepsinde tek bir sayı ve tarih biçimi.

  • Kurulum ve işletim

    Docker, CI/CD, yedekler, yayından önce yük testleri ve asla yeniden kurulmayan canlı veritabanlarına uygulanan yamalar.

WEB · MASAÜSTÜ · MOBİL · POSTGRESQL · TYPESCRIPT · PHP

Beş sistem.

İkisi günlük kullanımda, biri müşterisinde üretimde, ikisi geliştirme aşamasında. Aşağıdaki her rakam gerçek ve Eylül 2026 itibarıyla günceldir.

Günlük kullanımda

2026 — sürüyor

Kampus: bir üniversite ERP’si

Kimin için: Özbekistan’da bir devlet teknik üniversitesi — yaklaşık 9 000 öğrenci, 800 personel

Üniversitenin tam zamanlı ERP mühendisi olarak tek bir geliştiricinin sıfırdan tasarlayıp geliştirdiği, üniversite çapında bir ERP. Akademik ve idari personelle ilgili tüm işlemleri kapsayan İK modülü tamamlandı ve her gün kullanılıyor. Akademik modüller (müfredatlar, ders kaydı, notlandırma, yatay geçişler, transkriptler, mezuniyet denetimleri) hazır ve devreye alınmayı bekliyor.

Müşteri için ne değişti

Eskiden tablolarda duran personel kayıtlarının artık tam geçmişiyle tek bir doğru kaynağı var: her değişiklik tarihli, bir belgeye dayalı ve onu yapan kişiye atfedilmiş.

İdari belge akışları e-posta ve kâğıt yerine sistemin içinde yürüyor.

Çok dilli bir kadro için dört arayüz dili.

  • ~120 veritabanı tablosu
  • 230+ iş kurallarını taşıyan saklı fonksiyon
  • 8 341 içe aktarılıp mutabakatı yapılan öğrenci kaydı
  • 4 arayüz dili

Ayrıntı

Altı PostgreSQL şeması. İş kuralları PL/pgSQL fonksiyonlarında ve kısıtlarda yaşar; böylece onları hangi uygulama çağırırsa çağırsın geçerli kalır. Bir Laravel API’si bu kuralları React/TypeScript ön yüzüne açar. Personel kayıtları yürürlük tarihli tutulur; değişiklikler belgeye dayanır, denetim izi işlemi yapan kişiyi gösterir. Rol tabanlı erişim denetimi ve Microsoft Entra ID ile tek oturum açma. 8 341 öğrenci, 97 eğitim programı ve yaklaşık 4 000 dersi kapsayan eski Excel verilerinin tekrarlanabilir içe aktarımı; her tutarsızlık sessizce düzeltilmek yerine raporlanır. İşlemsel güncelleme yamaları, doğrulanmış gecelik yedekler, üniversitenin kendi sunucularında Docker ile kurulum.

En zor kısım: gereksinimler. İK’nın süreci insanların kafasında ve yıllarca tutulmuş tablolarda duruyordu; model, birimin hiç sahip olmadığı kurallar icat etmeden her tarihsel durumu tutabilmeliydi.

Yayında

2026

4 000 öğrencinin bir haftada kullandığı anket

Kimin için: aynı üniversite — 8 962 aktif öğrencisi

Üniversite her yıl hangi seçmeli dersleri açacağına karar verir ve bu yıla kadar bu kararı öğrencilere sormadan veriyordu. Bu, öğrencilerin üniversite hesaplarıyla giriş yapıp sunulan her seçmeli dersi iki dönem için birden puanladığı, mobil öncelikli bir uygulama. Birim talebi görüp dersleri buna göre açıyor.

Müşteri için ne değişti

Karar artık veriye dayanıyor: 244 dersi kimsenin istemediği ortaya çıktı — üniversitenin bunu dersleri açmadan önce bilmesi gerekiyordu.

260 öğrenciyi dışarıda bırakmış bir öğrenci işleri dökümü, anketin ortasında kod değişikliğiyle değil, verinin yeniden içe aktarılmasıyla düzeltildi.

Binlerce öğrencinin tek bir kampüs ağ adresinden geldiği açılış haftasında sıfır başarısız istek.

  • 4 071 öğrenci giriş yaptı, ilk sekiz gün
  • 34 152 ders puanı verildi
  • 2 644 puan, en yoğun saatte
  • 0 başarısız istek, aynı saniyede 500 öğrenciyle

Ayrıntı

PostgreSQL, PL/pgSQL, Laravel, React, TypeScript; Microsoft Entra ID ile giriş; her ekran ve 860 ders açıklamasının tamamı için dört dil. Puanların anketin kesinleştirilmesiyle yarışamaması için işlemsel satır kilitleme — 50 pgbench istemcisinden 2 000 çakışan işlemle doğrulandı, sıfır hata. k6 ani yük testi: aynı saniyede 500 öğrenci, p95 252 ms, sıfır hata; sürekli yük testi: 14 238 istek, sıfır hata. Yük testleri canlıya çıkmadan önce iki hata buldu — php-fpm’i aç bırakan nginx keep-alive ayarı ve tüm kampüs NAT’ını tek bir öğrenci sayan bir istek sınırlayıcı — ikisi de ilk sabahtan önce düzeltildi. Canlı veritabanı 12 idempotent şema yaması aldı ve hiç yeniden kurulmadı; her yama, canlı şemayı depodaki şemayla karşılaştırarak biter.

Üretimde

2025 — 2026

Plana: bir üretici için tasarım, fiyatlandırma ve teklif

Kimin için: Semerkant’ta bir alüminyum pencere ve kapı üreticisi

Pencere ve kapı sistemleri tasarlamak için bir masaüstü editörü, bir mobil yardımcı uygulama ve bayi ile yönetici portallarına sahip bir web sitesi. Şirketin geliştiremediği üçüncü taraf bir tasarım ve teklif aracının yerini, şirketin sahibi olduğu bir yazılımla aldı. Masaüstü, mobil ve web’in üçü de kullanımda.

Müşteri için ne değişti

Ticari teklifler daha hızlı ve kesin çıkıyor: her profil, cam, conta ve aksesuar miktarı tahmin edilmiyor, hesaplanıyor.

Bayiler kendi fiyat kademeleri ve sipariş takibiyle kendi portallarında çalışıyor.

Yazılım ve yol haritası şirkete ait; müşteri bunu masaüstü editörü için yazılı olarak da belirtti.

  • 3 platform, tek bir iş kuralları setini paylaşıyor
  • 1 009 fiyatlandırma, geometri ve kalıcılık üzerine otomatik test
  • 1 tık — yeni Windows sürümü tüm kurulumlara gider

Ayrıntı

Baştan sona TypeScript. Geometri, fiyatlandırma, malzeme listesi, kesim listeleri ve belge üretimi; Tauri masaüstü uygulaması, React Native/Expo mobil uygulaması ve Next.js sitesinin kullandığı ortak paketlerde yaşar — böylece bir fiyat kuralı bir kez yazılır. Sahneler aynı modelden masaüstünde Konva, mobilde Skia, web’de SVG ile çizilir. Senkronizasyonlu, çevrimdışı çalışabilen veri saklama; ekip bazında izole proje erişimi; bayi fiyat kademeleri, sipariş takibi ve bir stok hareketi defteri. Para tam sayı alt birimlerde saklanır ve döviz kuru fatura kesildiği anda sabitlenir; böylece bir teklif gönderildikten sonra asla değişmez. Windows kurulum paketleri ve uygulama içi güncellemeler GitHub Actions üzerinden yayınlanır.

En zor kısım: gerçek sonuçları olan hassasiyet. PDF teklif, müşterinin imzaladığı belgedir; bir kesim listesindeki yuvarlama hatası, atölyede fiziksel bir hatadır.

Geliştiriliyor

2026 — sürüyor

Nivo: bir konut geliştiricisi için satış arka ofisi

Kimin için: bir konut projesi geliştiricisi

Kiralık, çok kiracılı bir satış platformunun yerini alan şirket içi bir çözüm: geliştiricinin daire stoku, müşterileri, rezervasyonları, sözleşmeleri, ödeme planları, borçları ve belgeleri, kontrolü kendisinde olan tek bir sistemde. Stok, müşteriler ve rezervasyonlar hazır; sırada sözleşmeler ve ödemeler var.

Müşteri için ne değişti — şimdiye kadar

Gerçek stok — beş bloktaki 596 daire — içe aktarıldı ve eski sistemin kendi toplamlarıyla rakam rakam mutabakatı yapıldı.

Her fiyat değişikliği, rezervasyon ve iptal; kimin, ne zaman ve neden yaptığıyla birlikte, veritabanının kimsenin düzenlemesine izin vermediği bir kayda yazılıyor.

Toplamları test edilmiş kurallarla hesaplanan Excel çıktıları; böylece iki kişi asla iki farklı rakam görmüyor.

  • 596 daire, önceki sistemden mutabakatla aktarıldı
  • 34 kayıt altına alınmış mimari karar
  • 3 dil, önce Rusça

Ayrıntı

TypeScript monorepo: Next.js (sunucu bileşenleri ve sunucu eylemleri), Prisma ile PostgreSQL 18, dışa aktarımlar, belgeler ve zamanlanmış işler için bir pg-boss işçisi — Redis yok. Alan kuralları, her kural için bir birim testi olan, çatıdan bağımsız bir çekirdek pakette; durumlar yalnızca adlandırılmış olaylarla değişir; CHECK kısıtları asla doğru olamayacak olanı reddeder. Her iş tablosu bir şirket kimliği taşır ve kapsamlı bir istemci üzerinden okunur; böylece tek şirketlik kurulum, veriyi yeniden şekillendirmeden çok kiracılı hale gelebilir. Veritabanı tetikleyicileriyle zorlanan, yalnızca eklemeye açık denetim kaydı. Oturumlar ve parolalar bir kimlik doğrulama kütüphanesi olmadan uygulandı. Eski sistemin işlevsel denetiminden yola çıkan temiz oda uygulaması; tedarikçiye ait kod ya da materyal yok.

Kalıcı her karar depoda bir ADR olarak duruyor — bu yazı yazılırken 34 tane — böylece müşterinin bir sonraki geliştiricisi, bir gün olursa, yalnızca kodu değil gerekçeyi de devralıyor.

Geliştiriliyor

2026

Özel bir hastane için birleşik gelen kutusu

Kimin için: Semerkant’ta özel bir hastane

Hastalar hastaneye Telegram, telefon, Instagram ve yorumlar üzerinden yazıyor; her kanala da o an kim gördüyse o yanıt veriyordu. Bu sistem gelen her mesajı durumu, sorumlusu ve ölçülen yanıt süresi olan bir konuşmaya dönüştürüyor; böylece yönetim neyin, ne kadar hızlı ve kim tarafından yanıtlandığını görebiliyor. Birinci aşama Telegram’ı — bot, işletme hesabı ve kanal yorumları — diğer kanalların eklenti olarak bağlanacağı biçimde tasarlanmış bir çekirdeğe bağlıyor.

Müşteri için ne değişecek — hedeflenen

Hiçbir talep kimsenin kişisel telefonunda kalmıyor; her birinin bir sorumlusu ve bir son tarihi var.

Yöneticiler canlı iş yükünü ve operatör bazında haftalık raporları tek tıkla görüyor.

Veriler Özbekistan’daki sunucularda kalıyor.

  • ≤ 3 sn gelen mesajdan gelen kutusuna, p95 hedefi
  • %100 gelen mesajların kaynakla mutabakatı

Ayrıntı

Kanal adaptörü mimarisi: talep çekirdeği hiçbir zaman Telegram tiplerini içe aktarmaz; yeni bir kanal, bir adaptör ve bir ayarlar sayfasıdır. Telegram Business bağlı hesapları, bot API’si ve tartışma grubu yorumları; tek bir normalleştirilmiş olay şeması üzerinde üç adaptör. Durumlar, atama, ekipler, hazır yanıtlar, mesai saatlerine göre işleyen SLA sayaçları, kanallar arası kişi kimliği, sunucu tarafında yetki denetimi ve bir denetim kaydı. Önce açık karar ve doğrulama işaretleri içeren bir şartname olarak yazıldı, ardından ona göre geliştirildi.

Yapılacak böyle bir işiniz mi var?

mert@akkan.dev

Önceki işler: 12 bloklu sayfa oluşturucusu olan beş dilli bir üniversite web sitesi (erişilebilirlik, en iyi uygulamalar ve SEO’da Lighthouse 100), üç dilli bir tıp merkezi sitesi (Lighthouse 99–100) ve GitHub’daki açık kaynak projeler.

Sizi bekleyen üç şey.

Önce anlamak.

Bir özellik listesiyle başlamam. İşi yapan insanlarla ve zaten ürettikleri belgelerle başlarım; gerçekte yaşadıkları kayıtları ve kuralları — kimsenin yazıya dökmediği istisnalar dahil — modellerim. Yazılım bu modelden doğar, tersi değil.

Kanıt — İK modülü bir personel kaydının her tarihsel durumunu tutar; çünkü birimin buna ihtiyacı vardı, zarif olduğu için değil. Üreticinin teklif kuralları, ortada tek bir ekran bile yokken satır satır denetlendi.

Tek kişi, bütün ürün.

Gereksinimler, veri modeli, arayüzler, kurulum, işletim: hepsini ben yaparım. Sorunu anlayan kişiyle onu inşa eden kişi arasında hiçbir şey kaybolmaz ve hiçbir şey bir devir teslimi beklemez.

Kanıt — Yaklaşık 120 tablo ve 230’dan fazla veritabanı fonksiyonuna sahip, dört dilli, her gün kullanılan ve tek bir geliştiricinin kurduğu bir üniversite ERP’si. İlk haftasında 4 000 öğrencinin kullandığı, tek bir geliştiricinin kurup işlettiği bir anket.

Dayanmak için yapıldı.

Geliştirdiğim sistemler para, sözleşme, not ve personel kaydı taşır. Karşılaşacakları yük altında test edilirler, kuralları yalnızca arayüzde değil veritabanında da uygulanır ve her değişiklik kayıt altındadır.

Kanıt — Aynı saniyede 500 öğrenci, sıfır hata. Bir fiyatlandırma motoru üzerinde 1 009 test. Veritabanı tetikleyicilerinin kimsenin düzenlemesine izin vermediği denetim kayıtları. On iki kez değiştirilmiş ve hiç yeniden kurulmamış canlı bir veritabanı.

  • 9 000 öğrenci, ERP’sini geliştirdiğim üniversitede
  • 120 tablo o ERP’de; kurallarını 230+ fonksiyon taşıyor
  • 8 341 eski öğrenci kaydı içe aktarıldı ve mutabakatı yapıldı
  • 4 071 öğrenci, seçmeli ders anketine sekiz günde giriş yaptı
  • 0 başarısız istek, aynı saniyede 500 öğrenciyle
  • 1 009 otomatik test, üreticinin fiyatlandırma ve geometrisi üzerine
  • 596 daire, konut geliştiricisinin yeni sistemine mutabakatla aktarıldı
  • 4 dil — hepsinde çalışıyor ve geliştiriyorum

Rakamlar Eylül 2026 itibarıyladır. Hiçbiri yukarı yuvarlanmadı.

Araçlarını aşmış bir işiniz varsa bana yazın. Yazılımı değil, işi anlatın — gerisini ben hallederim.

İki iş günü içinde yanıt veririm. Rusça, Türkçe, İngilizce ya da Özbekçe — hepsi olur. Semerkant’ta yerinde; Özbekistan, Kazakistan, Rusya ve Türkiye’deki müşterilerle uzaktan çalışıyorum.