Senior Embedded Software Engineer
Kyiv/Remote
5+ years of experience

We invite the Embedded developer to join our progressive team. We develop and manufacture software and hardware processing and information security, as well as special equipment.

Mykola Andreiev
recruiter
Send CV

Required skills:

– 5+ years of experience with C language, knowledge of the difference between ANSI standards C, C89, C99;
– Experience with Jira, on-line documentation systems (confluence. Etc), git, gitlab;
– Technologies and APIs: Libc, POSIX, pthreads bsd socket, Linux kernel API;
– Debugging and profiling:
– gdb, JTAG

Following experience will be the plus:

– Orient in QA process (unit, system, CI / CD);
– Doxygen
– valgrind, gprof, work with Logic Analyzers;

System knowledge:

– understanding and experience in:
– real time programming;
– multitasking and multithreaded programming;
– network programming;
– Software development for Linux user space and kernel space;
– Experience writing software for bare metal (os-less);
– Understanding of TCP / IP network stack, development of client and server software;
– Experience in creating architecture, software design, interfaces, modules;
– Understanding of circuitry

It will be an advantage:
– Experience writing software for FreeRTOS, eCos, ThreadX, VxWorks or any RTOS system;
– Understanding the principles of organization of multitasking (schedulers) and memory allocation (memory allocators), experience with u-boot or other bootloaders, MTD file systems;
– Knowledge in the field of DSP, RF, FPGA;

Hardware part:
– Work experience (writing software) for ARM (SOCs: Intel (Altera) SOCs, STM32 …)
– Experience using (using OS drivers or directly), writing drivers and / or bare metal interfaces: UART (rs232, rs485), SPI, I2C, GPIO / LVDS, DMA, PMU, MMU, mass storage (MMC, MTD (NAND) );
– It will be an advantage:
– Experience with FPGA (development and / or use of modules implemented in FPGA);

Responsibilities:

– Support and extension of functionality in the userspace app code in terms of interaction with the driver (devfs), data processing and sending / receiving settings (bsd socket);
– Support and expansion of the functionality of kernel space modules: DMA, controller registers;
– Bring Up new platforms: ARM, NIOS, u-boot, linux / freebsd / bare metal);
– Participation in the design and development of new software: ARM, NIOS, linux / freebsd / bare metal;
– Design of protocols of interaction of various modules: ethernet, wireless links, wired links (rs485, spi, i2c);
– Support of work with devices of other manufacturers, if necessary adaptation or writing of drivers, the code of interaction with the driver, support of protocols;
– Documentation of the developed software;
– Creating mock drivers and mock environments for automatic testing;
– Finding the causes of errors detected by QA and setting tasks with a description for correction for a lower-skilled engineer;

We offer:
– Unique and interesting projects
– Decent salary
– Paid vacation, sick leave and overtimes
– Flexible work schedule
– Corporate health insurance

Mykola Andreiev
recruiter
Send CV