<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=542164116319225&amp;ev=PageView&amp;noscript=1">

Backend Engineer

At Kaiterra, we work hard every day to tackle the biggest challenges to make our planet a better place. That’s why we build innovative environmental monitoring devices, intelligent software analytics, and turn-key building integrations to help companies around the world achieve low carbon healthy buildings that benefit our people and our planet.

Kaiterra Team-1

We dream big, fail fast, and then start all over again until we get it right. 

We are looking for people that are bold enough to think that they can leave a mark on this world. 

Sounds like you? Read on!


Job Description

We’re looking for a back end engineer with 5+ years of experience to join our software engineering team. The role is full-time and remote-based in Europe. 

As a back end engineer at Kaiterra, you’ll be jointly responsible for the systems that ingest, analyze, and disseminate data from our sensor installations all over the world. Together with the rest of the software team, you will report directly to the CEO, and your work will be facilitated by a product owner and project manager.

The hours for this position are generally 9 to 5, but you will share on-call responsibilities with the rest of the software team, roughly 1 week every month, in case of emergency. In practice, production incidents that require a fast response are rare, and our engineering and ops team is spread around the world to provide the best timezone coverage. 

Responsibilities: 

  • Solving problems by designing, coding, shipping, and administering services in a production environment
  • Solving problems without writing code when possible (after all, code requires maintenance, and is therefore a liability)
  • Reasoning through trade-offs when designing new services, including concerns about simplicity, reliability, security, scalability, maintainability, and performance
  • Writing unit tests that run during development (about 30% of our code is unit tests), and integration tests that run against live services
  • Helping the team continuously add, delete, and improve our development process
  • Provisioning infrastructure, such as load balancers 
  • Communicating your changes in internal and external documentation, and in direct communication with customers
  • Being familiar with the entire system, and the primary owner of part of it. Our software team includes former Microsoft and Apple engineers, who were tired of owning a vanishingly small piece of an enormous system
  • Supporting other ad hoc projects aligned with the overall goals of the engineering team

About Our Stack:

  • We use Go for all our back end code, and we love it (generics will ship with 1.18 in early 2022). If you’re not happy to work on a back end written in Go, this job is not for you.
  • We use docker to ship code and kubernetes to run it. We use managed kubernetes offerings like EKS, because we’d rather be solving problems that our customers care about.
  • We use Postgres for our main database, InfluxDB to store sensor data, and Redis for caching.
  • Our sensor front-end is an MQTT gateway that pushes data to Kafka. (We’d love to remove Kafka, but unfortunately it solves some important problems for us)
  • We sparingly use cloud provider offerings like network load balancers and S3.

Skills and Requirements:

  • 3~5+ years experience shipping production server code. You understand how to ensure the code you write is reliable and maintainable in a server environment.
  • Experience doing ops for production services. You know the value of monitoring, logging, and liveness probes.
  • Experience building APIs used by third-party developers. You value backwards compatibility.
  • Fluency with Git. You’ve used it for years and can’t imagine writing code without source control.
  • Familiarity with Linux as a development platform. You’re at home in the terminal.
  • Experience with SQL databases. You can discuss trade offs between different schema designs, and are comfortable consuming SQL without using an ORM.

Nice-to-have Skills:

  • Experience with Go in particular for production. In our experience, learning a new language isn’t much of a barrier if you already know one or two well.
  • Experience with Postgres and Redis in particular.
  • Experience with docker and kubernetes. Kubernetes is complex, but it’s easier to learn than the common wisdom says.
  • Experience working with an IoT system. You’re familiar with different connectivity patterns, and workflows like device provisioning and firmware upgrades.
  • Deep knowledge of the networking stack, including how IP, TCP, HTTP, DNS, TLS, etc. all work together

You will be a great member of the Kaiterra team if you are also:

  • Not afraid to take challenges and try different things
  • Driven, persistent, and fun-loving
  • Passionate about learning 
  • Taking ownership of problem-solving and delivering outcomes
  • Mission-driven and want to make a real impact on our environment

Sounds like you? Apply now!

Please send your resume to careers@kaiterra.com with the subject line “Backend Engineer Application”.

Please also send a cover letter highlighting your qualifications and reasons for your interest in this position. We’re looking forward to working with you!

Share this article

Keep reading...

How the Laser Egg Will Ensure Your Kids Are Breathing Healthy Air at Home

Answering Common Questions About the Laser Egg
May 12, 2019

Carbon Dioxide (CO2)

What Is Carbon Dioxide (CO2)?
December 16, 2018

5 Environmental Documentaries for Reconnecting With Nature

People today have access to more information than we ever thought possible, but this can cause people to lose touch with the world around them.
August 1, 2019

Kaiterra is a global company on a mission to end air pollution. We make air monitors that empower people to make small changes in their everyday lives and help with researchers, NGOs, and governments around the world to end air pollution at the source.