About this Embedded Systems Engineer role at Y Soft
Do you want to chose components of an our embedded platform, maintain, and develop them from end to end? Sure, you will fix other related problems besides. But the point is, you can own their design and quality.
We're building a new edge device that many of our customers have been asking for. It works with our card readers to authenticate users, communicates with the cloud and with SafeQ print management to release print jobs, and connects to our internal cloud device management, so customers can deploy and configure it as simply as possible.
The device runs on a Linux-based OS that builds on our existing platform, while the application and its cloud integration are being built from scratch. The project spans everything from hardware up to the cloud, and partners and customers are already giving us feedback during development. We're looking for an embedded developer to help manage and evolve the platform the app runs on. Experience with Linux application development is a big plus.
What you´ll do:
- Shape the architecture. Design and evolve your component based on what stakeholders need, and keep it consistent with the wider embedded platform.
- Find, adopt and maintain the technologies your component depends on, working with vendors and partners where needed.
- Lead the component. Break requirements and defects into work the team can pick up, keep the backlog in shape, review critical code and major changes, and decide what counts as a defect.
- Take care of the build and quality pipeline. Maintain the build environment and dependencies, and keep automated tests and quality checks running together with Quality Management.
- Fix things when they break. Troubleshoot incidents, including hands-on recovery in production. That’s the fun! That means to gather the evidence, possibly explain your partners it desired behaviour or it is a genuine bug we need to fix.
- Share what you know. Keep documentation current, run tutorials and training, mentor engineers, and propose coding standards and best practices based on Hardware Engineering's broader standards.
- Deliver as part of the team. Ship new products, features and customizations, keep existing products healthy, and measure and improve product quality.
What you bring:
- Deep knowledge of embedded Linux: kernel development, device-level programming, U-Boot, system configuration and Unix administration
- Expert-level C, with a strong grasp of embedded software design, memory management, concurrency and synchronization
- Confidence working with real hardware: reading schematics, debugging HW/SW integration issues and validating behavior on devices
- Hands-on experience with hardware bring-up and low-level debugging using debuggers, logic analyzers, trace tools and system diagnostics
- A good understanding of embedded connectivity and integration, including IP networking, communication interfaces and microcontroller architecture and programming
- Git, CI, static analysis, and scripting in several languages to automate builds, tests and debugging
- A solid foundation in software architecture, operating systems, communication protocols and the software development lifecycle
Benefits:
- 30 days of vacation + 3 sick days
- 12 days for education and self-development (Grow Days) + language education support
- Hybrid working environment with a flexible schedule (combination of home and office work)
- Access to the best AI tools on the market, along with training and learning resources to help you make the most of them
- Cross-team collaboration with a great opportunity to learn new things and grow
- Reward system for public speaking
- Home office and meal allowances
- Daily refreshments in the office + community breakfasts, free 3D print
- Dog-friendly and bike-friendly offices