Summary
Overview
Work History
Education
Skills
Software
Interests
Timeline
Generic

Vivek Sharma

Embedded Software Developer
Berlin

Summary

Professional software developer with 12+ years of experience in Embedded C/C++ domain. Proficient at ensuring robust and quality software. Seeking to leverage my technical and professional expertise to learn and grow in an application development environment.

Overview

13
13
years of professional experience
7
7
years of post-secondary education

Work History

Expert Software Engineer

MBition GmbH
Berlin
01.2020 - Current

I am working on MKF (Wired Software Update) module for Mercedes Benz's next generation infotainment system. Software Update is done mainly using UDS, Some/IP and HTTP protocols. Project work includes tasks such as high level design, supporting future modules, software development using modern C++ (14 and 17) , writing unit testable code and component tests using pytest.

Major achievements:

  • Complete ownership and implementation of parallel update feature to install multiple modules in parallel considering dependencies between them.
  • Complete ownership and implementation of update streaming feature to stream the downloaded data in chunks directly to the destinations. e.g. Inactive Rootfs partition. Apart from downloading and writing chunks to destination, additional stages were implemented to process downloaded data. e.g. decryption, decompression and signature validation stages were also implemented as part of the pipeline module.
  • Implemented various features such as VerifyMemoryContent DIDs, Inventory (database) downgrade, etc.

Senior Engineer 1

Harman International
BANGALORE
12.2016 - 11.2019

As a member of core Platform group, I worked for frameworks team for design, development and support of Application Framework components to be used by various software components of Infotainment system. Application framework components include various RPC mechanisms (some of them are provided by GENIVI using CommonAPI framework and some of them are Harman's proprietary RPC mechanisms), various modules supporting application management (e.g. installer, app launcher, etc.). I also worked on Software Update module to update SoC as well as various other peripherals.


Below is the summary of the projects I worked on:


  • Software Update (OTA)

In this project, I worked on Software Update (Over The Air) module for Android for updating firmware of Android Infotainment System (including various peripherals) as well as other connected ECUs using Redbend as update provider and update_engine provided by Android AOSP as well as using Redbend installer as installer agents.

  • Application Sandboxing

Application sandboxing was used to run third-party C++ QT applications in a sand boxed environment to restrict the application's access. Application sandboxing was implemented in C++ with the help of linux mount namespaces and chroot. Also, CPU and memory cgroups v1 were used for monitoring and controlling CPU and memory usage respectively.

  • Some/IP Gateway on Android at HAL Layer using C++

Worked on complete design and implementation of using Harman Some/IP stack on Android at HAL layer using C++ which is used to route Some/IP messages to respective clients/servers on Android. Porting of Some/IP on Android included:

1. compilation and bug fixing for Harman some/ip stack libraries (C++) and service discovery daemon for Android by writing Android.bp files and optimizing code for Android.

2. Implementation of logic for gateway application (using C++ 11) which included logic of parsing some/ip packets after receiving them and then route the messages to respective clients/servers on Android through HAL. (using hardware binder by writing hidl files). The code for this gateway application was completely auto-generated using Harman's elina IDE.


Worked with client Great Wall Motors in Baoding, China to help them using Some/IP on their Android Infotainment system.

  • Some/IP on Android at Application Layer

As a PoC activity, ported Harman Some/IP stack (C++) inside Android Application using JNI with the help of Android Studio IDE. Implemented service discovery daemon and Some/IP server as foreground services on Android Oreo on OnePlus 3 mobile.

  • CommonAPI JSON Logger

Worked on PoC of logging of input data to RPCs (Remote Procedure Call) using CommonAPI framework in JSON format with the help of Variadic Templates (C++ 11 feature).

  • Execution Manager for Adaptive AUTOSAR

Worked on initial phase of Design and development of Execution Manager module of Adaptive AUTOSAR v18.04. Implemented basic functionality of parallel execution of processes considering inter-dependencies using C++ 11 features.


Skills Earned:

  • Gained knowledge about C++11 features, CommonAPI Framework provided by GENIVI, Some/IP, writing HAL layer applications in Android.
  • Gained knowledge about various build tools, e.g. cmake, soong (Android.bp for Android), etc.


Senior Software Engineer

Robert Bosch Engineering and Business Solutions Private Limited
BANGALORE
02.2015 - 11.2016

As a member of core platform group, I worked on software development and bug fixing for life cycle management module for infotainment using C++ 98.

  • Life Cycle Management

The Life Cycle Management module was written completely in C++ and deals with startup, shutdown and supervision of various systemd processes (e.g. HMI) with the help of software components defined by GENIVI. This module implemented various components defined by GENIVI frameworks. e.g. Node State Manager and Startup Controller. /proc file system was used to monitor the cpu and memory usage of applications.

  • Unit testing using Google Test Framework

Developed unit tests using Google Test framework (Google Test and Google Mock) for testing various sub-components of life cycle management module. Also, worked on restructuring of code for making it unit testable. Learnt various principles of writing unit-testable C++ code.

Skills Earned:

  • gained adequate knowledge about systemd, dbus
  • Gained knowledge about various tools. e.g. JIRA, ClearCase, etc.

Project Engineer

Wipro Technologies
BANGALORE
02.2011 - 08.2014

In wipro, I worked on two projects. One was for software development for Medical Device and other one was for software development for Energy Management module for Android Tablet.


  • LifeCare PCA (Patient Controlled Analgesia) Infusion Pump


Software development and maintenance for infusion based medical device used in infusion of Analgesic drugs for US based client Hospira. Software was developed using C language on top of TICS operating system (proprietary).


In this project, I Worked on bug fixing of various critical bugs. e.g. deadlock, stack overflow issue, etc and learnt debugging by working on JTAG based hardware debugger.

Also, I worked on enhancement of code generator tool written in C# language to generate C language code from xml data.


  • Energy Management Module


Worked on Linux Device Driver development and bug fixes in Energy Management for android based tablet running on tops of Intel Baytrail processors. Energy management module included thermal management, battery and charging modules.


Worked on design and development of "Automation Framework" using python for testing energy management modules.


Skills earned:

  • Gained knowledge about linux i2c drivers, linux charger framework, android architecture including various type of system services and android build system.

Education

undefined

Himachal Pradesh Board of School Education
04.2002 - 05.2004

undefined

Maharaja Surajmal Institute of Technology, Janakpuri, New Delhi
08.2006 - 05.2010

undefined

Udacity Self-Driving Car Nanodegree
09.2018 - 05.2019

Skills

    c

undefined

Software

clearcase

Android Studio

Jupyter Notebook

clion

Interests

Timeline

Expert Software Engineer

MBition GmbH
01.2020 - Current

undefined

Udacity Self-Driving Car Nanodegree
09.2018 - 05.2019

Senior Engineer 1

Harman International
12.2016 - 11.2019

Senior Software Engineer

Robert Bosch Engineering and Business Solutions Private Limited
02.2015 - 11.2016

Project Engineer

Wipro Technologies
02.2011 - 08.2014

undefined

Maharaja Surajmal Institute of Technology, Janakpuri, New Delhi
08.2006 - 05.2010

undefined

Himachal Pradesh Board of School Education
04.2002 - 05.2004
Vivek SharmaEmbedded Software Developer