I didn’t take a single English class to receive my undergraduate engineering degree. It’s a shame because writing has been arguably one of the most important skills I’ve had in my career as a software engineer and team leader.
I got my second internship in college thanks to a strong cover letter. As a new graduate, I got my first job by sending a cold email to an interesting startup I found online. When I was put in charge of an engineering team a few years later, two of my first few hires knew me through my blog before applying. And, in 2020, I left my role as a CTO to start a technical writing business because so many companies were asking me to write developer-focused content.
While my experience might be unique (very few engineers go on to become professional writers), writing is an important skill for all of us in software development. According to an IEEE article, engineers spend a large part of their day writing, and it only increases as they get more senior:
“In their ﬁrst few years on the job, engineers spend roughly 30% of their workday writing, while engineers in middle management write for 50% to 70% of their day; those in senior management reportedly spend over 70% and as much as 95% of their day writing.” - Jon Leydens as cited in The Writing Engineer
The move towards remote work over the past year has also reminded many managers of how important it is for their teams to be able to write. 30% of respondents to Upwork’s Future of Work Survey cited communication issues as one of the biggest challenges in going remote.
Software engineering is a team sport
If you’re new to engineering, you might have the misconception that software development is largely done in quiet rooms full of developers independently writing code.
While writing code is part of the job, the other, often larger component is deciding what code to write and how to write it. This portion is largely collaborative as business, technical, and interpersonal interests must work in tandem to produce any significant piece of software.
“Every industry has truths that are obvious to those who have spent time working in the industry, but may be surprising to those on the outside. One such truth for software engineers: our jobs involve an awful lot of writing.” - Ben McCormick, Engineering Manager at Kustomer
Most production-ready software projects are built by large groups of people, and those people have to communicate. Whether you are creating technical documentation, giving another team member feedback on their pull request, planning a new project, or answering a question on Stack Overflow, it’s likely that you’ll spend at least a little time writing something every day as a software developer.
How writing can advance your career as a developer
Writing ability might be a baseline requirement for many software development jobs, but it’s not a skill that developers typically think about improving for their careers. While it’s tempting to invest all your spare time learning new frameworks and languages, improving your writing might actually be a better way to advance your career and stand out in tech.
For this piece, I spoke to eight software developers to learn more about how writing has helped them advance their careers. I then distilled their stories into five specific benefits that writing has given them throughout their careers and added a bit of my own experience as well.
1. Writing reinforces learning
As software engineers, we have to constantly be learning new things. According to the most recent Stack Overflow developer survey, “75% of respondents noted that they learn a new technology at least every few months or once a year.”
Educators have understood the value of writing as a learning tool for years, and everyone I talked to mentioned that writing helped them reinforce new concepts too. If you write publicly, you get the dual advantage of possibly teaching other engineers some of the concepts you’ve learned.
“Writing code to solve a problem is one thing, but explaining that solution to a community of developers on the internet is another. You want to make sure you absolutely know what you're saying; which means research, lots of research!” - Daniel Phiri, Developer Relations at Strapi
Eze Sunday, a software developer and freelance writer, agreed, adding, “if you can't teach it, then you don't really know it.”
I’ve never been a note-taker, but I’ve always tried to write blog posts about new things that I’m learning. Very few of these posts got a lot of readers, but they were a great way for me to reinforce new technology or tools that I had recently learned. Adam DuVander, a developer, consultant, and author of Developer Marketing Does Not Exist, gave me similar advice:
“Look back at your most recent commits. Pick a fun technical challenge you faced and share how you fixed it. If you do this every month or two, you’ll have more technical posts than almost any other working engineer.” - Adam DuVander
2. Writing can help you find jobs and clients
Writing can help reinforce topics that you know, but it’s also a window into your skills as a software engineer.
“[Writing] is social proof of my ability to learn in public,” Dan Moore, Head of Developer Relations at FusionAuth told me. “My writing was instrumental in getting my first job in developer relations, as I met the company at a conference and was able to show them work examples.”
“I owe my entire career to a couple of articles I wrote,” Adam DuVander told me. “A tutorial I wrote on Webmonkey led to my first developer job. They saw how I discussed the technology and knew before we even chatted that I could handle the work.” He went on to add that writing helped him get a job with ProgrammableWeb among other career opportunities. “My whole career really all comes back to writing,” he said.
“I once got a full-time offer to join a cloud computing startup as a copywriter on the strength of a few blog posts I'd written. I wrote a few articles about tech culture in the mid-2010s and was able to secure conference speaking engagements from them. I was offered a role as a part-time technical writer for an open-source organization, and I even started doing freelance copywriting on the side for [software development] agencies.” - Stephanie Morillo
John Gramila and Keanan Koppenhaver, both software consultants in Chicago, had similar stories of getting new clients thanks to articles they’ve published about various software engineering topics. “People want to engage and want to reach out,” Keanan said, “but if you never put yourself out there with something you've written, you won't see many of those opportunities.”
3. Writing can lead to book authorship and public speaking opportunities
Back in 2017, I challenged myself to write something every day. Most of the pieces that came out of that experiment were random programming topics I was learning, but for about three months, I focused on a series of articles about using PHP with Docker.
This led to a short, self-published book, conference speaking opportunities, and lots of consulting offers over the years. I didn’t feel like I was an expert on PHP or Docker, but because very few people were writing about the topics publicly, my work stood out.
Dan Moore had a similar experience, turning a collection of his blog posts into a full-length book (Letters to a New Developer). James Hickey, a Senior Software Engineer and Microsoft MVP, echoed similar opportunities thanks to his writing. “I have had many people reach out to me about doing contract work simply by reading my blog and had many offers to write books in the last couple of years.”
Adam DuVander pointed out that taking on projects like writing a book or speaking at a conference is a career differentiator as well. “Instead of competing with all other engineers, you become The Choice in your area,” he told me. “Write about it and if there’s enough business interest, you’ll find a great role.”
4. Preserves your personal historical record
If you work for a company with restrictive intellectual property rules, you might not be able to share much about your day job publicly, but even writing privately can be valuable.
Stephanie Morillo told me that she recommends developers try journaling. “Journaling gives you the opportunity to write without being self-conscious because you're not writing with an audience in mind; you're doing it for yourself.”
Dan Moore added that “Writing serves as a historical record, but more importantly it clarifies your thoughts. I often write down a question or issue I'm facing and find that I see new avenues for exploration.”
Recording your logic at a point in time is also important because it’s likely to change (and hopefully improve) over time. I’ve found myself coming back to the same ideas and engineering problems repeatedly over the years.
This revisitation of the same topics is now part of my writing process, as each time I write about something, my ideas and arguments get a little stronger. In the same way that Fred Brooks warns us that “In most projects, the first system built is barely usable,” I find the first piece I write about a topic is much less compelling than later iterations.
5. Writing opens up new career opportunities
Finally, having both writing and programming skills opens you up to entirely new career options. Whether you’re experiencing burnout or simply want to look for new challenges, developers who can write have a lot of options for alternative career paths.
“The options are almost infinite, but include product, technical account management, marketing, sales engineering, and more. You can combine your authentic technical background with the ability to communicate it in a role where those skills are both much needed and rare.” - Adam DuVander
While writing may not be quite as lucrative as software development, there are plenty of hybrid roles like technical writing, developer relations, and technical training that offer very good salaries and career advancement opportunities.
I don’t expect many developers to take these alternative pathways, but it’s helpful to know these roles exist. Many people who get burned out of software development have a hard time deciding what they can do with their skills, but if you enjoy writing, there are plenty of unconventional options.
Writing is an essential part of modern software development, and it’s only getting more critical as remote work becomes increasingly common. That said, you don’t have to start a public blog just to get started. Taking on small projects like answering Stack Overflow questions, writing Twitter threads, keeping a journal, or taking extra time on your company’s internal documentation are all good ways to get started.
If you want to start your own blog, Medium, Dev.to, and Hashnode are all popular options for developers. Or, if you’d prefer to get paid to write, there are many great technical blogs that pay contributors.
However you do it, I’d encourage you to just get started. When you do, let me know about your journey on Twitter. I’d love to follow along!