Skip to content
View asafacihangir's full-sized avatar

Block or report asafacihangir

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
asafacihangir/README.md

Sefa Cihangir

Backend Engineer · Java · Spring Boot · Distributed Systems

LinkedIn Medium GitHub


About

Backend engineer with 8+ years of experience designing and building production systems on the JVM. I work primarily with Java and Spring Boot, with a focus on distributed architectures, event-driven systems and application security.

  • Domains: healthcare / medical software, retail, logistics, HR, e-commerce
  • Currently: enterprise applications with Spring Boot and OpenUI5, regulated medical device software under IEC 62304, and tracking the Java 25 / Spring Boot 4 platform shift
  • Architecture: microservices, event-driven systems, Domain-Driven Design, Clean & Hexagonal Architecture, CQRS, Event Sourcing, Saga pattern
  • Security: Spring Security, JWT, OAuth 2.0, OpenID Connect
  • Writing: technical articles on Medium

Tech Stack

Area Technologies
Languages Java, Python, Go, SQL
Frameworks Spring Boot, Spring Security, Spring Batch, Spring AI
Messaging & Streaming Apache Kafka, Kafka Streams, RabbitMQ, Redis Streams
Data PostgreSQL, MySQL, MongoDB, Redis
Infrastructure Docker, Kubernetes, Google Cloud Platform
Observability Micrometer, Prometheus, Grafana
Testing JUnit 5, Testcontainers, jqwik (property-based), Cucumber

Recent Work

What I have been building lately — modern Java runtime features and distributed-systems primitives implemented from scratch.

Project What it shows Stack
Structured Concurrency Virtual threads, StructuredTaskScope with a custom Joiner, and ScopedValue in place of ThreadLocal Java 25, Spring Boot 4
Virtual Threads Platform vs. virtual thread behaviour under load, pinning and blocking pitfalls Java 21+, Spring Boot
Stream Gatherers Real-world use cases for the Stream Gatherers API — windowing, folding, custom intermediate operations Java 22+
Consistent Hashing Hash ring with virtual nodes, rebalancing cost on node join/leave Java
Timing Wheel O(1) timer scheduling — the data structure behind Kafka and Netty timeouts Java
Property-Based Testing Discount rules verified with generated inputs and shrinking instead of hand-picked cases Java, jqwik

Architecture & Design

Reference implementations of the patterns I use in production systems.

Project Description Focus
DDD + EDA Domain-Driven Design combined with event-driven architecture end to end DDD, EDA
Hotel Booking Booking domain modelled with aggregates and ports/adapters DDD, Hexagonal
Cargo Booking The classic cargo domain under Clean Architecture boundaries Clean Architecture
Insurance System Policy lifecycle with use-case driven layering Clean Architecture
Saga Choreography Distributed transactions without an orchestrator, with compensating actions Saga
CQRS + Event Sourcing Command/query separation over an append-only event store CQRS, ES

Event Streaming & Messaging

Project Description Key Technologies
Fraud Detection System Real-time fraud detection over transaction streams with configurable business rules Kafka Streams, Spring Boot
Kafka Microservices Event-driven Order / Inventory / Shipping services communicating asynchronously Kafka, Spring Boot, Docker
Stream Processing Patterns Solutions and best practices for common stream-processing problems Kafka Streams
Message Ordering & Partitioning Ordering guarantees, partitioning strategies and partition management Apache Kafka
Quorum Queues Durable, highly available messaging that survives broker loss RabbitMQ, Spring Boot
Redis Streams Redis Streams as a lightweight message backbone Redis, Spring Boot

AI & Agents

Project Description Stack
Spring AI Workspace LLM integration patterns on the JVM — prompts, tools, structured output Spring AI
Agentic RAG Retrieval-augmented generation with an agent graph controlling retrieval LangGraph, Python
MCP Server Model Context Protocol server exposing domain tools to LLM clients MCP
Gemini File Search Document grounding over the Gemini file search API Python

Repository Index

Spring Boot — core application development
Security & Authentication
Messaging & Scheduling
Testing
Notes & Reading

Popular repositories Loading

  1. ms-course-socialmedia-config-server ms-course-socialmedia-config-server Public

    1

  2. java-stream-gatherer java-stream-gatherer Public

    contains practical examples of Java new Stream Gatherers API, demonstrating real-world use cases with detailed implementations.

    Java 1

  3. cargo-booking-system-clean-arch-sample cargo-booking-system-clean-arch-sample Public

    cargo-booking-system-clean-arch-sample

    Java 1

  4. syndicated-loan-management-system-with-cdd syndicated-loan-management-system-with-cdd Public

    1

  5. flight-route-workspace flight-route-workspace Public

    TypeScript 1

  6. hr-management-workspace hr-management-workspace Public

    1