Michał Kowalczyk, Developer in Łódź, Poland
Michał is available for hire
Hire Michał

Michał Kowalczyk

Verified Expert  in Engineering

Software Developer

Łódź, Poland

Toptal member since January 11, 2022

Bio

Michał is a software engineer that loves tackling unusual problems. He trades off code testability, time to market, portability, performance, readability, security, technical debt, and resource constraints. Michał focuses on preventing bugs and suggests improvements to the codebase. He worked for large technology companies on products used by millions of users. Michał is a team player open for discussion, strives to achieve project goals, and is willing to adapt to the client's reality.

Portfolio

SunPower Corporation / SunStrong Management LLC
Embedded C, Embedded C++, C++, C, C++11, C++14, C++17, Python, Python 2...
R-Zero
Embedded C, Python 3, C, C++, C++17, CMake, Google Test, GitHub Actions, Docker...
Analytics Fire
C++17, C, Google Test, Google Mock (GMock), Protocol Buffers, Python 3, NS-3...

Experience

  • C++11 - 8 years
  • Google Test - 8 years
  • Google Mock (GMock) - 8 years
  • C++ - 8 years
  • Protocol Buffers - 7 years
  • CMake - 5 years
  • C - 4 years
  • C++17 - 2 years

Availability

Full-time

Preferred Environment

Linux, CMake, C++17, Sublime Text 3, Google Test, Google Mock (GMock), Slack

The most amazing...

...thing that I developed is the implementation of a DRAND algorithm that allows devices to negotiate time schedules for TDMA communication.

Work Experience

Firmware Engineer

2022 - 2024
SunPower Corporation / SunStrong Management LLC
  • Reduced the annual cost of cellular networking by over $1.000.000.
  • Restored connection between a few thousand devices and the cloud.
  • Redesigned the firmware upgrade procedure, decreasing the traffic to even 1% of the firmware image size.
  • Designed a tool to find processes generating the most cellular traffic.
  • Designed tools to detect broken parts of rootfs and to fix them.
  • Designed a tool that automated the application of patches on a bulk of devices and the running of interactive sessions for further analysis.
  • Designed tools for collecting diagnostic information and applying patches with the use of SMS.
  • Designed a framework for automated testing of device conformance with IEEE1547-2018.
Technologies: Embedded C, Embedded C++, C++, C, C++11, C++14, C++17, Python, Python 2, Python 3, Bash, Yocto, Wireshark, pcap, Iptables, Systemd, DBus, Debugging, GNU Debugger (GDB), zlib, LZMA, Protobuf, OpenSSL, AWS IoT, Amazon S3 (AWS S3), AWS Lambda, Splunk, Snowflake, SQL, SQLite, Apt-get, JFrog, Pandas, NumPy, SSH, APIs, POSIX, SMS

Firmware Engineer

2021 - 2022
R-Zero
  • Designed and created a hardware test platform for running automated test scenarios to verify firmware correctness in various hardware configurations.
  • Wrote Ansible playbooks to set up Raspberry Pi as a self-hosted runner, including the test platform dependencies and security enhancements.
  • Optimized firmware startup by moving non-essential work to be done in the background.
  • Adapted the firmware to work with the latest NimbeLink LTE modems.
  • Created a build system and CI infrastructure based, including static analysis checks and unified code formatting.
  • Refactored multiple state machines to use a state machine compiler.
Technologies: Embedded C, Python 3, C, C++, C++17, CMake, Google Test, GitHub Actions, Docker, Ubuntu, Arch Linux, Clang-format, Clang-tidy, State Machines, Ansible, Raspberry Pi, Raspberry Pi 3 GPIO, Raspbian, ARM, Bare-metal Environment, Toolchains, GNU Toolchain, NimbeLink, J-link Debugging, GNU Debugger (GDB), Multithreading, Firmware, Firmware over the Air (FOTA), Device Firmware Updates (DFU)

Consultant

2019 - 2021
Analytics Fire
  • Created a VEN client for OpenADR, which allows for electricity cost optimization.
  • Developed a network monitoring tool for a fleet of 65,000 devices.
  • Enriched firmware update with signature verification that addressed a severe vulnerability.
  • Optimized a PID controller to reduce the export of electricity from photovoltaic site to satisfy Hawaii Electricity Company requirements.
Technologies: C++17, C, Google Test, Google Mock (GMock), Protocol Buffers, Python 3, NS-3, Digi XBee, DBus, REST, ZeroMQ, CMake, Docker, Docker Compose, AWS Lambda, Amazon DynamoDB, iPerf3, cURL Command Line Tool, SQLite, Zigbee, Jenkins, Jenkins Pipeline, Open Automated Demand Response (OpenADR), Xerces-C, SignXML, XML, OpenSSL, Make, Bash, Ubuntu, Linux, Slack, Jira, Confluence, Bitbucket, GitHub, GitHub Actions, PID Controllers, Test-driven Development (TDD), Algorithms, Containers, Design Patterns, Object-oriented Programming (OOP), REST APIs, Embedded C, Embedded C++, Embedded Linux, Embedded Systems, Amazon Web Services (AWS), Embedded Software, Unit Testing, ARM, Encryption, Makefile, GNU Debugger (GDB), Firmware, Firmware over the Air (FOTA), Device Firmware Updates (DFU), POSIX, Yocto

Senior Software Engineer

2016 - 2019
TomTom
  • Co-created Polish Technical Committee for Programming Language, a Polish standardization body cooperating with ISO/IEC JTC 1/SC 22; made TomTom one of its members.
  • Represented the company as a speaker at a few conferences, including code::dive, Mobilization, DevDays, and local meetup C/Embedded/Hardware User Group.
  • Led technical interviews with candidates for software engineers.
  • Mentored less experienced colleagues in attaining seniority in software engineering.
Technologies: C++11, Google Test, Google Mock (GMock), Boost, Protocol Buffers, SWIG, Java, Mockito, Objective-C, Objective-C++, Swift, Kotlin, Python, Bash, Android, iOS, Jenkins, Confluence, Jira, Design Patterns, Distributed Systems, Back-end, Android SDK, Android NDK, Object-oriented Programming (OOP), Linux, Shaders, APIs, Unit Testing, MacOS, Xcode, OpenGL, Android OpenGL, Qt, Qt 5, Valgrind

Senior Software Engineer

2015 - 2016
EPAM Systems
  • Represented the company as a speaker at the conference 4Developers.
  • Introduced unit testing to the legacy C++ project.
  • Maintained legacy code and solved bugs and race conditions.
Technologies: C++, C, CORBA, The ACE ORB (TAO), Java, Swing, Python, Bash, Distributed Systems, Object-oriented Programming (OOP), Linux, Unit Testing, Makefile

Software Engineer

2013 - 2015
Nokia
  • Increased transparency for test coverage by combining results on all automatic test levels.
  • Conducted technical interviews with candidates for software engineers.
  • Provided C++11 training to interns on their one-month Nokia bootcamp.
  • Shared the role of a software engineer with a scrum master.
  • Profiled software performance and fixed performance bottlenecks.
Technologies: C++11, Boost, Google Test, Google Mock (GMock), Subversion (SVN), IBM Rational Rhapsody, SAX, RapidXml, Python, Jinja, Bash, Jenkins, Design Patterns, Object-oriented Programming (OOP), Linux, Unit Testing, Valgrind, GNU Debugger (GDB)

Software Engineer

2013 - 2013
Samsung
  • Created an Eclipse plugin for fixing performance bottlenecks in JavaScript applications automatically.
  • Profiled performance of JavaScript Tizen applications and fixed performance bottlenecks.
  • Presented team efforts in Samsung headquarter, Suwon, South Korea.
Technologies: Java, SWT, JavaScript, CSS, HTML5, Python, Bash, Tizen, Object-oriented Programming (OOP), Linux

Software Developer

2006 - 2011
Freelance
  • Created contents of CD included in the textbook of the German language with Flash and ActionScript.
  • Created video conferences extension for e-learning platform with Flash, ActionScript, and Red5.
  • Created Veracruz – students examination application for Microsoft with Flash, ActionScript, and XML.
Technologies: PHP, MySQL, HTML5, HTML, CSS, JavaScript, Flash, ActionScript 3, ActionScript 2, Flash ActionScript, FFmpeg, Joomla, Red5, Red5 Media Server, Front-end, Back-end

Experience

TomTom GO Navigation

https://play.google.com/store/apps/details?id=com.tomtom.gplay.navapp
A mobile app for navigation. I developed features in the map visualization engine using C++, Java, and Objective-C for API for Android and iOS applications and C++ microservices used to preprocess map data for the engine.

Education

2011 - 2012

Master's Degree (M2) in Informatics

The Henri Poincaré University - Nancy, France

2010 - 2012

Master's Degree in Computer Science

University of Lodz, Faculty of Mathematics and Computer Science - Łódź, Poland

2007 - 2010

Bachelor of Computer Science in Computer Science

University of Lodz, Faculty of Mathematics and Computer Science - Łódź, Poland

Skills

Libraries/APIs

REST APIs, ZeroMQ, Jenkins Pipeline, SignXML, OpenSSL, SAX, SWT, FFmpeg, OpenGL, Android OpenGL, OpenCV, POSIX, pcap, zlib, Protobuf, Pandas, NumPy

Tools

CMake, Sublime Text 3, Jenkins, Make, GitHub, Slack, Blender, NS-3, Digi XBee, DBus, Docker Compose, iPerf3, cURL Command Line Tool, Jira, Confluence, Bitbucket, SWIG, Subversion (SVN), IBM Rational Rhapsody, Android NDK, Flash, Xcode, Makefile, GNU Debugger (GDB), Valgrind, Clang-format, Clang-tidy, Ansible, GNU Toolchain, Wireshark, Iptables, Systemd, Splunk, Apt-get

Languages

C++17, C, C++, C++11, HTML5, HTML, Embedded C++, Java, Bash, Python 3, Python, JavaScript, Embedded C, Python 2, Ada, C#, Prolog, XML, Objective-C, Swift, Kotlin, CSS, PHP, ActionScript 3, ActionScript 2, Flash ActionScript, C++14, Snowflake, SQL

Frameworks

Google Test, Google Mock (GMock), Boost, Mockito, Swing, Jinja, JNI, Android SDK, Red5 Media Server, Qt, Qt 5

Paradigms

Test-driven Development (TDD), Design Patterns, Object-oriented Programming (OOP), Unit Testing, REST, Microservices

Storage

SQLite, Amazon DynamoDB, MySQL, Amazon S3 (AWS S3)

Platforms

Linux, Android, Embedded Linux, Docker, AWS Lambda, Ubuntu, iOS, Tizen, Joomla, Raspberry Pi, Amazon Web Services (AWS), MacOS, Arch Linux, Raspberry Pi 3 GPIO, Raspbian, AWS IoT

Other

Protocol Buffers, Image Processing, Algorithms, Embedded Systems, Data Structures, Embedded Software, Firmware, Neural Networks, Algebra, Statistics, Gimp, Combinatorics, Calculus, Mathematical Analysis, Operating Systems, Ontologies, Parsers, Numerical Methods, Zigbee, Open Automated Demand Response (OpenADR), Xerces-C, GitHub Actions, PID Controllers, Objective-C++, CORBA, The ACE ORB (TAO), RapidXml, Containers, Distributed Systems, Back-end, Red5, Front-end, Shaders, APIs, Networking, Cryptography, Encryption, ARM, Video Manipulation, Firmware over the Air (FOTA), Device Firmware Updates (DFU), State Machines, Bare-metal Environment, Toolchains, NimbeLink, J-link Debugging, Multithreading, Yocto, Debugging, LZMA, JFrog, SSH, SMS

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