Jakub Rachucki
Verified Expert in Engineering
Embedded Software Developer
Warsaw, Poland
Toptal member since March 7, 2022
Jakub is an eager embedded system engineer with over five years of experience solving problems across several industries, including aerospace, automotive, and energy production, which gave him a unique insight into safety-critical systems. Proficient in both hardware and software development, Jakub has been involved in all stages of the software development process, from system requirements definition and proposals creation to hands-on software development while leading technical teams.
Portfolio
Experience
Availability
Preferred Environment
Linux, Emacs, Visual Studio Code (VS Code), ARM, GNU Debugger (GDB)
The most amazing...
...product I have developed from scratch was the onboard computer for the first Polish suborbital rocket since 1974.
Work Experience
Embedded Software Engineer
N7 Space
- Extended the company's embedded drivers portfolio to the new ARM Cortex-M3 target. Implemented unit tests for the drivers and automated the integration test procedure using Raspberry Pi and Python.
- Provided a FreeRTOS-based hardware abstraction layer for the ARM Cortex-M7 platform. The software was used to validate the company's MBSE tool.
- Enhanced the company's MBSE tool to support the new ARM Cortex-M7 target.
- Developed a communication library using ASN.1 and C++ according to the European Space Agency Standard ECSS-E-ST-70-41C.
- Built BSP for ARM Cortex-M7 and ARM Cortex-M3 targets for a scientific instrument operating on the ISS.
Embedded C Developer (via Toptal)
Sensorbee
- Designed the upper-level logic of the Modbus library, enabling seamless mapping between LwM2M objects and Modbus registers. This achievement streamlined the fetching process of Modbus registers, optimizing computational complexity to O(1).
- Developed the Modbus library using test-driven development (TDD) in the C language with unit tests written in C++, ensuring robust and reliable code quality and enhancing the library's performance.
- Automated export of a register map from an interface control document (ICD) to C code, significantly accelerating the library's software development and making it easily scalable, as new registers can be added and code generated automatically.
Embedded Software Developer (via Toptal)
Planetary Transportation Systems GmbH
- Participated in the preparation of project design documents. Prepared the Software Reuse file for NASA CFS, an RTEMS-based operating system. Prepared the Detail Design Justification file for the preflight checkout procedure.
- Developed a communication library in C according to European Space Agency Standard ECSS-E-ST-70-41C. Developed the library unit tests using C++ and Python. Integrated the library with the software written in C using RTEMS.
- Automated the procedure of traceability matrix generation, mapping system requirements with test scenarios and test results using Python and an Atlassian REST API.
Embedded Software Engineer
Łukasiewicz Research Network - Institute of Aviation
- Created an onboard computer for a suborbital rocket composed of specialized and independent ARM-based modules interconnected using the CAN bus. The system was equipped with modular, C++-based, cross-platform software with generic HAL.
- Standardized the C++ software development procedure across the organization. Promoted good coding practices, clean code, and test-driven development by training the organization and maintaining a wiki.
- Developed the hardware in the loop tests stand for the onboard computer. Based on PXI computers with LabVIEW software and STM32 development boards with C++ software, it can simulate the whole rocket mission.
- Managed a team of four embedded system engineers and 1-3 interns.
- Hosted code reviews, daily sprints, sprint planning, sprint review, and retrospective meetings.
- Provided consultancy in space avionics, embedded systems development, and testing for other projects at the institute.
- Developed a PCB for the modular onboard computer. Developed power modules with SPS, providing three different voltages.
- Created a DAC module with 16 ADC channels and a mass memory module with 4GB capacity. Created the IMU module with redundant sensors.
Embedded Software Engineer
Aptiv
- Took part in the C and C++ software development of car infotainment systems.
- Collaborated in the C and C++ software development of the car distributed CAN network.
- Maintained and supported legacy C and C++ software.
Technical Student
Cern
- Launched an application that consolidated three different control system interfaces into one user-friendly tool. The product enabled the creation of a fully functional control system GUI after a few-second long configuration.
- Implemented the application across two different CERN sections.
- Organized and lectured a series of weekly coding courses promoting good coding practices and coding standards. Each event hosted around 20-30 people per week.
Experience
Onboard Computer for ILR33-Amber Rocket
https://en.wikipedia.org/wiki/ILR-33_AMBERI was responsible for the whole product and participated in the complete product development process, starting from the requirement formulation. I have also trade-offed the necessary system components, assessed the required time and money budgets, and handled fundraising via national, EU, and European Space Agency programs.
I had to create a team and organize a development facility. I recruited three members and equipped the laboratory. Additionally, 2-3 interns join us every year. I divided the team into hardware and software development and joined the software section while handling the team's management.
The designed system was composed of many independent modules interconnected using CAN. The software written in C++, developed using TDD, was modular and cross-platform, thanks to the generic hardware abstraction layer.
The product was a success, and the computer is now a vital part of the rocket and has already flown three times.
Automation of KPIs and Traceability Matrix Generation for a Space Project
My last client kept documentation in Confluence, which was a great idea. It granted the possibility to link crucial data with each other. My task was to automate the generation of a traceability matrix and KPIs for my client's client. The traceability matrix maps the high-level system requirements to test results, indicating if the system conforms to the design. The KPIs show the percentage of the high-level system requirements translated to low-level ones, showing the progress of the system engineering.
I wrote a Python application that scraps data from Confluence using its REST API. I programmatically mapped acquired data and generated the traceability matrix and KPIs. My application automatically updated the Confluence page, publishing the results, saving a lot of time, and enabling monitoring of the system development.
Design Software for CERN Control Center
https://accelconf.web.cern.ch/icalepcs2017/papers/thpha185.pdfUsing CERN middleware, the application combined all the accelerators devices and data sources into one interface. The application used inheritance and polymorphism to automatically detect the data source and create an object that adapts to its specifics.
I design the software using the requirements given by my supervisor. The application was written in LabVIEW using an object-oriented approach and ActorFramework. I made the application cross-platform to make it usable to all CERN workers.
The implementation and tests took seven months. Then I was responsible for launching and promoting the application across the organization.
CERN employees adopted the application, significantly reducing the time needed for control system development.
Education
Master's Degree in Automatics and Robotics
AGH University of Science and Technology - Kraków, Poland
Bachelor's Degree in Automatics and Robotics
AGH University of Science and Technology - Kraków, Poland
Skills
Libraries/APIs
REST APIs, STM32Cube
Tools
Git, CMake, LabVIEW, GitHub, Subversion (SVN), Emacs, GNU Debugger (GDB), Arm Cortex-M3, Eclipse IDE, Confluence, Zephyr
Languages
C++, C, Embedded C, Embedded C++, Python, Bash
Paradigms
Test-driven Development (TDD)
Platforms
STM32, Arduino, Visual Studio Code (VS Code), Linux, PXI, Eclipse, Raspberry Pi, Docker
Other
Embedded Systems, Universal Asynchronous Receiver/Transmitter (UART), Microcontroller Programming, ARM, STM32F7, STM32F4, I2C, Embedded Hardware, Embedded Software, Hardware, ARM Embedded, Microcontrollers, Firmware, FreeRTOS, CAN Bus, Real-time Operating System (RTOS), Real-time Executive for Multiprocessor Systems (RTEMS), Systems Engineering, Electronic Sensors, Electronics, Architecture, Real-time Embedded Systems, Hardware Design, Technical Consulting, Technology Consulting, AUTOSAR, Modbus Protocol, Nordic nRF5, Nordic nRF52, Nordic nRF53, Electrical Engineering, Internet of Things (IoT), STM32CubeMX
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