Mirosław Opoka, Software Developer in Innsbruck, Austria
Mirosław Opoka

Software Developer in Innsbruck, Austria

Member since November 11, 2015
Miroslaw is a software engineer with 20+ years of experience, translating business dreams into actionable plans, robust architectures, and maintainable products. He specializes in object-oriented solutions for Linux and embedded systems with C, C++, and Python for industrial applications where reliability and safety are critical. Miroslaw fosters open communication to ensure that the business logic is well understood, the code is clean and readable, and the final product is future-proof.
Mirosław is now available for hire

Portfolio

  • Leybold GmbH
    Object-oriented Programming (OOP), Embedded Systems, Code Architecture...
  • Chubb Fire and Security
    Embedded C, Software Architecture, Object-oriented Programming (OOP)...
  • Self-employed
    Embedded C, Software Architecture, Object-oriented Programming (OOP)...

Experience

Location

Innsbruck, Austria

Availability

Part-time

Preferred Environment

Python, C++17, Embedded C++, CMake, Git, Vim Text Editor, Debian, Linux

The most amazing...

...project I've coded was a fast data bus for exchanging messages between connected processes on an embedded platform.

Employment

  • Senior Software Engineer

    2019 - 2021
    Leybold GmbH
    • Designed a robust embedded-software architecture that allows non-technical users to build embedded systems. In that way, new products don't have to be coded in C/C++ at all.
    • Contributed to establishing state-of-the-art coding practices to ensure code quality.
    • Consulted and served as a tech lead for several subcontractors working on the project.
    • Wrote the initial POC code, which included embedding a system of easily-selectable and domain-specific components, a code generator "gluing" the common part with a project-specific one, and building a system for full automation.
    Technologies: Object-oriented Programming (OOP), Embedded Systems, Code Architecture, Unix Shell Scripting, Git, C, Code Generators, Shell Scripting, Python, Remote Team Leadership, Software Architecture, STM32, Embedded C, Embedded Linux, Embedded C++, CMake, C++17, C++, Test-driven Development (TDD), Embedded Software, Embedded Development, IP Networks, Software Engineering, CAN Bus, CANopen, RTOS, TCP/IP, Standard Template Library (STL), Makefile, CI/CD Pipelines, Computer Engineering, Debian, Linux, Linux IPC, C++11, C++14, Team Leadership, Networking, Automated Testing, Python 3, Bash, Bash Script
  • C++ Engineer (Embedded Linux)

    2019 - 2021
    Chubb Fire and Security
    • Redesigned an old, mission-critical C application into distributed, C++17 networking applications on the newly embedded Linux, running on mangOH hardware.
    • Introduced TDD for a brand new version of the system.
    • Modularized the software and tests (TDD), which led to much faster development because it shortened the feedback loop significantly. The target was an embedded Linux system.
    Technologies: Embedded C, Software Architecture, Object-oriented Programming (OOP), Unix Shell Scripting, Embedded Systems, C, Code Architecture, Python, Embedded C++, Git, Linux, C++, Embedded Software, TCP/IP, Embedded Linux, CMake, C++17, Test-driven Development (TDD), Embedded Development, Software Engineering, IP Networks, Shell Scripting, Standard Template Library (STL), Makefile, GSM, Networking, CI/CD Pipelines, C++11, C++14, Automated Testing, Python 3, Bash, Bash Script
  • Senior Software Engineer

    2011 - 2018
    Self-employed
    • Created a FastCGI and WebSockets multiprocess back end in C++11 for a web interface for a traffic light controller. The back end ran efficiently on a very resource-limited embedded device.
    • Created a Docker-based system to simulate different types of embedded Linux devices connected to a web-based central system. As a result, testing the central system and developing new features did not require many real hardware devices.
    • Sped up and optimized a web platform for a traffic light controller, delivering it on time for the client's trade show.
    • Coded a portal for price and review comparisons of Amazon products.
    Technologies: Embedded C, Software Architecture, Object-oriented Programming (OOP), Unix Shell Scripting, Embedded Systems, CMake, Traffic Engineering, MySQL, Code Architecture, Embedded C++, Team Leadership, Git, Linux, Embedded Software, STM32, Python, Embedded Linux, Standard Template Library (STL), C++17, C++, C, IP Networks, Software Engineering, Test-driven Development (TDD), Embedded Development, Code Generators, TCP/IP, Shell Scripting, Google Test, Makefile, Arduino, C++11, C++14, Computer Engineering, Debian, Linux IPC, Networking, Automated Testing, Python 3, Bash, Bash Script
  • Senior Software Development Engineer

    2004 - 2010
    Swarco
    • Ported a traffic light controller from 386 to ARM on embedded Linux.
    • Built Linux kernel modules to support a traffic light controller.
    • Created an interprocess-communication daemon (data bus) optimized for embedded Linux.
    • Wrote a high-performance wrapper library for communicating with the traffic light controller used in Holland.
    • Developed a web administration platform with the back end in C and the front end in Ext JS.
    Technologies: Object-oriented Programming (OOP), Unix Shell Scripting, Embedded Systems, CMake, Traffic Engineering, MySQL, Code Architecture, Python, Embedded C++, Git, Embedded Linux, Linux, Embedded Software, Ext JS, JavaScript, C++, C, Code Generators, IP Networks, Software Engineering, CAN Bus, Embedded Development, TCP/IP, Shell Scripting, Standard Template Library (STL), Google Test, Makefile, Computer Engineering, Debian, Embedded C, Linux IPC, Networking, Remote Team Leadership, RTOS, Software Architecture, Automated Testing, Python 3, Bash, Bash Script
  • Software Developer

    2002 - 2004
    ProFile Computersysteme GmbH
    • Created a simulator of sports events so the system could be tested with past data. Examples of events in a soccer match include passing a ball from one player to another or scoring a goal.
    • Used Perl and XSLT for processing data between collection and metrics calculation.
    • Created code for controlling a video mixer. It was a shared library, and the code was written so that it could be compiled for both Windows and Linux without any changes.
    Technologies: Object-oriented Programming (OOP), Unix Shell Scripting, MySQL, Code Architecture, Linux, C++, CORBA, C, Perl, XSL, XML, Qt, Software Engineering, TCP/IP, Shell Scripting, Makefile, Bash, Bash Script
  • Senior Software Developer | Network Administrator

    2000 - 2002
    Fibernet
    • Co-authored a fully automated web-hosting system—one of the first in Poland.
    • Designed and coded web-based portals (LAMP) for different customers.
    • Provided network administration for company servers: Linux, FreeBSD, OpenBSD, and Solaris.
    Technologies: Unix Shell Scripting, C, Linux, C++, Shell Scripting, DNS, Qmail, LDAP, Apache, MySQL, Perl, PHP, TCP/IP, Makefile, Bash, Bash Script

Experience

  • Robust Software Architecture for a Family of Embedded Systems

    Designed software architecture for the STM32-based system with clear separation of low-level code and business logic, developed a set of tests for the latter, and automated execution (CI). With this approach, the product was ready for final release much faster than it would have been with traditional embedded development.

  • C++ Code Generators

    Designed and implemented C++ code generators in Python to create user-specific parts of the whole system. These allowed for the creation of highly customized embedded products and significantly cut new product development costs by reducing the risk of low-level programming.

  • Fast Interprocess Communication Mechanism

    Created a fast data bus for exchanging messages between connected processes for an embedded Linux platform. It supported direct and broadcast messages and a subscription mechanism. The focus was on performance, low memory and CPU footprint, and, most of all, ease of use. The final product was able to process thousands of messages per second on a piece of hardware with just a few MB of RAM and a CPU that was a few times slower than those currently used low-end mobile phones.

Skills

  • Languages

    C++17, Embedded C, C, C++, Python, Embedded C++, C++11, C++14, Python 3, Bash, Bash Script
  • Libraries/APIs

    Standard Template Library (STL)
  • Tools

    Makefile, Git, CMake
  • Paradigms

    Object-oriented Programming (OOP), Test-driven Development (TDD), Automated Testing
  • Platforms

    Debian, Embedded Linux, Linux, STM32
  • Other

    Code Architecture, Shell Scripting, TCP/IP, Team Leadership, Software Architecture, Remote Team Leadership, Embedded Development, Traffic Engineering, Embedded Systems, Unix Shell Scripting, Software Engineering, Computer Engineering, Linux IPC, Networking, IP Networks, Code Generators, Embedded Software, GSM, CAN Bus, CANopen, RTOS, CI/CD Pipelines
  • Frameworks

    Google Test
  • Storage

    MySQL

Education

  • Master's Degree in Computer Engineering
    1996 - 2001
    West Pomeranian University of Technology - Szczecin, Poland

To view more profiles

Join Toptal
Share it with others