Platform engineering is the discipline of designing and building of toolchains (sets of programming tools used to perform a development task) and workflows (sequences of steps necessary to complete a task) for developers to work from. Essentially, platform engineers write code to facilitate the connection between hardware and software, so that everything runs smoothly. This enables self-service capabilities for software development companies like ours in the cloud-native era.
Platform engineering is on the rise, particularly for fast growing software development companies like ours. We established our Platform Engineering team in April 2020 because we felt it was important to devote dedicated human power to accelerate delivery and lessen the load on our DevOps team. The team’s main purpose is to standardize our practices in order to improve reliability, quality, and security. The team also aims to facilitate the daily life of developers as they implement processes, tools, and methodologies to support the software development life cycle and work on client projects.
Our developers are laser-focused on the features that will be most valuable for the client and their end users. Our PEs help them to stay on track by creating automations for as many tasks as possible that are repetitive or aren’t directly related to the project's domain.
“Even though it's behind-the-scenes work, we know that [our platform engineering work] benefits every project without bogging down other developers with non-domain related tasks.” - Evan, member of the Platform Engineering team
What does this mean for the client? Accelerated delivery, boosted quality, and faster ROI.
First coined in 2006 by Amazon CTO Werner Vogels, the “you build it, you run it” principle has become one of the foundations of the DevOps movement. We stand behind this and, as such, every developer at Osedea is doing (or is at least is working towards) Full Cycle Development (ou Développement « full cycle » chez Osedea). This means that a developer must be able to set up or adjust the infrastructure for a feature by themself.
Working this way makes developers autonomous and responsible for what they produce. But, it can be a challenge because it requires developers to change their mindset (shifting from developing code to configuration of cloud services/infrastructure) and gain knowledge about each cloud service to determine which will be the best fit for their application’s purposes. Getting up to speed on infrastructure is way easier when the developer has some guidance and tools that are ready to use.
In practice, the Platform Engineering team has multiple objectives:
- To provide and maintain tools that enable and facilitate infrastructure setups, deployments, ops, and maintenance
- To test new technologies, to discover better alternatives and new areas of improvement
- To train developers on DevOps topics and internal tools that they've implemented
- To help design infrastructure architectures on more complex projects, acting as temporary consultants
Platform Engineers demonstrate hard work, dedication, and a real passion for infrastructure. They are driven by a desire to improve the company as a whole—supporting their colleagues and our clients' projects.
Unlike at other software development companies, developers at Osedea aren’t tied to a specific team. They work on client projects and may be part of multiple transversal teams. In these cases, they will have dedicated time for their team, and an adapted workload— splitting their time between the internal projects and the client work to which they bring their knowledge.
Since spring 2020, our Platform Engineering team has hit multiple milestones and has celebrated several successes.
One major project our team worked on was the implementation of Osedea's own Terraform modules. Terraform is an open-source infrastructure as code software tool that enables you to safely and predictably create, change, and improve infrastructure. Having our own Terraform modules allows us to create infrastructure services with predefined settings that are often used, so we don’t have to reinvent the wheel for every new project. New modules are regularly created and existing modules are maintained over time.
The Platform Engineering team also works on custom solutions for unique problems, helping to identify the issue and propose solutions, as well as help implement these solutions. For example, the team helped implement AWS Step Functions service for a project that was previously using AWS Lambda Functions which didn't fit the project anymore due to complex workflow needs. In another project, the team co-designed the infrastructure of an application using Azure OCR service and serverless functions to process and analyze administrative documents.
The Platform Engineering team celebrates even the small wins, such as helping a junior developer set up their first infrastructure. This means that the learning of operations and infrastructure at Osedea is growing and the junior developer in the future will be capable of transferring their knowledge to their teammates.
- With the aim of all developers becoming full cycle, the Platform Engineering team is continuously getting everybody on board with infrastructure. Two workshops are coming up this year to level up the team's skills. We’re currently creating new Terraform modules to configure Azure services quickly for the whole organization. The goal is to introduce these to the team with documentation and examples to facilitate the creation of Azure services.
- At the same time, Platform Engineering team members continue to hone their own skills. They’re each expected to pass AWS and/or Azure Cloud Architect certifications so that developers have more options when choosing a hosting provider.
- As a rule of thumb, the team makes sure that tasks are assigned to non-fully expert members to make sure everyone is constantly improving themself.
At the end of the day, being part of the Platform Engineering team is a great way to work on hot new tech. The team is constantly trying out emerging tools to see if they’re better alternatives to what we’re using. Team members present their latest discoveries at our internal Lunch & Learns and at public events. As one example, our platform engineer Bradley hosted a great talk at CDK Day 2022 on how to organize code in CDKTF.
We can objectively say that our Platform Engineer team members are regularly praised for their support on internal projects that they implement, particularly because they benefit the company as a whole.
As mentioned above, we invested in CDKTF (Cloud Development Kit for Terraform) early on, which lets you use familiar programming languages to define and provision infrastructure. We’re already impressed with its capabilities.
On top of AWS, we’re starting to use Azure more frequently. We’re progressively gaining solid knowledge about it and we plan to build our own internal tools to facilitate its management.
Among our upcoming workshops will be one dedicated to Terraform and getting the team comfortable with the use of Osedea's own modules. And because the team is always curious and keen to try out new things, our platform engineers are now used to doing their meetings in VR with Horizon (Meta's virtual meeting platform) every two weeks.
If you’re ready to accelerate delivery, boost quality, and see faster ROI, get in touch with us about your next project!