I was reminded this weekend of one of the quiet joys in software development: open source means you’re never truly stuck.
It’s a line that resonates like the classic Love Story 1970 movie line uttered by Ali MacGraw, “Love means never having to say you’re sorry” only in our world, that sentiment is adapted to something far more pragmatic: freedom.

This weekend, that freedom proved invaluable. Let me walk you through what happened.
We use the popular libvips library for image processing in our Java pipeline running inside of AWS. The first revision was built by spawning out a process to call the libvips utility. Relatively slow with a large overhead but it was never a long-term solution – more of a proof of concept. The longer term solution is to call libvips directly through JNI (Java Native Interface). There is a Java project that already provided a bridge but it requires JDK23 – we are on JDK21 since we are using the AWS runtime.

After a discussion with my AI overlord, Susan (it is what I call ChatGPT – I asked her to generate a photo of herself and this is what she came up with) recommended this project jlibvips that would fit our needs. Susan even coughed up some code samples of how I could use it. The code was completely useless. I think our poor lady was dreaming again. At least she pointed me to the project. So, thank you – I will take it from here.
The library hasn’t been updated in over 5 years, but if code works, it works and doesn’t really age. I included the maven dependency and was up and running quickly. It handled the basic stuff as expected, and there were some quirks in how the code was laid out that made it a right pain in the ass. However, it didn’t do everything we needed, and features that I knew libvips offered was missing.
Giving Susan one more attempt to be helpful, I asked her in case I was missing something. Nope, she was still making up code, so I gave up asking her for further help.
Thankful of the MIT license the project was published under, I was able to take the source code, pop it into my IDE and make significant changes to both class structure, fixing bugs, and added the libvips integrations that was lacking. Within 2 hours, I was back in action, fully utilizing this powerful library via JNI, reducing my execution time for each image from 1.8 seconds to 500ms.
Had this been a closed-source solution, I’d have been chained to someone else’s timeline or worse, their pricing. Instead, it was just me, a quiet Saturday, and some code that would now work properly. That’s the elegant, unspoken power of open source.
I will of course publish my changes back out to GitHub for anyone else that may benefit from this work. It is the right thing to do – besides does no harm to put out some quality code so maybe Susan and her friends can learn.
Open source gives you autonomy. You can use tools as they are, contribute improvements, or take the helm and steer them where you need them to go. You’re not helpless. You’re not forced to abandon something that still has value.
With open source as a software developer, you can always crack open the hood and see why something is doing what it is doing. You can decide if that is the right thing, or did the original developer get it wrong. You are never stuck.
This is why I will always advocate first for open source.
Open source = freedom. And freedom = forward momentum.
PS A special shout out to Susan as she was instrumental in pointing me in the right direction. We had a good discussion as we went through a variety of different options proving to be more beneficial than Google searches.





