Artem Shapovalov

Senior Software Engineer
+998 91 770 10 89
📨 artem_shapovalov@aol.com
🌐 LinkedIn
🌐 GitHub
📃 CV

About

I am a Software Engineer with over 10 years of experience, primary in Embedded Systems, and a growing background in desktop, network, and web applications. Wide expertise enables me to adapt quickly, apply best practices across different domains, and deliver reliable solutions in diverse environments.

Here's what I can do for your business:


Skills summary

C
C++
Python
Java
JavaScript
SQL
Bash
STM32
AVR
MSP430
MIPS
bare metal
bootloaders
HAL/LL libraries
device drivers
fault tolerance
OTA Updates
real-time scheduling
Matlab Simulink
discrete-time simulation
UART
SPI
I2C
CAN-bus
RS485
Ethernet
TCP/IP
NMEA GPS
Vim
Visual Studio
Eclipse
IAR Embedded Workbench
Code Composer Studio
MSYS2
CMake
GNU Make
GNU Toolchain
Doxygen
Jenkins
GitHub Actions
CCCC (code metrics)
Source Trail
CppCheck
Raspberry Pi
Buildroot
Git
SVN
Mercurial
Redmine
Jira
Trello
Qt
Boost
FLTK
HTML/CSS
gRPC
Gradle
CppUTest/CppUMock
logic analyzers
oscilloscope
Hardware-In-the-Loop (HIL)
unit testing
Agile Methodologies
Microservices
prototyping
LibreCAD/AutoCad
KiCad/P-CAD/Altium Designer
FreeCAD/SolidWorks

Personal demo projects

Tiny symmetric block sipher for embedded devices.

Works on multiple platforms, written in ANSI C and following MISRA rules. Developed specially for slow devices, where any kind of encryption cost is too high. This sipher works with a single round, that decreases the sipher strength, but increases the encryption and decryption speed. Makes better results in ECB penguin test, than AES and DES.

It's not widespreaded and have no ready to use tools to identify and break cipher, this way in some cases using this algorithm may by more secure than AES.

GUI toolkit for graphical monochrome displays.

Variable width compact font allows effectively use even the small displays. Controlled with 4 arrow buttons, 'OK' and 'Back' buttons, that's quite enought for minimalistic handheld devices.

The toolkit includes:

Signal processing simulator with code generator and GUI editor.

Model-Driven development is common for aerospace industry, and there's no free and opensource toolkit with C code generation that may be used on microcontrollers. This project utilized the classical control theory and convert schemas to the pure C code, that may run everywhere that can operate with floating-point numbers. The code is fast and predictable, because there is no a single branching instruction that may break processor's conveyor. The project includes graphical editor and simulator.

C and C++ build system.

Modern build systems produces huge and complicated boilerplate scripts. Business don't like such show-stoppers, that steal developers attention and force them work at inner problems instead of the customer's ones. This project is an attempt to fix it. It automatically searches the filesystem for the C and C++ sources, track their state and build without a single line of the scripting. Have simple interactive interface that allows even the newbie create complex projects.


Professional Experience

Jun 2023 - Current
DSR Corporation, Tashkent, Uzbekistan, Senior Software Engineer

This is a big international company with headquarters in Denver, USA, and lots of the projects. Despite I'm not involved here in architectural or management work, but here I constantly widening my technical expertise. The best of this job is:

  • Web technologies and network applications.
  • Advanced GUI with Qt, smooth animations, fancy polished design.
  • Customer-targeted mindset
  • Embedded Linux, IOT, this company is a CSA alliance member and have their own ZigBee stack implementation.

Sep. 2022 - Jun 2023
Axel MWD, Moscow, Russia, Embedded Software Engineer

This company produces sensors for oil drilling that working right in the hole measuring lots of parameters and transmits it to the surface. My part of job was implementing service software for debugging terminal based on Windows PC with Arduino-like board and FT232 as universal connectivity interface.

Apr. 2021 - Sep. 2022
VR-Technologies, Moscow, Russia, Lead Software Engineer

Here, I worked at the unmanned helicopter. It was developed in model-driven paradigm and my part was:

  • Embed the Simulink models into the set of electrical units and correctly wire them up.
  • Debug existent code base.
When I started work here, entire development team was fired and I was the only hardware developer, so at this position I perform multiple roles. In my responsibility was:
  • Make monthly reports.
  • Fixing existend infrastructure in collaboration with tech support.
  • Audit existent code base.
  • Make architectural decisions according to the audit results.

Oct. 2018 - Jan. 2021
MPZ, Moscow, Russia, Middle Software Engineer

It's a former government factory, private since fall of USSR and have several products. I was involved in diesel powerplant control system. It's modular solution with central control unit and set of measurement, communication, DAC and relay peripherial units. The most valuable jobs for me was:

  • First time worked with requirements, refined the functional ones. Met with system modelling.
  • NI LabView HIL stands.
  • Deep optimization of communication unit guided with performance tests.
  • Implementation of TCP/IP stack for network updates and control.
  • Bootloader for MIPS processor.

Apr. 2017 - Sep. 2019
TEC Electronics, Moscow, Russia, Junior Software Engineer

The main product is a line of CAN-bus alarm systems. The most part of the job was legal hacking:

  • Exploring the signals on a bus
  • Implementing identification algorithms of the current car state
  • Implementing contol algorithms, like blocking the engine, closing doors, turn the horn, etc.
Here, I bought my first logic analyzer and proposed it to the team to ease our investigations.

Feb. 2014 - Apr. 2017
GosNIIP, Moscow, Russia, Electronics Engineer

The main responsibilities was testing and tuning up electronic units and also develop and produce equipment for testing. One of the important parts was HIL stand that allow automatical testing of the target devices, it was based on an industrial x86 Windows PC and set of measurement devices. Programs for testing was written with C language as DLL plugins for the main program.

2009 - 2014
MGUPI/MSUIECS, Moscow, Russia, Studenta, Qualified electronics engineer.

Equiualent of the bologna's master degree. Attended additional classes for C language. Achievements:

  • 2'd place in the student conference for a portable digital cardiograph project.
  • Got an educational grant for academic excellence.


Recognition



2025