Senior Embedded Software Engineer Resume
Peoria, IL
SUMMARY
- Over 7 + years of experience in the field of embedded systems Development, Firmware and device drivers development for embedded products, Testing, Verification & Validation.
- Experience in design, implement and debugging embedded software in Linux using C, C++.
- Experience in C, C++ code Development and code Debugging, RTOS libraries for embedded Linux in C.
- Worked on bash shell scripting, Tcl/Tk and exposure to automated testing tools
- Data structures widely used in embedded applications like linked list
- Developed applications based on Linux Scheduling and Linux Memory management, Linux SysCall,POSIX Multithreading
- Porting Linux and programming U - Boot to custom built and Reference hardware platforms.
- Experience with HIL simulation for complex electrical components and Audio units like Tuner, AM, FM.
- Hands on experience in cross platform porting PowerPC, ARM, AT SAMD21, MIPS and X86.
- Familiar with IPC mechanisms like Queues, Semaphores, FIFO’s, sockets etc. in Linux, QNX.
- Good understanding of Wire communication Protocol, CAN, knowledge of I2C, DHCP, TFTP, and TCP/IP.
- Debugging and testing experience using Simulators, Oscilloscope and Logic Analyzers.
- Working knowledge on Design Patterns and multi-threading programming
- Worked on tools such IBM Clear Quest, Clearcase, SVN, DOORS, AVR Studio, and JIRA etc.
- Strong understanding of the SDLC, QC/QA concepts. Familiar with UML design concepts.
- Good understanding of Communication standards such as DOCSIS and digital data transmitters such as ADSL.
- Experience with development and Implementation of In-Vehicle infotainement.
- Knowledge on development using AUTOSAR software Architecture.
- Rich experience in automotive domain processes & MISRA-C coding guidelines. Good understanding on automotive standards and protocols OSEK.
- Good Experience onHuman Machine Interface (HMI) development.
- LinuxKernel loadable module programming, socket programming, Network driver’s development and UnixIPC.
- Excellent knowledge of preparing test Procedures, test cases for module system testing/software Integration testing (Manual and automated).
- Good understanding knowledge on RDK environment.
- Hands on Experience in writing Scripts using PERL, Python Scripts
- Good understanding on product development life cycle and Software Engineering Process. Familiar with Agile methodology and Waterfall Model
- Good management skills, demonstrated proficiency in leading and mentoring individuals to maximum levels of productivity, while forming cohesive team environment.
TECHNICAL SKILLS
Programming languages: C, C++, Objective-C, STL, Embedded C
Scripting: Python, Perl, Shell, LINUX and CAPL
Operating systems: LINUX, Microsoft Windows, QNX, RTOS Concepts, Vxworks
Processors (MCU's)Processor’s: ARM9, 8051, Renesas, 89C52, PIC24HJ128GP502, MSC 81x,AT SAMD 21, DebuggersDebuggers GDB, Trace-32
FPGASimulation Tools: Xilinx Spartan, MATLAB
Diagnostic ProtocolsDiagnostic Protocols: KWP2000 & UDS (Basics), OBD II
IDE's/Compilers: Keil (ARM & 8051 Variants), IAR Embedded Workbench, AVR Studio
Testing Tools: DOORS, Clear Case, SVN, JIRA
Vector Tools: CANalyzer, CANOe
Embedded Tools: Logical Analyzer, Function generator, Oscilloscope, Signal generator
Communication Protocols: CAN, SPI, I2C, LIN, MOST, Flex Ray, UPnP, TCP/IP(v4,v6)
Software Architecture: AUTOSAR (basics)
PROFESSIONAL EXPERIENCE
Senior Embedded Software Engineer
Confidential, Peoria, IL
Responsibilities:
- Development of Communication protocol stack for IPC
- Development of Boot loader and Application Development
- Developed software in C, C++ following MISRA C/C++ coding guidelines.
- Worked with hardware architectures such as FPGA.
- Development of the message communication between RA system using CAN/LIN
- Development of software interfacing modules for automotive communication protocols such as CAN, LIN
- Developed and maintained code for data acquisition through peripheral protocols such as SPI and I2C.
- Functional testing using the CANalyzer and Unit testing using MS tool.
- Regression testing of different functionalities. Supported new and internal projects with OpenGL ES.
- Involved in developing customized solutions based on the requirements.
- Perform responsibilities of setting testing tools and develop testing procedures.
- Involved in every step of SDLC process like requirement analysis, designing, coding, unit testing, releasing and providing product maintenance, and documentation at each stage.
Environment: PIC, CAN, LIN, J2602, SPI, I2C, C, C++, Linux, Python, ThreadX, MPLAB, GDB, Perforce.
Senior Embedded Developer
Confidential, Austin, TX
Responsibilities:
- Understanding the Navigation Module requirements.
- Designed and implemented software drivers for navigation module.
- Designed the logic to activate route guidance based on user preferences.
- Enhancement for Day & Night mode display. Created program code with C,C++ and OpenGL applications.
- The code was written in embedded C with RTOS as operating system. The code was also checked under standard checking tools like Code Check, MISRA.
- Developed and Tested complex real time embedded systems using HIL simulation. Enhanced the quality of testing by increasing the scope of testing using HIL.
- Developed Python scripts for emulation requirements and file structure handling.
- Designed CAN message both 11 bit & 29 bit for communication between different ECUs.
- Performed automated testing, which involved reading and logging data for identification of DUT. Interfacing was done using CAN
- Responsibilities include identifying the design specifications and planning the design using UML(State, sequence)
- Provide assistance to the system validation engineer in installation of product and in validation planning.
- Involved in various levels of testing like Unit Testing, Functional Testing and Regression Testing.
- Involved in field-testing with customer.
Environment: C, MSC 81, Trace-32, MATLAB, RTOS, DOORS, HIL, CAN, QNX, Clear Case, IBM CQ.
Software Engineer
Confidential, Franksville, WI
Responsibilities:
- Involved in Voice Recognition, Bluetooth Audio, UART, Bluetooth Menu and Diagnostics
- Developed small ARM assembler routines to fix the bugs
- Implemented I2C communication interface between microcontrollers.
- Integration of Vector CANoe driven test sequences for End of Line testing.
- Involved in Implementation of CAN open protocol stack based on CAN-festival and testing the same.
- Worked on the Audio drivers and Audio problems on the Bluetooth area.
- Worked on Ethernet drivers and boot loaders in conjunction with VxWorks.
- Debug Vector CAN interrupt handler to determine dropped interrupts caused loss of data.
- Experience in automation testing and test analysis. Involved in Functional testing of BT Phone, Tuner, Media and Aux. Flashing the software to the device.
- Testing Product diagnostics, which involves Bezel diagnostics.
- Reporting and tracking bugs using Clear Quest.
- Preparing test cases for functional testing and Regression testing.
- Prepared and participated in technical design reviews (TDRs), code reviews, followed good documentation controls, and involved in system verification and validation.
Environment: ARM9, AT SAM4L, MatLab, C++, VxWorks, CANalyzer, CANOe 7. 2, CAN, CAPL, RDK, Linux, MOST, Tuner, AM, FM, CAN Oscilloscope, Function Generator
C Developer
Confidential, Huntington Park, CA
Responsibilities:
- Developed software using Renesas RX62Ndevelpment board.
- Designing the whole project and interfacing LED display and Keypad to AT89C52 microcontroller.
- Interfacing the RF Transmitter Module, RF Receiver Module and stepper motors using ULN 2003.
- Developed a scheduler/dispatcher algorithm for an End of Line tester unit for a target hardware.
- Developed code in Embedded C using Kiel compiler.
- Performed system-level integration of the software.
- Involved in code review and regression testing process.
- Interacting with integration test team to troubleshoot problems and provide bug fixes.
Environment: C, Kiel compiler, RDK, Studio 2005, Linux, Renesas RX62N.
Software Engineer
Confidential
Responsibilities:
- To understand Intel’s 8051 8-bit microcontroller datasheet.
- To develop driver software to configure 8272 peripheral to drive 7 segment LED’s.
- To developed driver software to configure 8272 peripheral to drive 4x6 matrix keyboard.
- To developed driver software to configure 8255 peripheral to read status of general-purpose switches.
Environment: C, PowerPC Assembly, Linux, Perl,AMX RT Multi-tasking Kernel, 89C52, Perforce.
Embedded Engineer
Confidential
Responsibilities:
- Designing the system and documenting the requirements.
- Hardware development from soldering to installation onsite.
- Coding the MCP3201 ADC - SPI through SPI communication protocol
- Interacting with the customer of requirements to develop the project as a whole system.
Environment: Embedded C, Perl, AT89S52 MCU, MCP3201 SPI-ADC, Smoke sensor, Buzzer.