Team — 25 March 2024
Behind the Screen: Code and Collaboration at Granular Energy
What’s it like working at Granular Energy? We asked Chris Nix, a senior backend developer, to share some insights on his work here and what makes it different to other roles he’s had in the past.
What’s your background and how did you get here?
I studied computer science at university and then did a masters and PhD in maths. I joined the Royal Navy as submarine weapon engineer - it was fun but after 6 years I decided to prioritise family life. I first became an Android developer when smartphones were becoming a thing. However, I enjoyed systems and integrations more than building user interfaces. When I had the chance, I did more backend work and progressively it became a full time thing.
Most recently I was working for an American social media company but I wanted to do something with more purpose, something I’d be proud to describe to my friends. I looked for climate tech jobs in software and found Granular Energy (that is me in blue, on the right).
What are your responsibilities?
I’m a senior backend developer. With the team, we maintain the backend of the Granular Platform which includes includes APIs, the database and the deployment infrastructure. My responsibility as a developer is to understand the requirements set by the product owner or requested by customers, figure out solutions with the team, provide guidance and implement them.
I don’t work on a single area of the backend. I like to get involved with most things and we try not to work in silos. Anyone can pick up any task, keeping us flexible and fast. We’re all quite versatile and work on all topics.
What are key skills you need to succeed as a developer here?
There are the normal developer skills, programming languages, formulating solutions to problems, communicating them. The backend is Python with FastAPI for the HTTP interfaces backed by PostgreSQL. On the frontend, we use Typescript and React. We deploy into Kubernetes and it all runs as managed services on Azure. The code is on GitHub and we deploy using GitHub actions.
But there is something additional that we need at Granular Energy: we all contribute to improving the product, we don’t just build code with our tasks planned top-down. We’re building a product from its early stages. We’re still learning and there is a lot of discovery work to do. We have ideas, and everyone contributes and formulates what the problem and solution looks like.
What does a typical week look like?
We work in weekly plans: agree at the start of the week what we work on, discuss our priorities and risks. We have daily catch ups to make sure no one is blocked and discuss anything that’s emerging. We communicate as a team with Slack, and we all contribute to each others’ code with reviews.
We’re always releasing. This is possible because we have automated testing with a high coverage. The advantage is that we release one change at a time which helps avoid complexity. For example, last week across our frontend and backend we did 33 releases, which is fantastic for a company our size.
What project are you most proud of?
We had a customer question come in and realised that it wasn’t a simple bug, but was actually an architectural challenge in the platform. Our systems didn’t scale to the demands of the customer and we wouldn’t reach the desired performance. The root problem was that we had two systems for processing customer input; one system would ingest the data and decompose it into chunks before sending messages on Azure Service Bus for another system to process those chunks. The data was related, even between chunks, and this created a bottleneck. Over a week and a half of hard work, we redesigned this part of the platform to process the customer input as a whole within a single system. It reduced our internal complexity and it ran faster. We reduced the processing time for the customer’s data from a few hours to a few minutes.
Favourite thing here at Granular?
I love that we’re a small company - even though I hope we do grow! It allows us to explore ideas together, figure out what the problem is and find solutions. We go into lots of details, which I enjoy.
We are constantly growing our engineering team. If you also want a job you’re proud to tell your mates about, and like working on solving solutions collaboratively, have a look at our openings and apply to join us!
Share article