Senior C++ Developer Resume
New York, NY
SUMMARY:
- C/C++ Software Engineer with 7+ years of experience specializing in financial industry and embedded firmware development.
- Experience in various aspects of system architecture, software design, development, implementation and validation.
- 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.
- Strong experience in Python, C/C++ on Linux, Cross - platform and embedded systems.
- Extensive Experience in Multi-tier Application Development and good knowledge of Design Patterns.
- Worked on Client/Server, SQL Server and Web based applications with strong business understanding and knowledge of Order management systems.
- Proficient in financial protocols and technologies like FIX protocol, CTCI, B-Pipe (bloomberg) feed.
- Proficient in static analysis tools like cppCheck and Coverity. Caught many severe bugs before production releases.
- Expertise in developing multithreaded network based client-server applications.
- Developed XML C++ SOAP webservices on Unix and Linux platforms.
- Very strong exposure on software development on Embedded Linux, VxWorks (RTOS), Solaris and Linux.
- Programmed in C for the 16-bit Microchip 33FJ128MC802 microcontroller that implements a selectable cooperative/preemptive RTOS.
- Expertise with modelling tools like Matlab/Simulink, Stateflow.
- Good understanding and experience with I2C, SPI, CAN, PWM, UART in both firmware and RTOSs driver development.
- Experience in Lock Free programming for multicore parallel architecture solutions. Hands-on experience with FPGAs and uC, and knowledge on FPGA tools (Xilinx ISE, Altera Quartus) including constrained FPGA synthesis.
- Design Software architecture using UML based design tools.
- Proficient in debugging using tools like gdb, dbx and pdb. Acted as second and third level support at various organizations.
- Experience in building and bringing up Boot loader (Uboot), TFTP, NFS, serial consoles, Linux kernel, and Root File System.
- Deep understanding of operating systems and familiarity with Linux, FreeRTOS+I/O, ThreadX.
- Worked with Git, SVN, CVS and Clear case configuration management systems and used tools such as Rally, Review Board, Extra view and Clear Quest.
- Good experience with JENKINS and other build environment tools. Extensively used Bit bake and Yocto make processes.
- Experience in using C and Assembly language to debug and update firmware versions
- Expertise in software product life cycle, design process including requirement definition, prototyping, proof of concept, design, implementation, testing, unit test framework, bug fixing and maintenance
- Good knowledge of coding standards like MISRA-C.
TECHNICAL SKILLS:
Programming Languages & Scripts: C, C++, Python, Java script
Operating Systems: Sun Solaris, IBM AIX, RHEL, Ubuntu
Version Control: GIT/github, SVN, CVS
Protocols: TCP/IP, UDP, CAN, SNMP, KWP2000, LIN, RS 232, GMLAN, KWP
Databases: Oracle, Microsoft SQL Server, IBM DB2, SQLite and MongoDB
Libraries & Frameworks: STL, BDE, IPC, multithreading, sockets, heap allocators, signals/event handling, SOAP webservices, Software Design OOP/OOD, Design Patterns, Google Test, Google Mock, Quick FIX
Build: Bitbake, Yocto, Jenkins, cppCheck, Coverity.
Tools: emacs, eclipse, UML tools, MS-Office, splunk, Jira, OpenGrok
Simulation Tools: Verifix, Labview, Cadence, Pspice, Hspice, Synopsys, Xilinx, dSPACE HIL
PROFESSIONAL EXPERIENCE:
Confidential, New York, NY
Senior C++ Developer
Responsibilities:
- Part of a development team to implement Equity Order Management system to accept orders from UI, FIX, send/route to Exchanges and other broker dealers and fill the trades in C++ on Unix hybrid and Linux platforms.
- Developed multithreaded cache offline program in C++ to support various UIs to deliver/process data for a scalable, high throughput, low latency applications.
- 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 SOAP webservices for order and trade related information to display on UI. Used proprietary MQ to subscribe to order and trade updates.
- Designed UI screens using Bloomberg UI toolkit. Coded, tested business logic for UI in JavaScript, to validate user inputs, calling various web services for information retrieval and updates.
- Used various data structures and design patterns in applications like Singleton, Observer, Factory methods etc.
- Handled corporate action events to reflect the order price and currently implementing the tick size changes.
- Used C/C++ interface to retrieve/update info from/to the DB.
- Developed/enhanced as part of team to compute commission calculations based on commission rules and generate pdf reports.
- Modified C++ programs to support compliance rule automation for a large number of compliance rules for client accounts for both pre and post trade compliance purposes and manage leverage using a large number of metrics like industry exposure, security type, long/short positions, currency / securities / options / futures, credit ratings etc.
- Wrote various SQL stored procedures to compute several metrics like realized/unrealized gain/loss, forex rate effect etc and other data manipulation.
- Used Python scripts to generate various reports like OATS, P&L, transaction history, user privilages, 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,Thread X,gdb, pdb, dbx, OpenGrok, Jira
Confidential, Parispanny, New JerseySenior Embedded Software Engineer
Responsibilities:
- Wrote Firmware/Fcode drivers in C for various SCSI and Gigabit-Ethernet hardware products
- Firmware for a bootable serial ATA device, which uses Sil 3112A chip.
- Wrote UNIX Shell test scripts for testing various Network parameters.
- Testing various network configurations e.g. point to point, server-router-client configuration.
- Worked and implemented several Arduino based embedded systems
- Worked with Python and tested several modules in order for the product development
- Tested and regulated several Arduino systems for the control design
- Tested the code design using python
- Worked with machine controls for the development and designing of the module.
- Knowledgeable in automation controls
- Used hypervisor virtualization for different machines in order to capture the control panel design
- Wrote reusable, testable and efficient code using python.
- Implementation of security and data protection using python.
- Designed and implemented low latency, high availability, and performant applications using python.
- Creating the models in MATLAB and Simulink for GCU and BPCU functionality and applying the
- MBD process on the models generated.
- Wrote C modules for Device Testing, used MFC for application framework and network development.
- Ascertained various bottlenecks for PCI devices, including PCI bridges, Memory, Multiple-Processor based systems.
- Providing support for the production floor, engineering floor.
- Designed and Successfully Implemented a Software Platform to create, deploy and bill various telecommunication products and services in real-time
- Implemented and tested several modules with Java
- Responsible for web logic administration, maintenance and performance tuning using Java
- Wrote a Multi-Language-support, TCL - IVR (Interactive Voice Response) Scripts for Voice over IP applications for complete call control and completion, supporting 10 languages.
Environment: C, C++, VXworks, PCI, QT/QML, Python, Java, Microcontroller, TCL-IVR, H323 VOIP, Python, Embedded C, Cisco, TCP/IP, LIN, RS 232, Zigbee, Windows, CPI, MFC
ConfidentialEmbedded Software Engineer
Responsibilities:
- Responsible for benchmarking wince-6.0 OS under imx-236 processor using C.
- Responsible for evaluation parameters to judge which RTOS to be used under imx-236
- Led prototype development at an engineering R&D company for a portable Bluetooth and RF peripheral devices
- Conducted schematic, layout and critical component selection, programed microcontrollers with I2C, USB and UART
- Integrated capacitive touch sensing modules with a portable mobile device specializing in battery management, power circuitry, PCB design and 3D printing.
- Created a DC-DC power management system to control voltage supply to a low power on-board module.
- Responsible for writing test scripts in C and C++ language to validate UART, i2C, SPI, SD card, Emmc card, ADM, DDR module.
- Improved design using RS-232 communication from development board to PC display software by creating a Windows application to read the RS-232 data that sent data via Ethernet to display
- Implemented application algorithms based on a signal strength and standard deviation of RSSI
- Implemented Traffic Management via Priority Queuing and Memory Buffer Handling
- 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.
- Involved in the automation activity to automate test module using QSPR tool and Perl Script.
- Involved in post silicon validation of various peripheral devices (I2C, UART, SD card) for strider chipset.
- Led on demand touch cross-functional task force to resolve customer production issues on timely basis
- Led team design reviews, ensuring high quality firmware touch products were produced
- Mentored junior engineers to quickly develop technical proficiency resulting in reduced development costs.
- Partnered with production engineers to smoothly transition products from development to production
- Requirement analysis for vctx and addressing module.
- Designing and implementation for visor control transmitter and addressing module in C.
- Responsible for writing unit and integration test plan for the respective module.
- Responsible for designing driver for auto detection module of sensors, i2c and UART module.
- Also involved in USB driver validation to support usb otg, keypad controller must detect button press, touch screen should detect button press within 50 ms.
- Involved in executing test script in wince CETK tool to validate camera driver, usb, touch screen, keypad, UART.
Environment: Embedded C,C++, SQL, Make, Buildroot,Linux-3.10,ARM9, CANape/CANalyzer, MODBUS, CAN,J1939.
ConfidentialEmbedded Engineer
Responsibilities:
- Wrote and implemented detailed Design Specs for software programming applications & operating systems and as a top level contributor with extensive expertise with C, C++ programming, Systems Requirements Specification and DO-178B work I also provided technical support to project team members.
- Extensively used SQLite for various applications to store and retrieve the configurations.
- Developed algorithms and programs in C for embedded control systems.
- Developed Simulink Models to implement System/Function Level Requirements Design (SysRD) in Configuration Item Requirements Document (CIRD) of as well as Software Level Requirement Specifications (SWRS). The Simulink models developed support REU / AFCU / PFCC / IIM / TTP / A429/ MCDL / CCDL / Actuator / MCE SysRD & CIRD Requirements.
- Maintenance and enhancement of the Automation using embedded C
- Designed UML diagrams using Magic Draw to generate C++ code on the fly
- Used Embedded Coder to translate models into model source code and executable in RTOS single-tasking mode.
- Writing assembly language program and debugging
- Industrial experience in testing of machines
- Also dealt with a project “up gradation of starters in light run test rig”
- Conversion of analog to digital voltmeter using plc programming and assembly language
- Provided complete verification support
- To improve code efficiency and facilitate integration with other parts of our system code, I optimized the MATLAB/Simulink Embedded Coder for fine-grain control of the generated code’s functions, files, and data
- Utilized the Embedded Coder built-in support for automated verification & validation of the model, & code to support DO-178, level A.
- Developed “Software code for REU (Remote Electronics Unit) used for Bombardier Flight Control System on the basis of RTCA DO-178B application guidelines to implement some software requirement specifications. Extensive experience using Data Loader software on Bombardier FBW (Fly-By-Wire) C-Series aircraft program.
- Using my extensive expertise in embedded system hardware / software integration tested the integrated Flight Control Software in FCSIL (Flight Control System Integration Lab) as well as REU Test Console with Emulator/Debugger in the Loop.
Environment: C, C++RTCA, DO-178, MATLAB, Cadence, REU, AFCU, PFCC, IIM, TTP, A429, MCDL, CCDL, Actuator, MCE SysRD & CIRD, RTOS, CAN, SPI, CANoe