When we think of software engineers, we tend to imagine front-end engineers, who build out systems (websites, mobile apps, etc.) that users directly interact with, or backend engineers, who deal with collecting and transforming data. But for all these components to work, developers need the ability to deploy their apps, or allow their separate services to talk to each other. These problems and many more, invisible to the end users, are the domain of infrastructure software engineers. Just like the public infrastructure of roads and electricity grids, software infrastructure needs to operate at a massive scale and be extremely reliable….