Posted at: 15 March

Back End Engineer

Company

Arc.dev

Arc.dev is a freelance platform that only connects developers who pass their vetting process. NOTE: Jobs posted by Arc.dev are freelance opportunities provided by their clients, and you will likely communicate with Arc.dev when applying for a job.

Remote Hiring Policy:

Arc.dev is a fully remote freelance platform.

Job Type

Full-time

Allowed Applicant Locations

Malta, Europe

Apply Here

Job Description

About Kaiterra:

We spend 90% of our time indoors, where air quality directly impacts our health, well-being, and overall comfort.

At Kaiterra, we believe that our buildings should not only be safe and healthy but also enhance the quality of life for those inside them. That’s why we create innovative environmental monitoring devices and intelligent software analytics, combined with world-class professional consultation services, to help leading companies worldwide transform their built environments.

The Opportunity:

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

As a backend 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.

ⓘ View potential timezone restrictions

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 an emergency. In practice, production incidents that require fast response happen about once a quarter, 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
  • Be 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 backend code, and we love it. If you’re not happy to work on a backend 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 use Snowflake to analyze our entire data set without having to manage the infrastructure to do this.
  • We sparingly use cloud provider offerings like network load balancers and S3.

Skills and Requirements:

  • 5+ years of experience shipping production server code with Go. You understand how to ensure the code you write is reliable and maintainable in a server environment. You understand the value of monitoring, logging, and liveness checks.
  • 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.
  • Experience with Go in particular for production.

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
  • Inclined to take ownership of problem-solving and delivering outcomes
  • Mission-driven and want to make a real impact on our environment
Apply Here