Jan Stamer

The Coders Bucket List

A bucket list is a list of things you ought to do before you kick the bucket and die. Here’s a bucket list for every coder out there. Check it out and tackle them one at a time!

Compile your own Linux Kernel

The linux kernel is the heart of the Linux operating system and is open source. Compile your own linux kernel to get a deeper understanding of how linux, open source software and the kernel itself work.

Set up a Build and Deployment Pipeline

Set up your own pipeline to build and deploy your code. The pipeline should compile your code, create an artifact like a docker container and deploy it on a remote machine. You can build the pipeline in Jenkins, Gitlab CI, Travis CI or using Github Actions.

Mentor a Junior Dev

Mentor a junior developer will teach both you and your mentee a lot. You can share your knowledge and give your mentee a great start in the job. You’ll see that also you will benefit by looking at things from a different angle and explaining things you’ve been using and doing for quite some time.

Install and run stuff on FreeBSD

Install a unix distribution like FreeBSD on a machine and run some stuff on it. Real unixes are quite different from linux as you will notice. Yet unixes are great and very stable server operating systems.

Give a Talk

Share experiences or knowledge with others by giving a talk. This talk can be for your team only, within your company of even at a conference. Think carefully about what you want to tell and how. Learning and practicing to give a talk will greatly improve your communication skills.

Contribute to Open Source

Contributing to an Open Source project that you like. You can contribute not only code but also documentation, translations or tests. Some projects have issues that are specially suited for newbies. E.g. in Spring these issues are tagged ideal-for-contribution.

Give a Training

Give a training in our outside your company. Prepare the training yourself with background information and hands on practical excercises and tasks. If you can give the training more than once - even better. You’ll experience that every training is different and all participants will experience the training differently.

Write a Compiler

Compilers is where program languages start. Write you own little compiler and you will gain lots of insights into the inner workings of programming languages.

Learn a Functional Programming Language

Learning to program in a pure functional programming lanuage like Haskell or Elm will change the way you think about programming. So check it out even it won’t become your primary language.

Bring a Website to Production

Code a website using plain HTML and CSS and bring it to production. Register a domain name and make your website available under that domain. Even better use web server like Apache, nginx or Caddy to serve the website.

Develop a mobile app (and release it)

Develop your own mobile application for Android or iOS and release it in the app store. Make your app communicate with backend services and use device functionalities like geolocation via GPS.

Learn to use vim and emacs

The classic text editors are vim and emacs. So take the time to learn basic text editing in both vim and emacs. Once mastered it’s a skill you can use for the next 30 years.

Mess up Production real bad

When you develop production code it’s only a matter of time. One day you will write code that messes up you production. But don’t you worry we’ve all been there and we all make mistakes. So fix it, learn from and grow from it.

Fix Production on Pager Duty

You are on pager duty and shit happens. Maybe some hardware breaks down, a 3rd party service is not available any more or the configuration is messed up. There will be a day when you dig into the issue and find the root cause. Hang into it and fix production. Enjoy the feeling when everything is running smoothly again.

Write a JavaScript Single Page Application

Single Page JavaScript Applications (SPAs) are one very important way to develop a web frontend. Write a JavaScript SPA application to get to know how SPAs are built and distributed. You can use a JavaScript framework like Vue.js, Angular or React to get you started.

Write a Server Rendered App

Building a web frontend as a server rendered app is a classic but still very valid approach to develop a web frontend. So write a server rendered web frontend in the language of your choice. For PHP you might use Laravel, for Java Spring Boot & MVC or Buffalo for Go.

Learn Shell Scripting

Shell scripting is quick way to script and automate tasks on any Linux and Unix machine. Learn to write a script for the Bash shell. Make use of classic tools for shell scripting like awk, sed or cut. If you want to top it off write your script in vim or emacs (see above).

Hack in a Capture the Flag Contest

Improve your security skills and learn how to hack in a capture the flag contest. Read all about it here: Learn How to Hack, Capture the Flag for Beginners!.