← Back to list
senior
Registration: 25.04.2025

Dimitri Lilic

Specialization: Firmware Engineer / Embedded Engineer
— Embedded Software Engineer (6 years of experience) with a demonstrated history of working in the computer software and electrical industry.
— Embedded Software Engineer (6 years of experience) with a demonstrated history of working in the computer software and electrical industry.

Portfolio

Crypto wallet

● Developed on new features for crypto wallet.

Firmware/Gui development

● Developed firmware and gui for requirements of OpenEPT personal project

Zephyr driver development

● Developed various drivers for Zephyr including spi, i2c, sensors, adc.

Skills

Python
C / C++
Embedded C
Unit Testing
Scripting
Code Review
Java
Assemblyx86
VHDL
Verilog
System Verilog
Eclipse
Code Composer Studio
Visual Studio
Git
Matlab
Quartus 2019
SVN
Jenkins
Perforce
Atom
JSON
STM32CubeIDE
Qt

Work experience

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

Educational background

Electrical Engineering (Masters Degree)
2021 - 2023
University of Belgrade, Faculty of Electrical Engineering, Electronics department
Electrical Engineering (Bachelor’s Degree)
2013 - 2018
University of Belgrade, Faculty of Electrical Engineering, Electronics department

Languages

EnglishAdvancedSerbianNative