#54 Mark Seemann, Functional Programming and F#

Mark Seemann, author, creator of AutoFixture and Plural Sight coach tells me about functional programming and F# in particular.

His background, started with VB and C++, now programs in C# only for money; what functional programming is; isolating side effects to boundaries of the program; is functional programming only suitable for certain types of application; isolation, great for testing; all of .net is available; composing functions; interfaces, strategy pattern, dependency injection; differences in architecture when developing in F#, quoting Alan Kay; deploying and devops; roslyn and f#; the book that started it for Mark by Tomas Petricek, wrap up.

Book recommendations

I sometimes ask people to recommend a few books that are relevant to the topic and a few that have been influential to them, Mark was kind enough to write the following about his choices.

Clean Code, by Robert C. Martin. This isn’t the book that changed my approach to programming the most, but it’s the book that I recommend that all programmers should read. While examples are in Java, and thus seem to apply to OOD, I think many of the points apply equally well to FP.

Design Patterns, by Eric Gamma et al. This book changed the way I programmed. The reason I don’t list it as number one today is that it’s not interesting to Functional Programmers, but anyone doing OOD should read it.

Refactoring, by Martin Fowler et al. Another OOD-specific book, this one is a gem because of the list of code smells it contains.


Blindsight, by Peter Watts. This book changed the way I think about consciousness, cognition, and a host of other things. To say anything more would be a spoiler.

Atlas Shrugged, by Ayn Rand. This one is embarrassing, but I grew up in the 1970s and 80s Denmark, which was as leftish it could be and still be a NATO member. Being good at something was more of a burden than a blessing. When I read Atlas Shrugged in my early thirties, it was a revelation to discover that there even exists a philosophy that views being good at something as a moral superior position. There’s a lot of Randism that I don’t buy into, but this book taught me that it was OK to be proud of being good at something, and for that, I’m grateful.

The Lord of the Rings, by J.R.R. Tolkien. There’s really nothing profound about this, and it isn’t a book I think much about on a normal day. It still holds the singular record of being the only book I’ve read and enjoyed in more than one life stage (twice when I was an adolescent, and a third time around 30). All other books I enjoyed when I was young, I’ve later found basic and disappointing.

Mark also keeps a list of must read books for .Net developers.

Download mp3 of podcast

#53 On Freund, Scaling Development

On Freund VP of Engineering at WeWork talks to me about how a company scales as it grows.

Who he is, background; WeWork is more than a real estate company; scaling in many ways, scaling ability to manage people is most important, promotion paths; change within the organization as it grows, speed vs agility, very hard for large company to change but it is still very productive; as you reach the growth stage more communication is needed; team structure communication channels and Conway's law; team types - big fat monolith type team, changing team structure to build microservices, MVC type team, infrastructure team; does an engineer have the skills to solve the monolith, fixing feature by feature instead of doing it all in one go, we work is hiring in Manhattan and Tel Aviv.

Download mp3 of podcast