Tobias van Schneider, Spotify’s design lead, talks about the importance of side projects and how to make the most of them.
The core of the idea is to keep them simple and stupid for as long as possible, otherwise you tend to overcomplicate them and nothing gets done.
I use them as a vehicle for learning and starting new things at work and I currently have about 3 going on in parallel (2 based on the Arduino platform, one building on top of Spark).
success also comes in the form of learning new things, meeting the right people, feeling personally fulfilled, he says. You don’t know what will happen next. Perhaps your side project will lead you to your next job, your spouse, or a sustainable living that gives you the freedom to keep exploring.
Why Side Projects Should Be Stupid
About a year and a half ago I decided that I wanted to change course and go back to being an engineer. I knew that I wanted to code, I just didn’t know where to start.
In this post I will go over:
- how I picked functional programming (FP) as something I want to study
- what FP is and why I like it
- go over a handful of examples to give you an idea on how you could use it in your day to day job
In closing, I will try so summarize what I learned about personal development as I went through this process.
How I got started
Right after I decided that I want to give up on management and go back to engineering, I had no idea what I should do next… All I could think of where the things I didn’t like about my job instead of the things I liked :).
My team was (and still is) heavily involved with distributed systems (mainly batch and real-time analytics built on top of the Hadoop stack), but simply joining those projects seemed very intimidating at that moment.
I really wanted to have fun and score a few quick wins, in order to validate if I’m still on the right track…
I didn’t have any experience with enterprise Java and the system and tech stack are both incredibly complex; on top of that I am very motivated by concrete results and enjoy working on more high-level problems — none of which can be found in building and optimizing distributed infrastructure.