Spotify Culture Envy

Love these videos, love Spotify’s culture, looks like a great place to work.

Far bigger company than I thought they would be… tis cool how they approach the architecture to cope with that effectively.

Well worth the watch.

Don’t Circum to Dumb

I think brushing up on Computer Science fundamentals from time to time is a valuable endeavour, which every developer should do.

Even if it is as little as taking one of the many undergrad level modules online. Many of which are not to be sniffed at.

In our industry we are not chartered, and nor do I think we should be as I don’t like the idea of a professional body lording over us. I think we owe it to ourselves to get better or at the very least not get dumber, as many jobs in our industry will make you dumber over time.

My Sister is a doctor, and soon she will be revalidated: “Revalidation is the process by which doctors holding registration with a licence to practise will have to demonstrate to the GMC that they are up-to-date and fit to practise and complying with the relevant professional standards.

I can’t speak for what her day to day is like, but as a practicing doctor I doubt you exercise your entire base of knowledge on a regular enough basis to avoid refreshing yourself with the fundamentals from time to time.

Now imagine beyond doing our daily duties, developers were required to go through such a “revalidation” process in order to be allowed to hold the title of software engineer (or whatever).

An interesting thought… baring in mind we all probably know at least one Secretly Terrible Engineer.

Ours is a industry fueled by both passion and science, and the passion is what has pushed us forward. The same can be said for medicine.

Bad engineers probably were not always that way, maybe they were both sharp and passionate when they started, but the lack of inspiration in their 9 to 5 has caused them to become blunt and disenchanted over time.

It is often said software development is so broad and someone cannot possibly know everything, true, but I don’t think medicine is a small field and there is no excuse for a Doctor to not be continually up-to-date with the fundamentals of their field as well as their respective specialization.

I for one don’t like the idea of being made to “Revalidate”, but I do think we owe it to ourselves to try and stay fresh and up-to-date with the foundations of our industry.

MIT: Introduction to Algorithms

I recently got into a conversation about the computer science classic sorting, in particular we chatted about applications of Radix Sort.

This is not something I had really needed to look into in any detail, but sparked my interest due to this statement “Radix sorts are often, in practice, the fastest and most useful sorts on parallel machines.”

The spark rekindled my desire for refreshing my knowledge of the basics so I may build on this to explore the latest and greatest research in this area.

I personally like the MIT course Introduction to Algorithms as it covers so many of the fundamentals very well.

Watching “Counting Sort, Radix Sort, Lower Bounds for Sorting” at the minute:

A good start for now.

Also worth checking out: “Practical Applications of Radix Sort”.

A Taste of Elixir at Functional Kats Belfast

I recently gave a presentation to Functional Kats (Belfast) on the elixir language. It was a lot of fun!

The format of the event I totally love, it started with a couple of talks followed by a Kata hack where we all had a go at implementing the Luhn Credit Card algo in the functional programming language of our choice. At the end we all took turns to present our solutions.

The goal of my talk was to arm the folks with enough of the basics to implement the Kata in elixir.

Thinking Like an Erlanger

I found this video last night by Torben Hoffman, I recommend folks interested in Erlang or Elixir give it a watch and take it to heart. Torben does a good job of displaying how an “Erlanger” should think, in comparison to other programmers.

Torben recommends 2 books which have been added to my reading list:

Communicating Sequential Processes by C.A.R. Hoare. (Free digital Version)

Principles of Protocol Design by Robin Sharp.