Senior Software Engineer Resume
Costa Mesa, CaliforniA
SUMMARY
- 11+ years of experience in Software Application Development using C/C++ and Java .
- Excellent hands on knowledge of OOA (Object Oriented Analysis) and OOD (Object Oriented Design), OOPS.
- Experience with data structures, STL and algorithms as well as performance optimizations in a multithreaded environment.
- Diligent and competent expertise in Microsoft ® Visual Studio, Eclipse and QT Cross - platform framework for GUI application development.
- Extensive experience in developing applications using Singleton and Factory design patterns.
- Experience in measuring CPU performance and Memory utilization of the applications running on multi-threaded platforms.
- Extensive experience in telecom domain using Sockets, TCP/IP, HTTP, CAN, and RabbitMQ.
- Extensive experience with Google Mock frame work for Unit Testing.
- Hands-on experience with automated build tools such as SVN, CVS, Jenkins, GIT.
- Hands-on proficiency with development methodologies like Agile and SCRUM model.
- Excellent communication skills and ability to partner with clients and team members in planning and executing projects on time and within budget.
TECHNICAL SKILLS
Programming Languages: C, C++ (Object-Oriented Programming), C++ 11, C#, Java, JSP, Servlet, Java Script, QT, QML, Shell, STL, Python, VC++, SQL, HTML, XML
Operating Systems: Windows-32bit (XP), Windows-64bit (7), Linux (Ubuntu, Fedora, CentOS, RedHat), Unix, RTOS (WindRiver, RTLinux, VxWorks)
Databases: MySQL, MS SQL Server, Oracle, RDBMS, PL/SQL
Tools: QTCreator, Microsoft® Visual Studio (2009,2010,2013), JVM, MS Visual C++, Eclipse, GCC, MS Visio, UML, Jira
Methodologies: Agile, Scrum
Communication Protocols: TCP/IP, HTTP, RabbitMQ, CAN
Testing Levels: Unit Testing, ALM, TDD, Google Mocks and Integration Testing
Performance Profiling Tools: HPC Toolkit, Intel’s Vtune, Oprofile
Parallel Programming Languages: OpenMP, POSIX threads (PThreads)
Source Control: TortoiseHg, Mercurial, GIT, SVN, Perforce, Jenkins
PROFESSIONAL EXPERIENCE
Confidential, Costa Mesa, California
Senior Software Engineer
Responsibilities:
- Implemented all the member methods, aggregation methods and filter methods for both TIPREC and 612 models using C/C++.
- Implemented multithreading for evaluating the value of attributes and scores in parallel for both TIPREC and 612 models.
- Resolved memory-related errors encountered during memory check validation in distributed environment using Valgrind tool.
- Executed the benchmark in the distributed environment for performance check.
- Generated the TB10.TIPREC and TB10.612 output by executing the source code with external data in mainframe using emulator job.
- Implemented the unit test cases for all the member methods, aggregation methods and filter methods of both TIPREC and 612 models using CXX Unit Test Frame work.
- Compared results from both mainframe and distributed environment using SAS compare job on mainframe for 100% match.
- Created the SOW documentation for all the migrated models (25 in total) and uploaded the source code to bitbucket repository.
- Performed biweekly deployments to development and production environments, keeping it as a biweekly agile release cycle.
Environment: C/C++, C++ 11, Java, GCC complier, Perl, STL, VS Code, Fedora (Linux), Python, Windows-64bit, Valgrind, Jenkins, Bitbucket (GIT), Agile Methodology, GDB Debugger, CXX Unit Test Framework, Mainframe.
Confidential, Denver, Colorado
Senior Software Developer
Responsibilities:
- Developed a Valve Node (PT0118) SIP2 driver interface for sending command and reading status from Node 6 production framework.
- Implemented a two-position feedback sensor for Valve Node (PT0118) for determining if the valve is in the open or closed position.
- Created a AC Pump Node (PT0122) SIP3 driver interface for sending command and reading status from Node1 production framework.
- Integrated Position Sensor and Door Sensor into Return Pump (PT0117) SIP4 driver for input to pump raceway and pump door.
- Developed two fluid line detector analog inputs for Return Pump to detect the presence of air or fluid in a disposable tube line.
- Updated the configuration file with information about the busID, busType and address for all the Nodes to run on simulator or CAN bus.
- Created an ability to control the fan speed in PT0119 Centrifuge by setting the fan motor intensity to a value from 0-100%.
- Integrated Solenoid Power Hardware item to Draw Pump Node (PT0121) for opening and closing the pump raceway.
- Added Biosonix Fluid Detector Hardware item to AC Pump Node (PT0122) for determining if fluid is present in the tubing.
- Merged motorSpiError, LineSensorSpiError and CapErrorLog into SimConfig file for Error Checking while running on simulator.
- Designed Test cases in ALM (Application Lifecycle Management) with all pre and post conditions and then creating protocol for testing over the DEO.
- Implemented proper loading of disposable config XML when protocol is executed.
- Implemented logging of algorithm execution start/stop/reset in the dlog to support System teams when troubleshooting protocols.
Environment: C/C++, C++ 11, Java, JSP, GCC complier, C#, Java Script, STL, PThreads, Eclipse, Fedora (Linux), Python, Windows-64bit, TFS, Socket Programming, GIT, Agile Methodology, ALM, DEO, GDB Debugger, CXX Unit Test Framework, SIP boards.
Confidential
Senior Software Engineer
Responsibilities:
- Implemented BCH Encoder to append the BCH redundancy bits to Input data.
- Implemented LDPC Encoder to append the LDPC redundancy bits to data generated by BCH.
- Implemented QAM Modulation to map each subcarrier to QAM constellation and then generate the corresponding OFDM symbols.
- Implemented NCP (Next CodeWord Pointer) for detecting where the next codeword begins in one OFDM symbol.
- Implemented Time Interleaving to mitigate the impact of burst noise in each OFDM symbol.
- Implemented Frequency Interleaving to mitigate the effects of ingress in each OFDM symbol.
- Implemented Continuous Pilots for receiver synchronization and Scattered Pilots to enable channel estimation and equalization in receiver.
- Implemented IDFT (Inverse Discrete Fourier Transform) in parallel to transform each pre-equalized symbol into time domain.
- Implemented Cyclic Prefix to enable the receiver to overcome the effects of inter-symbol-interference.
- Implemented Windowing to maximizes the channel capacity by sharpening the edges of the spectrum of the OFDM signal for 5MHZ WIFI signal.
- Implemented PLC (Physical Layer Link Channel) for the CMTS (Cable Modem Termination System) to convey to the CM (cable modem) the physical properties of the WIFI OFDM channel.
- Integrated the Downstream Data bits and PLC bits coming from Layer2(L2/Mac) and Layer3(L3/TCP/IP) into Softphy.
- Developed Test Cases for Unit Testing and Integration Testing, by using Python Script.
- Implement a mechanism for running all the above methods in parallel using PThreads, and also maintained the proper execution order of each OFDM symbol using Mutex and Semaphores.
- Implemented Cyclic Buffer for writing and reading data into fixed size buffer, that will be used by DAC to show output on Spectrum analyzer.
Environment: C/C++, C++ 11, ICC complier, Java, JSP, STL, PThreads, Java Script,Ubuntu, Python, Windows-64bit, Jira, Socket Programming, GIT, XML, Agile Methodology, MATLAB, GDB, CXX Unit Test Framework, MS Visio, HPC Performance Toolkit.
Confidential
Software Engineer
Responsibilities:
- Implemented the Internal DDF (Data Definition File) Interfaces for HPSM Proxy Driver, for Controlling and Monitoring of LC11 using C/C++.
- Implemented the Internal DDFInterfaces for PLC Driver to communicate with PLC component.
- Implemented the Internal DDFInterface for TruCoax Driver to communicate with Safety Handling PLC.
- Implemented the Internal DDFInterfaces for PLC Driver to aid communication with TwinCAT ADS library for PLC.
- Used XMLWeb Services using REST to transfer the amount to transfer application that is remote and global to different financial institutions.
- Implemented the External DDFInterface to communicate to System Function Controller (SFC).
- Implemented the External DDFInterface to communicate toActive Diagnostic Tool (ADT).
- Implemented all the Interface Screens and Diagnostic Tools Screen using QT and QML.
- Generated the Parameter to be passed to different states of state machine using MATLAB.
- Implemented Transitions and Events for Specific States (Ideal, PrepareToFire, Firing, Error) and Generic States (Terminating and Initializing) for HPSM Driver State Machine.
- Implemented FHA Read/Write facility to Retrieve, Update and Add data to Database facility.
- Implemented the Unit Test Cases for all the internal, external interfaces and State Machine methods using CXX Unit Test Frame work and Python Script.
- Developed TPS Document for the review of Test Scenarios and a TAR Document that contained the results from bench testing.
Environment: C/C++, C++ 11, QT, Windows 64bit, Java, Servlets, JSP, MFC, Python, C#, Visual Studio 2013, QNX, Red Hat (Linux), WindRiver (RTOS), STL, Jenkins, Eclipse, Jira-Project tracking software, GIT, Agile Methodology, CXX Unit Test Framework, Sockets, TCP/IP, MS Visio.
Confidential
Software Engineer
Responsibilities:
- Created a DLL library as part of SDKClient, consisting of 20 methods like Register, Call Release, Location Update, Queue Update etc. using C/C++.
- Created a Simulator for Sending Requests and Receiving responses, Synchronously and Asynchronously from SDK Client using suitable Call Flows.
- Implemented RabbitServer (for Simulator) and RabbitClient(for SDKClient) using RabbitMQ, for communication between SDK client and Simulator.
- Defined Google Protocol Buffers for Serializing and Deserializing data of all the DLL methods, between SDKClient and Simulator.
- Created Web Services using SOAP, WSDL to provide services to other systems within the company.
- Integrated Multimedia framework with Android middleware and implemented Audio/Video decoder & renderer component for Motorola Device Layer.
- Worked with Motorola team to integrate their 3rd party platform with our SDKClient and providing them with support, for getting appropriate responses from Simulator.
- Created Hooks for Location Update, Call release, Queue Update etc, as part of AMS (ApplicationModule Service), which interacts with VESTA 911 & VESTA SMS Servers.
- Integrated SDKClient with AMS using RabbitMQ communication protocol and also structured the data between them using Decorator Design Pattern.
- Successfully Evaluated and Tested all the cases of Requests and Responses from SDKClient to VESTA 911 & VESTA SMS Servers.
Environment: C/C++, Windows 64bit (7), C#, VC++, MFC, Visual Studio 2013, Java Script, STL, Python, QNX, RabbitMQ, Google Protocol Buffer, Jenkins, GIT, Ubuntu (Linux), Sockets, TCP/IP, HTTP, Agile Methodology, Perforce, Google Mocks, Jira-Project tracking software.
Confidential, Dallas, Texas
Software Developer
Responsibilities:
- Analyzed and Designed the Machine Life Cycle for each of the CPS components that needed to respond to Error Handler and Fatal Error Handler, using MS Visio.
- Implemented the Mechanism for receiving the Hardware Incident message from CAN (BUS protocol) and reporting the incident to GUI subsystem using C/C++.
- Designed and Implemented a CPS Client Interface, for the user to interact with the system, when the Error occurs, and provide him with the options to take appropriate action.
- Contributed to Cash Processing System (CPS) maintainability and extensibility by identifying opportunities to incorporate Factory Design Pattern.
- Added and Modified parameters to XML scripts for providing the initial configuration to already existing CPS builder.
- Developed Test Cases for Unit Testing and Integration Testing, by using Python Script, which included CAN messages for generating Incidents.
- Contributed to the design of databases, as per the Machine Life Cycle and developed Stored Procedures, triggers to be used by the components.
- Performed biweekly deployments to development and production environments, keeping it as a biweekly agile release cycle.
Environment: C/C++, Windows 32bit (XP), Python, MFC, CentOS (Linux), VxWorks (RTOS), UNIX, Shell Scripting, VC++, MS Visual Studio 2010, MySQL, XML, MS Visio, Agile Methodology, SVN, MS SQL Server, ClearQuest, CAN (BUS Protocol).