Eric Lippert on Technical Blogging
Perspectives from a programming language designer who was one Microsoft's first (and most popular) bloggers
Writing for Developers: Blogs that Get Read is now officially published – and we hope it gets readers thinking about their own engineering blogs (hence, the creation of writethat.blog). To not-so-subtly nudge everyone to write more, we want to share the perspectives of expert tech bloggers: why they write, how they tackle writing challenges, and their lessons learned.
We’re honored to kick off this series by featuring Eric Lippert, a veteran tech blogger whose "Fabulous Adventures In Coding" became one of Microsoft's most popular blogs. While at Microsoft, Eric developed compilers for Visual Basic, VBScript, JScript, and C#. He has also designed programming languages at Facebook and C# analyzers at Coverity. And quite recently, he was the technical editor for our book.
After all the intriguing stories he teased over months of Google Doc comment “conversations,” we were curious to turn the tables and hear more from him!
Why did you start blogging – and why do you continue?
I started my blog, which is now at ericlippert.com, more than 20 years ago. I worked for the Developer Division at Microsoft at the time. As developers working on tools for other developers just like us, we felt a lot of empathy for our customers and were always looking for feedback on what their wants and needs were. But the perception of Microsoft by those customers was that the company was impersonal, secretive, uncommunicative, and uncaring. When blogs started really taking off in the early 2000s, all employees were encouraged to reach out to customers and put a more human, open, and empathetic face on the company, and I really went for that opportunity.
I was on the scripting languages team at the time, and our public-facing documentation was sparse. Our documentation was well-written and accurate, but there was only so much work that our documentation "team" – one writer – could do. I decided to focus my blog on the stuff that was missing from the documentation: odd corners of the language, why we'd made certain design decisions over others, that sort of thing. My tongue-in-cheek name for it was "Fabulous Adventures In Coding." At its peak, I think it was the second most popular blog on MSDN that was run by an individual rather than a team.
For most of the last decade I've been at Facebook, which discourages employees blogging about their work, so my rate of writing dropped off precipitously then. And since leaving Facebook a couple years ago, I haven't blogged much at all. I do miss it, and I might pick it up again this winter. I really enjoy connecting with an audience.
What has been the most surprising impact of blogging for you?
Every now and then I'll get an email from a reader who says that they finally grasped a tricky concept after reading one of my articles on it, or that they were inspired to try a new thing, learn a new language, start a new project. It makes it all worth it to know that you're connecting with people and helping them solve their problems. I was surprised by how common that was.
What blog post are you most proud of and why? What post was the most difficult to write and how did you tackle it?
Same answer for both. From a technical content perspective, my massive 40-part series on how to better represent randomness in modern programming languages, and its connection to the monad pattern is probably my favorite; it starts here: https://ericlippert.com/2019/01/31/fixing-random-part-1/
One of the things I like best about tech blogging is how it forces me to understand a concept well enough to not just use it in my work, but also explain it to someone, answer their questions, convince them it's valuable. I needed to understand probabilistic programming for work, and writing about it every day for weeks on end definitely helped!
I tackled it by starting with a short, dense paper on the subject written by my friend, mentor and then-director Erik Meijer, and then tried to make a connection between the somewhat abstruse logic of the paper, and the real-world problems that developers have implementing even simple stochastic algorithms in modern languages. Once I broke it down into many small chunks, it got a lot easier to write.
Any lessons learned that you want to share with the community?
So many! But let me just pick one. If your blog is successful, it will attract criticism, and that's a mixed bag. Criticism that genuinely points out ways your post could be more clear, or more accurate, or more complete, or whatever, is gold – even if it is delivered tactlessly. Don't pass up an opportunity to make improvements or admit it when you're wrong.
Criticism that is ad hominem, or spammy, or factually wrong, or abusive, you're allowed to delete that! Joel Spolsky once said something like “Deleting rude comments isn't censorship any more than cleaning up other people's garbage off your lawn is censorship.” If someone wants to write their own blog on their own server about how terrible your posts are, that's their business. You don't need to provide a site to showcase other people's low-quality comments.
Your advice for people just getting started with blogging?
People getting started often have many complementary goals: practicing their writing skills, educating users, building an audience and a personal brand. Something that helps with all of these things is frequency. When I started, I was doing many relatively short posts a week. Keeping the cadence high for the first couple years really helped me practice my short-form writing and build an audience. Don't obsess over wordsmithing the perfect article. Get it out, and you'll improve as you go.
A few blogs that you particularly enjoy?
The best tech blogs for me are the ones with a clear point of view and expert-level content. Raymond Chen's blog has consistently done that for decades now (The Old New Thing [microsoft.com]) and updates EVERY FREAKIN WORK DAY, holy goodness. (Raymond's blog was the number one individual blog at Microsoft back in the day and I would be not at all surprised if it still is.) I also enjoy the less-frequently updated blog of my friend Jon Skeet (Jon Skeet's coding blog).
Anything else you want to add?
Yes, two things.
First, the writing skills you gain from blogging are not just for educating users, building a personal brand, and putting a human face on your work. Being able to write short-form documents that clearly and persuasively explain a technical topic is hugely valuable in advancing your career. At the entry level, software development is about writing the feature you're assigned correctly. But once you're past the entry level, advancement isn't about writing solid code; that's table stakes. Advancement is about convincing others that your ideas have merit so that they'll collaborate with you on achieving your common goals. Being able to write persuasively is very helpful.
Second, to once again say thanks to Cynthia and Piotr for writing a great book on a topic I strongly believe in, and to their editors at Manning for inviting me to participate. This was one of the most fun books I've ever edited and I look forward to seeing it in print!
***
Stay tuned for more tech blogger spotlights. Next up: antirez, Jeff Atwood, Scott Hanselman, Bryan Cantrill, Sam Rose, Glauber Costa, Matt Butcher, Gunnar Morling, Phil Eaton, fasterthanlime, Charity Majors, Dan Luu… These will be mixed in with the monthly writethat.blog updates.