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

Analytics Fire
C++17, C, Google Test, Google Mock (GMock), Protocol Buffers, Python 3, NS-3...
TomTom
C++11, Google Test, Google Mock (GMock), Boost, Protocol Buffers, SWIG, Java...
EPAM Systems
C++, C, CORBA, The ACE ORB (TAO), Java, Swing, Python, Bash...

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

Part-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

Consultant

2019 - PRESENT
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)

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

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

Libraries/APIs

REST APIs, ZeroMQ, Jenkins Pipeline, SignXML, OpenSSL, SAX, SWT, FFmpeg, OpenGL, Android OpenGL, OpenCV

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

Languages

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

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

Platforms

Linux, Android, Docker, AWS Lambda, Ubuntu, iOS, Tizen, Joomla, Raspberry Pi, Embedded Linux, Amazon Web Services (AWS), MacOS

Other

Protocol Buffers, Image Processing, Algorithms, Data Structures, 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, Embedded Systems, APIs, Embedded Software, Networking, Cryptography, Encryption, ARM, Video Manipulation

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