
Marcin Wesolowski
Verified Expert in Engineering
Microcontroller Programming Developer
Wrocław, Poland
Toptal member since January 4, 2023
Marcin is a versatile and experienced team leader. He is also a software architect binding embedded with non-embedded worlds. He has worked on nearly every software layer, from silicon design to bare-metal/RTOS to PC applications and big data cloud processing. Pedantic about structured, extensible, and self-descriptive code, he has been working entirely remotely for nine years already.
Portfolio
Experience
- Microcontroller Programming - 9 years
- STM32 - 9 years
- Real-time Operating System (RTOS) - 8 years
- C++ - 7 years
- FreeRTOS - 7 years
- Embedded C++ - 5 years
- C++17 - 2 years
- Zephyr - 2 years
Availability
Preferred Environment
Ubuntu Linux, CLion, C#, C++17, Python 3, CMake, Embedded C++, Real-time Operating System (RTOS), Microcontroller Programming, Oscilloscopes & Tester Equipment
The most amazing...
...project Ive worked on was an autonomous drive platform at a major German car manufacturer with 1,000 Github users and a variety of domains and technologies.
Work Experience
Freelance Team Leader/Software Architect
Dutch Smart Farming Solutions Manufacturer
- Co-designed the architecture of a multi-platform smart farming SCADA control software. Used Zephyr, RTOS, Yocto, and Linux.
- Led a team of around nine developers. Implemented the system in C++17, Python, and Go.
- Wrote code skeletons and APIs. Pair-programmed and mentored junior/mid-level developers.
- Kept the code base clean with code reviews and in-depth analyses.
Freelance Senior C/C++ Developer
Dutch Smart Healthcare Startup
- Developed a medical-grade, ISO13485-compliant smart care wristband for elderly people.
- Implemented external GNSS module drivers and features in FreeRTOS-based firmware.
- Developed an embedded C++17 serializer library for Protobuf along with a Python toolchain.
Freelance Senior C and C++ Developer
Major German Car Manufacturer
- Developed an autonomous drive platform at a major German car manufacturer.
- Developed C++14 applications processing data from sensors and HD maps. Provided an autopilot with road situation awareness around the car and the ability to visualize it.
- Implemented live map data cloud processing pipelines in Scala to stress test server throughput.
Freelance Senior C# Developer
Silicon Valley Smart Healthcare Startup
- Implemented C#, model view viewmodel (MVVM), and Windows Presentation Foundation (WPF). Created desktop applications for automated provisioning and calibration for sleep monitoring medical devices on the manufacturing line.
- Interfaced a Windows application with external devices like a spectrometer, power meter, and radio dongle using Microsoft Component Object Model (COM) and unmanaged C++ libraries.
- Increased overall manufacturing line throughput by 70%.
Freelance Embedded Developer/Embedded Software Engineer/Architect
Infis Sp. z o.o.
- Developed an in-house solution for embedded devices collecting telemetry from 10,000+ cars and trucks. Utilized sensors, GNSS, Automotive Controller Area Network (CAN), and RS-485 buses. Used a reporting via GPRS.
- Redesigned, rebuilt, and further developed firmware (C/C++) and accompanying PC tools (C#, Python).
- Brought-up hardware for three new device lines and migrated the existing codebase.
- Cut down device power consumption by 70% with software optimizations.
- Introduced unit testing, FreeRTOS, and continuous integration (CI) from the ground up for the project.
- Implemented geofencing determining the country of the location within a few meters accuracy within several milliseconds. Used a 72-MHz MCU with a world map stored on an external flash drive.
PhD Researcher
Wrocław University of Science and Technology
- Ran an IC syntheses of low-power full indicator reading filters. Utilized residue number systems.
- Performed engineering on the back end for 65 nm ASIC fabrication within a research grant.
- Taught computer architecture classes to 200+ undergraduate students.
Junior Developer, Localization Specialist
Gigaset Communications
- Developed proprietary extensions of CatIQ 2.0 protocol compatibility tests (C++). Set up digital enhanced cordless telecommunications (DECT) headsets.
- Managed an object XML database for the embedded UI translations of over 80,000 texts in 30 languages.
- Coordinated the translation process for seven different products.
Experience
Smart Farming SCADA Control System
Apart from writing the C++ skeletons and interfaces for my team for further development, I was also performing in-depth code reviews and tutoring other developers in stretching modern C++ features to its best for the constrained STM32 platform with just 1 MB of RAM. I also got my hands dirty while debugging difficult problems on the hardware.
The most interesting part was very flexible design with MQTT over Ethernet communication, all fit into small STM32 uC thanks to advanced C++17 & C++20 features seamlessly integrated with an underlying Zephyr RTOS via precisely crafted abstraction layers. All of that made it possible to very easily extend the system with new peripheral devices like sensors or actuators.
Education
Master's Degree in Computer Science
Wrocław University of Science and Technology - Wrocław, Poland
Skills
Tools
CMake, Git, MQTT, GCC, CLion, Zephyr, Xilinx Ise, Jira, Confluence, Gerrit, GitLab, GitHub, Bitbucket, Zuul, Rviz
Languages
Embedded C++, C++, C++17, Embedded C, C#, Python 3, Scala, Verilog HDL, Tcl/Tk, C++14, C, C++20, XML, Perl
Frameworks
Google Test, Sphinx Documentation Generator, Windows Presentation Foundation (WPF)
Platforms
STM32, Ubuntu Linux, Eclipse, Raspberry Pi
Paradigms
Agile Software Development, Scrum, Agile, Model View ViewModel (MVVM)
Other
Real-time Operating System (RTOS), Microcontroller Programming, CAN Bus, Oscilloscopes & Tester Equipment, Serial Peripheral Interface (SPI), I2C, FreeRTOS, Device Firmware Updates (DFU), Firmware over the Air (FOTA), Logic Analyzers, Cortex-M Microcontrollers, Doxygen, JLink, ASIC, Soldering, FPGA, Microsoft Component Object Model (COM), Bluetooth, Robot Operating System (ROS), Nordic nRF52, GNSS, Yocto, ARM SoC, 1-Wire, Regular Expressions, Microcontrollers, GPU Computing, Universal Asynchronous Receiver/Transmitter (UART)
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring