Senior Embedded Software Engineer
since 09.2024 - Till the present day |Orion Innovation
C/C++, Zephyr, Python, Java, Linux, Git, Driver development, Logic Analyzer
Desktop Application and Embedded Software Developer
since 09.2023 - Till the present day |University of Belgrade School of Electrical Engineering
C/C++, Free RTOS, Git, Qt, STM32Cube, Logic Analyzer
Open Energy Profiler Toolset.
● Developing GUI in Qt environment for system control and graphical display of power consumption.
● Developing Driver for ADS92x4R Dual, Low-Latency, Simultaneous-Sampling SAR ADC.
Senior Firmware Developer
10.2022 - 08.2024 |HDL-DH Design House
C/C++, Git, Jira, Linux, SlickEdit, Zephyr
Data Accelerator Firmware Developer.
● Working on pre-silicon Firmware development and implementation for Data Accelerator for AMD.
● Creating and developing firmware from scratch in C/C++.
● Develpoing Firmware for RISC-V SiFive dual core CPU both in Bare Metal and Zephyr.
● Bringing up interrupts, timers, thread, workqueues, mem slab, tracing in Zephyr.
● Ported AMD custom Kernel to use Zephyr.
Senior Embedded Software Developer
08.2022 - 08.2023 |Bloxico
C/C++, Python, Free RTOS
● Crypto wallet product development.
Firmware Engineer
01.2022 - 10.2022 |HDL-DH Design House
Perforce, Jira, Linux, Atom, JSON, C/C++, SystemVerlog
DMA Firmware Engineer.
● Working on pre-silicon Firmware development and implementation for DMA for AMD.
● Creating and developing firmware classes both in C++ (and SystemVerilog).
● Creating and developing tests to stress and debug firmware code.
● Creating API to connect testing parameters (SystemVerilog) with firmware implementation (C++).
Embedded Software Engineer
08.2021 - 10.2021 |Private project for a Science Technology Park Company
STM32CubeIDE, C, FreeRTOS
Implementation of communication for Battery Management System based on LTC6804-1:
● Prototyping on Arduino Uno Board.
● Wrote whole communication protocol in C.
● System management tasks sync with FreeRTOS including charging/discharging batteries, reading current voltage.
● Final implementation for STM32F4 board.
● Peripherals: ADC, Daisy chain SPI.
● Hardware: STM32F4 Board, Arduino Uno Board, LTC6804-1.
Embedded Software Engineer
05.2021 - 08.2021 |Private project for a Science Technology Park Company
STM32CubeIDE, C, FreeRTOS
Digital Addressable Lighting Interface (DALI) implementation:
● Prototyping on Arduino Uno Board.
● Wrote whole communication protocol in C (Manchester coding) with task sync in FreeRTOS.
● Final implementation for 32F072BDISCOVERY board.
● Hardware: 32F072BDISCOVERY Board, Arduino Uno Board, Ballast.
Embedded Software Engineer
10.2019 - 01.2022 |Avisto Eastern Europe
Jira, Linux, Git, Vim, C/C++, Python, Java, Jenkins, SystemVerilog, Code Composer Studio
1. Making builds for multiple chips and implementing Firmware modification for those chips.
● Implementing latest changes to design to work on emulation platforms and to be tested by verification team.
● Debugging Firmware and modifying it for better time performances in C/C++.
● Debugging and fixing issues in the automation flow, implementing Jenkins flow.
● Java background development tasks for workflow purposes.
● Agile methodologies, SCRUM and JIRA.
2. Creating and modifying rtl wrappers for PCI switch with implementation of Jenkis flow automation, Firmware modification.
● Writing SystemVerilog wrappers (RTL representation) for different connections of chips.
● Debugging Firmware and modifying it for better time performances in C/C++.
● Generating emulation images from netlists to test initial sanity.
● Java background development tasks for workflow purposes.
● Worked with Protium and Palladium emulation platforms.
● Agile methodologies, SCRUM and JIRA.
3. Linux kernel development.
● Compiling and installing latest Linux kernel on an existing Ubuntu 18.04.
● Writing and compiling an explanatory character module for Linux Kernel.
● Independent compiling and loading of Linux kernel modules.
● Inserting the character module into the Linux kernel tree through Kconfig.
● Writing character module compilation with misc driver usage.
● Git repository usage for developing Linux kernel modules.
4. Tiva C project.
● Implementing Bare metal applications on Tiva C (EK-TM4C123GXL board).
● GPIO interfacing.
● Communicating using UART and SPI interfaces.
Embedded Software Engineer
2013 - 2018 |Significant student projects
C, FreeROTS, Assembly x86, Linux, QEMU, U-Boot, STM32CubeMX, Keil uVision5, Code Composer Studio, Visual Studio, Quartus 2017.
1. WEB Access to Measuring Station – Embedded Linux.
● Using QEMU for emulating hardware.
● Porting Linux for new platform.
● Making app and adding sysfs functionalities to driver.
Tools: Linux, QEMU, U-Boot.
Languages: C.
2. Sound Frequency Detector using ST Nucleo F746 microcontroller and external microphone.
● Bare metal implementation.
● GPIO interfacing, use of multiple timers and single channel of AD converters.
● Use of Matlab DSP function.
Tools: STM32CubeMX, Keil uVision5.
Languages: C.
3. Real time embedded programming using MSP430 microcontroller series.
● Creation, starting and suspension of tasks.
● Preemption and context switching between tasks.
● Implementation of semaphores and interrupt event.
● Task synchronization using message queues and mutex.
Tools: Code Composer Studio.
Hardware: TI MSP430F5529 launchpad.
Languages: C, FreeROTS.
4. Temperature measurement using MSP430 microcontroller series.
● Bare metal implementation.
● GPIO interfacing.
● Interrupt routine implementation in assembly.
● Communication between microcontroller and sensor via one-wire protocol.
Tools: Code Composer Studio.
Hardware: TI MSP430F5529 launchpad, SMT160-30 sensor.
Languages: C.
5. Memory Game implementation using Assembly x86 and Altera DE1-SoC Board.
● Both Assembly and VHDL code implementation.
● Communication between Soc and Computer via VGA communication cable.
Tools: Visual Studio, Quartus 2017.
Hardware: DE1-Soc
Languages: C, Assembly x86