Blog About me Projects Contact LinkedIn GitHub Impressum Datenschutz Get in touch
Senior Java Developer · Technical Leadership

Abolfazl Rejali (Ebi)

Backend Engineering & Distributed Systems

12+ years designing and building Java backend systems, from early-career enterprise platforms to leading distributed architectures at scale. Based in Berlin. Here I write about what I've learned along the way.

From the blog

Writing about what works

Notes on things I'm learning, building, and tinkering with outside the day job.

AWS Lambda for small IoT workloads: when serverless actually makes sense

Comparing an always-on ingestion service against a Lambda function taught me exactly where serverless pays off, and where it doesn't.

About me

I build backend systems that don't break at 3am

I'm a Senior Java Developer with more than 12 years spent on backend systems that aren't allowed to fail, and I hold technical leadership for the project I work on. That means owning the technical concept and deciding on architecture and direction rather than managing people. Most of that work has been in awkward, high-traffic domains like real-time data platforms, industrial IoT and large-scale transportation systems.

I live in Berlin and work remotely for SMS GmbH. At different points during my time there I've also picked up DevOps, mobile app and frontend work, which turned out to be the quickest way to understand how the whole system actually fits together.

Java 17/21Spring Boot 3.x RabbitMQKubernetes PostgreSQLRedis AzureDocker JenkinsDomain-Driven Design Clean ArchitectureTDD
Senior Java Software Engineer & Project Technical Lead
SMS GmbH · Jan 2024 to now · Germany, Remote
  • Acting as project technical lead, guiding architecture decisions and technical direction across distributed microservice systems.
  • Designed and evolved distributed microservice architectures following Domain-Driven Design and Clean Architecture principles.
  • Owned CI/CD infrastructure on Azure, improving delivery reliability and automation.
  • Mentored engineers and introduced engineering practices including test-driven development and code reviews.
  • Core stack: Java 17/21, Spring Boot 3.x, RabbitMQ, Kubernetes, PostgreSQL, Redis.
Senior Java Software Engineer
SMS GmbH · Mar 2019 to Jan 2024 · Germany, Remote
  • Built and maintained backend services within distributed, microservice-based systems.
  • Applied Domain-Driven Design and Clean Architecture to keep services maintainable and scalable.
  • Contributed to CI/CD automation and cloud-based delivery on Azure.
  • Core stack: Java, Spring Boot, RabbitMQ, Kubernetes, PostgreSQL, Redis.
Senior Java Software Engineer
Hooshmand Sazan · Feb 2016 to Jan 2019 · On-site
  • Progressed from implementation-focused development toward system design and architecture.
  • Designed and delivered backend systems while completing an M.Sc. in Artificial Intelligence in parallel.
Junior Java Developer
Hooshmand Sazan · Nov 2014 to Feb 2016 · On-site
  • Developed backend features and strengthened core software engineering fundamentals in a production environment.
Junior Web Developer
Apadana Company · Jan 2012 to Jan 2013 · On-site
  • Built four enterprise web platforms, including role-based access control systems and a booking engine.
  • Learned production-focused software development practices end to end.
Education
M.Sc. Artificial Intelligence
University of Isfahan · 2013 to 2016
B.Eng. Software Engineering
Sepahan University · 2011 to 2013
Associate Degree · Software Engineering
Mohajer University · 2009 to 2011
Computer Science Diploma
Mohammad Bagher High School · 2007 to 2009
Languages
PersianNative
EnglishC1
GermanB2
Abolfazl Rejali (Ebi Rejali), Senior Java Developer in Berlin
My story

How I got here: the longer version

Late nights debugging in production, a move across continents, and what still keeps me building after all these years.

The question that got me was a simple one. How does the machine actually work? My classmates were learning to use software. I wanted to know what sat underneath it. In high school I stayed late writing programs that did nothing useful at all, just to prove to myself I could make the machine do exactly what I told it to.

I wasn't the kid who liked computers. I was the kid who had to understand them all the way down, and not knowing how something worked would sit in my head for weeks.

University turned into a competition and I went all in. I won several programming championships and finished with the highest academic score my faculty had seen in ten years. The trophies weren't really the point though. They were a side effect of caring about the craft more than was strictly reasonable.

I kept pushing my professors to put me on real projects instead of graded assignments. I was the student who stayed behind after class to ask whether I could help build something, not to ask what would be on the exam. Outside of class I took every Java course and web design workshop I could get into, and squeezed in internships whenever someone would have me.

I joined Apadana Company as a Junior Web Developer, which was a generous title for someone still working out how any of it fit together. I loved it anyway. I built four enterprise web platforms close to from scratch, including role-based access control, booking engines and real-time communication modules.

That job taught me something no course covers. When a bug reaches production and real people run into it, it feels nothing like a failing unit test. There is no undo. That pressure permanently changed how I think about software. Get it right, not just working.

I moved to Hooshmand Sazan Company as a Java Developer. Bigger systems, higher expectations, and senior engineers who were a lot less forgiving. It was exactly what I needed. I arrived knowing how to write code and left knowing how to design systems, and understanding why the design matters more than the code.

Alongside the job I finished my M.Sc. in Artificial Intelligence at the University of Isfahan. Neural networks, machine learning, NLP, probabilistic reasoning. It didn't just add knowledge, it rewired how I think. Once you study ML seriously you stop treating software as a deterministic machine and start designing for uncertainty instead. That shift still shows up in how I approach architecture today.

When I finished, I was offered a place in a PhD program with a full scholarship, tuition and living costs covered. I turned it down. Not because I didn't value research, I genuinely did, but because I had spent enough time watching good ideas stay ideas. I wanted to build things that ran in production, broke at 3am, and had to be fixed before morning.

I have always chased growth. At some point I looked honestly at where I was and knew I needed more. Bigger systems, higher standards, a real step up. I had already decided to move abroad when SMS GmbH in Dresden reached out.

They didn't just offer a job, they sponsored the whole relocation. I arrived, walked into the office, and within a week my probationary contract turned permanent. The team was genuinely surprised by how quickly I could untangle complicated project problems, and that set the tone for everything after.

Over the years at SMS I designed distributed microservice architectures with Spring Boot 3.x, DDD and Clean Architecture. I owned CI/CD end to end across Jenkins, Docker and Kubernetes on Azure, cut system latency through JVM profiling, and introduced practices that actually stuck, including TDD, SonarQube, Testcontainers and structured code reviews.

In 2024 I took on technical leadership for the project at SMS GmbH. It isn't a people management role. It's the job of owning the technical concept and deciding on architecture and direction. Along the way I've also picked up DevOps, mobile and frontend work.

Twelve years in, the tools have changed beyond recognition. What drives me hasn't. It's still the same thing that kept me in the university lab after everyone else had gone home. Understand how it works, then leave it better than you found it.

This blog is part of that. Lessons that cost me time, decisions I would make differently now, and patterns that hold up in production, written down so someone else can skip the expensive part.

After several years in Dresden I moved to Berlin, where I still work remotely for SMS GmbH.

Outside of work I've shipped six small iOS apps to the App Store: Split Bills with Roommate, Stadtrundfahrt, Berlin Heute, Steuerbelege ordnen, Shift Plan Reminder and Habit Builder Ganbaru!. Different stack, different constraints, same instinct to understand something by actually building it.

Berlin is a genuinely great city. Diverse, creative, always something going on. I'm still discovering it and enjoying every bit of that.

This year I started my own business, websitehaus.de, designing websites and building apps for other businesses. After years of building large backend systems for one employer, I wanted to work directly with the people who actually use what I build.

The work is deliberately end to end. Design the site, build it, and ship the mobile app alongside it when a business needs one. The same engineering standards I hold at work, fast, accessible, maintainable and free of unnecessary dependencies, at a scale where one person can own the whole thing.

I run it in my free time alongside my role at SMS GmbH. It keeps me close to the parts of the craft I enjoy most. Talking to real users, deciding quickly, and seeing something go live in weeks instead of quarters.

🧱
Architecture first
Every feature is an architectural decision. Think about the shape of systems before writing the first line.
📖
Clarity over cleverness
Code is read far more than it's written. Optimize for the reader, not the author.
🔁
Fast feedback loops
Good engineering cultures give honest feedback: in CI pipelines, code review, and between humans.
Free time

Free time and personal projects

Outside of work I go to the gym, design small iOS apps, and build things like this website. Here's what I've made on my own.

iOS Apps
6 apps on the App Store
Split Bills with Roommate, Stadtrundfahrt, Berlin Heute, Steuerbelege ordnen, Shift Plan Reminder, and Habit Builder Ganbaru!. Tap an icon to open it.
Personal projects
Get in touch

Let's connect

Or reach me directly at hello@rejali.de or on WhatsApp