Senior Staff Software Engineer. Resume
Il, Usa
EXPERIENCE SUMMARY:
- 10+ years of working experience in design, development and testing of embedded, multi threaded applications using C, C++, Assembly Language Programming, on LINUX and Windows environment.
- 7+ years of experience in the development of Battery Charging and Fuel Gauging Software for all the mobile phones shipped by Motorola.
- Managed and coordinated cross site engineering software development team which was responsible for the delivery of Battery Charging and Fuel Gauging Software drivers.
- Experience working on Linux Kernel (Android) for Power IC drivers. Developed/Ported of Android Kernel/drivers to Qualcomm / TI (OMAP series) and other proprietary embedded platforms. Involved in Board Level Bring - up including Bootloader and Linux Kernel on several platform architectures.
- Deep understanding of UNIX & LINUX internals and configuration.
- Thorough understanding of Android internals including driver integration with Android framework and kernel to user-space interaction.
- Experience with embedded debugging tools me.e. JTAG. Ability to read serial bus traces, board schematics, usage of an oscilloscope and logic analyzer. Review HW schematics and provide feedback.
- Good experience in programming using STL and MFC Library. Programming with Win32 API.
TECHNICAL SKILLS
Prog. Languages.: C, C++, Java.
Android: Chipsets.Qualcomm, Nvidia, TI.
SoC’s: .Snapdragon, Tegra, OMAP.
Microcontrollers.: TI MSP430G, STM8S/L, Microchip PIC series, Intel 8051.
Peripherals: .ADC, COMParator, TIMER, I2C (Single/MultiMaster), UART, SPI.
Protocols.: ATMEL 1-wire, Dallas 1-wire, S/PDIF, SIP.
Operating Systems: .Linux/Unix, Android (all flavours till date), WinMobile.
UML tools.: Microsoft Visio, XML (Data exchange).
Tools.: GIT, ClearCase, ClearQuest, gdb.
Scripting Languages: .VBScript, Tcl/Tk, shell scripts.
Other Experience: with building Free BSD/Linux Kernels.
PROFESSIONAL EXPERIENCE
Confidential, IL, USA.
Senior Staff Software Engineer.
Responsibilities:
- Architecture, Requirements analysis, Design, Software development & debugging, Test / Regression suite, Support & Maintenance
- Modifying existing code, generating new code, and migrating code to new kernel releases while conforming to Linux open source community guidelines.
- Creation of User Space Daemons as well as Linux Kernel drivers to support Battery Charging and Fuel Gauging.
- Point of contact for POWER IC software issues encountered during factory HW builds.
- Management of an offshore team (Size 4) to ensure software delivery on time with high quality. Assistance with training, mentoring and driving team work to come up with quick solutions.
- Key features / Projects worked on:
- Dead Battery Recovery.
- Charge Only Mode: Allowing the phone to charge at a faster rate.
- Accessory detection: Using USB Battery Charging Specification 1.2 and Quick Charge 2.0 specification for USB high-voltage dedicated charging port (HVDCP).
- Battery Management: Using Fuel Gauge or BMS algorithm to estimate State of Charge and exporting all necessary parameters to the OS.
- Wireless Charging: Developing wireless charging drivers for Qi (WPC) and PMA Compliant Wireless Charging solutions.
- Authentication: Ensuring only genuine accessories manufactured by Motorola or a license of the technology can successfully authenticate and provide the unique SW experience depending on the type of accessory connected.
- Battery Health Monitor: Reporting ‘Aged Capacity’ and summing charge cycles for data gathering reasons
- Log Parser tool: Developing and maintaining the SBCM tool used to provide data for charging analysis, battery meter analysis, etc.
- 1-wire bus driver: Developing Dallas 1-wire driver to communicate over 1-wire bus to the Battery EEPROM.
- Battery NVM data: Defining process to provision Battery NVM data in the factory and supporting retrieval of NVM data.
- Working around Hardware issues in Software.
- Code Refactoring: Identifying opportunities to refactor code.
- Contributing to knowledge base documents.
- Representing the kernel team in SW CCB and triaging the CR’s on daily basis.
Confidential Getzville, NY
Embedded Software Engineer.
Responsibilities:
- Developed the test software in VC++ which validates the APIs and functionality of the Dialogic Media Gateways. This tool would perform automated or regression testing.
- Created test modules in VBScript, which interface with the engine to extend system testing coverage of Dialogic System Releases.
- Used XML for data exchange.
- Provided Graphical User Interface (GUI) to provide easy access to all SIP Scenario Scripter features.
- Use Wireshark network analyzer tool for SIP call flow graphs.
- Utilized Clearcase for the version control during development.
Confidential, London, UK.
Embedded Software Engineer (Consultant)
Responsibilities:
- Developed application program to manage all hardware peripherals and application program to communicate to master controller using embedded C on Windows platform using Archimedes complier & VC++ editor.
- Developed drivers for hardware peripherals like ADC, DAC, RS232 & RS485 using Embedded C on Windows platform using Archimedes compiler & VC++ editor.
- Designed & developed communication protocol between Host to MCF5272 (TCP/IP) & MCF5272 to ADUC841 using C on uClinux-2.4.19.
Confidential
Software Engineer (Consultant)
Responsibilities
- Interfacing the sensors with PIC module using RS232 protocol.
- Programming the inbuilt ADC in PIC16f873.
- Interfacing the PIC with GSM module using AT commands.
- Testing the interaction of the GSM module with the centralised database system.