Software developer

I'm an experienced embedded software engineer and create dedicated low-level solutions based on the Linux/Yocto environment.


Finished projects

Time synchronization module

Implementation of the dedicated solution based on systemd in order to synchronize system time and real-time clock with the remote NTP servers. It ensures that used certifications are always up to date.

Secure boot

The goal of the project was to design and implement in u-boot bootloader the secure boot process of the Linux images. The whole stages of configuration, generation, and signing target images have been integrated with the Yocto environment.

RGB LEDs device driver

Designed and implemented from scratch the Linux device driver responsible for configuration and synchronized management of a few RGB LEDs. The solution is fully flexible and provides the possibility to define and set custom light patterns from the userspace.

Software update system

The target of the project was to design the secure mechanism of update and booting system. The proposed solution is based on the complex configuration and integration of the all components such as u-boot, Linux, swupdate application, and image verification process from the various media e.g. USB stick.

Board Support Package

I was requested to prepare the complete board support package for the platform based on i.MX 6QuadPlus processor. The provided BSP contains a u-boot bootloader, custom Linux distribution, update system, and SDK for the end-application developers. The whole process has been integrated with the Yocto environment.

SaaS cloud service

The SaaS cloud service provides possibility for many users to manage and monitor their transport orders in real-time. It has been designed, implemented, and deployed by me using the following software stack: Docker/Django/Boostrap. The system successfully works in the commercial environment.

DCF77 signal analyzer

This is a hobbyist project about device design and software implementation for receiving the longwave time signal. The signal is being continuously broadcasted from Mainflingen/German and it is generated from local atomic clocks.

Adapting the Kanzi based graphic engine

The project was about adapting the current source code of the graphic engine based on Kanzi technology to the MISRA C 2012 rules. The final product was designed for the automotive industry.

Automotive Reverse Camera Application

The goal of the project was to design and develop the prototype of an image processing reverse camera system intended for the automotive industry. The streaming procedure was created using gstreamer library fitted with an extended OpenCV image processing plugin.

Audio/Video RTSP streaming server

The project's goal was to develop from scratch the RTSP server which streams in real-time mode video and audio media content. The provided solution was created for the mobile 4G monitoring system. The final product was created for the large-scale electronics company and is widely available for individual consumers.

Dedicated file system

The project's goal was to design and create an embedded file system for the dedicated device. The proposed solution consists of the customized U-boot bootloader, configured Linux kernel, and minimal, fully functional, and secure file system based on the Buildroot project.

Android bring up

The project's goal was to port the new version of Android 5.0 Lollipop system on several mobile phones for one of the largest manufacturers. The international project team consisted of several dozen developers and test engineers. Personally, I worked on the low-level issues related to devices drivers and Linux kernel. Our software is prepared to upgrade for millions of users around the world.

Porting the LTE modem to Linux/OpenWrt

The goal was to port an application side of the LTE modem which worked under OSE real-time operating system to a dedicated version of Linux/OpenWrt. The scope of work included a configuration and execution of Linux system with OpenWrt environment and creating the layer which implements whole application functionality of LTE modem. The hardware platform consists of two ARM Cortex-R4 processors. Linux is run on one of them while the second one is intended for an unchanged OSE system.

BSP for TI DaVinci based platform

The goal was to create all software stacks for the designed hardware platform based on TMS320DM6467 processor. The created stack consists of a dedicated version of U-boot bootloader with new functionalities and a customized Linux kernel fitted with necessary drivers for available peripheries. Additionally, I created a dedicated file system for end application usage.

Fire detection system

The main responsibility of the system is to encode, stream and analyze the video input in order to detect the potential forest fire hazard. An input stream comes from the industrial camera which is placed in the woodland. The system works on the TI DaVinci DM6447 platform under dedicated Linux control. The image analysis algorithms are implemented using the OpenCV library. The system was developed for the company which cares about the forest environment.

GSM network statistics collection module

The goal of this project is to design and implement the statistical module for the larger GSM positioning system. The distributed statistic module is responsible for the collection, segregation, and calculating data that come from millions of devices all over the world. Additionally, the output messages are stored in databases. Our software works in the expanded multiprocessor environment which is based on a Unix system. The project is being developed for one of the largest providers of GSM positioning services in the world.

Customization of Android 4.0

The project's goal was to port the new version of the Android 4.0 Ice Cream Sandwich system on several mobile phones for one of the major manufacturers. All of my solutions successfully passed our internal and external tests (Compatibility Test Suite) provided by Google. Our software is prepared to upgrade for millions of users around the world.

Production Management System

My role in this project was to develop and maintain a dedicated desktop application used as a production and employees management system. The application was developed using Qt 5.8 library and is running in a Windows environment.

Bluetooth headset device

The project was about developing and maintaining firmware of wireless headset device which offers full integration with host device i.e mobile phone. The whole software stack consists of a firmware based on uC/OS real-time operating system and host application running on Android/iOS mobile phone.

NFC Dynamic Tag device driver

The project's goal was to design and develop from scratch the Linux and Android device driver for NFC Dynamic Tag (FeliCa Plug) module. FeliCa Plug is a communication module that allows to creation of a tag compatible with NFC (Near Field Communication) technology with dynamically changing content. Designed and the written driver is a part of the larger project in the Digital Signage branch. All of the work was carried out on the PandaBoard platform under Linux kernel in 3.0 version.

Audio/Video real-time coding and streaming

The project's goal was to develop the complete software solution which encrypts the analog video signal (H.264 codec) in real-time mode and streams it through the RTSP protocol. As the hardware platform, I used the commercial module based on the TI DaVinci DM6447 CPU which is additionally fitted with DSP core. Encryption of the raw video input signal from the attached external camera is performed on the DSP core, whereas the ARM CPU with a dedicated application based on the live555 library is responsible for streaming. The whole system works under special prepared Linux distribution.

Bootloader for Set-Top Box device

The goal of the project was to develop the advanced bootloader which is based on the U-Boot and intended for the Set-Top Box device. The main bootloader’s task is to upgrade and boot the high-level software. The created bootloader successfully works in the mass-produced and used devices in the digital television industry.

GPS tracking system

The main goal of the project was to develop the remote tracking system of moving objects such as vehicles, packages, or people. The primary assumption is a possibility of tracking the own fleets from every place via the web browser. After all, the final product which is called EE-Tracker was created.

Internet radio stations player

The goal of the project was to design and create a prototype of a device that can play on the Internet or local radio stations. The device is able to work without any user intervention and can be remote-controlled by an administrator through the network. The additional feature is the possibility of creating and playing the playlist of MP3 files stored on the LAN server.

Modification of coreboot BIOS

The main goal of this project is providing BIOS custom replacement which initializes as fast as possible all of the required components contained in the MSM800BEV hardware platform and runs the Linux operating system. As a result, I developed the BIOS replacement which is able to boot the Linux operating system in only 4.1 seconds.

HD Audio Controller for QNX

In order to play the given wave file, the application initializes and properly configures the Intel High Definition Audio Controller within Mobile Intel 945GM Express Chipset (ICH7 bridge) which is connected to the Realtek ALC888 Audio Codec. The project is a response to a small number of audio chipset drivers provided by the QNX 4.25 operating system. It is used in the power plant to play audio alarms. The project has been also ported to the QNX 6.3 operating system.

Methane concentration measurement and recording system

The designed device is fitted with two sensors: TGS2600 and TGS2611. These sensors can constantly measure the concentration of methane. The device firmware was written in C language, but the program for recording was developed in the C++ Builder environment.

Porting Ada compiler o the Lego NXT platform

The project was developed during the three months' stay in Paris at AdaCore company. It consisted in porting the GNAT GPL technology to the Lego Mindstorms NXT (ARM7 Atmel AT91SAM7S256) platform and writing an Ada binding for the nxtOSEK real-time operating system. The project consists of the Ada cross compiler and Ada library which allows programming a Lego Mindstorms NXT device in Ada language under nxtOSEK real-time operating system.

Porting of the QNX on the Intel XScale platform

The project includes a full porting of the QNX Neutrino 6.3.2 real-time operating system on the Intel XScale PXA255 platform. As an embedded computer, I used the Karo TRITON-UCB StarterKit. The result of the project is a complete board support package that contains the adapted QNX Neutrino operating system to the Intel XScale PXA255 architecture.

Measuring device recorder

The program records the measurements from the external industrial converter which is connected to the serial port. The application also creates graphs in real-time mode.

Motorola CPU family programmer

Device sets the MC68HC908x microcontroller into ROM Monitor Mode which makes possible programming and debugging. Communication is carried out via serial port and the PROG08SZ software provided by P&E.

The autonomous 4UpGrade robot

The robot was designed for the II Minisumo Robots Competition which is organized by the Wroclaw University of Technology. It is the autonomous robot equipped with innovative mechanics which has one goal - to push out another robot from doyo.

Printed circuit breaks software detector

The project consists of two parts. The first one is the main software ran under Linux which is responsible for image processing and broken tracks detection process. As the input data, the program accepts the PGM files which include images of printed circuits to analyze. After analysis, the program returns an image with marked breaks.