Passing on the baton isn’t a cakewalk. Here’s how to do it

Sprinter holding baton
Sprinter holding baton
Photo by Braden Collum on Unsplash.

Software projects need to be handed over all the time. New people join, others leave the company. When I did my first handover, I was pretty bad at it. I improved over time and just got an excellent introduction by Niklas Baumstark.

Let me share some ideas on how I think you can structure amazing handovers in nine steps. Let’s get started!

1. Plan Ahead


How do I use them and where is the difference?

Photo by Dan-Cristian Pădureț on Unsplash

The Unix programming philosophy is to do (just) one thing but do it well. Focusing on one core task is hard as developers see and feel their users' pain points and desires. To be able to focus on the core product but allow additional functions we cannot take care of, we develop plugin systems. One way to do this is by giving hooks.

A hook is a way to extend software.

Think about an email client. The email client might define a hook pre_send that receives the current receiver, subject line, and content of the email. Developers can use this…


What is the difference and why does it matter?

Photo by Edurne Chopeitia on Unsplash

We developers like to throw around terms that feel natural to us, but are technical terms that most non-developers don’t use in the same way. This article is aimed at all the poor souls who have to deal with us, e.g. product managers, product owners, scrum masters, business people.

After reading this article, you will understand the difference between synchronous vs asynchronous vs concurrent vs parallel. Let’s start!

Speeding up Execution

If you want a program or website to feel faster, you have various options:

  • Better machines: Buy new hardware
  • Do less: Reduce the scope, simplify the business
  • Do the things more efficiently…


Image on Pixabay by Workandapix

Software is correct if it acts as specified. It is robust if it can take a high load until it goes down. Software is resilient if it can go back to normal after a disruption. The disruption could be a power outage, a temporary network outage, a full disk, or a web service that is temporarily not reachable. There are patterns to deal with those issues. Learn them, use them!

1. Fallback

You probably know it: You’re commuting, reading your favorite articles on your smartphone when the connection drops. You enter your favorite blog URL — martin-thoma.com, …


Send and receive encrypted messages

Image by Caleb Oquendo (source)

Having full control over encrypted messages is sometimes just nice and crucial in other situations and/or places in the world. GPG, the Gnu Privacy Guard, is a commonly used tool to encrypt, decrypt, and sign secrets.

After reading this article, you will know how to use GPG. Let’s go!

Asymmetric Cryptography: A conceptual overview

Symmetric cryptography is easy to understand. You have two functions, encrypt and decrypt . Both use a key to generate the output:

encrypt(clear text, key) = cipher text
decrypt(cipher text, key) = clear text

The issue with this concept is that you need to exchange the key in a secure way.


Learn what the difference is and when to use which

Shared code can be in a library or in a service. Image by Martin Thoma.

Preventing code duplication is a software development principle called DRYDon’t Repeat Yourself. DRY is important because duplicated code usually means way more code that needs to be maintained. If you need to fix a bug, you need to fix it in all duplicated places. If you need to extend the capabilities, you need to do it in multiple parts of the code. When a new developer adjusts one part of the duplicated code and forgets to adjust the other places, the situation gets more complicated.

There are two very different ways to keep your code DRY: Put the…


They are too expensive. The numbers speak a clear language.

Image by Dylan Calluy (left) and Axel Antas-Bergkvist (right), created by Martin Thoma

The car market is changing. While we were improving cars powered by Gasoline and Diesel for a long time, Tesla made the industry move. Electric vehicles (EV) and hydrogen cars were seen as two equally valid options for a long time, this changed in the past few years. Let me explain why I think that the hydrogen car will die.

Infrastructure Cost: Charging Stations


Photo by Lukenn Sabellano on Unsplash

Most websites only have one piece of evidence that is used to authenticate you: A password. However, having multiple pieces of evidence increases security quite a bit. Those pieces of evidence are also called “factors” and they fall into three groups:

  • Something you know: A password
  • Something you have: A password token or a device like a smartphone
  • Something you are: Biometrics

Using multiple factors for authentication is also called multi-factor authentication (MFA). If you use two factors, it is two-factor authentication (2FA). Hence 2FA is the simplest form of MFA.

After reading this article you will understand how MFA…


Coins, Utility and Security tokens, Stablecoins and NFTs: Bringing order to an ecosystem

Categorization of the top 30 cryptocurrencies + some chosen ones. Image by Martin Thoma

The crypto ecosystem grew rapidly in the past years — so rapid, that it’s hard for outsiders to even understand the various use-cases in that space. After reading this article, you should have some mental models to compare the latest blockchain projects. Let’s go!

Coins vs Tokens: A technical distinction

Coins are assets on their native blockchain, whereas tokens are assets foreign to the blockchain they live on. Examples for coins are Bitcoin on the Bitcoin blockchain and Ether on the Ethereum blockchain. Examples for tokens are Tether as a second-layer token on multiple blockchains; Uniswaps “UNI” token and Chainlinks “LINK” token use the Ethereum blockchain…


Learn what they are and how they are used

Image by Pixabay

We use signatures to show that we have read a contract and want to do our part of fulfilling it. They serve two purposes: Expressing an intend and being able to prove to the authorities that this intend was expressed in case one of the parties does not follow the contract. For example, if you sign a rental agreement, your landlord has proof that you wanted to pay the stated rent each month. And you have the proof that you actually can use the apartment.

Let’s learn about the problems of this approach and the digital equivalent!

Why handwritten signatures are problematic

Let’s first explore…

Martin Thoma

I’m a Software Engineer with focus on Security, Data Science, and ML. I have over 10 years of experience with Python. https://www.linkedin.com/in/martin-thoma/

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