For the longest time, I thought becoming a better software engineer meant writing more code. Learn another framework. Build another project. Ship another feature. That was progress. If I spent an entire weekend inside VS Code, I felt productive.
And honestly, I loved it.
Over the last few years, I've built web applications, experimented with different technologies, and spent countless hours trying to become a better programmer. Back then, building a Node.js backend from scratch could take me weeks. A frontend that looked half the way I imagined could easily consume an entire weekend. Authentication, APIs, databases, deployment, everything felt like a mountain.
Today, that part feels very different.
With tools like Claude and ChatGPT, I can describe what I want, provide enough context, and get a solid foundation within minutes. They don't build the project for me, but they remove a lot of the repetitive work that used to consume most of my time. Ironically, AI didn't make me stop enjoying software engineering. It simply helped me realize what part of software engineering I enjoyed the most.
That realization became impossible to ignore during my college summer internship.
The assignment itself sounded straightforward. Compare different open-source VPN architectures running on Linux, benchmark them, document the results, and submit a report. More specifically, I had to compare WireGuard and Headscale (the open-source alternative to Tailscale). Like most college projects, I assumed the application itself would be the project. I'd build a React dashboard, write a Node.js backend, connect everything together, collect the results, and call it a day.
That... wasn't what happened.
The project eventually became VPNLens, but VPNLens didn't introduce me to Linux. It didn't introduce me to cloud computing or self-hosting either. By that point I'd already spent countless evenings renting cheap VPS servers, experimenting with Docker, configuring reverse proxies, breaking Linux installations, rebuilding them, and generally seeing what I could get away with.
Looking back, the signs were always there.
I just thought all of that was the boring setup work you had to finish before you got to the "real" engineering. Infrastructure was something you configured once so you could finally start writing code. At least, that's what I believed.
VPNLens completely changed that perspective.
I built a React dashboard because I needed somewhere to visualize the benchmark results. I built a Node.js backend because something had to orchestrate everything. But after a while, I realized neither of those felt like the actual project.
The real project was everything around them.
It was provisioning cloud servers, configuring Linux, setting up Docker containers, debugging networking issues, automating deployments, configuring WireGuard and Headscale, and making dozens of independent pieces communicate reliably. Every small change affected something else, and getting all of those moving parts to work together felt like solving one massive puzzle instead of a collection of separate tasks.
Somewhere during the project, I noticed something interesting.
Whenever I finished another piece of application code, my first thought wasn't, "Nice, that feature works." It was, "Now I can finally get back to the infrastructure."
That genuinely surprised me.
For the first time, I wasn't building an application. I was building a system. And I loved it. Not because it was more difficult or because it sounded cooler, but because it was simply more enjoyable.
I found myself reading Linux documentation instead of frontend documentation. I was more interested in automating deployments than polishing another React component. Getting multiple technologies to work together reliably felt far more satisfying than writing another CRUD endpoint ever did.
That was probably the moment I realized I'd found my niche.
People often ask whether AI is replacing programmers. Personally, I don't think that's the right question.
For me, AI simply lowered the barrier to building applications. The boilerplate became faster. The repetitive coding became easier. The implementation became less intimidating. But someone still has to design the system. Someone still has to understand how all the pieces fit together. Someone still has to decide what should be built in the first place.
If anything, AI helped me discover where I naturally enjoy spending my time.
Today, I still write code almost every day. I don't think coding is dead, and I certainly don't think it has become less important. It simply stopped being my favorite part.
These days, I spend far more time learning Linux, cloud infrastructure, networking, automation, DevOps, and distributed systems than I do chasing the newest frontend framework. Not because someone told me to. Not because it's the trend. But because somewhere in the middle of building VPNLens, I realized I wasn't happiest when I was writing code.
I was happiest when I was building the environment where that code could actually run.
And I think that's the kind of engineer I want to become.
P.S. VPNLens originally started as my college summer internship project. I eventually turned it into a complete benchmarking platform, wrote my internship report around it, and recorded a walkthrough explaining how everything came together.
Project Repository: https://github.com/samay15jan/VPNLens
Top comments (0)