Inner Product's Best of 2019

By Adam Rosien on 31 Dec 2019

Here’s a sample of the best writing, talks, and people we’ve come across in 2019. We hope you enjoy them as much as we did.

Adam, Mark, Noel, and Stewart


Many of our favorite talks took place at Strange Loop, but sadly none of us could attend. For all the conferences that make their talks accessible to the public, thank you!

Intro to Cats-Effect, Gavin Bisesi

Adam: Gavin provides a thorough and illuminating tour of cats-effect for any Scala developer.

Performance Matters, Emery Berger

Mark: While I spend a lot of time ignoring performance in order to model correct and reasonable code, performance can not be ignored forever. Making changes to improve performance can have surprising consequences. Everybody should watch this talk before making performance enhancements. It is far more than Stabilizer. The lessons learned go beyond any particular language.

Scale By The Bay 2019: Paul Cleary, Re-programming the programmer, from Actors to FP, Paul Cleary

Adam: Paul shares the real story of how he and his team redesigned and refactored a system to use the Typelevel ecosystem of libraries. It’s not just a technical story, it’s a story of the process the team went through to mentally switch gears to a more principled and functional approach.

Probabilistic scripts for automating common-sense tasks, Alexander Lew

Mark: An accessible and practical talk about using probabilistic scripts for automation. It describes common challenges and how to address them. It does this in a useful way.

Finding bugs without running or even looking at code, Jay Parlar

Mark: This talk is fascinating. The only thing better than eliminating defects at compile time is before writing any code at all! Jay describes compelling examples from his experience that really motivate Alloy, TLA+, and the ideas in general.


The “real programmer” myth, Maciek Gorywoda

Adam: A brilliant exposition of one of the worst parts of our (programming) culture.

NaN Gates and Flip FLOPS, Tom 7

Adam: If you ever feel like you’re too big of a nerd, then this video will let you know that you’re fine, really, you’re just fine. It’s also hilarious.


Parse, don’t validate, Alexis King

Definitely our favorite post of the year.

Noel: This blog post clearly articulates a concept I feel is at the core of effectively using types. It gives a name to something I have unconciously understood but have never been able to so plainly and concisely communicate.

We attempted a similar subject at ScalaDays Berlin 2018 entitled “Strings are Evil”, inspired by Changlin Li’s 2018 NEScala talk “Moving Beyond Defensive Programming”, but Alexis’ post has the best exposition.

Yes! and …, Tom Critchlow

Noel: “[F]or knowledge work, the performance of the work is the work” is the line in “Yes! and…”, a blog post inspired by a book, that told me I needed to pay attention to this. This strongly resonates with my expererience. It’s not enough to do the work; the work must be seen to have value. The ideas in this post, and its follow ups, are particularly relevant for consultants but apply for anyone who works in any but the smallest organizations.

Using a hard disk as a listening device, Andrew Kwong, Wenyuan Xu, and Kevin Fu

Mark: It is fun to see how people can use things in unexpected ways.

Other Recommendations

ScalaBridge London

Noel: “Best of” lists often imply passive media consumption, so I wanted to add something that has definitely required active engagement this year. ScalaBridge London aims to increase diversity within the (London) Scala community. Our main way of addressing this is by teaching Scala. We’ve been running for about a year and at least two of our students have been hired as Scala developers in that time. Being involved with ScalaBridge London for me has been a great experience on so many levels. It’s enabled me to get further into teaching and start dipping my toe in sociology, it’s some of the most meaningful work I do, and it’s just plain fun to hang out with fun people.

LSE Podcasts

Noel: I’m unclear how I ever did housework without podcasts. I listen to a lot of podcasts but those from the LSE are the ones that I think about the most. There is fantastic stuff here that helps me better understand the world and myself.

The Unison language

Mark: It has some exciting innovations. Can’t wait to really try this. Watch the videos. Here is one from Strange Loop 2019 but there are others that are good also. Search Youtube.

Creative Coding

Noel: One of the themes of my year was creative coding. Although there are a lot of resources for creative coding I’m not a fan of the imperative approach the majority take, which I think obscures the essential ideas. Instead I’ll link to three books that address the intersection of maths and art in different ways: Creating Symmetry, The Seduction of Curves, and Mathematics and Art: A Cultural History (notably all published by Princeton Press). I got Creating Symmetry a few years back but this is the year when I spent the most time with it.

Turtles in Minecraft

Mark: These turtles are little robots with a programmable, on-board computer. They can be programmed to perform necessary but tedious work so the player can focus on other activities. The turtles use Lua for reasons I have yet to determine. I think mining and other turtles might be good motivation for learning programming. Hopefully my son and I can dig into this, so to speak, when he returns this summer. These are not from 2019, but I just learned about them this year.

For all the Family

Noel: The Turing Tumble is elegant and accessible. Noelle Stevenson doesn’t just have a great name but tells great stories in comics and cartoons.