Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Mohit - Mahajan - Embedded Programmer - Resume

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

Mohit Mahajan

+1-805-358-2925
mohitmahajan@yahoo.com
Summary:
My professional experience includes working on different technologies (software and embedded programming) in various
industries - IOT (MQTT on linux), consumer electronics (bluetooth - BLE on linux, NodeJS, ZWave, WiFi driver for TI
SimpleLink, PIR motion sensor using C on linux, building leshan server in java using 5G).
Recently build the firmware team for the IOT project and architected the software design of the complete system.
Good experience with controlling the DC motor (PID) to control the film camera’s lens.

Good expertise with embedded software development in C, C++ and in systems engineering — architecting soft-ware
design and implementation (UML, C++, Java).

Skills:
Languages: Excellent with C, C++, Kernel Programming, Linux device drivers, PSoC 5 for ARM Microcontroller. Integrity
RTOS (MULTI from Greenhills), Embedded C programming (including I2C, SPI, UART. iOS Programming (Objective C),
Java, Android, NodeJS, Javascript, VC++, QT, Python, VBA. OCAP (cable TV). IOT with both Azure and and Amazon
backends (MQTT), RPC and ZMQ socket communication.

Network Protocols/Technologies: Design and development experience with TCP/IP, Socket Programming, RTP, RTCP,
HTTP, MQTT, SNMP, L2 switching, Bluetooth protocol, Zwave, WiFi device driver (TI SimpleLink), PIR mo-tion sensor
device driver (linux) and FLIR thermal camera device driver.

Tools: Oscilloscope, Ixia traffic generator L2 - L7 using IxExplorer and IxNetwork, XCode, Keil, Agile Project Man-
agement, Clear Case, Perforce and Git.

Experience:
2wayTV (contract work for various companies) July 2020 - Oct 2023
Software Consultant
Languages: Embedded C, C++, Linux, Windows, Python, MQTT, ZMQ Sockets

 Designed and architected the HAL abstraction layer (Embedded C++, linux), for different hardware instruments to use
the common API interfaces.
 Build a sockets library to transfer 10GB data from one process to other process (Embedded C++, Linux). Also
optimize the TCP buffers in kernel and do ZEROCOPY to optimize performance.
 Designed the NUMA Nodes architecture for the system to user multiple processors and implement this on Win-dows
10. Attached certain processes to specific NUMA nodes to improve performance of the system.
 Have the product build on different linux version - building with different version of SSL library and different sys-tems
libraries - this was building the complete system for Ubuntu 22, Ubuntu 14 and Red-hat 7 version.
 Worked on QT (Open SLL library calls) on both Windows and Linux.
 Designed, architected and developed MQTT library changes (python, linux) to integrate with their messaging protocol.
 Did prototype work on python as proof of concept for new functionality using MQTT (paho mosquito).
 Architected communication between servers and integrated them with MQTT.
 Demo work on the radio (linux) to show the working proof of concept - two pass the data (signal) from one radio to
another.
 Designed, architected and developed the IOT frameworks (multithreaded + multi-processes on linux) for the trucking
company (Raymond - to build their IOT solution for monitoring their fleet of trucks).
 Evaluated the current design and proposed solutions to improve the architecture of the application in multi-threaded
environment.
 IOT using MQTT (Azure) with embedded C, C++.
 Build frameworks to send the battery and other sensor data (from I2C) to the user space and then to the cloud.
 Designed, architected and developed the ZMQ sockets, protobuf, multithreaded library on linux.
 Ported this library to windows.
 Prototyped gRPC on both linux and windows for RPC calls.
 Evaluated the current design and provided recommendations and proposed solutions (via prototyping), for the multi-
threaded sockets C++ code.
Rently Keyless - Thousand Oaks, CA October 2018 - Feb 2020
Technical Advisor to the Embedded/ Firmware IOT Engineering team
Languages: Embedded C (linux), NodeJS and Bluetooth (BLE), 5G Integration with Azure and Amazon S3 (MQTT)

 Build the firmware team (hired 4 engineers) and guided the team to design, build and test the product.
 Worked with marketing team to define the technical requirements for the project.
 Defined the roadmap for the engineering work for the company.
 Led the engineering team (10 engineers) to design good quality code and go over various use-cases for the smart
home — integrating the lock, hub and the server.
 Architect the bluetooth protocol (central and peripheral) and design, develop the Bluetooth - BLE protocol (on linux
and NodeJS) to communicate between the device (smart lock) and the hub/ app.
 Redesigned the BLE communication for the Apps (iOS, Android) and build a common BLE library in NodeJS, that can
be used across iOS, Android and Linux.
 Rebuild (Architect, design and implementation) the BLE encryption, instead of hard-coded keys used to deci-pher the
BLE messages.
 Integration of the Android linux and cellular drivers for the next generation hub.
 Architect the API for cloud storage with Amazon S3 and implementation of lambda services.
 Architect the system for the IOT with Azure backend (Provisioning, Messaging using MQTT).
 Design and develop the hub firmware (linux and javascript, C) to make the code object oriented.
 Design the leshan server (java) to communicate with the smart locks (bare-metal) using 5G.
 Design and build the rules engine for the hub firmware that would monitor the thermostat states — and protect the
property based on the rules.

Ring - Santa Monica, CA June 2016 - March 2018


Senior Firmware Engineer (IOT consumer products)
Languages: Linux kernel development, C, C++, RTP, RTCP

 Architected, designed and implemented linux kernel module, PIR (passive infrared) driver. This device driver is used
in several products to detect the motion from the camera. Implemented linux kernel sockets to send the data from the
kernel to the user space (one of the input to the computer vision algorithm - used for object detection). Also
implemented update to the configuration via ioctl calls from the user-space.
 Improved the CPU utilization for the PIR kernel module by 25%, by implementing real-time linux kernel threads along
with high-precision timers in the kernel space.
 Implemented a new feature for the camera to have the pre-roll video - i.e. few seconds of video be captured (FIFO
buffer scheme) before the motion is triggered in the camera.
 Wrote device driver to read the configuration data from PIR sensors for the flood-light product.
 Implemented packet loss statistics for the streaming video and audio using RTCP protocol.
 Architected (UML design for IOT platform) the lights module in C++ to reuse the modular code across different
products.
 Led the team and architected the firmware frameworks (embedded C++). The modular and scalable design helped
the company to build new products (faster), using the single firmware.
 Designed and developed frameworks (C++) to integrate with the Simplelink WiFi driver (TI chip). Further im-
plemented finite state machine for managing WiFi states.
 Firmware and middleware APIs to integrate with AWS, using hardware abstraction layer (HAL).

Panavision - Woodland Hills, CA (contract work) August 2015 - June 2016


Senior Embedded Software Engineer
Languages: C, C++, PSoC 5 using ARM cortex, Python

Worked on the new camera.


 Architected (Object oriented) and led the efforts to work on the control panel - embedded software in C for "Beck
chip". Redesigned and implemented the "tree" data structure (C++) for iterating the camera’s menu. Each menu item
(node) can be traversed- getting the input from the user (camera) and execute functions.
 Worked on integrating (C/ C++) ) the Record Processor on the system board. Designed and implemented P3 protocol,
similar to Sony's P2 protocol to send & receive messages on the serial interface (UART) for both control panel and
system board.
 Implemented serial port protocol (P3) to send/receive recording cliplist information from the record proces-sor to the
control panel. The user could then play the clip that was just recorded using the control panel.
 The system board code was updated to correctly interact with the record processor and the magazine. Reworked on
the system board to fix several bugs such as negative clip frame number.
 Worked on detecting the eject of the magazine - where the cliplist is actually stored.
 Fixed issues (embedded C) the to have the docking station work with the new design of the control panel interface.

Implemented the Python script for sending the coefficients (camera's sensor data) from PC via Test-Board (FTDI
2232H using UART configuration).

 Researched on the above task using SPI interface using the Cypress chip.

Control the camera lens aperture using DC Motor. Using the demo kit (Cypress with ARM cortex) proved that we
could use the microcontroler to control the motor (PWM) and also move the lens’s aperture.

 Led engineering efforts (embedded software in C) for the new board - using PSoC5 (Cypress, with ARM cortex
microcontroller) to control the aperture of the camera.
 Integrated the CMSIS DSP library for Arm cortex - needed for the calculations such as PID motor control.
 Created and designed the new board using microcontroller's IP blocks - UART, DMA, PWM and so on and configured
the electronics using the demo kit - including separate board for DC motor driver.
 Implemented UART communication to send and receive the data from the camera to the microcontroller.
 Implemented motor control algorithms in C and executed the PID loop - to control the DC motor.
 Implemented Cooke Protocol (in C) to send/receive the metadata from camera (such as Sony F55) over UART (along
with DMA) communication.
 Implemented the jog control and Sony's MSU UART interfaces to control the camera's aperture.
 Debugged using oscilloscope to resolve PWM issues and verify data integrity over UART.

Play Festival Films May 2012 - August 2015


Technology + Business Advisor
Languages: Objective C, Java (Android), PHP

 Designed, developed and published iOS App “PlayFestivalFilms". Build both the client and server-side of the platform
(Objective C, PHP).
 Led the team of 2 engineers to design and develop several Free (In-App purchases), Paid Apps on iOS and Android
(Objective C, Android - Java) for children (Sparkabilities).
 Android App https://play.google.com/store/apps/details?id=com.sparkabilities.totbox
 Designed, developed and published celebrity iOS Apps - Justin Timberlake, Miley Cyrus, Selena Gomez.
 Build infrastructure to manage the images; download and save the videos on the device (iPhone, iPad, Samsung
Galaxy) - multi-threading and usage of networking classes.
 XML parsing and retrieval of data from the server. (Multi-threading).
 Designed and integrated with the 3rd party Ads SDK to play in-stream video Ads for iOS and Android.
 Complete software life-cycle - design, implementation, device testing and publishing on the Appstore.
 Marketing the Apps to increase the App downloads by 50%.

ROVI - Burbank, CA Feb 2007- Feb 2012


Senior Software Engineer
Languages: Java, C++, Rest API

 Led the new product development efforts for the ‘Video on Demand’ (VOD) solution for the Interactive Television. This
will provide the cable industry with a complete VOD digital solution.
 Designed (UML) and developed the complete VOD system platform (C, C++ and Java) to stream the video on cable
TV (OCAP). Developed the complete software infrastructure from scratch (UML to source code) to stream VOD on
TV.
 Restful APIs and integration with the backend/ cloud storage.
 Coordinated efforts for the new product requirements with business development, marketing and engi-neering teams.

IXIA Communications - Calabasas, CA Mar 2004- Feb 2007


Senior Software Engineer
Languages: Python, C, C++, C#
 Designed, developed and implemented the “Test-Controller”, the finite state machine (Python), responsible to
integrate the user-interface (GUI) with the other modules. The FSM developed was generic module that has been
used in other products within the company.
 The Test-Controller module was ported to C# and worked on the design and implementation. • Implemented the ‘Stat-
Controller” (Python), the module integrated with the ‘Test-Controller’ and stat-engine using multi-threaded architecture
and timer events to poll for the statistics from the stat-engine.
 Understanding the business requirements and then designed, developed and implemented the “Telnet” protocol, both
client and server (C/C++ language on Linux). The 3rd party telnet protocol was integrated with the Test-Con-troller to
run the maximum of 1000 telnet processes (forking) and sending the telnet traffic from the client to the server.
 Architect-ed and developed the “Linux Binary Module” (C on Linux). This generic module can be used to inte-grate
any 3rd party protocol. With this any new 3rd party protocol can be integrated with the Test-Con-troller in 2 week only,
which used to take 8 weeks without this module.
 Worked with the testing engineers and with customer support department, and coordinated efforts understanding the
technical problems and delegating them promptly (India/Romania).

Education:
 M B A (Business of Entertainment and Marketing) from Marshall School of Business 2008
· University of Southern California, Los Angeles
· Dean’s List - Spring ‘07, Summer ‘07, Fall ’07 and Spring ‘08
 Graduate Certificate in Technology Commercialization with Honors 2008
Bachelor Degree (B.E) in Computer Science and Engineering from Marathwada University, India 1996
 Secured Distinction with ‘First’ Division in each semester and was ranked FIRST in college

You might also like