Oleg Kolosov

Software Engineer

Łódź, Poland
j b b z r a . e
o @ a u b t n t
o @ a u b t n t
j b b z r a . e

Profile

A versatile and goal-oriented professional with extensive knowledge of software defect analysis, maintenance and support. Led multiple teams and seen through projects from prototype to production during more than 15 years of industry experience covering automotive, financial and medical domains.

Skills

C++, C, some Rust, Lua, Bash; focusing on embedded Linux

Experience

since

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.

HARMAN Spark for AT&T

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

Art System Technologies (ООО "Арт Систем")

Software Engineer

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.

Auriga, Inc. (ООО "Аурига")

Software Engineer

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.

eSignal /
ООО "Адвансед Трейдинг Десктопс" /
ООО "МалтиЧартс"

Quality Assurance Engineer

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.

Education

Southern Federal University

M.Sc. Computer Engineering

Researched applicability of cluster computing for different tasks such as distributed compilation and solving of differential equations, summarized my findings in Master's thesis: "Analysis and development of distributed modeling complex with cluster computing support".

Additional experience

  • Wrote articles about distributed computing technology.
  • Delivered presentations at local conferences about practical implications of deploying computer clusters.

Taganrog State University of Radio Engineering

B.Sc. Computer Engineering

Created LiveCD Linux distribution which allowed any networked lab to turn into a cluster for MPI/PVM development with minimum configuration.

Additional experience

  • Redesigned the website for the local department using home-made PHP engine.
  • Created a set of Emacs Lisp macros to "sanitize" HTML markup generated by MS Office and converted several books.
  • Wrote a simple chess-like game using OpenGL with custom 3DS file parser and loader for models.
  • Added multi-threading support and GUI (Qt) to a CPU performance testing program.