Embedded Engineer

Permanent employee, Full-time · Salto CloudWorks Amsterdam

What you'll do
Are you looking for an opportunity to contribute to a large-scale, complex product and see the real-time impact of your work on hundreds of thousands of users worldwide? This is your chance to greatly impact the design, architecture, and implementation of our cutting-edge access control solution. Support the team by creating a high-quality product, enabling communication between the locks and the backend, and adding new features to the product. Help us win the battle against mechanical keys by building the future of access control! 

Your profile

Your profile 

We do not expect everyone to know everything perfectly, but we expect people to be continuous learners, ask the right questions, learn on the job, and be happy to help others learn. General responsibilities include being in charge of component architectural designs, writing testable code, ensuring robust and scalable product support, hardware testing, clear communication between the team members and other teams, writing documentation, and being willing to learn new things.

  • Ability to develop, enhance, and maintain embedded software applications in modern C++ on an Embedded Linux Platform

  • You are a team player who not only enjoys working with others but also learning from and mentoring them

  • You have experience working in an agile environment

  • You are a proactive individual with an analytical mindset who thinks of ways how to improve on a daily basis

  • You have impeccable technical expertise and are deeply passionate about embedded development

  • Experience with IoT communication protocols and services is a plus

  • Knowledge of Python for the development of tools and integration testing is a plus

  • Knowledge of build automation, Gitlab CI

  • Familiarity with static and dynamic code analysis tools

  • Knowledge of embedded Linux build systems Buildroot/Yocto/kconfig

  • Knowledge of build tools such as Make and Cmake

  • Knowledge of wired and wireless protocols and serialisation e.g. ZigBee, BLE, Ethernet, 802.11, UART, TLV, protocol buffers

  • Knowledge of system and network programming concepts for Linux

  • Ability and experience with testing, specifically related to unit testing, functional testing, and integration testing

  • Ability to understand and analyze the existing codebase and suggest and champion improvements

  • Knowledge of best practices in software development processes - architecture, design, TDD, and design patterns that keep software manageable

  • Appreciation of MPU architecture and peripherals, the ARM A architecture, cryptography, boot processes, and bare metal programming are not required but are a plus

Why us?

It's nice to meet you. We are the Embedded Linux team at CloudWorks. We are a tightly knit, very open, supportive, and cooperative six-person team responsible for maintaining and developing our secure embedded access gateway and the associated build, CI, validation, monitoring, and deployment infrastructure.

Often, we will be working with a subsystem or new hardware that we do not have much experience with, so we are good at reading documentation, quickly understanding complex chunks of source code, googling for answers, prototyping, evaluating, and testing ideas. Other times, we will be working on systems that our colleagues know well, so we will rely on their documentation and mentorship.

We work on a secure resource-constrained embedded Linux system, so every one of us understands at least a bit about bare metal, boot loaders, Buildroot, Linux programming, kernel configuration and patching, kernel drivers, user space, Linux networking, as well as handling of network hardware, protocols, IPC, multithreading. On top of this, we are responsible for our access control and cloud connectivity business logic, and last but not least, CI/CD, unit and integration testing practices, and at least a bit about APIs and how to use them. We design, build, and maintain our automated physical regression rigs.

No one is required to know all of this, but everyone is expected to be driven to learn and improve.

We work primarily in C++ and Python 3, with a bit of bash for good measure. We understand crypto and security well enough not to decide to roll our own. We value TDD, clean, modular, readable code, DI, and the power and freedom that verification and monitoring give us.

When dealing with elevated support requests, we have to know our systems very well and understand the subtleties of the interactions involved, not only for the codebase and platform we develop but also with all the external components it connects to—our backend services and locks, and sometimes the Ethernet, WiFi, or cellular network we are using.

Last but not least, we understand our product and its strengths and limitations and work to improve it, help other teams and clients, and make the SALTO KS experience even better.

Working at Salto CloudWorks

About Salto CloudWorks

At Salto CloudWorks, we are a dynamic, international team of innovators from over 35 nationalities. We take pride in our work, support each other, and embrace collaboration, transparency, and growth.

Our Core Values

Passionate and Proud: We strive for excellence and continuous improvement.

Stronger, Together: We value collaboration and diversity, fostering a sense of belonging.

Inspired and Inspiring: Driven by technology, we challenge ourselves to innovate and grow.

Honest and Outspoken: Transparency and open communication are at the heart of everything we do.

About us
Salto CloudWorks is a wireless, cloud-based smart lock technology company founded in 2012 and based in Amsterdam. We are a close team made up of developers, technology lovers, and innovative thinkers and locking technology is our business. We offer the only wireless smart lock platform, called SALTO KS, that allows other companies to create and offer their own smart lock solutions.
We are looking forward to hearing from you!
Thank you for your interest in Salto CloudWorks - A SALTO Group company. Please fill out the following short form.   
(Using ChatGPT will backfire on you, so think twice before you turn to your AI buddy)
Uploading document. Please wait.
Please add all mandatory information with a * to send your application.