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
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.
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.