AboutBlogFacebookLinkedin

Jaime Hing III

Jaime Hing III

I'm a tech founder based in Manila, Philippines. I love building platforms with an infrastructure play, YC alum, gamer, pragmatic engineer.

Writing code is still a craft

Mar 18, 2026

Lately, posts declaring that AI will replace software engineers have been flooding my social media feed. Some are framed as predictions, like they have an actual crystal ball. Others sound more like warnings. A few feel almost celebratory, as if the disappearance of human craftsmanship is an upgrade.

I don't 100% buy it. It is not because I think AI is useless. It is not. It is already changing how we work. But the narrative that coding is about to become obsolete misses something fundamental about what software engineering actually is.

Coding is not just typing syntax into a machine. Coding is a craft.

Software engineering is not just about writing code.

If programming were merely about producing lines of code, we would have automated it away decades ago. Code generators, templates, frameworks, and low-code tools all promised similar outcomes. Yet experienced engineers are still in demand. Sure, AI can provide more results compared to the things that I mentioned, but it's not all about how fast you can spit out the code.

Software engineering is not just about writing code; it is about making the right decisions for a particular problem.

Sure, AI can produce answers to these questions with the right prompt or context, but it cannot own the consequences.

When systems fail, nobody calls the language model. Even if some people try to fit an LLM to solve the problem, in the end, these LLMs fail to resolve the issue. We ask a human who understands the system deeply; someone who has wrestled with the code, not just prompted it into existence.

Writing Code Is How You Learn the System

There is a difference between recognizing code and truly understanding it. Writing code without AI forces you to reason through every decision that you will make: naming, structure, error handling, and edge cases. You build a mental model and long-term strategy of the system as you write. That model becomes the foundation for optimization and long-term maintenance. If you skip that process entirely, you may get working output, but you lose comprehension of the code.

The Craft Matters as the System Grows

The most important software work happens where there are no templates. Legacy migrations. Distributed failures. Performance bottlenecks. Security incidents. Regulatory constraints. Ambiguous product requirements. Integration with systems that were never designed to talk to each other.

These problems are messy, contextual, and full of hidden constraints. If you want to solve complex problems fast, you need the wisdom built from effective years of experience, the kind you only get by building, breaking, and fixing systems repeatedly.

Craft is what carries you through uncertainty, and uncertainty is where real engineering lives.

AI as a Tool, Not a Substitute

Many engineers nowadays use AI for writing code. It can accelerate boilerplate writing, suggest alternative approaches to your current code, and help you explore unfamiliar areas more quickly. Used thoughtfully, it's like having an assistant who works 24/7.

But some assistants do not replace the masters of the craft. A calculator did not eliminate mathematicians. Power tools did not eliminate carpenters. Tools change workflows. They do not eliminate the need for judgment, taste, or responsibility.

The Danger of Forced Adoption

What worries me more than AI itself is the pressure to use it indiscriminately. There is a growing sentiment, especially among people without experience maintaining large systems, that “real developers” should always code with AI and that writing code manually is outdated or inefficient. Some teams even measure productivity by the volume of AI-generated output. This misses the point entirely.

I am not trying to be elite as someone who knows how to write code by hand or build systems from the ground up. Efficiency at the cost of understanding is a debt, not a gain. If a team cannot maintain what it builds without external assistance or if your preferred AI is currently down, it has not increased productivity; it has outsourced competence.

For those who still love writing code

If you still enjoy opening your code editor like Sublime Text (man, you might figure out my age, but this is not my favorite editor) and building something from scratch, you are not obsolete. You are practicing the very skill that makes systems reliable. There is a quiet satisfaction in shaping a solution with your own hands; in knowing exactly why chunks of code exist, in being able to trace a bug to its root cause because you understand the architecture, not just the interface.

The future is not “AI vs Software Engineers”.

The future is software engineers who understand deeply and use increasingly powerful tools. Those who treat AI as a shortcut may ship faster today, but those who treat engineering as a craft will build systems that endure. This statement might be obsolete in the future, but hey, I'm living in the present.

Software does not need fewer engineers. It needs software engineers who care, know how to provide the right solution to a problem, and practice systems thinking for long-term gain.

If you are skeptical of the hype, you are not alone. Keep learning. Keep building. Keep writing code by hand when it helps you think. Use tools when they serve you, not when they replace you. Lastly, the most important thing is that you still enjoy the moments when you write code until 2 am.

Craft has never been about speed. It has always been about mastery.