I started an open source project instead of begging on the street

Posted by Delicious_Detail_547@reddit | ExperiencedDevs | View on Reddit | 11 comments

I'm a software developer in Java and backend systems. I hold a bachelor's and master's degree in computer science.

My life, which had seemed to be moving forward steadily, collapsed in an instant. I won't go into the details, but I can say that alcohol, cigarettes, drugs, and gambling have never been part of my life — the reasons are unrelated to any of those.

What I was left with: a worn-out set of clothes, a sleeping bag with a broken zipper, a tent, and my laptop — the one thing I refused to give up, because it's my only tool as a developer.

Every morning I head to the public library, which opens at 10 AM. For over six months now, I've been going there every day — weekends included — to build a project I designed from scratch. Sometimes I coded late into the night inside my tent.

About a year ago, my money started running out. For several months I survived on a €1 bag of chips a day, until even that wasn't possible. I had to think of something. Sitting in my tent one evening, with winter closing in fast, I asked myself: what can I actually do?

The answer I came up with: instead of begging on the street, I would design a meaningful open source project, contribute something real to the developer community, and hopefully receive donations in return.

I had tried job hunting before this, but a long gap in my employment history and a background spread across backend systems, compilers, and databases made it hard to land even a part-time position.

So I started thinking — cold mornings in the tent, walking outside, sitting in the library. I'm a Java developer, so I wanted to contribute to the Java ecosystem. At some point, null safety came to mind. Every Java developer knows the pain. Java doesn't officially support null safety today, and even when Project Valhalla eventually ships, the support will be opt-in. I wanted to build something where non-null is the default and nullable is the exception — an extension of Java's type system, not a replacement for it.

Before designing anything, I set two principles for myself:

The approach that made sense was TypeScript's: a superset of the original language. I designed JADEx (Java Advanced Development Extension) to be Java-compatible by default, adding only null safety syntax on top — following Kotlin's syntax conventions. The name was a deliberate choice: I wanted Java developers to see it as a tool, not a foreign language.

The project is split into three parts: JADEx Compiler, IntelliJ Plugin, and Gradle Plugin.

The compiler is the core — it converts .jadex files (Java + null safety syntax) to .java, and performs static null safety analysis. Building the static analyzer took the most time; I had never built one before, so I learned as I went. I could have used NullAway or CheckerFramework, but JADEx's own syntax required a custom solution with room to grow.

After six months, I got it to the point where it supports Spring Boot — including static analysis that accounts for code auto-generated by Lombok.

When I first posted on r/java, the response was encouraging. But finding contributors has been difficult, and the more I promoted the project, the more pushback I got just for promoting it. I understand that — I just couldn't explain my situation to everyone.

I've also kept trying to find part-time work, without success so far.

If you see potential in this project, I'd be grateful for your support through GitHub Sponsors. And if you have work you'd like to offer, feel free to DM me — I'll send my resume. I'll take it seriously.

I'll be honest: unlike most of you, I've spent years benefiting from open source without contributing back. I deeply regret that.

Thank you for reading this far.

JADEx GitHub
JADEx GitHub Sponsors