Support the development and infrastructure behind the world’s most technologically advanced total controlled environment agricultural system and its spin off technologies.
The Challenge:
Vertical farmers do it full stack. Do you want to grow your skills? Do you want to be involved in a start-up in its rapid growth phase ? Are you agile minded enough to tackle the challenges of releasing and running software at scale which spans both the cloud and physical hardware ?
At Intelligent Growth Solutions we build cutting edge vertical farming hardware and the software to manage it at scale. Following several years of research, we have now delivered to our first customers – and if we can build on that success, we will change the world,
As we continuously improve our products to deliver more value to our customers; we must continuously improve our systems, our architectures and ourselves. The architecture is necessarily complex and interfaces with an equally complex hardware system. With kubernetes as our universal compute engine, we are taking a leading edge and forward looking approach to taming this complexity.
The Software Engineering Team:
Building around the foundations of an open and collaborative environment, we are an Agile team delivering high availability cloud applications to ensure the success of the business. We are now building out our DevOps team across a wide range of skills. Automation is the key, using IaC and the latest Azure modules to ensure fast, robust and repeatable results.
As we develop our product, focused on the needs of our users, the software will need to grow and scale reliably. We will need to have automated testing and continuous integration pipelines at the centre of our engineering practices. We also need to ensure that we have full observability from the edge through to the cloud.
We are a team that wants to provide an excellent product and capability to growers worldwide. We want to enjoy the process of doing that, nurturing each other to produce the best results. We are Agile with a strong emphasis on collaboration and a big backlog of exciting things to do. We have a culture of continuous improvement and learning, striving to do the best for each other and delighting our customers
The Technology Stack:
We have taken a leading edge approach to our technology stack with a view towards using the right tool for the right job.
Our language choice is primarily .NET Core with an Angular frontend, but with python being used where appropriate. Our architecture is microservice based, leveraging containerisation and kubernetes to address the challenges of managing containerised workloads at scale.
We utilise Azure as our cloud provider, with a mix of cloud native services such as Azure Service Bus and containerised solutions running on Azure’s Kubernetes Service.
In order to deploy and manage the infrastructure in a consistent and frictionless way, we also make use of Terraform and Helm to ensure that we treat our infrastructure as a first class citizen alongside the code base.
Who are you:
You are seeking to grow and challenge yourself. You can produce high quality solutions and have an attention to detail second to none. You are passionate about putting the user first, making them the first consideration in all your decisions. You have a deep understanding of cloud-based solutions, both their advantages and disadvantages. You understand the concepts behind containerisation which goes beyond viewing it as being lightweight virtual machines.
Importantly you are someone who believes in devops as an organisational culture, not a team name. You are someone who will strive to empower the wider software team in our goal of delivering reliable, high-quality software with a high cadence.
You are all that and you are a real person too, one that remembers that we all are, displaying kindness, patience and decency.
What we’re looking for:
What we have below is intended as a guideline, not as a checklist of skills that someone must have before applying. We want people who have a strong sense of team and can support those around them. For us, being passionate and enthusiastic about the challenges we face with a grounding in the concepts of modern software delivery is more important than knowing a specific set of tools.
Ultimately, if you feel like you have experience which is relevant and are excited about what we’re doing then reach out to us with an application.
Responsibilities:
Creating tools, solutions and processes to empower the wider software team to deliver features.
Enhancing and maintaining our build and delivery approach to make it as frictionless as possible
Working with our software engineers to conduct 3rd line investigations
Investigating and delivering on ways to continuously improve our software and infrastructure observability.
Improving our infrastructure architecture through consulting and working with our software engineers
Proactively looking at our security requirements and how we can improve them without acting as gatekeepers.
Working closely with our QA engineers to ensure that quality assurance is baked into all parts of our delivery approach.
Supporting our software engineers at all points of the software lifecycle, from local development through to scaling workloads in production.
Ensuring that when things do go wrong, we can understand the cause and investigate measures to mitigate or prevent repeat issues.
Be on the out of hours emergency roster
Knowledge:
Having a strong understanding of software release approaches and tooling.
Experience with containerisation at both the local development level and running containerised workloads in production.
Exposure to running production workloads and the challenges which they pose.
High coding discipline with experience of code reviews, testing and collaborating on code
Experience with infrastructure as code as a concept, with an understanding on why it’s important and the mindset behind it.
Familiarity with a programming language, this could be as simple scripting or writing full featured software.
A grounding in agile practices and how to think about complex problems in small, releasable units of work.
What your current technology exposure might look like:
Experience of running kubernetes workloads in production, as well as implementing pipelines to deploy those workloads utilising helm.
Created composable and extensible build and deployment pipelines in both Jenkins and Azure Devops with the pipeline definitions stored in git
Utilised prometheus within kubernetes to scrape metrics which are then visualised through NewRelic, as well as having helped software developers integrate custom metrics within their code.
Written custom tooling in Python and Bash in order to extract data from various REST API’s in order to automate daily tasks.
Made use of Confluence to document processes and architecture in order to enable knowledge sharing within a wider team.
Made use of JIRA in order to track both planned work and unexpected work so you could ensure collaboration among a wider team of software developers and site reliability engineers.
Compensation Package
Salary is market competitive. Benefits include 7 weeks’ holiday, a generous contributory pension scheme, company sick pay, Income protection, Death in Service scheme, cycle to work scheme and Private Health Insurance which gives access to discounted gym membership. To get you started we will provide a laptop and a great working environment with flexibility around the working week of 40 hours.
We are based in the Fountainbridge area of Edinburgh, accessible for trains and buses with cycle to work facilities.
At IGS, we support the principles of Equality and Diversity in employment and we recognise the value of a diverse team. We encourage applications from individuals with varied experiences, perspectives, and backgrounds.