Back when I was starting out as a junior engineer, I was assigned to build a product from scratch. It took me almost four months.
I distinctly remember drinking six cans of Red Bull in a single day just to stay awake and functioning. To be fair to my younger self, I was also writing my Master’s thesis at the time, working my day job at the office, then rushing off to attend university lectures at night.
It was exhausting. I spent endless hours debugging. There were moments when my head was spinning from a wall of obscure stack traces. But when I finally tracked down a bug and fixed it? The relief was unmatched. I felt genuinely proud.
More importantly, I understood my code inside and out. If someone reported an issue, I didn't even need to open my editor to know what was wrong. I knew exactly which component or .vue file was responsible and how to fix it. That brutal, hands-on grind was how I actually learned to be an engineer.
The Shift
Fast forward to my current role. During the hiring process, I still had to clear the traditional steps: take-home assignments, live coding sessions, and whiteboarding system designs.
But once I got on the inside, the environment was completely different. Engineers were given unlimited tokens for advanced AI coding agents.
From a product and business perspective, it makes total sense. Shipping faster is the name of the game. For me as an engineer, the tools were an instant superpower, they detected bugs in seconds, proposed fixes, and could scaffold entire features on command.
It’s the era of "vibe coding." Non-technical founders are shipping products overnight (even if they're a bit insecure under the hood). And if I’m being honest, I started vibe coding, too.
In the past, if someone asked me to tackle a problem I had zero experience with, I’d push back. I’d ask for buffer time to research, spike, and figure it out. Today? I just say, "Sure, no problem." I don't need to know how to solve it off the top of my head anymore. I just need to know how to prompt the model.
The Empty Feeling
Lately, though, I’ve realized that the way we work has fundamentally broken away from what it used to be.
We write significantly less code. We rarely huddle around a screen with a peer to bounce ideas off each other about an elusive bug. We just feed the context to an AI and wait for the output.
And it’s making me feel... well, dumber.
I don't feel like I hold deep mastery over the codebases or frameworks I work with anymore. My workflow has reduced to: Ask AI-> skim the PR-> if it looks fine, ship it.
When the code goes live, the old feeling of pride isn't there anymore. It’s replaced by a strange emptiness. The spark that made me fall in love with programming is fading.
It hit me recently when an AI platform hit a token limit and went down for a few hours. A noticeable portion of the engineering workflow just ground to a halt. We’ve built a dependency that goes far beyond simple productivity tooling.
Adapting to the New Reality
I know we can't roll back the clock. Tech moves forward, and engineers who survive are the ones who adapt.
Lately, I’ve been diving into the emerging craft of modern engineering: harness engineering, context engineering, and loop engineering—learning how to properly structure context, build feedback loops, and steer AI systems effectively. I even built my own tool, craftkit, to help streamline my workflow.
Yet, despite leaning into these new techniques, I'm still searching for that old spark of learning.
Some peers have advised me to go back to grinding LeetCode or HackerRank problems just to keep my raw problem-solving skills sharp. But let's be real—even those platforms are heavily integrated with AI now. Grinding algorithmic puzzles in a sandbox feels disconnected from the reality of modern software development.
Where Do We Go From Here?
I find myself constantly wondering: What does the future of an engineer actually look like? What am I becoming?
Are we transitioning from architects and craftspeople into high-level reviewers and prompt-managers? Is deep framework knowledge becoming a legacy skill, or will it remain the secret weapon that separates truly great engineers from those who can only "vibe code"?
I don't have the answers yet. But if you’ve been feeling that same sense of emptiness despite hitting higher productivity metrics than ever before—you’re definitely not alone.
How are you keeping the spark alive in the age of AI?