Michał Kowalczyk
Verified Expert in Engineering
Software Developer
Łódź, Poland
Toptal member since January 11, 2022
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
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
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
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.
Firmware Engineer
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.
Consultant
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.
Senior Software Engineer
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.
Senior Software Engineer
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.
Software Engineer
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.
Software Engineer
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.
Software Developer
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.
Experience
TomTom GO Navigation
https://play.google.com/store/apps/details?id=com.tomtom.gplay.navappEducation
Master's Degree (M2) in Informatics
The Henri Poincaré University - Nancy, France
Master's Degree in Computer Science
University of Lodz, Faculty of Mathematics and Computer Science - Łódź, Poland
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
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