June 2023 archive

Leaving Address

suit-collageAs of 5pm this afternoon I will no longer be working at GBG.

Since the pandemic leaving a company has been a subdued event with many slipping off into the night, scarcely noticed. This morning I had a final standup with the Data Science Team who shared the card everyone had written in and your gift.

I wanted to write down my thoughts on leaving, and to thank everyone for making my time at GBG – nearly 8 years – an enjoyable one.

I am not mentioning any names for reasons of my failing memory, and GDPR, a subject of which I have surprising knowledge – I first sat in GBG in the Compliance team which was at the time named differently and was rather more diverse in its members.

In my career I have been a university lecturer, a research scientist at Unilever, a data scientist at a start-up and finally a data scientist at GBG. I have been used to working in environments full of scientists. GBG represented quite a dramatic and refreshing change for me. I have enjoyed meeting and chatting to you all. It turns out I even enjoyed talking to potential customers – something I had not done before.

I have sat in the Chester office, in pretty much the same place, for my entire time at GBG with a slowly changing cast of characters. It was a spot where we could watch the world go by, occasionally seeing cars driving into the ornamental lake. When lockdown came we migrated to a Teams channel called “The Lonely Aisle”. My aisle mates hold a special place in my heart.

It will surprise many to learn that previously I have not been known for my collection of flamboyant suits, I think everyone will know what I am talking about here! I have always worked in environments which either didn’t have a company Christmas party or I didn’t attend. All I can say is that for one Christmas party my watch recorded 13 miles of dancing! I have illustrated this post with a collection of photos of me, in my suits, which feels a little odd but I have so few pictures of you.

I was given the Property Intelligence dataset to create on my first day in GBG by the Business Unit leader, and working on it will be the last thing I do as I leave. It was with some sadness I sent the email marking the end of the most recent build to the Product Manager.

The Dave’s from the Chester Production team have been a fixture throughout my time at GBG and I have enjoyed working with them all. “The Dave’s” does not count as revealing names since it is the law that members of the Production team are Dave even when they aren’t.

I would like to thank all my line managers at GBG, in retrospect I realise that I considered them “keepers” who had been assigned to me somewhat arbitrarily for bureaucratic reasons. I generally took what they considered to be directions as suggestions. This attitude may have led to some friction on occasion but I enjoyed our contractually required meetings.

It has long said on my blog that “[I work at] GBG where they pay me to do what I used to do for fun!”. I enjoy playing with data and computers, I have done since I was about 10. GBG actually paid me to attend meetings and do other things I did not enjoy. My play may not seem commercially relevant however it means I am in good position to address a wide range of urgent issues at short notice and I also made a bunch of interesting prototypes including voice input for address lookups, and the notorious Edited Electoral Roll in Elasticsearch experiment which probably marked my cards with Compliance – amongst many others.

It has only been in the last year or so that I have worked in a team of data scientist, prior to this I was a lone wolf or perhaps a rogue elephant. It was nice to work in a team where we could learn new things together.

I am not leaving voluntarily and the process of my departure has been stressful, for more than just me. I have been really touched by the support of my friends at GBG, and the wider Linkedin community, during this difficult time. If I can make one recommendation for those experiencing redundancy it is “Don’t suffer in silence”.

I go now to a better place! I know it is difficult to believe but it looks like I might actually be able to retire. I don’t think this is what I will do but I will take the summer off – the last before my son goes to high school. Then I will be looking for consulting style work. I welcome your thoughts on this, I’m not really prepared for retirement.

I am available on a wide range of social media platforms, so stop by and say hello.

Book review: Masterminds of Programming by Federico Biancuzzi and Shane Warden

mastermindsThe next review in my work related books thread is of Masterminds of Programming by Federico Biancuzzi and Shane Warden. The subtitle, Conversations with the creators of major programming languages, is a good summary of the contents. The book is an edited transcript of interviews with the creators of major programming languages.

Frequently the conversation is with a single person but in a couple of cases two or even three people are interviewed. This is one small failing of the book because particularly where they interview three people the resulting chapter is very long and a bit repetitive.

There is a valid question to ask as to whether languages can be so closely tied to single individuals, and in the afterword the authors touch on this saying that one of the recurring themes was that the people they interviewed succeeded because they surrounded themselves with brilliant people. Some of these languages started off as one-man exercises but most grow from collective academic or corporate efforts, and even the one-man band languages developed a fairly formal community.

The languages covered are object-oriented languages (C++, Objective-C, Java, C# and Eiffel), functional languages (ML, Haskell, APL), glue languages originally designed to occupy the space between Unix and C (Awk, Lua, Python, Perl), languages designed for embedding (Forth and PostScript). Dartmouth Basic, SQL and UML are basically their own things. To be honest UML does not really fit into the book in my view since it is a formal design description language rather than an executable programming language. The languages were created between 1964 (Dartmouth BASIC) or maybe 1957 (for APL) and 2000 (C#).

I was sad to note the absence of a chapter on FORTRAN but John Backus, the inventor of FORTRAN died in 2007 – a couple of years before the book was written. Also there are no women interviewed in this book, a quick search reveals there are a number of programming languages invented or co-invented by women. COBOL, invented by Grace Hopper would be a prime candidate here but she died in 1992. Small Talk which inspired a lot of object-oriented languages was co-invented by Adele Goldberg and LOGO co-invented by Cynthia Solomon would fit rather well into the book.

The interviewers clearly had a set of questions which they asked each interviewee and the varying results indicate which questions chimed with the interests of the interviewee. The topics included concurrency, how to manage feature requests for languages, working in teams, debugging, software engineering and teaching.

The authors of the object-oriented languages (C++, Objective-C, Java, C# and Eiffel) are somewhat at each others throats. However, they are all pretty clear that object-orientation is the way forward for large software projects although they see encapsulation rather than inheritance or reuse as the key benefits it brings. There is a degree of condescension towards those languages that they perceived to have been successful as a result of marketing.

The authors of the functional programming languages are more interested in formal specification, I feel I should learn more about type theory. I have looked at Haskell in the past, and found it a bit challenging, however ideas from Haskell and other functional programming languages have made it into Python, my preferred language. The chapter on APL was entertaining, it was conceived and developed as a coherent formalised system for describing algebra the authors did not touch a computer for a number of years after “development” started in the mid-fifties. It is written as symbols which are challenging to enter on a conventional keyboard, you can see it in action here.

Tedd Codd’s relational database design was core to the success of SQL, and is largely why it has not been replaced. SQL was designed alongside IBM’s System R but Oracle produced the first commercial SQL engine.

I learnt a few random facts from the book which I can’t write as a coherent story:

  • Charles H. Moore – author of Forth: “Legacy code may be the downfall of our civilisation”;
  • Awk is an acronym of its authors names, Alfred Aho, Peter Weinberger and Brian Kernighan;
  • Tom Love – co-author of Objective-C – “100,000 lines of code fills a box of paper and requires 2 people to maintain it. Test cases should be another two or three boxes.”!

The book would have really benefited from some sample code in each language, perhaps in the manner of Exercises in Programming Style which implements the same algorithm in different programming styles. I picked up Beautiful Code by Andy Oram and Greg Wilson, interviews with programmers, for my reading list. As well as The Mythical Man-month by Frederick P. Brooks, Jr which I probably should have read years ago.

I found this book really interesting, in part as a way of understanding how the programming languages I use every day of my working life came into being but also to understand the mindset of highly skilled programmers.