Why Writing About Code Made Me a Better Engineer

Leena MalhotraLeena Malhotra
7 min read

Two years ago, I was a solid mid-level engineer. I could implement features, fix bugs, and navigate codebases without getting lost. My pull requests got approved. My code worked in production. By most metrics, I was competent.

I was also stuck.

The gap between where I was and where I wanted to be felt impossibly wide. Senior engineers around me seemed to operate with a different kind of clarity—they could see solutions I couldn't, anticipate problems I missed, and explain complex systems in ways that made perfect sense. I assumed this gap was purely technical, something I could close by learning more frameworks or studying more algorithms.

I was wrong. The gap wasn't in what I knew. It was in how clearly I could think about what I knew.

Writing changed everything.

The Accidental Discovery

I didn't start writing to become a better engineer. I started writing because I was tired of explaining the same concepts over and over to different teammates. Documentation felt like busywork, but Slack conversations about architectural decisions were eating my day.

So I began writing internal posts. Nothing fancy—just explanations of why we chose certain patterns, how specific systems worked, what tradeoffs we made and why. I posted them in our team wiki, assuming they'd save me a few repeated conversations.

The unexpected thing happened: writing these explanations made me realize how poorly I actually understood the things I thought I knew.

When you're implementing a feature, you can get away with fuzzy understanding. You know enough to make the code work, to handle the obvious edge cases, to ship something that passes the tests. But when you try to write about why you made certain decisions, the gaps in your reasoning become impossible to hide.

I'd start explaining why we used a specific caching strategy and realize I couldn't articulate the tradeoffs clearly. I'd begin describing our authentication flow and discover I didn't fully understand how JWT tokens worked beyond "they're stateless and secure." I'd attempt to document our database schema and find myself unable to explain why certain denormalizations were worth the maintenance cost.

Writing demands precision that coding doesn't.

The Clarity Feedback Loop

The more I wrote, the more I realized that engineering clarity and writing clarity are the same skill. Both require breaking complex ideas into logical pieces, understanding the relationships between those pieces, and communicating the resulting structure in a way that makes sense to someone else.

When I struggled to explain a system architecture in writing, it usually meant I didn't understand the architecture well enough myself. When I couldn't write clear documentation for an API, it often revealed that the API design itself was unclear. When I found myself using vague language or hand-waving explanations, it pointed to gaps in my technical understanding.

This created a feedback loop. Writing exposed what I didn't know, which forced me to go deeper into concepts I'd been treating superficially. That deeper understanding improved my engineering decisions, which gave me better material to write about, which revealed new gaps in understanding.

Each cycle made both my writing and my engineering clearer.

The transformation wasn't immediate. Early posts were meandering and unfocused, mirrors of my unclear thinking. But gradually, the discipline of writing began reshaping how I approached technical problems. I started asking better questions during system design. I began thinking more systematically about tradeoffs. I developed the habit of articulating my reasoning before diving into implementation.

The Unexpected Skills

Writing about code developed capabilities I didn't anticipate needing as an engineer.

It improved my debugging process. When something breaks in production, your first challenge isn't technical—it's communication. You need to explain what happened, why it happened, and what you're doing about it to stakeholders who don't share your technical context. The same skills that help you write clear technical explanations help you write clear incident reports.

It sharpened my system design thinking. Writing forces you to make implicit assumptions explicit. When describing how a distributed system handles failure modes, you can't just wave your hands and say "it's fault tolerant." You have to specify exactly what types of failures it handles, what happens when those assumptions break, and why you chose one approach over alternatives.

It enhanced my code review skills. Reading code and writing about code develop the same critical faculties. When you're used to analyzing technical decisions for clarity and completeness in prose, you naturally apply that same lens to code. You start noticing when logic is hard to follow, when abstractions don't align with their purpose, when documentation doesn't match implementation.

It built my technical empathy. Writing for different audiences—junior developers, product managers, other teams—teaches you to understand what your reader needs to know versus what you want to tell them. This same skill makes you better at writing code for its readers, designing APIs for their consumers, and creating systems that make sense to their operators.

The Tools That Amplify

Modern AI tools can accelerate this feedback loop, but only if you use them correctly. Most developers use ChatGPT or Claude to generate content. Smart developers use them to improve their thinking process.

When I'm stuck explaining a complex concept, I'll use Claude as a thinking partner. I'll describe my current understanding and ask it to identify gaps, suggest alternative explanations, or point out assumptions I'm making unconsciously. The goal isn't to have the AI write for me—it's to use the conversation to clarify my own thinking.

The Grammar Checker becomes valuable not just for catching typos, but for forcing you to read your explanations from a reader's perspective. If the AI struggles to understand your technical writing, human readers will struggle even more.

When I'm designing systems, I'll sometimes use the Mind Mapping Tool to visualize the relationships between different components. The act of organizing information spatially often reveals dependencies and interactions I missed when thinking linearly.

The key is using AI to enhance your reasoning process, not replace it.

The Career Compound Effect

The engineering skills I developed through writing compound in unexpected ways. When I started documenting my technical decisions, I became better at making those decisions in the first place. When I practiced explaining complex systems clearly, I became more valuable in architecture discussions. When I developed the habit of articulating tradeoffs, I started making more thoughtful tradeoffs.

These improvements weren't just internal. Clear technical communication is one of the most scarce and valuable skills in engineering organizations. Teams need people who can explain why systems are designed the way they are, how to extend them safely, and what the implications of different approaches might be.

Writing made me that person.

When we onboard new team members, they read my system overviews to understand our architecture. When we're evaluating technical approaches, stakeholders ask for my written analysis of the tradeoffs. When we're debugging complex issues, my incident reports become the template other engineers follow.

Technical writing didn't just make me a better engineer—it made me a more valuable engineer.

The Resistance and the Breakthrough

Writing about code feels unnatural at first. Engineering culture often treats documentation as a necessary evil, something you do after the "real work" is finished. Many developers view writing as a distraction from building, a soft skill that's less important than hard technical capabilities.

This mindset is backwards. Clear thinking is the most fundamental engineering skill. Everything else—system design, debugging, optimization, architecture—depends on your ability to break down complex problems and reason about them systematically. Writing is simply applied clear thinking.

The breakthrough comes when you realize that writing isn't separate from engineering—it's engineering made visible. When you write about your code, you're not documenting something external to your work. You're making your engineering process explicit, which allows you to examine it, improve it, and share it with others.

The engineers who advance fastest aren't necessarily the ones who can implement the most complex algorithms or who know the most frameworks. They're the ones who can think most clearly about technical problems and communicate those thoughts effectively to others.

Writing about code develops both halves of that skill simultaneously.

The Practice That Changes Everything

Start small. Pick one technical decision you made recently—why you chose one database over another, how you structured a particular API, what tradeoffs you considered in a performance optimization. Write 500 words explaining your reasoning as if you were onboarding a new team member.

Don't publish it. Don't worry about making it perfect. Just practice articulating your technical thinking in prose.

Pay attention to where you struggle. Where do you find yourself using vague language? Where do you realize you can't explain the "why" behind your decisions? Where do you discover that your understanding is shallower than you thought?

Use tools like Crompt AI not to write for you, but to help you think more clearly about what you want to write. Let the AI challenge your explanations, suggest alternative framings, and help you identify assumptions you haven't examined.

The goal isn't to become a technical blogger. The goal is to become an engineer who thinks clearly about code.

The clarity will transform everything else.

-Leena:)

0
Subscribe to my newsletter

Read articles from Leena Malhotra directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Leena Malhotra
Leena Malhotra