Position: Middle Embedded Firmware Developer
Company: NIK-ELEKTRONIKA
Category: C++
Experience required: 2y
English level: intermediate

We are looking for a capable **Middle Embedded Firmware Developer** interested in playing a key role in influencing design, development, testing & maintenance of production of quality firmware for microcontrollers and embedded systems used across the company's innovative range of products.
Today **NIK-ELEKTRONIKA** is actively developing the technologies to make this possible, with the ultimate goal.
**The Middle Embedded Firmware Developer** works closely with electrical engineers, software engineers and customers across the company to deliver high quality products.
As an Embedded Firmware Developer you will be leading the development of new and exciting products from concept right through to launch and beyond.
Is this whets your appetite then please read on...

**Your responsibilities will be:**
•	Software development for battery powered devices based on microcontrollers;
•	Requirements analysis and functional decomposition;
•	Technical analysis of system design;
•	Signal Processing;
•	Performance budgeting;
•	Participation in the development of hardware, coordination of microcontroller switching circuits, selection of microcontrollers, search for technical solutions and their implementation;
•	Maintenance of serial devices;
•	Refactoring existing projects.

**Requirements:**
•	Technical education;
•	2+ years of experience writing embedded software in C, C++;
•	2+ years developing software for the ARM Cortex family;
•	Familiar with common electronic components and comfortable reading circuit design schematics and contributing to hardware design discussions
•	Strong understanding of operating system fundamentals, including schedulers, network stack, file system, memory management
•	Must have experience of firmware development over the complete lifecycle from requirements capture, development, integration, testing and support.
•	A solid appreciation of rapid controller development
•	An understanding of processor architectures and peripherals
•	English at upper-intermediate level (required);
•	Experience of I2C, SPI Bus, GPIO, ADC, DAC, TIM, RTC, DMA, SPI, I2C, UART;
•	Knowledge of networking including Support for microchips for various purposes: for example, for communication (Ethernet, GSM, WiFi, RF, etc.), for storing data (EEPROM, FLASH, FRAM, etc.), etc .;
•	Hardware debug experience, including familiarity with tools such as the oscilloscope and RF test equipment, logic analyzer, protocol analyzer (SPI, CAN, Ethernet or similar)
•	Fluency in git \ hg \ svn or similar systems;
•	Confident use of development systems - Keil, Eclipse and others. Ability to create multi-configuration projects;
•	Basic knowledge of at least 1 other programming language (Python, CSharp, Java, Javascript, ...);
•	Hands-on and positive approach to problem solving, with a can-do attitude;
•	Ability to prioritise activities, balancing long and short term objectives and finding efficient ways to solve problems;
•	Adaptable and willing to learn new technical skills that potentially cut across discipline boundaries.
Will be an advantage:
•	Experience with water, heat, gas, energy meters: for example, integrating them into a dispatch / metering system and similar system;
•	Experience in building projects make, cmake;
•	Experience with wireless protocols; MBus, wMBus, LoRaWan, ZigBee, NB-IoT, etc.;
•	Knowledge of the structure of network protocols (OSI model) and experience in developing equipment for computer networks (TCP / IP, IPv6, UDP).

**We offer:**
•	Interesting projects;
•	Formal employment;
•	Competitive salary;
•	Working for a dynamically growing company with creative team with ambitious goals;
•	The opportunity to realize your professional experience and develop with us.