Position: Embedded Developer
Company: Ajax Systems
Category: C++
Experience required: 2y

We do everything: we produce physical devices (the system includes many different sensors and hubs), write firmware for them, develop the server part and release mobile applications. The whole team is in one office in Kyiv, all technical and product decisions are made locally.

Not so long ago we released a new version of our Hub OS and named it Malevich, now we are looking for Embedded Engineers who are ready to make our system better with us. For us never could be enough: there are still a lot of new functionality, sensors, features to make our system even cooler.

Required skills: 
Proven experience in developing embedded real-time applications for commercial products.
Excellent knowledge of embedded coding techniques, interfaces (e.g. SPI, I2C, UART) and subsystems
Strong skills in various build systems.
Excellent knowledge of C programming language
Experience in debugging and validating complex embedded systems and protocol stack
Understanding of operating systems: embedded developers usually need experience in programming in embedded Linux or similar embedded operating systems
Good hands-on experience of software engineering fundamentals such as testing, continuous integration, continuous deployment, pull requests and code reviews, source control, work item/issue tracking.

Would be a plus:
Experience with STM processors
Experience with programming RF modules and development low-energy wireless solutions.
Scripting languages Python, Bash
Commercial experience with specific real-time operating systems.
Leading of software engineers teams.
Ability to multitask effectively among different projects in a fast-paced environment
Basic electronics: embedded engineers use oscilloscopes, logic analyzers, and multimeters for debugging
Experience in commercial IoT projects

Responsibility zone: 
Participate in the full embedded software life cycle: design, implementation, code reviews, documentation, testing and validation
Analysis and systematic problem solving for SW reported issues
Cooperate with electrical engineers to perform verification of new hardware from software team perspective. Review and provide feedback on the firmware specific aspects of hardware design
Delivery highly reliable Malevich OS releases
Work with high-level and technical requirements for research and development new features
Participate in making design decision to develop high performance and reliable embedded systems
Create unit and functional tests
Be ready to mentoring of newcomers|trainee coworkers
Be ready to lead a team of software engineers to achieve goals and challenges.

With us you will enjoy:
Working with a team of people to build the future of an industry
Non-trivial challenges and various range of interesting tasks
A flexible, friendly and collaborative work environment
Corporate culture based on common sense