Viacheslav V.

Embedded software engineer

Preferred Job Type: Remote Work
location_on Tbilisi, Georgia

Description

Experienced software developer (embedded software, middleware, system software) with 10-year background, skilled in C, embedded Linux systems (administration, kernel-space/device drivers development, shell scripting), build automation. Demonstrated history of working in the computer software industry. Worked with various Linux-powered devices including smartphones, smart TVs, Blu-ray players, lighting consoles and networking devices. Experience in bare metal programming for ARM Cortex-M microcontrollers.

Skills

arm arm cortex m bash bash shell scripting bsp buildroot c cmake debian debugging device drivers docker embedded linux embedded software embedded systems gdb gpio i2c integration testing linux kernel make middleware multithreading networking ninja openwrt posix python shell shell scripting spi system software tcp uart udp unit testing unix usb valgrind vim wireshark yocto

Specialization

Embedded software

Education

Donetsk National Technical University, Computer Sciences and Technologies Faculty

Master's degree in Computer Engineering, System programming

2006 - 2011


Experience

Senior Embedded Software Engineer

Freelance
Oct 2020 - Present
location_on Ukraine
- modify i.mx8mm ethernet linux driver to share IEEE1588 PTP timestamp with Cortex M4 firmware; - bring-up of runc-based container with several software components inside, integration of the container into Yocto build system to include the container image into host OS software image; - bring-up and integration into Yocto build system of Jailhouse FreeRTOS inmate on Cortex A53 core of i.mx8mm with RPMsg communication support, peripherals bring-up in Jailhouse: I2C, SPI, GPIO, UART, GPT; - implement linux kernel drivers to forward UDP traffic between Cortex-A7 and Cortex-M4 cores on STM32MP1 (using RPMsg framework); - implement new features for Siklu EtherHaul and MultiHaul series devices: • PTPv2 Transparent Clock support with hardware timestamping; • updated toolchain and libc; • time-zones support; - maintaining build system; - working with Marvell 88E6393X switch, Marvell 88X3310P PHY; - troubleshooting and bug fixing.

OS Senior Engineer

Huawei Technologies
Sep 2019 - Feb 2020
location_on Germany
Research and development of various components of microkernel-based OS: - dynamic deadlock detection system (lockdep); - low-level tracing library (formal verification passed).

Software developer

NetModule GmbH
Apr 2018 - Aug 2019
location_on Germany
- development of MFD and GPIO drivers for FPGA (target: linux kernel; understanding of schematics, datasheets and FPGA documentation); - development of linux GPIO driver for XR21B1420 USB GPIO expander; - development of userspace hardware abstraction layer, architectural improvements and refactoring; - debugging and troubleshooting: fixing the most complex bugs in user- and kernelspace, including multithreading issues, memory corruptions and firmware bugs in connected peripheral devices; - port custom linux distribution from OpenWRT to Yocto; - perform major linux kernel version upgrade: porting drivers, solving all arising issues; - introducing software development, testing and troubleshooting best practices, mentorship for junior developers, code reviews.

Software developer

MA Lighting Technology GmbH
Feb 2016 - Mar 2018
location_on Germany
- USB vendor class host driver implementation (PC, userspace: libusb, libudev); - bare metall programming for ARM Cortex M4, Cortex M7 (USB vendor class device driver, scheduling, data structures); understanding of linker scripts and C runtime initialization; - PC (host) ⇔ microcontroller (Cortex M4, Cortex M7) communication protocol implementation, integration with other software components; - build system.

Engineer, promoted to Lead Engineer

Samsung R&D Institute Ukraine (Samsung Electronics)
Sep 2012 - Jan 2016
location_on Ukraine
- Digital Rights Management: middleware implementation according to specification, security review and certification passed; - virtualization project (Linux host & guest, KVM, qemu-system-arm): system bring-up, knowledge of linux boot process, various linux system components, system administration; - ARM TrustZone technology: NWD-SWD low level interoperation; - C/C++ source code obfuscation: in-depth knowledge of build process, different build systems and toolchains, build automation. Some knowledge of ELF file format, ARM assembly/ABI.

Links