Projects

Personal projects I’ve built or am actively working on.


Go Kafka (In Progress)

A distributed, fault-tolerant message queue built from scratch in Go, inspired by Apache Kafka’s design.

  • Implements log-based storage, topic partitioning, and consumer group semantics
  • Focuses on correctness and understanding distributed consensus under the hood

Stack: Go


1BRC - One Billion Row Challenge

My solution to the One Billion Row Challenge: aggregate min/mean/max temperature per weather station across a 1-billion-row file as fast as possible.

  • Optimized for raw throughput on modern Java (JDK 21)
  • Includes correctness tests against reference samples and hyperfine-based benchmarking

Stack: Java


Java Single Flight

A Java library implementing duplicate suppression (single-flight), similar to Go’s singleflight package.

  • Prevents redundant concurrent calls to the same key from executing multiple times
  • Useful for de-duplicating expensive database or network calls under high concurrency

Stack: Java


Java Consistent Hashing

A Java library for consistent hashing with virtual node support.

  • Minimizes key remapping when nodes are added or removed from the ring
  • Supports configurable virtual node replication factors for better load distribution

Stack: Java


Me2diag - Medical Diagnosis Decision Support System

A decision support system for medical diagnosis using Hedge Algebra integrated with Picture Fuzzy Relations, built as the implementation of my published research.

  • Published in the International Journal of Fuzzy Systems (2023): doi.org/10.1007/s40815-023-01548-4
  • Full-stack system with a Spring Boot backend, React frontend, and a Python Flask model service

Stack: Java (Spring Boot), React, Python (Flask), MariaDB, MinIO, Docker