Senior Embedded Software Developer (C/C++)

SWITechnology is expanding its team in Belgrade and we are looking for Senior Embedded Software Developer (C/C++).

Position Senior Embedded Software Developer (C/C++)
Location Belgrade, Serbia

Job Description

Executes all the usual embedded software development tasks:

  • design,
  • coding,
  • debugging,
  • testing,
  • documenting,
  • releasing.

Collaborates with interdisciplinary Agile team:

  • software,
  • electronics,
  • mechanics,
  • design.

Career Path (Future)

Team Leader, Embedded Software.

Essential Requirements

Mandatory Requirements

All of the following requirements must be satisfied.

  • The candidate must be capable of working both independently and in a team environment and demonstrate the ability to plan, execute and take ownership of assigned projects.
  • English language knowledge both written and spoken is mandatory.

Technical Requirements

If you satisfy anywhere between 60% to 80 % of these requirements at intermediate or advanced level you should apply for this job.

Requirements that you don’t satisfy are simply learning opportunities since you’ll be doing this on a daily basis.

  • Programming & Scripting:
    • C Programming Language,
    • C++ Programming Language,
    • Python Programming Language,
    • Linux Shell scripting.
  • Git Version Control System.
  • GNU toolchain:
    • gcc,
    • gdb,
    • make,
    • binutils.
  • ARM Cortex-M cores and peripherals:
    • Cortex-M0, M0+, M3, M4,
    • SysTick,
    • NVIC.
  • Hardware drivers:
    • Timers,
    • USART,
    • I2C,
    • SPI.
  • Systems:
    • bare metal, interrupt-driven, cooperative scheduling,
    • preemptive scheduling.
  • C Programming Language idioms and patterns:
    • State,
    • Observer,
    • Strategy,
    • Adapter.
  • UML.
  • Linux command line.

Considered a plus

These are not requirements but will be considered a plus.

  • Related degree from an accredited university or college, e.g. Software or Electrical Engineering.
  • Experience with STM32 microcontrollers.
  • Familiarity with interfaces & protocols: RS-485, USB, Ethernet, IP, UDP, ARP, IGMP.
  • Working knowledge of issue tracking and Continuous Integration service.
  • Working knowledge of DALI, DMX, RDM, ArtNet, and sACN protocols.
  • Working knowledge of CMake tools.
  • Working knowledge of FreeRTOS based embedded systems.
  • Linux user, command line savvy, command line preferred over GUI.
  • Experience with Linux kernel development.
  • Open source project maintainer or contributor.

Work Conditions

  • Full-time job.
  • Competitive compensation package.
  • Remote.
  • Flexible work hours.
  • Very interesting projects in a high-tech industry.
  • Opportunity to make a personal contribution.
  • Motivated and open-minded colleagues in a cooperative working environment.
  • Professional and non-bureaucratic cooperation.

About us

We are international company offering many opportunities for professional growth. Our company was built around extraordinary individuals, which is why we value our people, their ideas, commitment and needs. For almost 20 years we design, develop, market and sell our own products for professional and industrial markets.

How to apply?

  • In order to be considered for this position, you need to submit your resume in English to
  • We ask all candidates to name their applications by name and surname.
  • Additional documentation is welcome, but is not mandatory and does not have to be in English.
  • Candidates might be contacted before deadline expires.
  • Please note that only shortlisted candidates will be contacted.