About me
Early History
I got a Commodore 64 when I was eight and after the mandatory gaming I started to look at (Simon’s) Basic and Assembler. This time also involved lots of programs typed from the magazines. Next computer was Amiga 500 and with that I started getting into the intro/demo scene as I also had a 2400bps modem. I tried my wings as a graphics artist and as a music composer, but wasn’t too good at either, so what was left was coding.
After assembler the first higher level language I used was E (by Wouter van Oortmerssen) and then I used c++ mainly in University. After about year 2000 I used almost exclusively Java until about 2015.
Philosophy as a Programmer
Finding the actual problem from all the crud and solving just that with the simplest and most effective way possible is a skill that’s hard to teach. Having the guts to refactor a solution to best solve a given issue without resorting to countless kludges takes nerve. These are things I strive for. The assembler background also makes you care about performance and efficiency.
I made a promise to myself a long time ago: if someone shows me an easier or better way to do something, I will at least listen. I have seen so many people sticking to very old practices not because they’re the best but because they have never tried anything else. Things evolve all the time and if we’re afraid to evolve with the times we’ll be left behind. This doesn’t mean that we should be on the bleeding edge all the time, but at least be aware of what’s happening around us.
Current Interests
Lately I’ve been leaning towards Python and Rust. I have also used JavaScript (dabbled with CoffeeScript) and TypeScript as well as experimented with Elixir and Go.
After being in the industry for over 26 years, I’ve turned towards softer values. I’m trying to figure out what makes engineers tick and try to coach juniors so that they’d find the work more enjoyable. Increasing the amount of communication and feedback is also high on my list.
On the technology front I’m always striving to make the development cycle as short as possible and enable experimenting for the developers. Currently I’m figuring out Kubernetes and Istio as the service mesh and combining things with proper DevOps practices. Also high on the list are different Cloud native solution like Serverless (mainly using Lambdas) and Fargate on AWS.
The emergence of AI/ML has been extremely quick and I have spent a considerable amount of effort to keep up to date on what’s happening.