(Tłumaczenie pod wersją angielską.)

To Marcin Iwiński, joint CEO at CD Projekt, and Adam Badowski, Head of CD Projekt RED.

Few days ago you announced CD Projekt RED would introduce a mandatory 6-day workweek until the launch of Cyberpunk 2077. This news came alongside a report that some employees have already been putting in long hours and working weekends for more than a year. I want to respond to this as a player and fan of CD Projekt RED’s work, as well as a soon-to-be-former shareholder of CD Projekt.

I own a small amount of CD Projekt shares. They have…


If you were to summarize the entire endeavor of software development, you’d say: ‘The project ran late and it got canceled’.

Illustration showing a person designing an app interface on a whiteboard.
Illustration showing a person designing an app interface on a whiteboard.
Building software with David Heinemeier Hansson. Illustration by Gabi Krakowska.

We’ve reached the end of Computers Are Hard. After several conversations about how individual components of software come to be — from printer drivers to password hashing — I wanted to wrap up with a look at the philosophy of building software products.

It’s perhaps a little embarrassing, but even after a couple of years in the industry, I never understood why tech companies are so obsessed with speed. And that obsession is baked into the very language of…


Provided you’re storing and processing text in Unicode, it just works.

Illustration showing a keyboard connected to a monitor with characters from the Japanese alphabet on display.
Illustration showing a keyboard connected to a monitor with characters from the Japanese alphabet on display.
Representing alphabets with Bianca Berning. Illustration by Gabi Krakowska.

If you look deep enough, all data on our computers is binary code. Strings of 0s and 1s are the only language that processors understand. But since humans are not nearly as adept at reading binary, there are multiple layers of translation data goes through before it’s presented to us in a legible way. And we rarely think about it, but that’s a herculean task.

Unlike computers, we don’t have a unified way of communicating. We speak thousands of languages, written in hundreds of scripts. We write equations and…


I have no interest in people thinking about accessibility. I have interest in people doing something about accessibility.

Illustration showing a hand, eye, head, and an ear.
Illustration showing a hand, eye, head, and an ear.
Accessibility with Sina Bahram. Illustration by Gabi Krakowska.

Accessibility features in software used to be mostly invisible to me. Sure, I believed they were important, but only in an abstract sense. Then my eyesight started getting worse and I found out it’s hard to enjoy yourself when you’re squinting all the time. I started paying attention to subtitle size options in movies and video games, because I needed them.

I wish I — and everyone in tech — spared more thought for accessibility before it becomes a personal issue. Because…


If the next person comes in and they can’t understand your code, it doesn’t matter how good it is.

Illustration showing a race car competing with an old car.
Illustration showing a race car competing with an old car.
App performance with Jeff Fritz. Illustration by Gabi Krakowska.

Everyone wants fast software. We all know the agony of operating a touch screen that’s slow to respond, or trying to play a shooter with requirements way above what our PCs can handle. We hate loading screens, animated hourglasses, and spinning beach balls. There’s plenty of research into the psychology of human-computer interaction that boils down to this: if the app or website doesn’t respond immediately, we get frustrated, bored, or both.

But a computer has only so much processing power…


A printer is a very complex thing.

Illustration showing a microphone, printer, and a computer mouse ‘speaking’ in binary code.
Illustration showing a microphone, printer, and a computer mouse ‘speaking’ in binary code.
Hardware with Greg Kroah-Hartman. Illustration by Gabi Krakowska.

Once, I was troubleshooting with a customer adamant desktop notifications from our app weren’t firing for him. Standard stuff. Usually, the answer would be misconfigured settings or the operating system interfering. Except I ran a diagnostic and the output was crystal clear: notifications were showing up fine. No errors, all green across the board.

I threw everything but the kitchen sink at that case. After a few days of back and forth with the customer (bless your patience, sir) I finally got it. His laptop monitor and secondary display had different resolutions and…


There’s no single action that will allow your application to be secure. It’s a cycle.

Illustration showing a locked padlock with source code in the background.
Illustration showing a locked padlock with source code in the background.
Security and cryptography with Anastasiia Voitova. Illustration by Gabi Krakowska.

Cybersecurity is a weird beast. It ranges from using complex mathematical functions to encrypt data, to saying things like ‘you shouldn’t write your password on a sticky note’ and ‘please, for the love of god, enable two-factor authentication’ over and over. Because no matter how sophisticated the protections, we all have a story about a family member who got phished (in my family, that’s me). Not to even mention regular news about breaches and data leaks from major companies.

For all the talk about how…


The internet is a living thing.

Illustration showing an antenna sending signal to a mobile phone.
Illustration showing an antenna sending signal to a mobile phone.
Networking with Rita Kozlov. Illustration by Gabi Krakowska.

It’s easy to visualize how the internet works. We type an address into the browser and then our computer connects to a server and that server shows us a website. Simple enough. But then you start thinking about what’s really going on and it turns out just the number of acronyms involved is enough to make you dizzy. ISP looks up a DNS and finds an IP. Your computer connects to the IP over HTTP. On its way, it hits a CDN, likely hosted by AWS or GCP.

What?

The internet is an enormous…


Everything’s failing all the time so we’re gonna embrace that and lean into it instead of being afraid.

Illustration showing a laptop in flames.
Illustration showing a laptop in flames.
Bugs and incidents with Charity Majors. Illustration by Gabi Krakowska.

One of memorable moments working at an enterprise software company has been seeing a very senior engineering manager stumble between desks, laptop in one hand and phone in the other, screaming: ‘Fuck, fuck, fuck! We’re going down!’. She then barged into a conference room that is permanently booked for the incident response team and started paging people in an office halfway across the globe. It was still the middle of the night for them, but when you’re on call, you’re on call.

The first minutes of an emerging outage are frantic. Alerts start pinging, number of support tickets goes through…


Illustration showing hammers smashing a computer screen with the shrug icon on display.
Illustration showing hammers smashing a computer screen with the shrug icon on display.
Illustration by Gabi Krakowska.

Everyone has heard that the most terrifying words in the world are supposed to be ‘I’m from the government and I’m here to help’. But I’ve been doing tech support for several years now and I can tell you there’s nothing more dreadful than when a support ticket starts with ‘I’m a software engineer myself and…’

From there, it can go one of two ways. The customer either is going to prove patient and understanding, or they will ignore everything I say and will then proceed to pronounce me and the entire company I work for a bunch of lazy…

Wojtek Borowicz

I don’t know.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store