Redgate’s Technology stack is evolving. We’re still going, but we’ve already got some Kubernetes, a whole lot of TypeScript and even some Go and a growing number of MacBook's!
A few years ago, at Redgate you probably spent most of your time in Visual Studio, writing in C#, and screaming in frustration if you ever had to do anything in the UI (WPF / WinForms / knockout.js). Nowadays, well, let’s say we’ve modernized!
Let’s start with the “small”. We have migrated one of our earliest products, SQL Compare, over to use .NET Core. Not only that, but it’s cross-platform now (pull it from the SQL Compare Docker image). The migration on its own is a pretty cool story — there can’t be many products written initially in .NET 1.0 that have managed to make the complete journey across all .NET versions!
SQL Monitor is currently transitioning from a legacy ASP.NET applications with a bunch of web technology to a streamlined implementation using ASP.NET Core with a React frontend. The latest release uses .NET 5 and has given the product a significant speed boost! Fun fact, the author of Knockout.js used to work out at Redgate on the SQL Monitor team! SQL Monitor probably (my time didn’t overlap, so I’m going to make an assumption that sounds good!) had the early design patterns and ideas that have made their way into Knockout.
Redgate acquired Flyway in August 2019, and this has broadened both our technology stack (Java!) and the databases we support. Flyway had over 40,000,000 (feels good to write those many 0’s) downloads last year. How cool is it that we’re maintaining an OSS package that’s so widely used? This year’s focus is a free SaaS product that provides actionable insight into development/deployment using Flyway. Hosted services are exciting for development and open up a new palette of technology choices.
Our Redgate Deploy solution moves us to a cross-RDBMS future. Under the hood, this too has freed our technology choices. We’ve built Redgate Change Control as a cross-platform app written with a C# back-end, and a frontend in Electron/TypeScript/React.
The Redgate Platform is our solution for larger Enterprises, giving them a single tool to manage our products across the organization. We’ve using Kubernetes as the underlying infrastructure, together with Dapr, LinkerD and currently hosted on Azure.
As Head of Engineering at Redgate, I’m super proud of the work we’ve done so far. We’ve managed to modernize a vast amount of code (and still deliver for the business) and we’ve managed to do this incrementally (no big bang rewrite failure stories).
How have we done this? Firstly, we’ve got awesome people. There’s no magic to any of this, it’s just excellent work consistently applied over a long period of time. Do that enough and you transform. As a leader, the really tough bit is stepping back every so often and realizing how much has actually changed (which is kind of the purpose of this post!).
From a company culture point of view, one lesson for me is knowing the ingredients you need for a learning culture. You need both space (we have dedicated time to Learning and Development every Friday afternoon), but you must have direction too (see What does an engineering career look like at Redgate?). Put this together with our engineering academy, hire people with a thirst for knowledge and you’ve baked the L&D cake.