Passepartout

Your go-to app for VPN and privacy.

Who cares about performance?

While many people copy and paste unoriginal thoughts about AI and the so-called “vibe coding”, it seems that what used to make software valuable is constantly put aside. If you try to argue that tech does matter in a tech-oriented product, they will tell you that:

  • Business is more important than engineering
  • Software is useless if it doesn’t make money
  • Users only care about features
  • Devices are powerful, performance doesn’t matter
  • Internet is fast, a few more GBs won’t hurt

And many more dumb takes. This is the typical mentality by which consultancy firms produce the most mediocre products you will ever find.

I don’t want to delve into this endless – and hopeless – topic. Instead, I want to tell you a little story of how easy it is to lose control of software performance, and how the understanding of programming fundamentals keeps us in touch with reality. This has never been more important with the fast-paced opportunities that LLMs offer today.

Can you afford low performance?

I’m far from being a low-level programmer, yet I know C and the fundamentals of how things happen below the code.

Passepartout is a networking app mostly dealing with VPN connections. At least in the tunnel context, performance does matter. When it comes to OpenVPN in particular, it’s very hard to compete with a pure C codebase – the official library – when you also have to account for the overhead of the Swift runtime. Let’s not forget about the strict memory limits of Network Extension either. The time I spent on profiling to improve efficiency, resolve memory leaks, and reduce the crash rate, among other things, is pretty massive.

Two months ago, a user reported a regression in the OpenVPN negotiation where the handshake would never complete. I could implement a fix quickly, yet the handshake took 4x longer than with the obsolete TunnelKit. A whopping and unacceptable 20-25s vs 5s negotiation!

Keep reading on davidederosa.com and LinkedIn

Follow the blog | Back to index

Related posts