Embedded C Developer Resume
Chicago, IL
SUMMARY
- Around 9 years of hands on experience in designing and developing high performant client, server and multi - threaded applications using C, C++.
- Extensive experience in design, development, enhancements and maintenance of the industrial automation applications.
- Good exposure to each of the phases of Software Development Life Cycle (SDLC), developing projects from stage of concept to full implementation.
- Strong hands-on fundamentals in Boost, STL Data Structures, Templates and algorithms.
- Sound Proficiency in Object oriented concepts (Virtual functions, UML, Abstraction, Encapsulation, Inheritance, Polymorphism etc.).
- Hands on Experience in C Programming (Pointers, DMA and Data Structures, Bit operations) etc.
- Expert knowledge in C++, STL, Design Patterns and Multi-threading.
- Developed Python, Shell Scripts, PL/SQL, T-SQL; created subprograms, procedures and functions, DB triggers, cursors and optimization techniques for SQL.
- Developed C++ SOAP web services on UNIX and Linux platforms using gSOAP.
- Developed Desktop Applications and Mobile Applications and improve application
- Performance using android, Qt.
- Experience in implementing and using Data Structures and Algorithms.
- Expertise in the OOPS, Multi-threading, String pool, C++ Packages, Exception-Handling & Collections.
- Development experience with XML, JSON, TCP/IP, UDP/IP, SSL/TLS, HTTP and
- Multithreaded application using IPC mechanism.
- Experience working on a wide range of microcontrollers/microprocessors such as 8051, 8086, ARM, PIC on embedded devices.
- Good understanding of SDLC processes, AGILE-SCRUM and waterfall methodologies.
- Led the migration of historical data to client; fine-tuned SQL & database, generated reports for management, etc.
- Design and develop solutions using C, C++, Multi-Threaded, Shell Scripting.
- Using PVCS Version Manager as code repository and PVCS Tracker as Defect management
- System. Using Oracle SQL Developer for Database Activities.
- Peer reviews of the Design and Source Code (C, C++, and Shell Scripts).
- Worked extensively on multi-threaded codes using embedded RTOS environments.
- Experience with serial communications including RS232, RS485, I2C, SPI and I2S.
- Strong experience in automating system test and production tasks using Shell Scripting and Python.
- OOPS & Design Architecture: Knowledge of patterns. Came across some patterns like Factory, Singleton pattern while working with the project architecture.
- Expert knowledge in development and debugging tools using Visual Studio & GCC.
- Experience with working on Databases, SQL Server.
- Experience in using IDEs - Eclipse, Pycharm, Visual Studio, GNAT programming studio and Code Composer Studio.
- Proficient in developing user level requirement collection, coding, bug fixing, and Unit testing.
- Proficient in using Debugging tools like gdb, dbx, pdb and other code analysis tools Coverity, cppCheck, Valgrind, gprof.
- Strong understanding of Data Structures, IPC, Multithreading, Socket Programming and Memory management.
- Hands on experience in developing using Linux (Internals of Linux, debugging tools, mutex, semaphore, make files, Libraries).
- Hands in Project using Concepts (Storage classes, Preprocessor, String handling, Arrays, Functions, structures, Data structure, Function pointer, Dynamic memory allocation. Etc.).
- Strong understanding of the Linux networking stack and the communication mechanisms and interfaces between the different components in the system.
TECHNICAL SKILLS
Programming Languages & Scripts: C, C++, Python, Shell scripting, Core Java
Operating Systems: Ubuntu, Windows, Sun Solaris, RHEL, IBM AIX.
Protocols: TCP/IP, UDP, RTP, CAN, I2C, SPI, 802.11 Standards, SNMP, KWP2000, LIN, RS 232, GMLAN, KWP.
Databases: Oracle, MySQL, Microsoft SQL Server, MongoDB.
Tools: GNU emacs, Code Compare, eclipse, UML tools, MS-Office, splunk, Jira, OpenGrok, Valgrind, gprof, Coverity, cppCheck, gdb, pdb, dbx, Jenkins, Wireshark and Charles debugging.
Libraries & Frameworks: STL, Boost, BDE, IPC, multithreading, sockets, SOAP web services, Software Design OOP/OOD, Design Patterns, Apache Active MQ.
Version Controls: Bit Bucket, GIT/GitHub, SVN, CVS.
Build: Jenkins, cppCheck, Coverity.
Simulation Tools: LabVIEW, Matlab, Pspice
PROFESSIONAL EXPERIENCE
Confidential, Chicago, IL
Embedded C Developer
Responsibilities:
- Experience with software system requirements analysis, design, development, integration, and testing.
- Experience with network and socket programming for common protocols and standards, including TCP/IP.
- Experience with scripting in UNIX shell, Python, Perl, and Ruby.
- Experience with serial communications including RS232, RS485.
- Having experience on Ubuntu 8.04, 14.04 and 18.04 versions.
- Migrated code from Ubuntu 14.04(32-bit) to Ubuntu 18.04 (64-bit).
- Established a landscape server over AWS instances.
- Worked on sierra 3G and 4G cell modems to setup and provided training to customers.
- Developed software for Account Barcode Reader and smart card on TVM.
- Having experience with payment terminals like VX700, Pinpad, Bezel8 and Ingenico EPX.
- Having experience with different payment gateways like FIS, VPS, Chase paymentech, Heartland Payment and Ingenico EPX.
- Designed unit test procedures for the functionality developed and validated on TVM.
- Provided customer support and provided the solution to field problems.
- Having experience on various dispensing trim types PSCD/LUCC/FEIG/Magnetic on TVM.
- Installing necessary Kernel drivers by adding patches of code to the source code in Linux.
- Worked on cash modules coinmech (6000, 6000XL and GL) and Billmech (TOYOCOM, MEI).
- Provided training to field service team how to upgrade and downgrade bezel8 using FTP.
- Performed code review and S/W releasing activities.
- Coordinated with offshore teams to setup and Genfarelink on TVM.
- Report work progress continuously through attendance of daily & weekly project internal meetings.
- Experience with operating systems internals in Windows, UNIX, or Linux.
- Good understanding of software development/test tools and software test methodologies.
- Contribute effectively in the continuous improvement of project, team, and work environment by submitting improvement proposals whenever possible.
Environment: Embedded C, Design Patterns, SQL, git bash, Net beans, Linux Ubuntu, POSIX Threads, SVN, git, github, shell scripting, OOAD, BOOST libraries, gdb, Bit Bucket, Jira, Confluence.
Confidential, NJ
C/C++ Developer
Responsibilities:
- Modifying existing build systems and building RPM packages for the new release candidates using CMake.
- Created C# console applications to manipulate data.
- Developed Application that would allow transfer of log files from Linux computer to Linux server using C++ multithreading environment.
- Experience using Agile/Scrum/Waterfall software development methodologies on customer collaboration.
- Responsible on providing infrastructure to launch and deploy latest release candidates.
- Refactored existing code by introducing inheritance based design.
- Improved the code efficiency by optimizing the code and caching frequently used data.
- Managed SQL Server databases using C# with entity frameworks.
- Developed Complex database objects like Stored Procedures, Functions, Packages and Triggers using SQL, My SQL.
- Writing stored procedures in SQL Server and integrated into the application to access the data from databases and store the data into database. Writing SQL queries to import and export the values to database.
- The collection and storage of data, for processing at a scheduled time when a sufficient amount of data has accumulated using Batch Processing.
- Analyzing, designing and implementing change requests for the C/C++.
- Created some stored procedures, wrote the SQL queries for Sybase database and Written Shell scripts
- Used Data Access Object (DAO) classes within MFC to access the Database.
- Migrated from SVN for source control to git, local Github.
- Design Lead for re-design and implementation of GUI interface from MFC based application running on Windows to a QT based application running on Linux.
- Implemented logics to install/update/upgrade software packages in Reprogramming Application Manager using QT interface.
- Programming and Changing UI screens using C++/QT Used multi-threading and thread synchronization extensively.
- Strategize with the outside sales team to architect solutions utilizing the QT framework.
- Utilized STL and C++ algorithms to achieve optimal design efficiency.
- Developed new reports using Python to identify the sales margin overrides.
- Implemented code in Python to retrieve and manipulate data.
- Developed native UI using JavaScript with event handlers and fetching data using SOAP interfaces.
- Involved in production support and providing hot fixes to the production issues.
Environment: C++, Python, SOAP, SQL, XML/JSON, My SQL, Shell scripting, MFC, JavaScript, Design Patterns, STL, multi-threading, Linux.
Confidential, Warren, Michigan
Sr. Embedded C/C++ Developer
Responsibilities:
- Designed, developed and supported multiple C++ SOAP Webservices.
- Cross Functional Role: Responsible for improving the productivity, efficiency and cost improvement for entire group. Successful results in 2016 benefitted the organization.
- Used various data structures and design patterns in applications like Singleton, Observer, Factory methods etc.
- Used C/C++ interface to retrieve/update info from/to the DB.
- Wrote various SQL stored procedures to compute several metrics like realized/unrealized gain/loss, forex rate effect etc and other data manipulation.
- Worked with google proto bufs for message parsing and handling.
- Develop a test system using Freescale evaluation board using embedded C, C++ to provide synchronization and start up node emulation to the Engine module test system.
- Manage to deliver the multiple Vehicle platform / variants projects for the customer on time with a high quality.
- Ensure the all the set quality standards by performing exhaustive Hardware In Loop Testing as the project team is responsible to deliver the work products directly to OEM.
- Responsible for quality control, improving efficiency, technical competency and overall development of the team members.
- Wrote C++ programs for end of day operations (EOD) to close or roll the orders.
- Used STL extensively to store data on Order history, accounts, securities, etc. for fast retrieval/update.
- Worked with users, business and exchanges to gather new requirements/enhancements, testing and final delivery of sub systems.
- Developed/enhanced as part of team to compute commission calculations based on commission rules and generate pdf reports.
- Involved in writing optimization techniques for more accuracy of Macros in C/C++, C and C++ routines and Oracle SQL, PL/SQL.
- Worked on Embedded environment using QT-QNX interfaces.
- Modified C++ programs to support compliance rule automation for many compliance rules for client accounts for both pre-and post-trade compliance purposes and manage leverage using many metrics like industry exposure, security type, long/short positions, currency / securities / options / futures, credit ratings etc.
- Used Python scripts to generate various reports like OATS, transaction history, user privileges, limit rules and commission schedule reports.
- Used SVN and git/GitHub for source code control.
- Followed Agile and Scrum Methodologies
Environment: C, C++, Design Patterns, SQL, Python, bash, ksh, Linux, POSIX Threads, SVN, git, Github, OOAD, BOOST libraries, gdb, pdb, dbx, OpenGrok, Jira.
Confidential
Software Engineer
Responsibilities:
- Coding and implementation of routing software for handling customer queries and re-routing to appropriate divisions. The customer’s calls are automatically answered and place into a holding the queue until an agent becomes available.
- Developed tools like LINUX IDE (Eclipse) for C++, C, UNIX Shell Scripting, Clear Case, Clear quest, QNX, Eclipse, VNC Viewer, XML Parsing etc.,
- Involved in designing and developing the functionality and features using C++.
- Involved in the code and requirement reviews of work products developed by team members.
- Data base Enhancements for new customers and departments/divisions.
- Writing stored procedures in SQL Server and integrated into the application to access the customer's calls, department's data from databases and store the customer's calls, department's data into database.
- Preparation of Unit test cases and execution of test cases.
- Porting of application from Windows to Linux.
- Developed and executed user Acceptance Testing portion of test plan.
- Worked on creating various documents that include Use Cases, Class Diagrams, Sequence Diagrams and Activity Diagrams.
- Handled corporate action events to reflect the order price and currently implementing the tick size changes. Using Batch Processing we maintain, organize and sort incoming and outgoing mail as well as screen documents and various forms. We then distribute outgoing mail to their designated areas with a routing transmittal that we have created.
- Developed, coded, tested, debugged and deployed web services, MQ for the input and output forms on the web services.
- Review of design document, code and test case documents.
Environment: C, C++, STL, QT Frame work, CVS, OOPS, DBX, Linux, GCC Compiler and Perl Scripting, SQL Server 2008, Windows Services, Boost C++ Library.
Confidential
Software Engineer
Responsibilities:
- Used OOAD in the software development for HP servers.
- Used Linux device driver code in C\C++ on 32 bit to implement the device interaction code for application.
- Modified C\C++ code on 32 Bit/64bits environments to support enhancements, fixed bugs in the existing software in multithreaded, highly scalable, high throughput applications
- Used C++ STL containers, algorithms in the application.
- Designed, developed and implemented algorithm for network servers to expand the capacity of existing tool with new released hardware.
- Used SVN for code repository.
- Used TCP/IP and UDP for communication on Linux environment.
- Used concept of Design Pattern for design and implementation the code.
- Designed, developed and Implemented for Logical configuration command to configure the device for Linux OS for 0x86 and x86 64 bit environments.
- Implemented Identify command in C\C++ on Linux 32 bit and 64-bit environment to identify the devices and hardware.
- HP ACU implemented for various family of HP server including Gen 6, Gen 7 and Gen 8 blade and ProLiant servers.
- Worked on Performance Improvement & memory leakage.
- Provided support for production and development issues.
- Coordinate offshore team by assigning tasks, mentoring them for technical issues and updating the status to client on daily basis.
Environment : C, C++, STL, COM, Make file, Linux Driver interaction programming. Integrated Development Environment and Debug Tools, GNU Debugger, POSIX threads, SVN, HP-UX and UNIX/Linux.