I’ve currently been using Claude Code a lot in my day to day work. There are a lot of AI hot takes floating around the tech industry right now. One way you can cut through those hot takes is to observe the impact it is having where you are . I work at Octopus and am surrounded by some of the very best software engineers in the industry. I value and leverage their opinions continuously in my…
In September 2024, I gave a talk at YOW! Tech Leaders Summit Melbourne entitled The Surprising Truths Behind Good Mentoring . It built upon and extended on a previous article I wrote called How Not To Suck At Mentoring , and incorporated a bunch of new learnings as well. Rather than rewrite the talk as a post, I thought I’d share the script for the talk, along with the slides. If…
When writing a technical strategy, it’s useful to have a clear picture of the technical problems you’re facing in your organization. Ideally, you should be able to make a clear problem diagnosis, knowing which technical problems are going to impact your organization’s business strategy, and at what magnitude. A common state that many engineering organizations end up in is where…
The software you own will only ever get larger and more complex over time. When your software is smaller, and your team is smaller - say 20 or less engineers - the best way to tackle problems is to get the team , or a subset of it, into a room. With a team of that size you can build consensus on the most important problems to solve, everyone can agree/disagree and commit to solutions, and you can…
In software, architecture encompasses: The structure of the system The relationships between its components The properties the system emits (sometimes referred to as the “ilities”) The behaviors the system encodes Some systems may comprise a single, large piece of software. Others may be decomposed into smaller sub-systems that work together to accomplish goals. Creating a new…
In 2019, David Gardiner and I organized DDD Adelaide, a not-for-profit software conference that sought to bring the Adelaide software community together. The why behind DDD Adelaide (and many of the other Australian DDD conferences) isn’t having high profile speakers, or a primary focus on content. This is exemplified by the way the agenda is democratically chosen, with talks being voted in…
There is a lot of good documentation for how to configure authentication and authorization in an ASP.NET Core app. If you want to set up a secure application using the out-of-the-box components, Microsoft have you covered. However, if you are faced with a not-so-standard scenario, it can get a bit hairier. I was working on some software recently that is migrating to ASP.NET Core. It uses the new…
This post is one of a collaborative pair of posts produced by my good friend and Ruby afficionado Rachael Goodenough and myself. Please make sure to read Rachael’s Post before mine to get the full story 😀 Introduction I’ve been leading teams for a while now - helping small groups of very smart people achieve great things. A lot of my job involves understanding everyone’s best…
This is a Lightning Post - something that I thought I’d try, a shorter form post on interesting problems or topics I come across. Credit to Simon Cook for dropping that term on the Heaps Good Dev Slack - hopefully by crediting him I won’t owe royalties. I have a pet project which comprises of a few components - a front end SPA, a back end API, and some worker processes. I’ve been…
This is the final installment of a three part series in which we dive into modern application authentication solutions - the hard way. Part One: The Hard Way Part Two: The Hard Way, Continued Part Three: The Hard Way: Return Of The Specification The Hard Way: Return Of The Specification We are continuing our quest to implement a client that will perform the OpenID Connect Authorization Code Flow .…
This is the second part of a three part series in which we dive into modern application authentication solutions - the hard way. Part One: The Hard Way Part Two: The Hard Way, Continued Part Three: The Hard Way: Return Of The Specification The Hard Way, Continued We are continuing our quest to implement a client that will perform the OpenID Connect Authorization Code Flow . It is one of the two…
This is the first part of a three part series in which we dive into modern application authentication solutions - the hard way. Part One: The Hard Way Part Two: The Hard Way, Continued Part Three: The Hard Way: Return Of The Specification Introduction If you are a software developer, security is one of your primary concerns . If you ship code, and that code deals with any sort of sensitive or…
I’ve been building a Thing . This thing works with the Microsoft Azure platform, and allows users to provision and modify certain Azure resources outside of the Azure Portal itself. The Thing is entirely an Angular SPA. To work with Microsoft Azure resources, it communicates via the Azure REST API . It doesn’t use any special frameworks or SDKs to do so, just plain old HTTP calls to…
I have an open source .NET library which I maintain named Conventional . It helps developers maintain standards within their codebases, doing things like making sure types have appropriate access modifiers on property accessors, making sure naughty things are not in use throughout a codebase (Looking at you DateTime.Now ), and making sure types are located in sensible places - in amongst a whole…
Expectation management is the most important thing we do in software delivery. It should be the first thing we do, and the last thing we do. My feelings for expectation management are evidenced by the fact it is the very first thing I covered in the Execution section of Discover, Decide, Deliver Part Three: Deliver . My colleague Darren Neimke came to me recently to discuss how to best set…
I’ve been working on a personal project recently, that involves a set of services that are hosted in Kubernetes, that work together to accomplish facilitating a large number of people being invited to complete a submission of some sort, and managing the submission process. I’m sure Australian readers could hazard a guess at what I’m emulating. Part of this project involves a…
This is the final instalment of a three part series in which I cover my methods of delivering successful business outcomes via software. Part One: Discover Part Two: Decide Part Three: Deliver We have now decided to proceed with a software initiative. We have a well defined goal, a high-level solution scope, an awareness of the risks, assumptions, issues, and dependencies that exist, an idea of…
A “Potential future post” based on how we evaluate ROI in IT teams. Based on Liam’s feedback “I preferred it without the NPV discussion. The uncertainty in ROI calculations makes NPV less important. Its hard enough to get sponsors to think about the return side at all.” This was the content that I added, then removed: Instead we should simply be comparing our SMART…
This is the second part of a three part series in which I cover my methods of delivering successful business outcomes via software. Part One: Discover Part Two: Decide Part Three: Deliver We have now spent some time discovering potential problems or opportunities within our or our partner’s business, ensuring we have identified business goals that our delivery can contribute to, and spent a…
I have always been an avid reader. Some of my fondest early memories are from reading series of books like Brian Jaques’ Redwall , or David Edding’s The Belgariad series. I get a lot of joy from a great fictional tale, and I credit a lot of my communication capability to the amount of reading I did in my formative years. Having almost all of my formative years spent reading purely for…
This is the first part of a three part series in which I cover my methods of delivering successful business outcomes via software. Part One: Discover Part Two: Decide Part Three: Deliver Backstory A customer approached me, who works in a key ICT management position within a large, publically traded company. They stated that their company was keen to adopt agile methodologies, but were not sure…
I’ve been working on a small side project to help out our Talent Acquisition team at Readify. The project will help the team perform quick assessments of resumes and profiles of potential candidates, as a basic part of initially vetting the candidates for a given role - to augment a bunch of human-based assessment. The requirements for the solution are: Allow a user to upload a pdf or docx…
Recently, the inimitable Geoff Huntley , a colleague of mine, gave an internal presentation talking about how he manages his online persona and brand. One thing I was inspired by in his talk was how deliberate Geoff is in this space, and the value he gets from his brand, and his website. I asked Geoff what he used for his website - half expecting it to be some crazy Rube Goldberg like…