Marcin Wesolowski, Developer in Wrocław, Poland
Marcin is available for hire
Hire Marcin

Marcin Wesolowski

Verified Expert  in Engineering

Microcontroller Programming Developer

Location
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

Dutch Smart Farming Solutions Manufacturer
Agile Software Development, C++17, C++20, C++, Zephyr...
Dutch Smart Healthcare Startup
C++17, C++, C, CMake, Nordic nRF52, Bluetooth, GNSS...
Major German Car Manufacturer
C++, Scala, C++14, Zuul, Rviz, Robot Operating System (ROS), Scrum, Google Test...

Experience

Availability

Part-time

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

2020 - 2022
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.
Technologies: Agile Software Development, C++17, C++20, C++, Zephyr, Real-time Operating System (RTOS), Yocto, STM32, ARM SoC, Raspberry Pi, Logic Analyzers, Soldering, JLink, CMake, Python 3, Google Test, MQTT

Freelance Senior C/C++ Developer

2020 - 2020
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.
Technologies: C++17, C++, C, CMake, Nordic nRF52, Bluetooth, GNSS, Serial Peripheral Interface (SPI), Logic Analyzers, Google Test, Agile, Soldering, Python 3

Freelance Senior C and C++ Developer

2018 - 2020
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.
Technologies: C++, Scala, C++14, Zuul, Rviz, Robot Operating System (ROS), Scrum, Google Test, Git, GCC, CMake

Freelance Senior C# Developer

2018 - 2019
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%.
Technologies: C#, Windows Presentation Foundation (WPF), Microsoft Component Object Model (COM), Bluetooth, Model View ViewModel (MVVM)

Freelance Embedded Developer/Embedded Software Engineer/Architect

2013 - 2019
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.
Technologies: STM32, CAN Bus, Oscilloscopes & Tester Equipment, Logic Analyzers, Serial Peripheral Interface (SPI), I2C, C++, C, C#, Windows Presentation Foundation (WPF), Soldering, 1-Wire, Python 3, Universal Asynchronous Receiver/Transmitter (UART)

PhD Researcher

2011 - 2017
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.
Technologies: ASIC, Verilog HDL, Tcl/Tk

Junior Developer, Localization Specialist

2008 - 2011
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.
Technologies: C++, XML, Perl, Regular Expressions

Smart Farming SCADA Control System

Developed a multi-platform control system taking good care of poultry, pigs, or mushrooms. This usually took place in large farm houses with climate, light, and feeding control. I proudly led a team of up to nine developers while also designing the C++ firmware implementation. I worked with the solution architect. I delivered a universal platform connecting microcontroller firmware with production control services running on Raspberry Pi, Yocto, Linux, and AngularJS on the front end.

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.
2005 - 2011

Master's Degree in Computer Science

Wrocław University of Science and Technology - Wrocław, Poland

Tools

CMake, Git, MQTT, GCC, CLion, Zephyr, Xilinx Ise, Jira, Confluence, Gerrit, GitLab, GitHub, Bitbucket, Zuul, Rviz

Frameworks

Google Test, Sphinx Documentation Generator, Windows Presentation Foundation (WPF)

Languages

Embedded C++, C++, C++17, Embedded C, C#, Python 3, Scala, Verilog HDL, Tcl/Tk, C++14, C, C++20, XML, Perl

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)

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