For the past year, I’ve been hosting the Rust in Production podcast, diving deep into how companies use Rust in their tech stacks. This journey has taught me a lot about what it takes to create and maintain a successful podcast. Whether you’re considering starting your own podcast or just curious about the process, I hope my experiences can offer...
This post offers personal insights on predicting tech trends by observing hackers. It’s based on subjective observations and should be read with critical thinking. If you’re looking for meticulously researched, data-driven analyses, you might want to check out an actual research paper instead! A good way to predict which technologies will be...
Last night I realized that my life is very simple. That’s not by chance, but by conscious effort. Life becomes complex all by itself if you do nothing about it. One day you’ll wake up and you have a mortgage, 10 on-demand subscriptions, 20 insurances, 1000 open browser tabs, a demanding job and a dog. And when you realize it, you wonder how you...
People sometimes ask me how I come up with things to write. To me, it's the same as asking how I come up with things to say. There's always something to say. It might not be novel or interesting to most, but it's important to me and hopefully to someone else. What people actually want to know is how to come up with something interesting to write....
Growing up as a kid in rural Bavaria, I always dreamed of moving to the US to run a startup. Many kids in my generation shared that dream. To me, it felt like the only way to combine my two greatest passions: coding and building things. As I got older, I became disillusioned with the narrative surrounding Silicon Valley. The hockey stick growth,...
Recently, I realized that I mostly get paid to ask questions. As a consultant, advising companies As a podcast host In calls with potential clients The curious thing is that, like most people in a similar position, I never had any formal training in asking questions! I basically just wing it and try to get better over time. That got me thinking:...
I look left and right, and I'm the only one who still uses Firefox. At conferences and in coworking spaces, it's always the same scene: people using some flavor of Chrome. Sometimes it's Brave, sometimes Chromium, most of the time it's just Google...
One of the hardest challenges I know is how to sell to developers. This is NOT an article for developers. Today, I want to write for non-developers whose job it is to sell to developers. My goal is to help you understand how they think. Developers Hate Being Sold To We tend to be a skeptical bunch! We're not reachable...
document.addEventListener("DOMContentLoaded", function() { lightEmbedInit(); }); There is a famous story about a physicist during an exam at the University of Copenhagen. The candidate was asked to describe how to determine a skyscraper's height using a barometer. The student suggested dangling the barometer from the building's roof using a...
I've come a long way in my tech journey, from dealing with bare metal servers to exploring the world of cloud computing. Initially, it seemed so straightforward – spin up a server, deploy a container, and you're done. But as I delved deeper, I realized that the ease of infrastructure is not as simple as it appears. Cloud providers offer a...
Yesterday I couldn't help but feel a sense of awe at all the conveniences modern life has to offer. A lot of the chores in our household are taken care of by little helpers: The dishwasher washes the dishes, the washing machine washes the clothes, and the robot vacuum cleaner cleans the floors. The refrigerator keeps our food cold, the microwave...
Reader showing an article in light and dark mode. tl;dr: I built a service that takes any article and creates a pleasant-to-read, printable version. It is similar to Reader View in Firefox/Safari, but also works on older browsers, can be shared and has a focus on beautiful typography. Try it...
Every once in a while my buddies and I meet for dinner. I value these evenings, but the worst part is scheduling these events! We send out a message to the group. We wait for a response. We decide on a date. Someone sends out a calendar invite. Things finally happen. None of that is fun except for the dinner. Being the reasonable person you are,...
A few years ago I visited a friend in Gdańsk, Poland. As we explored the city, one thing I noticed was that cabs were relatively expensive and there was no Uber. Instead, most (young) people used a community-organized service called Night Riders. I couldn't find anything about that service on the web, so I decided to write about it to preserve...
Source: Cozy attic created by vectorpouch and tux created by catalyststuff — freepik.com As the day is winding down, I have a good hour just to myself. Perfect time to listen to some Billie Joel (it's either Billie Joel or Billie Eilish for me these days) and learn how the Unix history command works. Life is good....
One of the best decisions I made in 2020 was to open my calendar to everyone. People book appointments to chat about open-source projects, content creation, and business ideas. When we discuss business ideas, the conversation often leans towards problems suited for startups, such as using artificial intelligence to find clothes that fit or...
One day I had the idea to make a print of my Github timeline. I liked the thought of bringing something "virtual" into the real world. 😄 So I called up my friend Wolfgang and we built codeprints. It's my first "physical" product, so I decided to share my...
I earned 0 Euros from maintaining OSS software for years, and I thought that's the way things are. I finally looked into ways to monetize my projects last year and in this talk I want to share what I learned so far. It didn't make me rich (yet!), but I built my first sustainable side-project with analysis-tools.dev ✨. I'll talk about this and...
Did I mention that this website is fast? Oh yeah, I did, multiple times. Few reasons (from ordinary to the first signs of creeping insanity): 📄 Static site ☁️ Cached on Cloudflare CDN 🔗 ️HTTP/2 and HTTP/3 support 🚫 No web fonts (sadly) ✅ Edge-worker powered analytics (no Google Analytics) 🌸 Avoiding JavaScript whenever possible; CSS covers...
Yesterday we launched analysis-tools.dev, and boy had I underestimated the response. It's a side project about comparing static code analysis tools. Static analysis helps improve code quality by detecting bugs in source...
A while ago, I read an article titled "What Happened In The 2010s" by Fred Wilson. The post highlights key changes in technology and business during the last ten years. This inspired me to think about a much more narrow topic: What Happened To Programming In The 2010s? 🚓 I probably forgot like 90% of what actually happened. Please don't sue...
When it comes to runtime performance, Rust is one of the fastest guns in the west. 🔫 It is on par with the likes of C and C++ and sometimes even surpasses those. Compile times, however? That's another story. Below is a list of tips and tricks on how to make your Rust project compile faster today. They are roughly ordered by practicality, so...
Here's a test to show your age: Do you still remember that funny JavaScript gravity effect, which Google used on their homepage ten years ago? This one? document.addEventListener("DOMContentLoaded", function() { lightEmbedInit(); }); I wanted to have some fun and integrated it into a website I was building....
Some computer terms have a surprising legacy. Many of them are derived from long-obsolete technologies. This post tries to dust off the exciting history of some of these terms that we use every day but aren't quite sure about their origins. Let's jump right in! Bike-Shedding Today's meaning: A pointless discussion...
Timelapse is a little open-source screen recorder for macOS. It takes a screenshot every second and creates a movie in the end. To celebrate its unlikely 1.0 release today, I present here a "timelapse" of this project's journey. It just took ten years to get here. document.addEventListener("DOMContentLoaded",...
RepositoryStars analysis-tools-dev/static-analysis13112 ★ mre/idiomatic-rust6277 ★ tinysearch/tinysearch2695 ★ lycheeverse/lychee1939 ★ mre/the-coding-interview1685 ★ analysis-tools-dev/dynamic-analysis910 ★ ReceiptManager/receipt-parser-legacy803 ★ mre/hyperjson501 ★ mre/cargo-inspect381 ★ hello-rust/show306 ★ lycheeverse/lychee-action299 ★...
I wrote a basic search module that you can add to a static website. It's very lightweight (50kB-100kB gzipped) and works with Hugo, Zola, and Jekyll. Only searching for entire words is supported. Try the search box on the left for a demo. The code is on Github. Static site generators are magical. They combine the best of both worlds: dynamic...
A woman riding a scooter Source: Illustration created by freepik, Nomad logo by HashiCorp. Kubernetes is the 800-pound gorilla of container orchestration. It powers some of the biggest deployments worldwide, but it comes with a price tag....
Rust allows for a lot of syntactic sugar, that makes it a pleasure to write. It is sometimes hard, however, to look behind the curtain and see what the compiler is really doing with our code.
I never was a big fan of internships, partially because all the exciting companies were far away from my little village in Bavaria and partially because I was too shy to apply. Only once I applied for an internship in Ireland as part of a school program. Our teacher assigned the jobs and so my friend got one at Apple and I ended up at a...
For the first three decades of my life, I've exclusively used a German keyboard layout for programming. In 2018, I finally switched to a US layout. This post summarizes my thoughts around the topic. I was looking for a similar article before jumping the gun, but I couldn't find one — so I wrote...
Lots of people asked me to write another piece about the internals of well-known Unix commands. Well, actually, nobody asked, but it makes for a good intro. I'm sure you’ve read the previous parts about yes and ls — they are epic. Anyway, today we talk about cat, which is used to concatenate files - or, more commonly, abused to print a file's...
Photo of my office with Github's octocat on the wall over my couch So I'm in a bit of a sentimental mood lately. Github got acquired by Microsoft. While I think the acquisition was well-deserved, I still wish it didn't happen. Let me explain. My early days I joined...
When I opened Vim by accident for the first time, I thought it was broken. My keystrokes changed the screen in unpredictable ways, and I wanted to undo things and quit. Needless to say, it was an unpleasant experience. There was something about it though, that kept me coming back and it became my main editor. Fast forward ten years (!) and I...
At work today, I refactored some simple Go code to make it more testable. The idea was to avoid file handling in unit tests without mocking or using temporary files by separating data input/output and data manipulation.
In my series of useless Unix tools rewritten in Rust, today I'm going to be covering one of my all-time favorites: ls. First off, let me say that you probably don't want to use this code as a replacement for ls on your local machine (although you could!). As we will find out, ls is actually quite a powerful tool under the hood. I'm not going to...
I wrote about the future of Rust before and it seems like nobody stops me from doing it again! Quite the contrary: this time the Rust core team even asked for it. I'm a bit late to the party, but here are my 2 cents about the priorities for Rust in 2018.
Programming languages help us describe general solutions for problems; the result just happens to be executable by machines. Every programming language comes with a different set of strengths and weaknesses, one reason being that its syntax and semantics heavily influence the range of problems which can easily be tackled with it. tl;dr: I think...
Recently I came across a delightful article on idiomatic Ruby. I'm not a good Ruby developer by any means, but I realized, that a lot of the patterns are also quite common in Rust. What follows is a side-by-side comparison of idiomatic code in both languages. The Ruby code samples are from the original article. Map and...
The Stegosaurus had better days 150 million years ago. Source: Paleontologists once thought it had a brain in its butt. In December 2015 I was looking for static analysis tools to integrate into trivago's CI process. The idea was to detect...
This morning I woke up to the beeping noise of our oven's alarm clock. The reason was that I tried to correct the oven's local time the day before — and I pushed the wrong buttons. As a result I didn't set the correct time, instead, I set a cooking timer... and that's what woke me up today.
Dirndl, Lederhose, Brezn, Beer, Rust Source: Designed by Freepik October is the perfect time to contribute to Open Source — at least according to Github and DigitalOcean. Because that's when they organize Hacktoberfest, a global event where you...
What's the simplest Unix command you know? There's echo, which prints a string to stdout and true, which always terminates with an exit code of 0. Among the series of simple Unix commands, there's also yes. If you execute it without arguments, you get an infinite stream of y's, separated by a newline: y y y y (...you get the idea) What seems to...
Freepik " width="800" height="500" /> Source: Adapted from Freepik My website is reasonably fast. I hope that every page load feels snappy, no...
I wrote this article a long time ago. In the meantime, my opinion on some aspects has changed. In order to give a more balanced perspective on the pros and cons, I suggest to read this comparison on Go vs Rust instead, which I wrote in collaboration with Shuttle 🚀 Rust vs Go: A Hands-On Comparison Gopherize.me. Gears...
What do clothes have to do with Makefiles? Find out in this post! Source: Illustration by Anindyanfitri - Freepik.com In the last few years, I've had the pleasure to work with a lot of talented Software Engineers. One thing that struck me is...
Recently, I tried to implement a binary tree data structure in Rust. Each binary tree has a root value, a left, and a right subtree. I started from this Python implementation, which is quite straightforward.
I've written most of my code in dynamically typed languages such as Python or PHP. But ever since dabbling with Rust, I've developed a passion for static type systems. It began to feel very natural to me; like a totally new way to express myself.
When I was around 12, I set myself the goal to become a professional programmer. I can tell, because at this time I made the conscious decision to use my right hand to control the mouse — even though I'm left-handed. My reasoning was, that if I ever had to help out a colleague with a computer problem I sure did not want to move her mouse to the...
Let me first point out the obvious: yes, the title is a little sensationalist. Also you might be asking why I should be entitled to talk about the future of Rust. After all, I'm neither part of the Rust core team, nor a major contributor to the Rust ecosystem. To that I answer: why not? It's fun to think about the future of systems programming in...
One common systems design task in interviews is to sketch the software architecture of a URL shortener (a bit.ly clone, if you may). Since I was playing around with Rocket – a web framework for Rust – why not give it a try?
People look confused when I tell them about my passion for algorithms and data-structures. Most of them understand what a Programmer is doing, but not what Computer Science is good for. And even if they do, they think it has no practical relevance. Let me show you with a simple example, that applied Computer Science can be found everywhere....
Programming has many faces. It is the science of structured thinking. It is the art of eloquent expression. It teaches you to be humble when you look at other peoples' fascinating work. Most of all, it teaches you a lot about yourself. While the syntax may change, the concepts will not.
For as long as I can think, religious flamewars have infected computer science. Having arguments about technical topics can be healthy, but flamewars are not. I'm sick of it. I'm fed up with people telling me that their work environment is oh-so better, faster and so on. That's fine, but it doesn't matter. Your equipment only plays a supporting...
My geography teacher once told the story of her first lecture at University. As an introduction, her professor asked the class to draw a map of Germany without any help and as accurate as possible. To her surprise, she was not able to fill the map with much detail. Even the shape of the country was a bit vague. She had seen thousands of images of...
Great people get shaped by their achievements There's Thomas Edison who developed countless prototypes before selling a single light bulb. The unemployed Joanne K. Rowling writing Harry Potter in a Cafe while caring for her child. Steve Wozniak creating the first personal computer in his spare time while working at HP. What do they have in...
I recently talked to a student in my neighborhood about his first programming experiences. They started learning Java at school, and it soon turned out to be horrible. A lot of us learned to code in languages like BASIC or Pascal. There was no object orientation, no sophisticated file I/O and almost no modularization... and it was great. In BASIC...
A little code snippet that people need very often.
Text files are the single most important way we can communicate with computers. It's no coincidence that they are also the most vital way to interact with other human beings. What we can achieve with text files is invaluable: Write it once and refer to it whenever you want to get the message across in the future. Write a program (it's just text),...
This short article deals with a severe problem in software development: bit rot. When switching to a new platform (for instance from Windows XP to Windows Vista/7), the programmers need to make sure that old bits of code run flawlessly. There are several ways to achieve this goal that will be discussed in the next...