Things Nobody Told Me About Being a Software Engineer

#290 – November 18, 2018

this week's favorite

Things Nobody Told Me About Being a Software Engineer

My dad started teaching me Basic when I was about 7 years old, and since about that age I knew that I wanted to build software for a living. It was obviously a fun and useful thing to do, and something that I could do well. But there is a big — and I mean Grand Canyon-scale BIG — difference between “programming” and working as a professional software engineer.

An Introduction to Recursion Schemes

In 1991, Erik Meijer, Maarten Fokkinga, and Ross Paterson published their now-classic paper Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire. Though this paper isn't widely known outside of the functional programming community, its contributions are astonishing: the authors use category theory to express a set of simple, composable combinators, called recursion schemes, that automate the process of traversing and recursing through nested data structures.

HTTP-over-QUIC to be renamed HTTP/3

IETF agrees to base the next major iteration of HTTP on Google's QUIC protocol.

Why “Agile” and especially Scrum are terrible

Agility is a good thing, no doubt, and the Agile Manifesto isn’t unreasonable. Compared to a straw-man practice called “Waterfall”, Agile is notably superior. Yet, so much of Agile as-practiced is deeply harmful, and I don’t really think that the Agile/Waterfall dichotomy is useful in the first place.

What's the largest amount of bad code you have ever seen work?

Oracle Database 12.2. It is close to 25 million lines of C code. What an unimaginable horror! You can't change a single line of code in the product without breaking 1000s of existing tests. Generations of programmers have worked on that code under difficult deadlines and filled the code with all kinds of crap.

newsletters