Skip to content

Category: life

How to plan for your death with code

Recently I’ve been going to a rock climbing trip with a friend. Although this is a relatively safe sport. It’s far from being the safest. So it got me thinking. “What if I make a mistake and fall to my death ?”

Banner of a cemetry with text "How to plan for your death with code"

I thought about the obvious facts like the sadness from my loved ones etc. But I also thought about more pragmatic things. I’m sure my bank account’s content can be transferred to them somehow. But I also hold some cryptocurrency. Which, by design, would be lost forever if I were to die with my private keys. Same goes for the various services that I run like steempress. If I were to die those would shut down and the vast amount of code locked away in private github repos might very well never be recovered (assuming github doesn’t help). Or even this blog, I plan on adding a ton of tutorials on it, what if it goes down because I no longer pay the bills ?

I was thinking, “I’m a programmer, I can probably plan for my death with code”. But here’s the problem. Let’s say I give an USB key to my loved ones with basically all of my passwords, private keys etc. It puts a huge risk on me because if that key were to be stolen, if one of my loved ones becomes rogue because of whatever reason. (we are talking about planning for death here so this is measures that should last several decades) I could lose so much.

The obvious answer is “fuck it, it’s a problem for the living and I’ll be dead” but it’s pretty egoistical so I wanted to find a solution. Another obvious solution would be to go to a lawyer and give the usb key to be handed out with my will. But that would be quite costly.

The solution

The idea is relatively simple. Create an encrypted usb drive using truecrypt and/or veracrypt. Ideally nest them. With all of the important information. And give those to your loved ones without the password. Therefore there is no risk if the usb key gets stolen. And if they manage to break the encryption they can go directly to their local intelligence agency and sell that 0day for a few millions, much more than the content of that drive because it’s that hard. So I’m not too worried about that happening.

Then write a small server that sends you “are you alive” emails every months. If you miss too many then the server will then send to your loved ones an email which will contain the password for the usb key. (And perhaps a few words like “don’t be sad I love you”)

This means that if your web server handling the are you alive checks gets compromised. The attacker will just get a random password that is useless without the file.

If you miss a test then you get more mails. This is done to prevent you from missing one email and being declared dead by the code. I setup a “failed test counter” send emails like so :

0-2 : every month
3-5 : every 3 weeks
5-7 : every 2 weeks
8-16 : every week

after 16 checks death is declared.

In total you need to be offline for about a little less than 6 months (26 weeks) for it to trigger.


There is still a ton of little things that you can add to that setup, like only sending parts of the key to each of your loved ones. So they have to get together to open the file and it’s not like the first one who opens the files can run with everything.

There are a few services that already offer death email counters but I would encourage you to code your own and even self host it. The less people you trust, the more secure this setup becomes.

I am definitely open to suggestions to make this more secure. Right now my biggest concern is an unforeseen bug or something that makes the code trigger the email while I’m still alive. Or something like me getting kidnapped/imprisoned for 6 months. But if I set the timer to longer than that. The info inside of it might no longer be relevant.

What I learned coding (almost) every day for a year and a half

Two years ago I started working on steem, it’s a really cool blockchain where your upvotes are worth actual money. There are quite a few decentralized apps tha run on Shortly after a startup called launched where open source contributions were rewarded. I figured it couldn’t hurt to try and it was the extra motivation I needed to finally start working on open source.

I’ve been wanting to work on open source software for quite some time so I opened my github account and started coding, I mostly worked on my own projects releasing a ton of code snippets to help future developpers work on steem. But I also open sourced some of my personal libraries for instance a python library to easily perform image search for automation. (I mostly used it to automate games at the time).

The plan was never to code every day at all but then, Github has one feature. One feature that made me work on it rather than, say, gitlab or bitbucket :

The contribution graph

The contribution graph is a simple thing, whenever you do a commit, open an issue or a pull request it’ll add a green square for the day. And the more actions you do that day the darker the square. You can’t really say “oh the square is super dark so you did a lot that day” but it’s a good rough metric.

I didn’t really take much attention to it at first, but the more I looked at it the more it was talking to me, it said

“Can you code every single day, for an entire year ?”

It was daunting at first but then I took on the challenge. And started coding. Around the same time I was launching as a side project my startup SteemPress, a plugin to connect wordpress and steem. And since I love programming it wasn’t hard for me to come home from 8 hours of programming (I was a software engineer working on embedded software) and then sit on my computer to work some more.

Little by little the squares started to fill and I felt prouder and prouder about my ongoing achievement. And this is where I learned my first big lesson

Consistency is hard

Coding every day sounds ok in a week, or even in a month. But then there are edge cases that you didn’t really thought about when you started in this whole endeavor :

  • What do you do if there’s an after-work party right after work and you know you won’t be home before midnight ?
  • What do you do if you get sick ?
  • What do you do if are on vacations ?
  • What do you do if you don’t want to work ?

This is where you are at a point where you think of the rules, a green square is just one commit, does adding a bit of documentation on a README on your phone count ? Does adding a line of comment count ? What is cheating and what is not ? In the end I decided that it was okay to edit readmes or adding comments as long as it was

  • Relevant (adding an useless line or fixing a typo is cheating)
  • Not too often (once every two weeks top)

The x effect

There are studies that show that if you do something every day for 30 to 45 days it becomes a habit. And that effect is greatly amplified if you have something physical like a box to tick if you did your daily habit correctly. There’s even a subreddit dedicated to that. At the time I wasn’t aware of it but Github and the graph sure as hell had that effect on me, over time consistency wasn’t as hard as before and became more of a habit, I was longing for my daily side project programming. It was thrilling. I learned a ton, taught myself a lot of new technologies and contributed to the open source community (and earned a few bucks while doing so).

But after a year and a half I decided to quit. Why you ask ?


The contribution graph for 2019

I recently had a falling of motivation (it shows on my Github graph around march to may). During that time it was a real hassle to do my daily programming tasks, I didn’t want to do it but I still wanted my green mark so I was cheating more and more, making minor edits, making comments that aren’t really necessary etc. Finally I said “Stop, if you’re gonna cheat you might as well not push anything”. Also Github only adds things to the contribution graphs if you push to master, so I was sometimes working with bad practices because I didn’t want to use branches. (The contributions are counted when you merge the branch to master but it means not having green boxes for quite a while if you work on that branch for weeks). So I realized that this habit was doing more wrong than right. For me at least.

In conclusion

This was a great experience, if you go to my Github you can see that even though I said I “quit” I still push things very often and rarely miss a day, the difference is that I don’t push myself to program every day, I just let it happen. I definitely recommend that you check out steem and and follow the same path as I did, it teaches you a lot, it’s also a good way of selling yourself and your skillset to future employers. It’s no longer “hey I love programming, trust me, I do” it’s “look at my Github, see how I code, see my skillset” and if the guy know what he’s talking about he’ll know.
Especially if you have good open source projects to show. In my experience people rarely check your Github but when they do it’s big plus to show your dedication.