Denis Makarov, Developer in Abu Dhabi, United Arab Emirates
Denis is available for hire
Hire Denis

Denis Makarov

Verified Expert  in Engineering

Embedded Software Developer

Location
Abu Dhabi, United Arab Emirates
Toptal Member Since
September 16, 2021

Denis is an embedded system developer with 10+ years of experience in designing, developing, and maintaining complex software and hardware systems. He holds a PhD in electronics and has professional expertise in C, C++, STL, Qt, Linux, and FreeRTOS. Along with solid experience in embedded systems, information security, cryptography, and networks, Denis is enthusiastic about developing high-load real-time systems for his clients.

Portfolio

Toptal
Algorithms, Applied Cryptography, Operating Systems, Go, Cryptographic Protocols
SofTeq
C, C++, Azure IoT Hub, FreeRTOS, Git, Python, Bash, Linux, Wireless Protocols...
Klika Tech
C, C++, Linux, Node.js, Python, AWS IoT, Git, Embedded Linux, STM32...

Experience

Availability

Part-time

Preferred Environment

Linux, Windows, GCC, FreeRTOS, TCP/IP, HTTP, Qt, Bash, C++, C

The most amazing...

...thing I've developed is one of the best smart collars for dogs with back-end IoT service support.

Work Experience

Senior Software Engineer

2021 - PRESENT
Toptal
  • Designed and developed a webserver to serve cryptographic requests via HTTP API.
  • Created and developed a satellite's onboard computer firmware with system services like firmware upgrades, file system, job scheduling, networking, log management, housekeeping, bootloader, and other business logic.
  • Maintaining quality control operations such as designing integration tests, verifying requirements, and developing an automation toolset.
Technologies: Algorithms, Applied Cryptography, Operating Systems, Go, Cryptographic Protocols

Senior Software Engineer

2019 - 2021
SofTeq
  • Developed firmware for SSD controllers based on NVMe technology.
  • Built firmware to make a device able to communicate with Azure's IoT hub over WiFi and user's mobile application over BLE.
  • Created a desktop GUI application that serves as an automatic electronic devices design tool.
Technologies: C, C++, Azure IoT Hub, FreeRTOS, Git, Python, Bash, Linux, Wireless Protocols, Concurrent Programming, Real-time Operating System (RTOS), Embedded C, Embedded C++, Embedded Systems, GCC, Windows, Qt, Standard Template Library (STL), MCU, Real-time Embedded Systems, Bluetooth LE, Protobuf, STM32, NVMe, Unit Testing, Node.js, Embedded Linux, Universal Asynchronous Receiver/Transmitter (UART), HTTP, TCP/IP, MQTT, HTTPS, Ubuntu, IEEE 802.15.4, JSON, SQL, Streaming, Stream Processing, Boost, SSH, Catch2, Makefile, Make, GNU Make, CMake, Electronic Design Automation (EDA), EDA, Python 3, Python 2, Concurrency, Concurrent Computing, WiFi, Memory Management, Memory Leaks, Memory Profiling, Memory Optimization, C++ Memory Model, Performance, Direct Memory Access (DMA), Desktop App Design, Multithreading, Data Structures, Design Principles, UML, Design Patterns, Socket Communication, BSD Socket, Socket Programming, Sockets, Profiling, Runtime Debugging, Algorithms, Networking, IP Networks, Networks, Debugging, GNU Debugger (GDB), Valgrind, Debugging Tools, Low-level Programming, Encryption, Client/Server Networking, Computer Networking, Agile, Scrum, GitFlow, GitHub, GitLab, Git Flow, JavaScript, Docker, Operating Systems, Applied Cryptography, Cryptographic Protocols

Senior Software Developer

2018 - 2019
Klika Tech
  • Developed a ZigBee host driver and gateway firmware to connect a network of low-power devices to cloud-based infrastructure.
  • Ported hardware abstraction layers for different microcontrollers to provide firmware upgrade over the air feature.
  • Built firmware for consumer electronic devices with AI voice assistant based on Alexa engine.
Technologies: C, C++, Linux, Node.js, Python, AWS IoT, Git, Embedded Linux, STM32, Bluetooth LE, Wireless Protocols, Concurrent Programming, Real-time Operating System (RTOS), Embedded C, Embedded C++, Embedded Systems, GCC, Bash, Standard Template Library (STL), MCU, Real-time Embedded Systems, Protobuf, Unit Testing, Universal Asynchronous Receiver/Transmitter (UART), HTTP, TCP/IP, MQTT, HTTPS, Ubuntu, Snapcraft, IEEE 802.15.4, Raspberry Pi, OAuth 2, MongoDB, JSON, Streaming, Stream Processing, Boost, SSH, Catch2, Makefile, Make, GNU Make, CMake, Amazon Alexa, Python 3, Python 2, Concurrency, Concurrent Computing, WiFi, Amazon Web Services (AWS), Digital Signal Processing, DSP, Voice Recognition, Real-time Audio Processing, ESP32, Memory Management, Memory Leaks, Memory Profiling, Memory Optimization, C++ Memory Model, Performance, Raspbian, Mbed, Direct Memory Access (DMA), Desktop App Design, Multithreading, Data Structures, Design Principles, Design Patterns, Socket Communication, BSD Socket, Socket Programming, Sockets, Profiling, Runtime Debugging, Algorithms, Networking, IP Networks, Networks, Debugging, GNU Debugger (GDB), Valgrind, Debugging Tools, Low-level Programming, Encryption, Client/Server Networking, Computer Networking, Agile, Scrum, GitFlow, GitHub, GitLab, Git Flow, JavaScript, Docker, Operating Systems, Applied Cryptography, Cryptographic Protocols

Senior Hardware and Firmware Engineer

2010 - 2018
Power Electronics Institute
  • Led the development of firmware for power supply systems for spacecraft. Designed the architecture of the real-time controller.
  • Developed a desktop application to track real-time measurements and health metrics of power controllers.
  • Managed a project of power supply system development. Oversaw product delivery and communicated with clients.
Technologies: C, C++, Power Electronics, FreeRTOS, TCP/IP, Universal Asynchronous Receiver/Transmitter (UART), MCU, STM32, PSIM, MATLAB, Real-time Operating System (RTOS), Embedded C, Embedded C++, Embedded Systems, GCC, Windows, Qt, Bash, Standard Template Library (STL), Real-time Embedded Systems, Unit Testing, Git, Altium Designer (PCAD), Schematics, HTTP, HTTPS, Ubuntu, IEEE 802.15.4, JSON, SQL, Streaming, Stream Processing, Visual Studio, SSH, Makefile, Make, GNU Make, Electronic Design Automation (EDA), EDA, MySQL, Python 3, Python 2, Concurrency, Concurrent Computing, Digital Signal Processing, DSP, ESP32, Memory Management, Memory Leaks, Memory Profiling, Memory Optimization, C++ Memory Model, Performance, Raspbian, Mbed, Direct Memory Access (DMA), CAN Bus, Desktop App Design, Multithreading, Data Structures, Design Patterns, Socket Communication, BSD Socket, Socket Programming, Sockets, Profiling, Runtime Debugging, Networking, IP Networks, Networks, Debugging, GNU Debugger (GDB), Debugging Tools, Low-level Programming, Client/Server Networking, Computer Networking, NVIDIA CUDA, GitFlow, GitHub, GitLab, QML, HTML, CSS, Operating Systems

Junior Electrotechnical Engineer

2008 - 2010
Intellectual Machines
  • Developed a power converter for electric drives and participated in on-site quality tests verification.
  • Designed a digital controller for high harmonics compensation system.
  • Developed a desktop application for monitoring and debugging embedded controller software.
Technologies: C, MATLAB, Schematics, Altium Designer (PCAD), PSIM, Embedded C, Windows, MCU, Real-time Embedded Systems, Power Electronics, STM32, Universal Asynchronous Receiver/Transmitter (UART), Visual Studio, SSH, Electronic Design Automation (EDA), EDA, MySQL, Digital Signal Processing, DSP, Memory Leaks, Performance, C++, Direct Memory Access (DMA), CAN Bus, Debugging, GNU Debugger (GDB), Debugging Tools, Low-level Programming, NVIDIA CUDA, GitFlow, GitHub, HTML, CSS, Operating Systems

Smart Collar

A wearable device for dogs to track health metrics and GPS location.

I developed an embedded real-time software that included features such as automatic firmware upgrade downloaded over the air from cloud-based back-end infrastructure, communication with the user's mobile app over Bluetooth, and power management.

HCI Firmware for SSD

A host controller interface for managing the communication with the PC host that is a part of the firmware.

I designed the system features following NVMe standards to support high throughput and high reliability of data consistency.

Electronic Design Automation (EDA) Tool

A graphical user interface application for SoC designers.

I designed and implemented the system features such as automatic routing, a data integrity controller for the back-end side, and GUI-related parts of the software.

Zigbee Gateway

A ZigBee coordinator device serves as a gateway connecting a network of low-power ZigBee devices to an IP-capable network to provide the IoT infrastructure. The solution is based on an IEEE 802.15.4 radio module and industrial-type router driven by embedded Linux.

Smart Fan Assistant

A smart device that tracks sports events and competitions, provides daily reports, and delivers promotions from sponsors. I created several interactive tools based on the Amazon Alexa voice assistant service.
2004 - 2013

PhD in Electrical Engineering

Novosibirsk State Technical University - Novosibirsk, Russia

Libraries/APIs

Standard Template Library (STL), Protobuf, Sockets, Node.js

Tools

GCC, Git, PSIM, MQTT, CMake, GNU Make, Make, Makefile, Visual Studio, GNU Debugger (GDB), Valgrind, MATLAB, Altium Designer (PCAD), GitHub, GitLab, Azure IoT Hub

Frameworks

Qt, Boost, OAuth 2

Languages

Bash, C++, C, Embedded C, Embedded C++, UML, Python, SQL, Python 2, Python 3, HTML, Go, QML, CSS, JavaScript

Paradigms

Concurrent Programming, Unit Testing, Socket Programming, Design Patterns, Agile, Scrum

Platforms

Linux, Bluetooth LE, STM32, Windows, AWS IoT, Embedded Linux, Raspberry Pi, Ubuntu, Amazon Alexa, Amazon Web Services (AWS), Raspbian, NVIDIA CUDA, Blockchain, Docker

Storage

JSON, MySQL, MongoDB

Other

FreeRTOS, TCP/IP, HTTP, MCU, Real-time Embedded Systems, Power Electronics, Universal Asynchronous Receiver/Transmitter (UART), Real-time Operating System (RTOS), Embedded Systems, Streaming, Stream Processing, Concurrency, Concurrent Computing, EDA, Electronic Design Automation (EDA), Catch2, ESP32, DSP, Digital Signal Processing, Memory Management, Memory Leaks, Memory Profiling, Memory Optimization, C++ Memory Model, Performance, Algorithms, Networking, IP Networks, Networks, Debugging, Debugging Tools, Runtime Debugging, Profiling, BSD Socket, Socket Communication, Design Principles, Data Structures, Multithreading, Desktop App Design, CAN Bus, Direct Memory Access (DMA), Mbed, Low-level Programming, Client/Server Networking, Computer Networking, NVMe, Schematics, Wireless Protocols, Zigbee, HTTPS, Snapcraft, IEEE 802.15.4, SSH, WiFi, Real-time Audio Processing, Voice Recognition, Encryption, GitFlow, Git Flow, Operating Systems, Applied Cryptography, Cryptographic Protocols

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring