Post Job Free

Resume

Sign in

Manager Development

Location:
India
Posted:
September 23, 2014

Contact this candidate

Resume:

Mark Sullivan

EMBEDDED SYSTEM SOFTWARE DEVELOPER & BS( Electronics and

communication)

Cell : 408-***-****

LINUX KERNEL SPECIALIS

Professional Synopsis:

I'm a software engineer with more than 10 years programming experience. My primary expertise has been

in the embedded devices domain writing mostly application software and some kernel programming as

well. I've also been an architect for a video streaming set-top box product that I co-created. I was

responsible for the system architecture & design, hardware & software component selection, system

software implementation, testing and building prototypes. I have a good understanding of the complete

software stack used for building embedded products, right from the kernel space up to user applications.

I've written robust multi-threaded, portable, networking applications in resource constrained embedded

systems (in Linux).

I'm inclined to working on consumer electronic devices in the multimedia/networking domain. I'm good

at arts and have co-designed the UI of our client product .

SKILL SET :

Programming Languages - C, C++, Java.

RTOS (Real time operating system) - Linux, VxWork RTOS, VDK (Visual DSP kernel) - A proprietary

RTOS from ADI supporting all the features of a standard, fully fledged RTOS.

Software Packages -MATLAB 6.0, Visual DSP++ (IDDE for Analog Devices Processor family), MS

Office, Linux Development Tool chain.

Embedded Architecture - Knowledge of RTOS architecture, scheduling methodologies, embedded

software framework design. Experience in customizing linux kernel for specific hardware board.

Experience in driver development for devices like SD-Card, Hard Disk and Boot Loader. Experience in

integrating various audio decoders like MP3, WMA, AC3, DTS and Digital Dolby. Experience in making

FAT32/16(File system) libraries reentrant, porting USB stack to BF-539 platform. Experience in

development in the CAN interface. Experience in HDMI (High Definition Multimedia Interface).

Tools and libraries : OpenMax, Gstreamer, QT 4.7 and Android, Qt/QtWebkit, DirectFB, DBUS,

Network Manager, OpenTV SDK

Communication Protocols: CAN, SPI, TCP/IP, CAN-FD (Overview)

Operating System : Linux (Fedora), Tizen and Windows, Android

Platform : ARMv6, Intel Sandybridge and Valleyview

Database : SQLite (SQL)

Debugging tool : GDB, Visual Studio 2008 and Eclipse.

Miscellaneous Tools : Source insight, Beyond Compare, GIT, Tortoise CVS, clearcase and VMware.

Embedded Communication - Exposure to Bluetooth and WiFi

Project Details:

1. Streaming multimedia client middleware

Role: Product Architect

Co-created a video streaming solution for on-demand and live content. I'm responsible for design and

development of the frontend client for the streaming service. The client works on a variety of devices

from STBs, desktop PCs to tablets and mobile phones.

It is a lightweight middleware for streaming multimedia devices, capable of running on a variety of

hardware, from low-end media SoC's to powerful desktops. My work included:

Design and implementation of a unique finite state machine base UIX framework. UI programmers

could independently develop their UI widgets/screens and then interface with the framework using it's

APIs to build UX flow and cohesive application.

Design of a hybrid UI, where performance intensive parts were implemented as native widgets while

dynamic UIs were implemented as web views.

Creating a portable multimedia plugin:

Supports common trick-mode for multimedia playback

Supports our custom version of dynamic bitrate streaming

Provides a state-machine based `stability layer' which provided consistent performance across various

platforms

Supports multimedia backends for different OS platforms.

Implementation of multi-threaded data abstraction libraries for fetching video catalogue information

from different backends (from OTT and VoD services).

Implemented a unique software upgrade mechanism for the STB platform. Automatic, secure, power-

down resistant and extremely fast.

Design of a Notification framework for various events like USB plug/unplug, network state change and

user messages via XMPP.

Created a multi-platform build system for building firmware images and integrating with chip vendor

SDKs.

Design of a secure video streaming scheme using SSL mutual authentication.

Added support for a new IR remote control driver (DirectFB and kernel).

Design of system init. SysV init was used for running services like NetworkManager, DBus and DLNA

service (DJmount).

Designed NAND Flash partition for supporting power-down resistant firmware upgrade and reducing

rejection rate during factory provisioning.

Implemented a secure storage are using EncryptFS for storing sensitive information on Flash.

Fixing bugs in chip vendors SDK - boot-loader, low-level media libraries and Qt.

2. Interactive TV Application Suite:

Role: Solution Architect

Co-created a suite of interactive TV applications for the satellite TV domain. Applications consisted of

interactive widgets, pizza order application, dynamic yellow-pages, traffic display, educational &

personalized stock market app and a configurable application launcher. The applications were deployed

on DSMCC carousels and as resident applications for a leading Indian DTH service provider. My

responsibilities include:

Design and implementation of an interactive widgets framework for displaying dynamic content over

DSMCC carousels.

Developed a unique order compression codec for compressing pizza orders to a few typeable

characters. Gave compression of around 60% when compared to uncompressed order.

Design and implementation of an application framework for writing stacked screen applications for

NDS MediaHighway middleware.

3. Wireless Protocol Development

Role: Design And Development

TransferJet is a Close Proximity Wireless Transfer technology featuring simple operation, safe

connection and efficient transfer of data with very high speed. It is a new wireless technology that

combines the speed of UWB (Ultra-Wide Band) with the ease of NFC (Near Field Communications). It

would be mainly used for large data transfers between two electronic products such as mobile phones,

digital cameras, camcorders, computers, TVs, game products, and printers. My responsibilities include:

TransferJet protocol understanding.

Requirement gathering from hardware members.

Creation of functional Specification document and Design document for the TransferJet protocol.

Design, Implementation, Testing and Debugging of TransferJet protocol.

Hardware validation activities for this newly implemented protocol using FPGA boards.

Understanding different lower layer stack interfaces for TransferJet. (SDIO, PCI and MSPROIO).

Bug Fixing and Test suite creation.

Coordinating with offshore for integration of different modules.

4. CAR Multimedia - In Vehicle Infotainment

Role: Design And Development

The Main focus of this project is to build a complete In Vehicle Infotainment (IVI) system for General

Motors for car model year 13 and beyond. The system will be built on a multicore ARMv6

SystemOnChip with T-Engine (1 core) and Linux (2 cores). Our contribution is on infotainment part. This

will cover all media playback (USB, Ipod, Bluetooth), telematics, phone and internet application (GPS,

weather, browsing). The entire project is developed by C++ and QT. The communication between each

module is done by CCA framework (MOST standard). In this project there is an integration module called

IVI controller which has the responsible of integrating all the data from different module and presenting

to HMI (client). The client (HMI) is a browser based and it's implemented by QTwebkit. My

responsibilities include:

Development of IVI controller module using C++ and QT.

Implementation of Internet Application controller module using C++ and QT Webkit.

Development of Client handler for Bluetooth and Internet radio module.

Development of Javascript extension component using C++ and QTwebkit bridge.

Development of Application manager and download manager using QT.

Development of audio recording (using gstreamer) and Speech recognition .

5. Serial communication of Build and Parse Rings:

Role: Design And Development

The main objective of the project is to develop algorithm and software to build and Parse the serial

communication of CAN (Control Area Network) messages across the ECU's.

Packing and Unpacking of messages according to transmit or receive ECU. The range, conversion

factors, length of each signal is taken care of, without losing any precision of values.

Alive Rolling Count for sequencing and protection value mechanism for secure messages.

Differentiation of First busoff (short bus off) and consecutive bus-offs.

Allow retry of CAN message transmission if transmit queue is full.

6. Development of Hardware Check software for Transfer case systems:

Role: Design And Development

This project involved developing hardware check software for verifying transfer case ECU. It tests the

hardware functionality of the ECU like the CAN, A-to-D channels, I/O ports, memory, input/output

capture, and motor control. CANape tool was used for CAN communication. Also involved in

development of Labview application to measure parasitic current of the ECU in sleep mode. Developed

validation software to test the reliability of ECUs during production. The Labview application developed

was also integrated to the validation software to periodically measure parasitic current. The validation

software interacts with the ECU software to test the A-to-D channels, I/O port channels, I/O Capture

modules of the micro under different thermal and humidity conditions when the motor/Coil is PWMed at

different duty cycles. The code was developed using VC++ MFC and NEOVI CAN Hardware was used

for CAN communication. My responsibilities include:

Development of Hardware Check software for Transfer Case ECUs

Development of Validation software for Transfer Case ECUs

7. Development of Digital Filter Module for Instrument Cluster:

Role: Design And Development

The Digital Filter Module (DFM) is a CAN evaluation module, which reads and evaluates the messages

and signals directly from CAN. Based on the signals or the messages received it updates the memory

which is used by Digital Vehicle Messages module to display status icons, telltales, warning or error

popup in the display. The status icons, telltales and popup indicate the occurrence of any fault in the truck

to the driver. My responsibilities include:

Analysis of requirements, design, development and unit testing of Graphic objects module



Contact this candidate