Joseph Ravenwolfe's Notes
Software Engineering

Software Engineering

This is currently an unordered dump of thoughts that need refinement.

  • Estimation

  • Queueing Theory

  • On Dry Code

  • A Way To Work Visually With Code

  • Use ASDF to manage all of your Kubernetes and Flux dependencies

  • Programming Fonts

  • Don't Commit Log Statements

  • M1 Mac Setup Guide

  • Setup iTerm

  • Junk Drawer Programming

  • Rust WASM

  • Other Thoughts

  • Create Your Own Automated Testing Framework Anywhere

  • Bookmarks For Later

  • Fake Agile - Cargo Culting Design Thinking workshops, and scrums, and retros without truly asking whether it works for them. I've seen this happen all the time with Scrum and everything else. Always saying it’s good without questioning. Not adhering to what Andy Hunt was saying about it

  • A better form of Tracer Bullet Development - like how a blurry image gets sharper and sharper as it loads. I should come up with a buzzword name for that

  • You can’t be influential if all you’re doing is cargo culting, very rule based and copying of prodcedures. You can’t be influential by copying procedures. Like Scrum

  • You Can’t Say “It’s Working” if you don’t have the data. Developers are just as guilty of this and will equally say something is working even when they don’t have the data to back that up

  • All of the bullshit that Software Engineers do

    • It’s your reputation in the line so you have to waste time trying to make it perfect
  • How to deal with always-available classes (like Ecto and JSON) that are put throughout your code when you are trying to adhere to Ring architecture and Functional Shell / Imperative core

  • Most companies with technology problems actually have people problems, online leasing being a good example.

  • Emergent Behavior vs Rigidly Defined Systems

  • Quantum Computing

  • Machine Learning

  • Deploying Apps

  • Electron

  • Docker

  • Kubernetes

  • Istio

  • Comparison of lab machines

  • Comparison of lab equipment

  • Guide to technology in the lab

  • Comparison of the software landscape in the lab

  • Determining what value you’re getting from your data

  • How we use Protocol Buffers and Tracer Bullet Development

  • Getting started with TBD

  • The difference between Protobufs and GRPC

  • Getting started with protocol buffers

  • How we use Kubernetes to do X

  • Why we’re using Istio

    • Auth
    • Storage
    • But that just scratches the surface
  • The biggest thing that strikes me working in tech leadership is how many biases there are that need to be navigated. Most times these biases are not well founded, are not appropriate for the situation in time, or they remove the human element from the equation and value the tools over the people at hand. In the worst case scenarios, they are downright detrimental to the business. I have encountered engineering directors with teams using Go, who push forth an Elixir effort simply because they do not like Go, at the detriment of the business. I have seen CTOs push forward on extreme scaling, spending hundreds of precious start up resources and thousands of dollars at the detriment of their business. I have seen IT and QA directors cause dissent and use their pull to fire engineering directors simply because they did not want to push forward with CI and Terraform. I have seen countless engineers also hide their biases by expounding the virtues and specs of said technologies. For these reasons I also tend not to trust those in engineering who attempt to hide their biases behind specifications or utopian propaganda goals. The pragmatic programmer. https://t.co/FY9jrxv6nC https://twitter.com/nateberkopec/status/1250584158620971008?s=21

  • Worth reading: https://m.signalvnoise.com/four-letter-words/ https://medicalxpress.com/news/2020-04-people-decisionand.html

  • Write blog posts about all this stuff: https://en.m.wikipedia.org/wiki/Theory_of_constraints

  • being a CTO does NOT mean being a benevolent dictator of technology https://news.ycombinator.com/item?id=22935878

  • Second and third order effects

  • Blockchain compliant database like Datomic

  • https://commoncog.com/blog/the-mental-model-fallacy/

  • Magic tricks of testing for JavaScript adapted from Sandi Metz

Why I'm Building a Side Dish (And Maybe You Should Too!)

Referred in


If you think this note resonated, be it positive or negative, send me a direct message on Twitter or an email and we can talk.