Nobody is Complaining
Sometimes we fall into the trap of thinking that since no one is complaining about our work then everyone must be happy with it. This is a dangerous mode of thought because our customers may not in...
View ArticleDeferred Technical Debt is Just Bad Design
Technical Debt is a metaphor to describe software rot. The idea is that each time software engineers take shortcuts in the code they incur “debt” in the code base. Each time future engineers must read...
View ArticleTIL: How to break a Windows Server with a “
The Context I’m working on bringing Octopus Deploy into our company. We have a good number of TopShelf services. Octopus Deploy does not directly support installing Topshelf services so I’m creating...
View ArticleStatus Report on my Software Engineering Intership
In the time since I first wrote about my software engineering internship program I’ve gotten a bit more organized and had some new observations and insights. The philosophy behind the program is the...
View ArticleDeployment Pattern: Service Health API
I’m in the midst of setting Redacted Financial Services Inc. up to use Octopus Deploy. An issue we’ve had with automated deployments in the past is that the tooling reports that everything is okay, but...
View ArticleKCDC – The Best Conference I’d Never Heard Of
When I started following @OctopusDeploy on twitter in preparation for adopting it for Redacted Financial Services Inc., I saw that they were sending representatives to the Kansas City Developer’s...
View ArticleOctopus Deploy – Environments
DevOps is a relatively new space in the software engineering world. There are a smattering of tools to aid in the automation of application deployments, but precious little guidance with respect to...
View ArticleOctopus Deploy – Roles
DevOps is a relatively new space in the software engineering world. There are a smattering of tools to aid in the automation of application deployments, but precious little guidance with respect to...
View ArticleOctopus Deploy – Variables & Variable Sets
DevOps is a relatively new space in the software engineering world. There are a smattering of tools to aid in the automation of application deployments, but precious little guidance with respect to...
View ArticleWhy We’re Migrating From Chef to Octopus
Why We’re Migrating From Chef to Octopus A couple of months ago I started leading a team that was using Chef to manage our deployment infrastructure. We are now migrating from Chef to Octopus Deploy. I...
View ArticleAsynchrony in Powershell
As part of our Octopus Deploy migration effort we are writing a powershell module that we use to automatically bootstrap the Tentacle installation into Octopus. This involves maintaining metadata about...
View Article10 Things I Wish I Had Known Before I Switched to DevOps
1. DevOps is hard It might not seem like it, but DevOps is hard. A few years ago I thought to myself that it can’t be that difficult since installing an individual application isn’t that difficult. I...
View ArticleNBuilder 4.0.0 Released
It’s been 5 years since a version of NBuilder was released. As happens to many of us, the original author got busy with life and was unable to spend the time brining it up to date. I volunteered to...
View ArticleNBuilder 5.0.0 Released: Now the .NET Standard 1.6 Support
NBuilder 5.0.0 is now available on NuGet.org. Breaking Changes We have dropped support for .NET 3.5. It is becoming cumbersome to support such an old framework in the build chain. We now support .NET...
View ArticleStay Focused on the Goal, Not the Metrics
The goal is the thing you are trying to do. The metric is how you are measuring your progress toward the thing you are trying to do. Metrics are only as good as their ability to measure progress toward...
View ArticleA New Chapter at Microsoft
I am leaving Redacted Financial Services* in November to manage an IT team at Microsoft. I am changing the focus of my career from the day-to-day tech toward management–strategy over tactics. I’ll be...
View ArticleProposed Quality Metrics for Engineering Managers
As a manager I’d like to have some data-driven metrics by which to decide where to focus my questions and priorities for making improvements on my engineering team. Not all of these metrics will be...
View ArticlePowershell Gems: Destructuring
Destructuring What is destructuring? Destructuring is a convenient way of extracting multiple values from data stored in (possibly nested) objects and Arrays. It can be used in locations that receive...
View ArticlePowershell Gems: Array Comparisons
There is a shorthand syntax that can be applied to arrays to apply filtering. Consider the following syntactically correct Powershell: 1,2,3,4,5 | ?{ $_ -gt 2 } # => 3,4,5 You can write the same...
View ArticlePowershell: How to Structure a Module
There doesn’t seem to be much guidance as to the internal structure of a Powershell module. There’s a lot of “you can do it this way or that way” guidance, but little “this has worked well for me and...
View Article