Peut être disponible
(Mis à jour 2022-07-22)Expert Embedded Software Developer
Lund, Sweden
Natif Hebrew (modern), English, Russian, Courant Svenska
- Multiple RTOS experience
- Performance and Reliability
- 20+ years of embedded software development
Compétences (28)
STRUCTURED SOFTWARE
Device Drivers
C
DEBUG
THREADING
EMBEDDED SOFTWARE
Git
SOFTWARE DEVELOPMENT
Drivers
FIRMWARE
Multithreading
Device Driver
ARM
CORTEX
VS CODE
SENSORS
PROTOTYPING
COMMUNICATION PROTOCOL
C++
SHELL SCRIPTS
JTAG
SHELL SCRIPTING
IPC
Python
USB
Jenkins
Subversion
MS .NET
Expérience professionnelle
2021-09 - Actuel
Expanded the UI and Fitness components of a firmware project for a hybrid watch with a display. The HW is built with a Nordic nRF52840 ASIC with BLE as a communication protocol with a mobile app. Analyzed the performance issues of the firmware, and helped identify multithreading issues and memory leaks. Expanded the CI pipeline with static analysis tools.
Development Environment: FreeRTOS, VS Code.
Programming Languages: C99, Python.
2020-03 - 2021-08
Being part of SW1, responsible for the OS kernel and device driver for the Xperia Android phone line, ported Sony legacy code to newer Android releases (Q to R, R to S). Debugged and improved code for USB and MTP protocol support on three different Qualcomm Snapdragon HW platforms. Adapted code spread across device drivers, Android Framework, and custom Android apps.
Development Environment: Android, Linux kernel.
Programming Languages: C, C++, Shell scripts.
2019-05 - 2020-02
Took part in the development of the software controlling a new door operator. Designed and implemented components in the operator firmware using MISRA-compliant C++, on an STM32F1 Cortex M3-based MCU platform. Adapted the BLE software stack used to communicate to a custom-made mobile app. Improved memory footprint while reducing thread switching overhead. Migrated team's CI pipeline from Jenkins to GitLab, including configuring and adapting the runners from Windows to Linux.
2018-02 - 2019-03
Took part in the design, prototyping, and implementation of Volvo Car's new ECU connectivity solution.
Designed and implemented AUTOSAR-compatible signal transport framework, with high reliability and performance in focus. Implemented a multi-tier IPC solution, based on D-Bus and Shared Memory. Analyzed performance bottlenecks and overall system performance, on a prototype system built around three Raspberry Pi components.
Development Environment: Raspbian Linux, GIT, Repo, GDB, D-Bus, CANoe tool.
Programming Languages: C, Python, shell scripting.
2017-08 - 2018-02
Network Camera software development for M30 project based on AXIS proprietary ARMv7-compatible ASIC platform and STM32 F070xx MCU. Adapted a number of Linux low-level user-space monitoring daemons to work with product-specific configuration, including GPIO configuration, Secure Supervised Input, temperature sensors, and Infrared LEDs controlling. Together with electric engineers investigated system clock stability and power consumption issues. Configured Linux kernel device tree for the various platforms, including dynamic overlay loading.
Technical Environment: OpenEmbedded Linux, Yocto, GIT, Repo, GDB, ST-Link Languages: C, ARM assembly, shell scripting.
2013-11 - 2017-08
Implemented a new cross-site testing framework for the GPU compiler using Jenkins framework, from scratch to successful ~1000 test a day throughput, including department's CI tools integration.
Defined and implemented the team's branching strategy based on Git. Supported team members during and after the transition from Subversion to Git.
Implemented features and fixed bugs in ARM's GPU compiler, supporting Open GLES, Open CL, and Vulkan.
2013-04 - 2013-10
Ported LOGOS software stack onto a new smart-card platform, based on the ARM SC300 platform. The task included debugging the boot sequence, ISO 7816 protocol, and cryptography algorithms supported by the ASIC.
2008-05 - 2013-03
Transitioned from an embedded software engineer in the Core SW team to an object lead position, within a year of employment.
Planned and tracked tasks for the Core SW team (5-10 engineers) during the parallel execution of 2 modem projects. Lead multiple platform bring-up activities, and coordinated cross-site work and internal stakeholder discussions.
Developed core components drivers, in C and ARM assembly, and debugged problems using ICE/JTAG and Logic Analyzer traces.
2003-01 - 2008-01
Lead a team of 3-6 engineers working on the CPU functional validation software suite, a console application written in C++.
Planned iterative feature release plans, and tracked execution, including cross-site communication for overseas team members. Was responsible for team members' career plans, performance reviews, and ranking.
Implemented the code management tool switch to CVS to facilitate cross-site and inter-team collaboration.
Added automated bug tracking tools to ease change control and debugging.
2000-01 - 2003-01
Lead a team of 3-5 engineers working on a variety of TCP/IP networking protocols implementation. Worked with networking code both in the Linux Kernel (drivers) and user-level (server processes).
Handled task assignments, tracking, and reporting. Participated in a number of customer platforms bring-up, remote, and on-site customer issues debugging.
Parcours scolaire
2003-01 - 2008-01
1991-01 - 1995-01
Formations
2015-11