Software Developer Resume
Los Angeles, CA
SUMMARY:
- 7 years of experience in Software Application Development using C++/C#.
- Excellent hands on knowledge of OOA(Object Oriented Analysis) and OOD(Object Oriented Design)
- Experience with data structures and algorithms as well as performance optimizations in a multithreaded environment.
- Diligent and competent expertise in Microsoft® Visual Studio and QT Cross - platform framework for GUI application development.
- Extensive experience in using SQL and PL/SQL to write Stored Procedures, Functions, Packages and Triggers.
- Experience in measuring CPU performance and Memory utilization of the applications running on multi-threaded platforms.
- Extensive experience with Google Mock frame work for Unit Testing.
- Hands-on proficiency with development methodologies like Agile and Waterfall 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), QT (GUI Programming) Shell, Visual Basic, SQL, HTML, XML
Operating Systems: Windows 98/XP/7,UNIX, Linux(Fedora)
Databases: MySQL, MS SQL Server
App. Skills: QTCreator, Vim, Microsoft Visual Studio (2009,2010,2013), GCC, MS Visio, Jira
Methodologies: Agile, Srum, Waterfall
Communication Protocols: TCP/IP, RabbitMQ-AMQP, Google Protocol Buffer
Testing Levels: Unit Testing, TDD, Google Mocks and Integration Testing
Performance Profiling Tools: HPC Toolkit, Intel s Vtune, Oprofile
Parallel Programming Languages: OpenMP, Pthreads
Source Control: TortoiseHg, Mercurial, SVN, Perforce
PROFESSIONAL EXPERIENCE:
Confidential, Los Angeles, CA
Software Developer
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.
- 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 Google Protocol Buffers.
- Successfully Evaluated and Tested all the cases of Requests and Responses from SDKClient to VESTA 911 & VESTA SMS Servers.
Environment: C#/C++, Windows7, VisualStudio 2013, RabbitMQ, Google Protocol Buffer, Agile Methodology, Doxygen, Perforce, Google Mocks, Jira-Project tracking software.
Confidential, Dallas, Texas
Software Engineer
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.
- 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 Shell Scripts, 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 XP, VXWorks, UNIX, Shell Scripting, MS VisualStudio 2010, MySQL, XML, MS Visio, Agile Methodology, SVN, MS SQL Server, ClearQuest, CAN (BUS Protocol).
Confidential, Urbandale, Iowa
Software Developer
Responsibilities:
- Developed a GPS Accuracy Indicator for 10 inch and 7 inch GSix Display using QTWidgets QTStateMachine and QThreads for multithreading, which consisted of all possible correction modes (RTK, RTK-X, SF1, SF2,EGNOS,WAAS), Satellite status and Accuracy Indicator.
- Designed and Developed a Dual Display Manager Application that will integrate GSix Display with GS 2600/2630 using Win32 API and CAN protocol, and correspondingly manage the logic of adding, removing and restoring information to database using QTSql module.
- Developed a File Manger App that would be able to export and import data from USB stick to the GSix Display using QTMobility API.
- Developed an Application Manger App to get the latest installation updates of GSix software, along with Activations of some limited duration apps (ex: AutoTrac).
- Implemented EULA - Display License Agreement prompt, for users to accept the license agreement from Confidential in order to use GSix Display.
- Modified and translated the code of VTApp, ServiceCenterApp, and EquipmentSetupApp for both 10 inch and 7 inch GSix Display, from English to German Language as part of Multiple Language Infrastructure.
- Measured the Processor and Memory utilization of the Value Server and Premium Server on GSix Display, using CANcaseXL connected to the target and running all the applications using OProfile Analyzer.
- Integrated and tested the monitor screen transition times of the Value Server and Premium Server by running Wind River Windows manager with OProfile Analyzer on the GSix Display.
Environment: C#/C++, Windows 7, UNIX, QT (GUI Programming), RTLinux, Win32, Shell Scripting, Visual Studio 2009, XML, MS Visio, Agile Methodology, CAN (Bus Network), TortoiseHg, Oprofile.
Confidential, San Marcos, Texas
C++ Engineer / Grad Assistant
Responsibilities:
- Developed a test model to estimate performance of cache sharing by mapping the reuse patterns within multithreaded programs using static and dynamic workloads of HPCC & SPEC2000 benchmarks.
- Implemented a reuse distance algorithm to measure locality and miss rates of multithreaded application on Intel x86, based on memory trace produced from Pin tool.
- Designed a multithreaded algorithm to analyze the influence of intra-core and inter-core cache sharing on Intel x86 and AMD x64 platforms using OpenMP with C/C++.
- Assisted in teaching C/C++, Computer Architecture and Linux kernel to undergraduate students. Duties also included troubleshooting software/hardware problems and setting up labs.
- Implemented a parallel and sequential version of matrix multiplication kernel for loop blocking optimization on x86 using OpenMP with C/C++.
- The project also consisted of evaluating the performance for both versions of matrix multiplication kernel using HPCtoolkit.
- Analyzed the performance difference between AMD’s direct connect cache and Intel’s front side bus cache architecture for both quad and dual core configurations by using Intel’s Vtune analyzer.
- The projects required running PARSEC benchmark’s multithreaded programs and use of Oprofile hardware counters.
Environment: C/C++, Linux (Fedora 8), Perl, Shell, OpenMP, Pthreads, Pin (A Dynamic Binary Instrumentation Tool), HPCToolkit, PAPI, Intel x86 Processor, IntelVTune, PARSEC Benchmark.
