When text-only communication worked Way back in the mists of the 2000s, I worked on a project with a guy in Melbourne. Now, I used to get to the office early because I liked driving my Alfa Romeo fast before the traffic built up, and he tended to stay a bit later than usual
How to spend next to nothing on AWS Here's something you don't hear often from a head of engineering: my AWS bill is tiny. I wish I could share the actual figure because it looks like a typo, but to give you an idea there's a place where I could save another
Management: Small Team vs. Large Team An unexpected difference building a startup from the ground up was going from managing multiple engineering teams back to just one single small team. Because I think the skills involved are really quite different. Large: Managing Managers Once you have more than a dozen or so people, you tend to
architecture A Real-World Scaling Challenge This week I've been solving scaling challenges. Not the kind of CV-embellishing "at global scale" stuff, but some simple and honest problems I actually have. It's all bundled up into one scaling problem, which breaks down roughly across the following areas: * Stuff we deliberately
organisations Specificity I've become that annoying person who asks, "you say it takes a long time - but how long exactly? Which part consumes the most time? How did you measure?" There's a reason. For the past year or so I've been working at
iconoclastic nonsense Your Tech Blog Isn't Helping For the third time in a week, I found myself having to look at source code to solve a simple problem. First it had been Terraform, then it was the AWS SDK, and now it was Terraform again. Each time I'd fallen into a gap in the documentation,
organisations Steak and Salami Ever had the feeling you're working constantly and getting nowhere? Specifically, the one where you've got a dozen things to do and none of them are getting done? Did you find that the more you worked, the worse the problem seemed to get? This is something
go C# to Go: a beginner's journey (part 5) It's time to clean up GoRender and establish a solid base for adding all the lighting, shading and multiple output targets a full-featured sprite renderer needs. One thing I've noticed is my "iterate and stabilise" mode has rather less "stabilise" than I
go C# to Go: a beginner's journey (part 4) Last time round I had got to the point of raycasting a silhouette on a spritesheet, with a largely clean solution that only had a few areas of potential messiness. I think the last useful thing I can do in terms of "learning Go while cleaning up an old
go C# to Go: a beginner's journey (part 3) The next step for GoRender is an easy choice. I want to write the raycaster, a critical part of turning voxel objects into pixel sprites. The C# version involves a lot of vector mathematics, so implementing it in Go will touch on yet another new area. At the end of
go C# to Go: a beginner's journey (part 2) I'm back on the Go trail, and I have two options for what to do next: 1. Improve my existing code with better knowledge of the IO libraries. 2. Port across some more Transrender functionality.
go C# to Go: a beginner's journey How do you learn a new language? Books, practice and a decent chunk of pair programming with someone who knows what they're doing, if available. Those are my favoured options, and when it comes to practice there's nothing like converting an existing piece of code from
existential crisis Improvement and imperfection I had a minor crisis of confidence earlier today looking at some of the things I've done. Most of my impacts could be uncharitably described as, "you took something that was outrageously shit and made it merely kinda bad". But on second pass I don'
agile Servant Leader, Helicopter Parent Why is developing software so slow now? Provocative statement, so let's unpick. Maybe I'm getting more impatient as I get older, but the pace of modern software development feels glacial. Honestly, why do simple app features or new API endpoints swallow half a team for three
teams Interviewing by Teaching I've been trialling a new technique in interviews recently, and the results so far have been good so it feels worth sharing. Essentially it's a refinement of the "try to make the interview as much like the real work environment as possible" approach I&
teams Mentoring, not hiring: The Reality Semi-anonymous Internet idiots like me love telling you all these things you should be doing about team structure, organisational approach and Really Exciting Technology but we're often a bit light on what happens when you actually do these things, and your self organising consensus driven team hits the
agile Methodology? What Methodology? I think I'm getting kind of post-methodology in my thinking. I don't really care what it is or what it's called, but I do care that it facilitates three critical things
teams How to really identify a 10x developer The sudden trending of "hashtag 10x developer" worries me. It worries me because it's not really about 10x performance, at least most of the time I've seen it. Instead, it tends to bundle two often overlapping movements which are unrelated to performance.
agile Agility and the power of No One of the nice things for me about writing is I get to go back to my old articles every once in a while and see where my viewpoint has matured, where it's changed...
organisations The 10x Developer and You I'm in the mood for sarcastic graphs. I think (I hope) that the idea of the "10x" developer is not an astonishingly new and radical one. People in the upper quartile of the profession are not proportionately better than those in the bottom quartile, they'
teams Thoughts on Interviewing I think I'm destined to always be an iconoclast when it comes to interviews. Not quite so much as the days when "let's ask programmers some questions about programming" was a controversial idea, but I still find that when I introduce people to the
teams Thoughts on team leadership and metrics I realise that in four or so years of this site I've never talked properly about team leadership, which is a bit of an omission given how much time I've devoted to organisational design and how closely the two are related. I'm going to
development The Unreasonable Speed of Rust Rust is fast. No, not the systems language - I'm talking about rust in the sense of losing skills in programming languages when you're no longer actively working in them. I've spent a bit of this week getting back up to speed with JavaScript.
development How I Learned To Stop Worrying And Love The Uncertainty Data/object anti-symmetry broke me. The reason for this breakage was established a year or two ago. I had the fortune to work with some very smart people, who were very good at software engineering. As someone who'd had to fight for every slight increment toward clean coding,
organisations Two Transformation Questions What exactly is a transformation? Is it "go to the cloud" or "be Agile" or "containerise the things"? Despite the number of organisations which state those as their goals, I'd say it isn't. Those examples are merely means to an