Firmware development for thermal vision cameras
Leading a team developing a firmware for multiple thermal imaging, measurement
and diagnostic products for a major US manufacturer.
- Coordinating a team on technical matters, code and design reviews.
- Providing technical support for the project manager and client.
- Designing and implementing complex features.
- Performing feasibility studies for a client.
- Release planning in close cooperation with product owners.
- Device driver development (RTEMS), stability and performance improvements, overall software maintenance.
OTA-FC post SoP support for Porsche
Responsible for OTA Self Update, Module Platform API
and RedBend's Software Management Client functional domains. Focusing mainly on defect
root cause analysis and stability improvements.
NTG7 Head Unit for Daimler (Mercedes-Benz)
- Integration of RedBend's OTA software management client with the NTG7 project.
- Refactoring of legacy code, introducing modern coding practices.
- Designed and implemented a promise-like library in C++ for asynchronous handling of Thrift IPC requests.
- Led a team which integrated the TCU Shield / HARMAN SHIELD (an automotive cybersecurity solution) into the HARMAN Spark platform (Android based OBD port dongle).
- Implemented a wrapper for Android's RIL (Radio Interface Layer) which intercepted the communication with the modem and sent the events to the intrusion detection system.
- Designed and implemented a project-specific fault-tolerant IPC solution based on ZeroMQ and Cap'n Proto.
IVI 2020 Head Unit for PSA (Peugeot Citroën)
- Extending GENIVI Automotive Message Broker with vendor-specific messages and CommonAPI interfaces.
- Developed GoogleTest (gtest) based framework for integration testing of CommonAPI modules.
- Designed and implemented a CAN bus scripting tool with a custom domain-specific scripting language used for automated defect reproduction and formalization of test scenarios.
Development of an embedded Linux firmware and a hardware-accelerated multimedia stack
for karaoke set top boxes on Sigma Designs (MIPS) and HiSilicon (ARM) platforms. Linux
kernel driver development, hardware bring-up and vendor BSPs integration.
Responsibilities
- Design and implementation of hardware-accelerated audio and video decoding solutions based on FFmpeg.
- Custom hardware boards bring-up (pinmux, u-boot patching, etc.).
- Linux kernel driver development (mostly for serial interfaces: UART, I2C, SPI, I2S and USB) and backporting.
- Integration of vendor SDKs and BSPs.
- Analysis and troubleshooting of hardware and software issues.
- Maintenance of continuous integration infrastructure.
Experience
- The development of a new HAL for the Sigma platform essentially resulted
in a replacement for the vendor-provided SDK avoiding its inherent
limitations, adding new features (like support for playback of extra file
formats) and fixing bugs while being only a small fraction of its size.
This significantly reduced furher maintenance costs, decreased the system
resource consumption and increased stability.
- Created a custom minimalistic Linux distribution to fit the project's unique
space and resource constraints as well as reliability and security
requirements. The base image was less than 20MB in size, started in about 3
seconds, was fully encrypted and verified by vendor-specific analog of
Secure Boot.
- Created a software update mechanism and associated tools with support for
cryptographic signature validation and transparent rollback.
- Implemented an asynchronous cooperative multitasking framework in pure C on top of
libuv event loop.
- Added CMake
support to CHICKEN Scheme to ease
its integration into an existing environment and improve handling of
cross-compilation. Also added an automatic module dependency discovery
feature (not available upstream) which promoted the modularization of our
code-base, increased testability and development speed.
- Designed, implemented and deployed an open source build system
automation solution — Jagen
which encompasses all aspects of an embedded development project: from
source code management to filesystem and firmware image creation. This tool
was the vital part of a fully-automated CI infrastructure which greatly
reduced "ops" tasks allowing the developers to focus on the value-adding
functions.
Development of a firmware for a medical patient monitoring device
(MCU) from Mindray
using C# and C++ on Windows Embedded platform.
Responsibilities
- Debugging and analysis of the behaviour of networks of MCUs.
- Troubleshooting of device drivers.
- Code review (C#, C++).
- Technical documentation writing.
Experience
- Created a set of automated instruments to match client's SCM and defect
management tools (IBM ClearCase, Rational Rose) with the company's internal
infrastructure (Git, JIRA) enabling seamless integration between teams with
distinct workflows.
- Advocated and deployed team-wide knowledge base (WIKI) starting the trend
for improvement of the project documentation.
- Was involved in porting of customized network stack and USB device drivers
from Windows XP Embedded to Windows 7.
- Coordinated a small team and mentored junior developers on various
topics.
- Implemented a mobile news reader application for
Intel using
Sencha Touch framework for
iOS and Android platforms.
Development of a test automation solution with support
for white- and black-box testing of eSignal desktop application, performance
monitoring and reporting. Automation of existing test cases, development of
new test plans.
Responsibilities
- Design and development of an automated testing framework.
- Analysis and formalization of requirements.
- Creation and execution of manual and automated test cases and test plans.
- Manual and automated defect reproduction (including post-mortem debugging).
- Performing code and design reviews in regards to testability.
- Modifying the application core by adding new and improving existing interfaces to ease the test automation.
- Maintenance of continuous integration infrastructure.
Experience
- Led a team of up to 3 engineers to implement the test automation
framework for eSignal application. The team converted more than 65% of
existing manual test cases and added support for test paths and scenarios
which were not possible before. This work resulted in dramatic improvement of an
overall test coverage and defect resolution time.
- Developed a fully-automated performance testing and reporting platform
with integration into an existing CI infrastructure (Atlassian Bamboo)
which consolidated various metrics and presented them as real-time charts
on JIRA dashboards visible to all stakeholders. This facilitated faster
decision making process in regards to areas of possible regressions and led
to smoother release cycles.
Production infrastructure management, hardware and
software systems setup and monitoring, support and maintenance of Microsoft
Windows domains (2000/2003) and database servers (MS SQL 2003/2005,
PostgreSQL), SCMs and defect-tracking software management (Microsoft VSS,
Subversion, Test Track, JIRA), corporate website support.
Additional experience
- Created a tool automating Windows deployment which, unlike the
traditional image-based solutions, also handled custom software and
user-specific configuration enabling rapid migration of the company's fleet
of machines from Windows 2000 to Windows XP without work interruptions for
the affected teams.
- Developed a set of scripts and a database for hardware and software
accounting.