Hi there,
In my last newsletter, I described how overwhelmed and overworked I was by the many things I put on my own plate. I gave this a lot of thought and realized that if I seriously want to drive a lot of initiatives at the same time, I need top-notch time and energy management. I reactivated my old project management solution that I built myself in Notion, and am now tracking all my obligations much more closely than before. I'm going to write a separate blog post on how this works in my daily practice. For now, enjoy an invigorated and better organized Monospace Mentor!

Mentor Monologue

Here's another question I get a lot in my office hours and coaching sessions: "People say you should learn Linux as a software engineer. What would I gain by doing that?" As someone who installed his first Linux distribution in 1993, and has switched to doing all my work (and gaming) in Linux a few years ago, I definitely agree that Linux is well worth learning for a developer. Let me explain why.

As a software engineer, you're expected to solve engineering problems using software. That's your job description. The ability to get from a problem to a possible solution requires two fundamental steps: analysis and synthesis. Let's take a little detour to see what these terms mean.

Analysis is the process of uncovering the structure, relationships and patterns of a problem by breaking it down into smaller components. Once you have turned an amorphous problem into a system of related pieces, you'll have a much easier time identifying potential solutions and developing a course of action.

Synthesis goes the opposite direction. It's the act of combining components to a whole - a solution or a product. It helps you design prototypes or models, and create new solutions or products.

What does this have to do with learning about Linux? The Free Software nature of the whole Linux ecosystem makes it the ideal playground on which to practice both principles. It's unlikely that you'll start by doing a deep dive into the Linux kernel source code; except maybe if you're a computer science student. But even just using Linux on a daily basis already gives you countless opportunities to peek behind the curtain of how an operating system and the related software work. It's this gathering of theoretical and practical knowledge about the Linux operating system that is extremely useful for any software engineer.

Answering the questions that arise while you're exploring Linux will substantially increase your understanding of crucial principles such as system architecture, process and memory management, file systems, and network protocols.

Linux also gives you an extraordinary amount of freedom in how you use the system. You have full control of how you optimize your user interface and workflows to your individual needs.

This leads to an experience almost every long-time Linux user enjoys: efficiency. The reason that almost all roads in Linux land lead to the terminal is that mastering the command line allows you to build highly efficient workflows. The most enjoyable of these workflows are the ones that need little or no manual intervention.

Another important aspect is that Linux grants you autonomy. Instead of buying managed computing resources from expensive vendors, you can run your projects on refurbished hardware in your homelab, or on a cheap virtual server in a data centre.

Having extensive Linux know-how is also a competitive advantage. The cloud (aka the internet) runs on Linux. Being able to combine your software engineering experience with system administration skills is the basis of Site Reliability Engineering, a skill set that is in high demand.

Finally, using Linux is fun (most of the time). Its vast Open Source ecosystem offers solutions to all kinds of problems. And if there isn't one yet, you have the means to create one from existing building blocks. There are also communities, small and big, in which members help each other learning to and succeeding at using Linux. A great example is The Server Room, my membership community. On the TSR forum, we have a dedicated "System Administration" category in which our members share questions, advice and discoveries. If you want to go down the Linux rabbit hole, our community members will be happy to help you along the way!

From the blog

The recording of our first community Deep Dive session is going out tomorrow. It you're a member of The Server Room, you will be able to access it right on the website. If you're not a member yet, what's holding you back?

In The Server Room

I'm preparing a new Hot Seat session and another Deep Dive, so stay tuned!

Recommended reading

As an online teacher, I always recommend additional material to my students with which they can expand their horizon. Here's a list of reading tips I've curated for you.

ELevating Centos 7

CentOS 7 is going EOL in only a few days. If you're still stuck using this distribution, the ELevate project, an initiative by AlmaLinux to support migrations between major versions of RHEL-derivatives, is probably your best bet.

# Fast Crimes at Lambda School

It's sickening to see how Silicon Valley is constantly funding terrible people. In this case, it's about the education sector, which hits home especially hard for me.

# Programmer Discipline Avoidance

Don't be afraid to grow when things that once required your expertise become trivial.

# I Will Fucking Piledrive You If You Mention AI Again

This rant is far too epic not to be listed here. 🤣

# Introduction to eBPF

For more than a decade, I didn't take much notice of eBPF. But a talk at stackconf Berlin, which I attended last week, peaked my curiosity. If you've been as oblivious as I was up until now, here's an easy introduction!

Thanks for reading!

I hope you found my News from The Server Room enjoyable and helpful. If you have any feedback or questions, simply reply to this email!
Take care!
Jochen, the Monospace Mentor