About
Over 20 years I have worked as a test engineer, developer, project manager and software architect, from tactical control systems and national statistics platforms to delivery, pricing and privacy products.
Java is my core language; I also work with Scala and Python. Most of my recent work is around Kafka, Kafka Streams, Akka Streams, Spark and Elasticsearch on Kubernetes.
These days I guide development teams, design software architectures and define development standards.
Writing
-
Laws of Software Engineering #10 Conway’s Law: Sistem Mimarisi Organizasyon Yapısını Neden Aynalar?
Serinin yeni fazı Ekipler ve Organizasyonlar: Yazılım, onu geliştiren ekiplerin iletişim biçimlerinin ve kurumsal yapıların doğrudan bir sonucudur.
-
Laws of Software Engineering #9 Zawinski’s Law: Yazılımlar Neden Sürekli Şişer ve E-posta Okumaya Çalışır?
Odaklanmış, yalın bir araç zamanla neden sohbet, bildirim ve entegrasyonlarla dolu bir platforma dönüşür?
-
Laws of Software Engineering #8 Law of Unintended Consequences: İstenmeyen Sonuçlar Yasası
İyi niyetli bir retry mekanizması nasıl olur da kendi backend’imize yapılmış bir DDoS saldırısına dönüşür?
-
Laws of Software Engineering #7 Fallacies of Distributed Computing: Dağıtık Sistemlerin 8 Büyük Yanılgısı
Localhost’ta kusursuz çalışan kod, araya gerçek bir ağ girdiğinde neden beklenmedik şekillerde kırılır?
-
Laws of Software Engineering #6 Second-System Effect: İkinci Sistemi Tasarlarken Neden Aşırıya Kaçarız?
İkinci sistem, ilkinden daha iyi olması beklenirken neden gereğinden fazla karmaşık hale gelebilir?
-
Laws of Software Engineering #5 CAP Theorem: Dağıtık Sistemlerde Neden Her Şeye Sahip Olamayız?
Veriler tutarlı olsun, sistem her zaman yanıt versin ve ağ sorunlarında bile çalışsın: Dağıtık sistemlerde bunların hepsini aynı anda neden sağlayamayız?
-
Laws of Software Engineering #4 Tesler’s Law: Karmaşıklık Yok Olmaz, Yer Değiştirir
Bir sistemi kullanıcı için basitleştirdiğimizde, karmaşıklık gerçekten ortadan mı kalkar? Yoksa yalnızca başka bir yere mi taşınır?
-
Laws of Software Engineering #3 Law of Leaky Abstractions: Soyutlamalar Her Şeyi Gizleyemez
Yeterince karmaşık olan tüm soyutlamalar bir noktada alttaki sistemin ayrıntılarını açığa çıkarır.
-
Laws of Software Engineering #2 Hyrum’s Law: API’nizin Dokümante Edilmemiş Sözleşmeleri
API’nizdeki küçük bir değişiklik, dokümantasyona göre doğru olsa bile neden başka bir sistemi bozabilir?
-
Laws of Software Engineering #1 Gall’s Law: Karmaşık Sistemler Neden Basit Başlamalı?
Laws of Software Engineering kanunlarından bir seriye başlıyoruz. İlk bölüm Mimari kategorisindeki Gall’s Law.
-
Thinking Java Maps Again in the AI Era
Going beyond the instinctive HashMap: why the Java Collection API is still worth learning in depth, even alongside AI coding agents.
-
Why Should You Use the Bulk API to Import Big Data to Elasticsearch
This story is about importing big data to Elasticsearch.
-
Kafka Streams with Serverless Kafka
Splitting notifications according to their types.
-
Kafka Streams State Store at Scale
Managing Interactive Queries on multiple application instances: alternative solutions and their comparisons.
-
Making SonarQube Analysis of Multiple Git Branches in Community Edition in Docker Container
Running branch analysis with SonarQube Community Edition inside Docker.
-
Using Apache Kafka like Database with KafkaStreams Processor API and StateStore
A Kafka Streams application with the Processor API, querying processed data via state stores with Spring Boot.
-
Yeniden evden çalışma ve evden çalışma tavsiyeleri
2.5 yıl evden çalışmış biri olarak, evden çalışmayla ilk kez tanışanlar için deneyimler ve tavsiyeler.
-
Apache Spark in Practice
Practical usage of Apache Spark.
-
Streaming Data with Apache Kafka and Akka Streams
Streaming data with Akka Streams connected to Apache Kafka through the Alpakka Kafka connector.
-
Apache Spark at a Glance
A general presentation of Apache Spark for development teams, turned into a blog post.
-
Scrum at a Glance
A presentation about Scrum turned into a story, covering its general aspects.
Skills
- Languages
- JavaScalaPythonTypeScriptSQL
- Streaming & Data
- Apache KafkaKafka StreamsAkka StreamsApache SparkElasticsearchPostgreSQLCassandraRedis
- Frameworks
- Spring BootAkkaLagomDjangoReactVue
- Platform
- DockerKubernetesHelmArgoCDAWSGrafana
- Practices
- Software ArchitectureDDDCQRS & Event SourcingTDDScrumMentoring
