Software Engineer Resume
Redmond, WA
SUMMARY
- Passionate Embedded Software Engineer with over 7 years of experience in design, development and testing of embedded applications using C, C++, C#, and Python.
- Extensive experience in developing platform independent and easily maintainable software in bare metal, Real Time Operating Systems (RTOS), and Linux platforms.
- Experience in verification, validation, and creating automation.
- Experience in and device driver development.
- Experience in developing application using C# and SQL.
- Hands on experience in low level driver development for external and internal peripherals like Flash, FRAM, ADC, Temperature sensor, Real Time Clock (RTC), Matrix LED and Graphical LCD displays.
- Hands on experience in custom boot loader development.
- Extensive experience in SPI, I2C, QSPI, RS232, RS485, TCP/IP, UART, CAN, Timers, Low Power modes and interrupts.
- Good understanding of ARM architecture, Cortex M3/M4.
- Experience in UML, STL, design pattern, understanding schematics, datasheets.
- Extensive experience in complete software development life cycle (SDLC) and test life cycle (STLC) of products.
- Good understanding of server RAS features, CSI Tools, UEFI and Intel BIOS.
- Hands on experience in Medical device development. Exposure to ISO 13485, ISO 14971, FDA regulations and medical device software practices.
- Experienced in developing software for battery operated device.
- Hands on experience in task scheduling, priority handling, IPC mechanisms, interrupts, multi - threading.
- Strong in troubleshooting and debugging embedded software.
- Expert in platform independent low-level driver development and easily maintainable application software development.
- Experience in working with board support package (BSP) and board bring up.
- Involved in system integration, module level and integration testing.
- Hands on experience in using oscilloscope, debugging tools, logic analyzers and version control tools.
- Expertise in understanding customer requirements, identifying software requirements and preparing low level design, test scenarios and test cases.
- Exposure of Azure DevOps, Agile and Waterfall models.
- Hands on experience in using defect reporting and tracking tools like Bugzilla 3.2 and Jira.
- Good interpersonal and communication skills able to work under pressure with fast learning qualities
TECHNICAL SKILLS
Languages: C, C++, Python, C#
Microcontrollers: STM32F1, STM32F2, STM32L1, STM32L4, STM32F4, 8086, 8051, MSP430
IDE: IAR, Keil, Eclipse, Visual Studio, PyCharm, Visual Bios
Protocols: I2C, SPI, QSPI, UART, USB, RC5, CAN, TCP/IP
Standards: RS232, RS485
Operating system: Windows, Linux, Safe RTOS, Free RTOS
Debugging Tools: ST-link, j-link, GDB
Framework: .Net 4.5, Flask
Version Control: SVN, GIT
PROFESSIONAL EXPERIENCE
Confidential, Redmond, WA
Software Engineer
Responsibilities:
- Involved in the development and testing of employee portal web application.
- Preparing and executing unit test cases to validate the functionality.
- Preparing test scenarios and test cases.
- Created test automation using python.
- Bug reporting and tracking.
Environment: Python, Unit testing, Flask, Test automation, Robot Test Framework
Confidential, Redmond, WA
Senior Project Engineer
Responsibilities:
- Designed and developed test scripts using Python to ensure RAS functionality.
- Preparing and executing test cases to validate RAS features.
- Identifying gaps in Intel BIOS software implementations by analyzing debug logs.
- Validating RAS features using CSI test tools and software packages and bug fixing.
- Validating latest Intel and AMD BIOS to increase the cloud server hardware reliability, availability, and serviceability.
- Automating test cases.
- Participating in daily standup with client.
Environment: Azure ADO, Intel, BIOS, Git, UEFI, C, C++, Python, Test Automation, Embedded Testing.
Confidential
Embedded Software Engineer
Responsibilities:
- Involved in full software development life cycle (SDLC) including requirement gathering, designing, implementation, and testing.
- Involved in identifying design requirements from system requirements and prepared low level design documents.
- Created UML models in Visio including use cases, component diagrams and sequence diagrams.
- Developed application software and drivers by following FDA coding standards.
- Developed custom bootloader for updating pump firmware.
- Involved in designing of RTOS tasks and priorities. Designed and developed inter task communication protocol.
- Developed application software for core module of the pump which interacts with multiple tasks and gathers the pump status, user inputs and handles insulin deliveries.
- Developed Platform independent driver for memory devices like SPI-Flash, SPI-FRAM, and QSPI-Flash.
- Developed drivers for QUAD SPI, SPI, I2C and Timers.
- Implemented system sleep mode (Low power mode) to optimize battery usage.
- Involved in application software development for updating pump diagnostics using BLE communication.
- Involved in board bring up, unit testing, functional testing, software integration, integration testing, code reviews, debugging and code analysis.
- Handling the customer requests, troubleshooting and bug fixing.
- Involved in application development to analyze pump faults. Involved in faults data base preparation.
Environment: C, C++, Safe RTOS, Oscilloscope, STM32L4, MSP430, STM32F4, SPI, I2C, FRAM, FLASH, BLE, C, C++, Visio, OOAD, QAC++, Logic analyzers.
Confidential
Firmware Developer
Responsibilities:
- Involved in complete SDLC of RMPU. Developed software which controls temperature, and humidity inside the train coach based on settings and user inputs.
- Prepared low level design documents for control unit which controls the temperature.
- Developed drivers for RS232, Keypad, ADC, and temperature sensor.
- Designed and developed interrupt service routine (ISR) software to handle GPIO, UART, and Timer interrupts.
- Designed and developed communication framework for master-slave and PC-master communication.
- Developed application software for user interface through Graphical LCD and keypad.
- Developed software to maintain temperature and humidity inside the coach. Implemented logic to maintain temperature by turning ON/OFF compressors, condensers, and heaters.
- Involved in Debugging the software and bug fixing, system integration, code reviews and unit level testing.
- Prepared test scenarios, test cases and designed test methodologies.
- Executed test cases. Involved in bug reporting and tracking using Bugzilla.
Environment: C, STM32F1, RS232, GPIO, FLASH, TIMER, SPI, I2C, ADC, Oscilloscope, temperature sensor, Linux.
Confidential
Embedded Software Engineer
Responsibilities:
- Involved in complete SDLC of PIS which displays safety messages and station related information based on the GPS location.
- Developed drivers for IR receiver, LED display, RS485 communication and external RTC.
- Developed platform independent driver for 240X128 Graphical LCD.
- Application software development for displaying station information, time, date, general and safety messages in LCD and LED display boards by following MISRA coding standards.
- Software development to receive and process latitude and longitudes from GPS module.
- Involved in database designing for storing station information and messages in flash memory.
- Developed communication framework to handle multi controller communication and PC to master communication.
- Developed GTK application and web page in Linux environment to display train status information.
- Involved in windows application to handle serial communication and database download using C#.
- Created test scenarios and test cases to test user interface of the application.
- Performed unit and functional testing of the system.
- Involved in debugging, trouble shooting and bug fixing.
- Prepared user manuals, design documents, and requirements tracing related documents.
- Involved in application development to download database to pump. Involved in database preparation.
Environment: C, C#, STM32F1, SPI-Flash, RS485, Graphical LCD, I2C, SPI, RTC, GPS, LED display, Linux, SQL.
Confidential
Responsibilities:
- Understanding the Requirements and functional specifications of the application.
- Participated in identifying the required test scenarios.
- Prepared and executed test cases as per system requirements.
- Performed various black box testing methodologies like functionality testing, usability testing.
- Defect Reporting and Tracking using Bugzilla.
Environment: Manual testing, Bug reporting and tracking.