Embedded Software Engineer Resume
Irving, TX
SUMMARY
- C/C++ Embedded Software Engineer with 6+ of experience in Software Development, Production, Support, troubleshooting & Maintenance.
- Strong experience in C/C++ on Linux using STL, multithreading (POSIX), Boost libraries, data structures, IPC (TCP/IP socket programming).
- Strong in Object - Oriented Programming (OOP), Object Oriented Analysis and Design patterns
- Experience in various aspects of system architecture, software design, development, implementation and validation.
- Good knowledge on Wi-Fi/I2C/BLE/ZigBee protocols.
- Strong experience in creating Test Plans and Test procedures, driving Test Strategies and tools identification, Managing Test design through cross functional teams and creating Test Summary Reports.
- Good knowledge on IoT (Internet of Things) end-to-end application development.
- Experience with application migration to cloud platforms like AWS.
- Used Boost C++ library for Documentation providing an elegant and efficient platform independent to needed services
- Good hands on experience on Web services like RESTful API, SOAP API and XML data integration.
- Very strong exposure on software development on Embedded Linux, VxWorks (RTOS).
- Proficient at debugging code using gdb tools. Acted as second and third level support at various positions.
- Have experience in working on UML on creating class, sequence, activity, deployment diagrams.
- Have good skills in writing requirement, design and unit test documents.
- Knowledge on voice/video application over wireless network. Development experience with XML, JSON, TCP/IP, UDP/IP and multithreaded application using IPC mechanism
- Used Design patters for Program creation and organizing code into objects and relationships of objects
- Have excellent analytical, problem solving, communication and interpersonal skills, with ability to interact with stakeholders at all levels and work as a part of a team and independently.
- Have exposure with Agile software methodology and Scrum activities.
- Hands on experience with Linux Kernel Development, Shell Scripting, Micro processor and Micro controller programming, Geritt, Perforce & Jtag.
- Good debugging and analytical skills on x86 and ARM platforms. Performed Debugging profiling for optimization purpose and finding bugs in Linux platform.
- Experience using in Python, Shell, Bash, Pearl scripting, Kernel debugging and QT-QNX.
- Experience in various SCM tools GIT, GitHub, CVS, Gerrit.
- Performed Database integration to Integrate MySQL with cloud applications and relational databases to load and synchronize MySQL data with sources having different data structure to execute automatically.
TECHNICAL SKILLS
Languages: C++, Embedded C, Core Java, RESTful, JSON
Operating System: Linux, RHEL, Unix, Ubuntu, Windows7/10
Scripting: UNIX Shell Scripting, Python
Databases: Oracle, PL/SQL, IBM DB2, SQLite, MongoDB
OOAD: UML, Design Patterns
Configuration Management toolsCVS, SVN, Git/GitHub: Debugging Tools gdb, dbx
Build Tools: Make
Bug Tracking tools: Bugzilla, Jira
Protocols: TCP/IP, I2C, SPI, UART, RS232, Bluetooth, Wi-Fi
Libraries & Frameworks: STL, IPC, multithreading, QT/QML, Sockets, signals/event handling, Google Test
PROFESSIONAL EXPERIENCE
Confidential, Irving, TX
Embedded Software Engineer
Responsibilities:
- Responsible for designing, implementing, testing, debugging software for MTAS (Mobile Telephone Authentication Service) used for SIM activation, deactivation.
- Participated in the entire lifecycle of the project, which involve, understanding scope of the project, functionality, Object-oriented Data Modelling, Design patterns and development in C++.
- Implemented MTAS Client-server architecture and used TCP/IP network programming to handle networking logic and real time in memory database operations.
- Experience with networking and application protocols like Ethernet, WI-Fi, TCP/IP.
- Used Valgrind tool for identifying memory leaks debugging and profiling.
- Worked on fixing Data leakage from Application using multiple interfaces of http, xcap and migrated to HTTPS without changing app functionality.
- Developed application code in the Windows environment using Microsoft Visual Studio for API testing.
- Experience in troubleshooting, analyzing, and determining root cause of firmware issues during development, lab testing and operation at customer sites.
- Written documentation of technical architectural design.
- Work with product management to define the kernel security road-map
- Define test cases and write test automation which effectively validate module designs.
- Testing includes Functional, Stability, Usability, Exploratory, Regression Testing for Device of mobile, web service testing using XML’s.
- Built a Custom Pipeline for Jenkins to automate the whole build and Sanity testing process.
- Worked on automation of Quality Check tasks by creating PL/SQL procedures, cursors, functions in SQL.
- Performed Unit testing and Google Test to test the functionality of services.
- Maintaining and handling upgrades to kernels, build systems, tool chains.
- Tested and regulated Arduino systems for the control design.
- Involved in testing andcommercialization activities of Qualcomm modemsand driving end-to-end delivery.
- Worked extensively on development of products in RTOS for ARM micro controllers using ARM Cortex M3 based micro controllers (LM3S3748).
Environment: C, C++, AWS, Jenkins, Github, Jira, SSL, SQL, Eclipse, gdb, REST, PL/SQL, UNIX, Linux, Shell Scripting, Perl Scripting, UML, Python 2.6/2.7.
Confidential - Farmington Hills, MI
Embedded Software Engineer
Responsibilities:
- Seasoned in delivering under complete GE Transportation Software Development Life Cycle methodology (requirement, analysis, design, data modeling, business process modeling, implementation and deployment).
- Major role as an embedded engineer using C/C++ on QNX RTOS for design and development of HMI screens for Trip Optimizer (TO) to configure on EMD Locomotives.
- Develop a web server-based interface running on QNX RTOS that allows Trip Optimizer data to be viewed on a web browser or a custom-built web client.
- Design and Implement Trip Optimizer Interface Gateway (TIG) which can fetch Locomotive information and relative data from Trip Optimizer and record this data for later use.
- Understand and implement different communication aspects such as Socket Connections, Port Forwarding and assignment.
- Writing device driver software for interfacing the CAN MCP2515 with Arduino ATMega 1280
- Understanding of existing source code and addressing Change requests (Defects) in existing applications and new feature integration, new applications based on requirements.
- Fix defects in Enterprise OS Linux components, including Linux kernel.
- Verification and Validation of multiple sub systems in Locomotive in LAB, VSIM and on real-time locomotives in manufacturing Floor based on test procedures.
- Build application and database servers using AWS EC2 and create AMIs also using RDS for Oracle DB.
- Designing, building, compiling and managing the Linux kernel supporting a variety of customized software applications.
- Working in Kanban, Agile Methodology in a 2-week sprint environment.
- Having Knowledge on AWS Lambda, Auto scaling, Cloud Front, RDS, Route53, AWS SNS, SQS, SES.
- Experience inHIPAAEDI834(Benefit Enrollment), 270/271 (Eligibility/Enquiry Response), 276/277 (Claim Status Eligibility and Response).
Environment: C, C++, Linux, VSIM - Virtual Simulator, Python, Shell, Trip Optimizer Client, Trip Optimizer Event Log Reader,gdb, QNX, HMI, WinSCP, Visual Studio
Confidential, Austin, TX
Embedded Software Developer
Responsibilities:
- Implementation and integration of Bluetooth and Wi-Fi resources with existing application.
- Used STL containers, algorithms, various data structures and design patterns in software design like Singleton for db connections & Observer pattern for processing events.
- Conducted code reviews according to C++ Coding Standards and Conventions.
- Implementation of Diagnostics tool in C++ for CAN protocol messages monitoring from various ECU units.
- Worked and implemented several Arduino/Intel based embedded boards.
- Implemented TLS/SSL communication code to send vehicle data, information and records to the cloud to show information on cloud platform using REST APIs.
- Developed tools like LINUX IDE (Eclipse) for Embedded C, C++, UNIX Shell Scripting, Clear Case, Clear quest, QNX, Eclipse, VNC Viewer, and XML Parsing etc.
- Involved in preparing the best practices for Java Code.
- Involved in code check-ins and code-checkout using GitHub repository and performs code reviews at regular intervals.
- Experience in Socket Programming, IPC (Inter Process Communication) mechanisms under different OS/RTOS.
Environment: C, C++, Linux, CAN, LIN, RS 232, QT/QML, Python, Microcontroller, SSL/TLS, Python, Embedded C, TCP/IP, REST APIs
Confidential
Software Engineer
Responsibilities:
- Worked as C/C++ developer with Test Driven environment and embedded IoTsoftware applications deployed for Logistics.
- Preparing Maintenance Manual, System Description Document and Functional documents.
- Automation done for generating various kinds of reports by using Perl/Shell scripts.
- Involved in writing optimization techniques for more accuracy of data filtering and aggregation.
- Container Tracker is cloud-based software that enhances supply chain performance by delivering real time data-driven insights.
- Major role as an embedded software developer for scheduling, planning and tracking the containers using IoT based solution using x86 platform.
- Integration of IoT gateway with AWS using DynamoDB and ApiGateway services with REST API between client/server.
- Deployment of web, enterprise java components, messaging components and multi-threading.
- Reproduced software bugs/defects present in current software deliveries and implemented potential fixes and provided detailed root cause analysis.
Environment: C, C++, OOAD, STL, SSL/TLS, Integrated Development Environment and Debug Tools, Ubuntu Linux, POSIX Threads, Intel IoT platform, MQTT, MongDB, AWS