Posts
Software architecture hot tips (Mastodon)
software_architecture joke
Good things are better than bad things, except when they're not ... (1/1)
Drop the brand, talk about the mechanism
sociotechnical influence
Have you ever been stuck furiously debating a technical methodology, but you talk past each other, frustrated and unmoved? The solution is often surprisingly simple: ditch the brand names, and talk about how things work instead. ...
FP community - the elephant in the room (Twitter)
fp_community
šŸ§µThere's been a bit of an elephant in the room for Aussie FP community organisers the last couple of years. I thought it would be fun to share and compare notes. The root of the "problem" is that functional programming won! ... (1/12)
String diagrams - related links (Twitter)
software_design string_diagrams
If you're lucky enough to write a thread that blows up and is read by lots of smart people, turns out you get sent some really amazing stuff! šŸ˜ŠThis is another thread to list 31 (!!!) of the interesting related things people mentioned in the replies: ... (1/33)
String diagrams for software design (Twitter)
software_design string_diagrams
My best kept secret* is that string & wiring diagrams--plucked straight out of applied category theory--are *fabulous* for software and system design. And you don't have to learn a damn thing to start using them. šŸ™Œ *will talk to anyone who'll listen ... (1/16)
Use the decorator pattern for clean I/O boundaries (REA tech blog)
boundaries design_patterns
Thereā€™s a pattern that I keep recommending to teams over and over again, because it helps separate concerns around I/O; sending and receiving things over a network, interacting with AWS, saving and loading things from data stores. Itā€™s an old idea; youā€™ll find it filed under ā€œDecoratorā€ in your Gang of Four book. ...
Explanation of the "monoid in the category of endofunctors" thing (Twitter)
monads category_theory
Ok, so I've been rightly challenged on my boast that I can explain the "monad is a monoid" thing to you with pen and paper. Here goes: ... (1/9)
Don't do the "monoid in the category of endofunctors" joke (Twitter)
monads category_theory
A small part of me dies when you use that "A monad is just a monoid in the category of endofunctors, what's the problem?" joke in your slides. Please don't use it. A few reasons (thread): ... (1/7)
Not Good Enough (REA tech blog)
culture imposter_syndrome
ā€œIā€™m not good enoughā€ says the graduate to herself, shuffling her feet. ā€œAll those uni assignments made no difference; everyone knows more than me. Why would anyone want to listen to what I have to say?ā€ Surrounded by self-assured, battle-hardened colleagues, there seems an insurmountable distance to coverā€”but one day, sheā€™ll surely know enough. ...
How We Used Category Theory to Solve a Problem in Java (REA tech blog)
category_theory design_patterns
A few months ago, my colleague Chris Myers and I used some basic category theory concepts to guide us to a design that elegantly solved a problem in a Java codebase. ...
Getting Shit Done (REA tech blog)
culture startups tech_debt
ā€œGetting Shit Doneā€ is the catchphrase on everybodyā€™s lips, and deservedly so! When we deliver new functionality, our users regroup and flock to us, our customers grudgingly respect us, and our shareholders rejoice. When the novel concepts invented by our product managers take shape as they watch, their eyes light up with pride and enthusiasm. ...
To Kill a Mockingtest (REA tech blog)
testing mocks modularity boundaries
Please donā€™t use mocks or stubs in tests. While they are seemingly ubiquitous in enterprise development, they have serious drawbacks, and typically mask easily fixable deficiencies in the underlying code. ...
The Abject Failure of Weak Typing (REA tech blog)
types type_systems
Over the last few years of maintaining code old and new at REA, it has become abundantly clear that the neglect and misuse of type-systems has had a sharply negative impact on our codebases. Here we address the concrete causes and consequences, and propose concrete and achievable solutions. ...