Using off-heap memory in Java programs

One of the nice things about modern programming languages is Garbage Collection. As a developer you don’t have to worry much about allocating and freeing memory for your objects. With Java you just ’new’ your class and voila a new instance of the class. And when the instance is no longer referenced, Java will take care of freeing the memory. When you create objects this way, the JVM allocates memory from ‘heap’ memory — memory it manages for you. ...

January 1, 2021 · 3 min · Ray Suliteanu

Separating integration tests from unit tests

Update 2024-12-15 This blog is obviously very OO-centric, focusing on the notion of a class as the smallest “unit”. Obviously, in non-OO languages, what a “unit” is will vary e.g. it could be a compilation unit. But the idea still holds, that you are trying to test individual units of behavior without pulling in dependencies that may result in longer startup time, failures in the dependencies (which may be out of your control), or code that doesn’t exist yet (for TDD). ...

December 30, 2020 · 4 min · Ray Suliteanu

My Three Must Read Books for the Working Software Developer

I’ve read a lot of books over my almost thirty year career as a software developer. A lot of books have helped me understand various topics related to building software, everything from books on learning new programming languages to understanding particular architectures to how to manage teams. But if you asked me to pick just three out of all the books I’ve read, the three books I discuss here have had the most profound positive impact on me as a developer. ...

December 23, 2020 · 5 min · Ray Suliteanu