Robert Važan

My development stack

Too much code to write and too little time to spare? I was facing the same problem in my work and hobby projects. Here I list tools and some practices I use to minimize development costs and maximize value of my work.

Linux

Linux is fully scriptable, which is an invaluable feature for developers. Microsoft's stack is predatory towards users and it kills startups, which I believe extends to other businesses and opensource projects.

Java

There's no perfect programming language. There are several competing priorities: expressiveness, safety, performance, library ecosystem, IDEs, and tools. Contemporary contenders are mainly Java, Rust, C#, Python, JavaScript, and Go. Of these, Java provides the best tradeoff for the kind of projects I work on.

Newer versions of Java are better in expressiveness while older ones have better IDE and tool support. I am using Java 17+ for apps and Java 11 for libraries.

Web

While java alone can support complex application logic, there is no use for it without user interface. Desktop apps are dead and smartphone apps will die too. Web is the future. I couldn't find Java web frameworks that would be sufficiently productive, so I decided to roll my own:

I am also using a number of standard tools.

I have two additional libraries, PMSite and PMData, which define standard website structure. Both are somewhat messy and ripe for cleanup.

Servers

Web is the future of application distribution and web apps need servers to run on. While servers were traditionally off-limits for developers, small-time DevOps skills are now valued and empowering.