Everything I Know About Development in 2019

13 mins

I’m starting this series so that I can track how far I’ve gone in my career as an engineer.

In true Dan Abramov style I’ll be listing what I don’t know as well, so that I can concentrate on learning those things in the future.

Python

I learned this at University and it has been useful ever since.

Know

Don’t Know

Java

I started nearly four years ago as the first engineering hire in a tiny startup mainly running Java in the cloud and in our vehicle IOT solution. I still think that the stuff I worked on there was really interesting, and in many cases I was the main contributor to the features of our solution.

Those include:

Know

Don’t Know

Scala

For the past year, I’ve been working at a technology company in the travel industry, mainly using Scala to integrate with third party supplier APIs. I think it’s interesting in much different ways from my previous job as it’s more about exploring the landscape of optimisation possibilities and maintaining and debugging several complex systems at scale. I also got to appreciate that there are two parts to scaling: the actual performance of the system, and coordinating the efforts of many engineers.

Those include:

A language that doesn’t affect the way you think about programming, is not worth knowing. -Alan Perlis, Epigrams on Programming #19, 1982

More and more it seems to me that Scala is one of those languages which has affected the way I think about programming. The biggest change is that types actually feel like my friend now, in that I can use the richer type system and constructs to automatically enforce many things that I would have to write code for in Java.

Know

Don’t Know

JavaScript/ Web Frontend

Know

Don’t Know

Sysadmin/DevOps

Know

Don’t Know

Databases

Know

Don’t Know

Basically the in-depth stuff a DBA would know - I always go to them for help optimising queries. At work, the database devs run a bot that scans Github for stored procedures and notifies them for review.

Architecture/High Level Design

Know

Don’t Know

I don’t have much experience with designing full-stack architectures. (I’m not very strong at the front-end or mobile.)

Distributed Systems

Know

Don’t Know

Soft Skills

Know

Don’t Know

Attitude

Know

Don’t Know

Other

Know

Don’t Know