Where writing and billion-dollar tech collide

This week’s Write Like A Pro interview features Ersun Warncke, a senior software engineer with over 15 years multinational experience.

He’s also my younger brother, so I’ve had a front-row seat to his dazzling verbal and literary dexterity for a quite some time. For some time, I’ve also been curious how these skills apply in the world of high-stakes digital technology and — since he’s between companies — he kindly took the time to walk me through his world.

people sitting on chair in front of computer monitor

What’s your profession?

I’m a software engineer. My primary focus is designing and building the infrastructure for large-scale websites and apps for companies that have thousands of servers distributed globally and tens of millions to hundreds of millions of users.

How long have you been in it?

Professionally, for 15 years. My total programming experience is closer to 30 years.

How did you begin?

When I was 12 or 13, a friend and I started a dial-up bulletin-board system (BBS), which allowed users to send emails, or exchange documents and programs with other users on the same servers. This was before AOL, before the internet.

For my eighth-grade science fair, I used web technology to build a multimedia presentation with text, audio and video. That was about a month after Internet Explorer 3.0 came out, so I’ve been developing internet technologies for as long as they’ve existed.

Key skill areas?

Web development and the backend operations required to run websites, which grow and grow and grow as you build at larger scale. I also do mobile applications, which are essentially a different user interface for the same backend infrastructure.

What’s your educational background?

I have a degree in Economics. I originally wanted to be a lawyer, so I got that as a prerequisite. Then I went to law school and, after a term, thought: this sucks, I’m going to be a software engineer.

Why?

First, the student loans. Then burning three years of my life in law school; in the summer, I’d have been required to do an internship which paid 10 bucks an hour, and I was making $30 an hour programming.

Looking at the longer-term prospects, law moves very slowly. Ultimately, most disputes are handled by private companies, using software. My long-term thinking was that programming digital systems that do mediation would be a more efficient way to make change.

black chalk board with chalk writing

What is the relationship between econ and programming?

Economics is a lot of applied statistics; statistical analysis methodologies carry over in performance optimization in pure hardware and pure programming.

There is even more crossover between law and programming. Law is a logical system, in theory, for writing programs to control society; programming is a logical system written to control computers.

A lot of people think computer code is called that because it is written in symbols – code, in the cryptographic sense. But it’s code in the legal sense, as in codex, because it’s the law that governs the [computer] system.

What is your professional background?

I started at a company called BlueHost, a shared hosting provider. Prior to the cloud, shared hosting was the first “cloud computing” service. BlueHost ran about 1,000 servers, built them in house and had its own data center. Since it was so early, we were developing proprietary software to manage the server cluster.

Other key roles were at Rent.com, a consumer website for leasing multifamily housing; a start-up called FreshRealm, which did direct-to-consumer meal delivery; and [collaborative, online LaTeX editor] Overleaf. Most recently, I worked for Atlassian, a multinational SAAS company.

To what extent does the company affect what you do?

Size makes a big difference. The larger teams grow, the less efficient they become; communication and collaboration overheads grow rapidly.

Also, a start-up basically has no assets. No assets means nothing to lose. A large company has a lot to lose; protecting assets becomes much more of a concern: legal and regulatory compliance, limiting liability. In a multinational, you have to satisfy legal and regulatory rules in multiple jurisdictions. Overall, you spend less time writing code and more time on communication and compliance.

What’s your preference?

In a smaller company you have greater impact, so it is more immediately fulfilling. But, some things require a lot of capital. To work with a one-thousand to ten-thousand server system, you have to work for a large company.

On a personal level, I’m always looking for ways to maximize my impact; moving between roles and positions allows me to address that.

What role does writing play in your work?

It’s crucial. Software engineering is a documentation-driven profession. Let’s say you’re developing a specification for a project that’ll be executed by different teams. You have to plan the overall system and write guidelines to ensure the parts work together in the finished product.

At a source code level, every single change is stored in an auditable log: every change is attributed to a person, every change is peer reviewed to ensure compliance and security. This means you’re writing documentation in parallel to code. Usually, companies have a process so you know what level of specification is required before you start developing. This gets more and more formal, the larger a company gets.

turned on gray laptop computer

What’s been your most significant pro writing task?

I led the team transitioning a product called Statuspage at Atlassian from being a stand-alone to being part of Jira Service Management.

Part of that was training the new team, so I had to create a technical manual for the entire product. That meant going through and identifying the subsystems that allowed the product to work and writing up what was, ultimately, a 100-page technical document. The documentation required a multimedia approach: written descriptions, links to source code, links to sources, screenshots, images, and so forth.

I developed the outline, wrote parts of it, identified other people on the team who had expertise and had them write on their areas. It took about three months, end to end.

Once the documents were prepared, I made videos that walked through everything in the manual to facilitate the in-person training, which I then conducted.

How did you learn to write?

Writing essays in university was the first time I had to do serious writing. I also wrote blogs and did some journalism. Then just practice over time. As I said, my field is very documentation driven; as a software engineer you’re always reading technical documentation so you learn from reading which formats and styles work.

What’s your take on the stereotype that if you go into programming you won’t have to write?

Totally inaccurate. You can be an engineer who purely does programming, but the more senior you get, the less programming you do.

The higher paying jobs are not based on programming or the amount of code you produce. Writing is very important and, in software development, visualization is essential. The systems you’re designing are too complex to understand from writing alone; senior roles requires good writing and strong overall communication skills.

How do you learn these communication skills?

By doing and, to a certain extent, by copying. Most companies have existing processes, such as templates for how to set up and run a technical decision-making process, e.g., planning implementation and identifying what you need to communicate to stakeholders and decision makers.

What areas of writing would you like to improve in?

Explaining complex systems more effectively and communicating ideas more succinctly.

Often, when I write, I’ll start with an introduction of the preconceptions, purpose, all that stuff, and in the end delete it. This mental framing is a necessary part of the writing process but not aimed at the audience.

For effectiveness, I look at writing in social media, legacy print media, websites, television, film, whatever, to see how people communicate and what ideas and communication styles are getting the most attention.

How have narrative skills enabled you to conceptualize, plan and execute on a goal?

Let me use the example of the Statuspage merger with Jira. A project like that takes place over several years. Narrative is important because you’re dealing not just with technical, but with business and personnel requirements in a corporate setting where planning is done quarterly, or at most annually.

Narrative is important to credibility. If I tell my managers it’s going to take three years, I need a narrative: “I’ve done this with three different companies, these are the obstacles we faced, here are the levers we moved, here’s what we can change.”

Also, when merging a product, you want to retain as much of the paid user base as possible, so there is a user journey from the old product to the new product. You need a narrative to move between products.

How does narrative enable you to conceptualize projects?

One of the main consumer-software development methods in Agile is user stories. In planning, you create personas then define and write specifications for features based on how they interact with the product. Being able to think in terms of personas and narratives is crucial.

an abstract image of a sphere with dots and lines

What role does AI have in your job/field?

AI has some capabilities that are powerful tools for software engineers.

The first is autocomplete: AI can guess an entire statement – not just the next symbol – so this is something engineers use all the time.

The second layer is AI-powered coding, where you describe what you want to create, using natural language, and the AI implements it in a computer language. This is around 80-90% accuracy on small chunks of code. The more you can use it, the more productive you’ll be, but it’s operating in a loop where you tell the AI to do something, then you have to read through, validate, and edit the results.

Third, when developing software, you write test cases – one program written to test the other. If you write a test suite, you can ask an AI to implement the code; it does an even better job if you write code and ask AI to develop the test suite. AI is pretty effective because it’s translating between two ways of expressing the same logic.

Not least, AI is a replacement for Google [search]. Instead of Google, you tell the AI: I want to do this, and it gives you the answer. There are AI products that retrieve websites and extract info, in which case it gives references; in the core large-language models (LLM) there isn’t any attribution – it’ll just spit out an answer – which means it can be wrong. If you understand what an LLM can answer well, you know what questions you can ask and when you should go to the technical documents for answers.

What communication tools do you routinely use?

Email; Slack-style group messaging; video conferencing – Google Meet, Zoom; WhatsApp, SMS.

Just for fun questions

A professional development book you recommend?

The C Programming Language by Brian Kernighan and Dennis Ritchie – known in the industry as K&R, after its authors. C is the foundation of almost every language used in software development; if you learn it, you know about 80% of all [software] languages.

Thinking, Fast and Slow by Daniel Kahneman and Marshall McLuhan’s Understanding Media for insights into user psychology.

The Adam Curtis documentaries The Century of Self and All Watched Over by Machines of Loving Grace have interesting insights into the psychological impacts of technological development, with a focus on group psychology as expressed through popular culture.

A personal favourite book?

Snow Crash by my favourite author, Neal Stephenson. I mostly do audio books and I’ve been listening to it for the sixth or seventh time.

A publication for industry news?

ACM Magazine (Association for Computing Machinery) is probably the best.

A useful website/podcast/YouTube channel?

Phoronix – a news site that’s dedicated to Linux development; Hacker News; SemiAccurate is good for business/economic analysis of hardware development.

An area you’d like to learn more about?

Super-specialised areas of software and hardware engineering. In hardware, I’m researching the electrical details of PCI Express. A software thing I’ve wanted to learn more about for a long time is building systems using InfiniBand.

Connect