We all probably know what a software developer is as the title has been around for decades. In the past, the position was known as a computer programmer. It’s basically a position where the code is written to develop software and applications that will be used by users. However, an infrastructure developer is not a commonly known term and is a more recent position found in the IT world.
Before virtualization, everything was hardware within the infrastructure, with physical everything, from the server to the network. There was no way you could be an infrastructure developer since the infrastructure was a physical component. Today, with virtualization, things have changed. One can now actually write code to develop a software infrastructure.
What you will now see is a job channel for infrastructure developers. This position is one that treats code that is written for the orchestration of infrastructure. Instead of writing code for a web app or other application, you are instead adding in another server or adding to the environment in which the application sits on top of.
For example, let’s say a software developer is working on a web application that stores employee records. The application will require certain aspects to run. You need a server or infrastructure for the application to operate. So, you would have your web app that consists of a bunch of files that are hosted on a website.
First, you need the website, you need applications, application tools, IIS installed, operating system, virtual machine, etc. There are so many components needed, and the infrastructure developer will develop the code to create everything needed to run what the company needs.
All these components are created first when building the infrastructure. Once this is completed by the infrastructure developer, a software developer will come in and add the ‘cherry on top’ so to speak, by adding the application needed. The infrastructure developer is needed to get the ball going before any application can be added.
My position as an infrastructure developer is all about automation. I am currently working on a project that will allow an app to be built that will have all the infrastructure built-in. Infrastructure is basically an app dependence anyway. If you want to be completely independent of where you want to put this, you need to build all the logic inside of one package where the code can build the infrastructure for the application on-demand.
In this project, when an application needs deploying, the deployment code will check all the way up from the virtual machine layer to the application itself to ensure it’s in the desired state. So, if that environment does not have the virtual machine it needs, it will build it. It will continue to check for dependencies and then build what is needed as it goes up to the end application, as it is deployed. Layer by layer, the infrastructure is built until the app stage is reached and the process completed.
Essentially, an infrastructure developer is a cool and valid job title. The position is one that if you really enjoy automation and configuration management stuff, then you are sure to enjoy the daily work. Even though the position may not receive the press or recognition that software developers do, it’s okay because they couldn’t do it without us!