Embedded Engineer

Apply now

Embedded Linux Engineer

Are you looking for an opportunity to contribute to a large scale, complex product and see real-time impact of your work on hundreds of thousands of users worldwide? This is your chance to make a big impact on the design, architecture and implementation of our cutting edge access control solution. Help us win the battle against mechanical keys by building the future of access control! 


FULL-TIME · Clay Solutions

The IQ is the access control gateway that performs offline resilient low latency access decisions and connects our locks to the Cloud. You will work towards adding features, improving and maintaining the embedded software and processes linked to the production of the IQ’s, which takes place in the factory of Clay's mother company SALTO Systems in Spain.

We have proudly conceived, designed and developed this uniquely designed, cutting edge product. You will work together with an exceptional group of talented engineers as part of an international team.

We are looking for two new team members to grow our team at a Medior and Senior level. 


The team in a nutshell

Nice to meet you, we are the Embedded Linux team at Clay. We are a tightly knit, very open, supportive, and cooperative 5-person team responsible for maintaining and developing our secure embedded access gateway, as well as the associated build, CI, validation, monitoring and deployment infrastructure.

Oftentimes, we will be working with a subsystem or new hardware which we do not have much experience of, so we are good at reading documentation, quickly understanding complex chunks of source code, googling for answers and prototyping, evaluating, and testing ideas. Other times, we will be working on systems that our colleagues know well, so we will be relying 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 practises, 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 to not 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 be able to understand the subtleties of the interactions involved, both for the codebase and platform we develop, but also with all the external components it connects to - out backend services and our locks, and sometimes the Ethernet, WiFi, or cellular network we are using.

Last but not least, we understand our product, it's strengths and limitations and work towards making it better, towards helping other teams and clients, and towards making the SALTO KS experience even better.

What we're looking for 

We do not expect everyone to know everything perfectly, but we expect people to be continuous learners, ask the right questions, be able to learn on the job, and to also be happy to help others learn. The company also has a corporate Udemy account where some broader context on some topics can be obtained.

Technical skills and expertise 

  • 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 that thinks of ways how to improve on a daily basis

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

  • Experience of IoT communication protocols and services is a plus

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

  • 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/

  • 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 analyse the existing codebase and suggest and champion improvements

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

How we work

Global movements are created by united teams that work hard, think smart, and move at a fast pace. As an agile team with a growth mindset, we work with structured methods. We use hundreds of post-its a week, and always look for ways to improve our products. Our flow goes something like this, slightly changing from team to team:

You'll be working with... 

Kalin

Lead Embedded Engineer & PO

Daniel

Engineering Manager

Charlee

Embedded Engineer

Marijn

Embedded Engineer & Scrum Master

Armand

Embedded Engineer

Working at Clay means becoming a ‘Brick’, and that means joining an international team, with over 23 nationalities (!), of passionate professionals who take initiative, own responsibility and share expertise.


At Clay Solutions we live by our core values

At Clay, we are not only coding for a living; we also have a code running through our veins. Our core values, if you will. Conducted from the Bricks themselves, these values are embedded in our culture:

  • Passionate and Proud, we are passionate about what we do. We take pride in our work and strive to improve ourselves continually and be flexible.

  • Stronger Together, we appreciate each other as unique individuals rather than ‘just colleagues’.

  • Inspired and Inspiring, we are tech-savvy and fascinated by the product we build, being aware of the global impact our work has.

  • Honest and Outspoken, we are all about transparency and we communicate openly without judgment or prejudice.


Wondering what it’s like to work at 
Clay Solutions?

Clay is a tight-knit team of technology lovers and innovative thinkers. Our team is working on some of the most challenging problems in the access control industry.

To read some of the benefits Clay Solutions offers check out our Careers page. But to give you some more insight into life at Clay here it goes; it’s great to have the ability to make an impact from day one, share ideas and shape the road map together. We work from our awesome office in Amsterdam, collaborate closely with Salto Systems in Spain, and serve our customers globally.

At Clay we are encouraged to build ourselves along with our fast-growing company. This can be in the form of trainings, coaching, conferences and more. We grow together! We know best is yet to come. Everyone on this team has a voice, we support each other's curiosity and we’re encouraged to not only participate and speak up, but also to lead and drive.

Beware; we work hard, play hard. Don’t underestimate either of those! We are honest, love a good joke, and don’t take things personally. And as a tight-knit team, together we form the solid house that is Clay Solutions.