App Programmer/team Lead Resume
Irving, TX
SUMMARY:
- 14+ years experiences in the area of analysis, design, Development, testing and implementation of high quality software and embedded applications.
- Extensive experience in requirement gathering, architecture, design and development of Embedded Linux and Windows CE Applications in C, C++, STL, Design patterns
- 10+ years of experience in C and C++ application programming in desktop Linux, Ubuntu Embedded Linux and Windows Compact Embedded Operating Systems
- 4+ years of experience in OpenGLES graphics development in Windows Compacted Embedded Operating system with AMD Radeon Graphics processor
- 5+ years of strong experience in Real time Operating Systems (RTOS) in TI Linux embedded operating system with Windows CE
- 3+ years of experience in development of Universal Video decoder (UVD) Transform Filter using DirectX with H.264 and VC - 1 video codecs
- 3+ years of development of features and maintenance of Silverlight (Alchmey) for Windows Compact Embedded Operating system
- Experience in developing object oriented programming in embedded and telecom applications.
- Extensive programming experience in Unix Shell Scripting, Perl and Python, Json scripting.
- Good working experience in Inter Process Communication with Multi-threaded applications in Windows CE as well as Linux Operating Systems
- Ability to quickly adapt to changes, enhancements, and new technologies. Ability to understand technical aspects of the assigned program/projects.
- Ability to communicate (speak, read and write) in English at an advanced level. Flexibility to work extended hours, holidays and/or weekends, as needed
- Excellent troubleshooting and problem solving skills, ability to think outside of the box.
- Educating new developers on the application, coding and process.
PROFESSIONAL EXPERIENCE:
Confidential, IRVING, TX
Technology: C++ 14, Apple iOS, Xcode, Ubuntu Linux Peripherals validation, Perl, Python, JSON Programming, GDB Server/Client setup for remote debugging
App Programmer/Team Lead
Responsibilities:
- Developed user interface for Parental Controls screen. Parent can lock (or block) few channels (all or selected categories of channels), can block few/all TVMA/MPAA ratings permanently by using 4 digit password
- Developing Channel Guide user interface screen with scroll component and collection component by rendering of channel logos (in vertical list) and grid guide cells (as scroll component cells) for navigating more than 600+ channels program information for more than 14 days.
- Developed circular guide layout, by changing frame coordinates and stitching to existing layout and making proper resetting of layout at appropriate scroll heights.
- Developed collection and scroll component for scrolling horizontal and vertical direction with Remote Key events with smoother animations
- Used C++ 14, by reading JSON pages and multi threads with the concept of controller, component interaction to reuse of components for making new User Interface screens quickly
Confidential, Kennesaw, GA
Technology: C++, Ubuntu Linux, TI-sdk, AM3352 Micro Controller, SPI, USB, EMMC, UART peripherals Validation
Team Lead/ Architect/Senior Developer
Responsibilities:
- New application test suite developed in C++ with multi-threading for validating various peripherals of TI Am335xx
- Developed test framework with modification of existing TI-sdk drivers for TI AM3352 micro controller on Ubuntu Linux
- Developed Perl scripts to build the test framework and used gcc cross compiler for ARM tool chain for compiling. And finally deployed on Arago Linux for execution
- Used Valgrind memory tool for finding memory leaks in test framework code and modified ti-sdk drivers. And fixed memory leaks
- Cross compiled gdb debugger for ARM on open source gdb debugger code and deployed on target Arago Linux
- Modified eMMC card driver code for adding ioctl function calls to kernel drivers to communicate write and read operations on eMMC from user applications
- Developed CPU Loading tool for loading CPU with predefined CPU load using CPU kernel governors
- Implemented Multithreading Concepts to improve the application Performance.
- Involved in Requirements gathering, Conceptual Design, Analysis, and Detail design, Development and System Testing.
- Developed detailed design document for capturing micro level design details, User Manual for handy command reference to users after classification of Optional and Mandatory parameters with examples.
- Created and published test plan and test execution document for unit testing, functional testing and system level testing.
- Responsible for TFS maintenance such as branching, labelling and merging code after code review.
- Performed unit testing on every new version before sending it for User Acceptance Test (UAT).
- Responsible for deployment of the Application in production and resolving any post-deployment issues.
- Provided estimates, daily & weekly status report to the client on progress of the tasks.
- Additional responsibilities are to support production issues, TFS maintenance, and Migrate code to test environments and guide other project development team’s issues.
- Assist project teams in scoping and estimating project work, design review, code reviews, participate in agile scrum methodology, and assure positive productivity toward business product goals.
- Independently perform and guide, assist or mentor others in software coding, testing, support, documentation, and installation tasks.
- Responsible for managing scope, planning, tracking, change control, aspects of the project.
- Ability to work on multiple projects simultaneously
Confidential, Milwaukee
Technology: C++, Window Embedded Compact Operating System, TI-sdk, AM3352 Micro Controller, Code Collaborator online review tool integrated TFS Server, Design Patterns
Technical Lead/C++ developer
Responsibilities:
- Developed C++ Kernel device drivers from scratch for ADC, PWM, SPI, ECAP drivers for communicating printer user application in Windows Compact Embedded System to Low level TI Microcontroller registers.
- Studied TI Technical reference manual and understood the configuration of specific registers for driver functionality for ADC, SPI, PWM and ECAP modules
- Published interface methods to Application layer for accessing driver
- Implemented actual driver functionality and tested in custom AM3352 micro controller board
- Developed functional test code for simulating end user application for testing the developed driver on Windows CE OS
- Used Memory Resource Leak detector to solve the memory leaks issues in driver
- Published design document and test plan document to client by covering extensive positive, negative and stress testing scenarios.
- User Observer, Iterator and Mediator design patterns for designing the driver for SPI and ADC kernel drivers for communication to upper layers
- Guide high level and low-level design Responsible for leading a project team in delivering solution to our customer.
- Attend daily status meeting with project team and weekly meetings with business team, business partners and Vendors to provide technical expertise/input to help solve the issues presented in the meeting
- Additional responsibilities are to support and coordination production team and external project development teams.
- Assist project teams in scoping and estimating project work, design review, code reviews, participate in agile scrum methodology, and assure positive productivity toward business product goals. Assist project teams in scoping and estimating project work.
- Independently perform and guide, assist or mentor others in software coding, testing, debugging, documentation, and installation tasks.
- Responsible for managing scope, planning, tracking, change control, aspects of the project.
- Ability to work on multiple projects simultaneously
Confidential
Technology: C, C++, GLSL, Multi-threaded Programming, Design Patterns, Window Embedded Compact Operating System, Perl, Video Codecs H.264 and VC-1, 3d graphics driver, Performance tuning and TFS Server
Technical Lead C++
Responsibilities:
- Ported Mesa OpenGLES Linux versioned software libraries to Windows CE and integrated Radeon Linux driver to Windows Embedded Compact driver framework
- Developed several 3d graphical applications and ran successfully on OpenGLES ported hardware
- Developed Universal Video decoder transform filter on DirectX filter and integrated with MPEG, H.264 and VC-1 codes
- Used LLVM compiler to construct, optimize and produce intermediate/binary machine code for AMD x86 processors
- Ran Khrono’s compliance test suite on OpenGLES library and fixed various issues in code including stencil and depth
- Developed H.264 and VC-1 codecs from scratch and integrated to UVD transform filter
- And did performance tuning for developed code to run 1080P videos on AMD x86 Radeon processor with highest performance using hardware accelerator GPU instructions
- Greater experience in understand and coding of GLSL language.
- Ported LLVM Linux library to Windows CE by making dynamic dll library to use with UVD transform filter
- Use singleton design pattern while developing DirectX filter for UVD Transform Filter
- Guide software projects from requirement definition through design, implementation and maintenance and follow project scope, assigned resources and development schedules.
- Guide high level and low level design Responsible for leading a project team in delivering solution to our customer in the graphics domain.
- Attend daily status meeting with offshore team and weekly meetings with project team, business partners and Vendors to provide technical expertise/input to help solve the issues presented in the meeting
- Additional responsibilities are to support and coordination offshore and external project development teams. Report progress and status of assigned tasks to project teams and manager
- Assist project teams in scoping and estimating project work, design review, code reviews, participate in agile scrum methodology, and assure positive productivity toward business product goals. Assist project teams in scoping and estimating project work.
- Independently perform and guide, assist or mentor others in software coding, testing, debugging, documentation, and installation tasks.
- Responsible for managing scope, planning, tracking, change control, aspects of the project.
- Responsible for effective communication between the project team and the customer. Provide day to day direction to the project team and regular project status to the customer.
- Translate customer requirements into formal requirements and design documents, establish specific solutions, and leading the efforts including programming and testing that culminate in client acceptance of the results.
- Manage developers to design, code, unit and integration test, debug and document programs, provide post implementation and on-going production support.
- Project Initiation, Estimation, Resource ramp up, Design deliverables (after reviews and base lining), Development, Testing deliverables, Implementation and Project Closure.
- Ability to work on multiple projects simultaneously
- Coordination with onsite and offshore development team for the release.
Confidential
Technology: C, C++, Multi-threaded Programming, Window Embedded Compact Operating System 7, GWES, STL, XAML, BAML, WPF
Technical Lead C++
Responsibilities:
- Developed C++ code for execution of user XAML application on Windows CE OS. Code reads XAML code and converts BAML machine code and constructs user interface to end user application in WPF environment.
- Developed multi-threaded data binding feature to create a connection between application UI and business logic.
- Fixed many issues in Windows CE Textpad, ListView, Button and other User Controls
- Deliver new and complex high quality solutions to clients in response to varying business requirements
- Used Abstract Factory, Façade and Proxy design patterns while developing applications for data binding and user interface framework applications
- Responsible for managing scope, planning, tracking, change control, aspects of the project.
- Responsible for effective communication between the project team and the customer. Provide day to day direction to the project team and regular project status to the customer.
- Translate customer requirements into formal requirements and design documents, establish specific solutions, and leading the efforts including programming and testing that culminate in client acceptance of the results.
- Establish Quality Procedure for the team and continuously monitor and audit to ensure team meets quality goals.
- Participate in Design/Code reviews.
- Writing High Level System Architecture and Design Documents.
Confidential
Technology: C, C++ in Embedded Linux, STL, SIP and H323 Protocols
Sr Software Engineer
Responsibilities:
- Developed PABX protocols for communicating between various terminals in Private address branch exchange
- Worked on H323 and SIP terminals to make communication using SIP and H323 servers
- And also developed the code for PABX for enhancing capacity of extensions for PBX by using big LIM concept. Used C++ dynamic objects, STL for increasing the extension capacity 16000 per single Lim
- Requirements and design phases; developed use case models, UML class diagram and sequence diagram.
- Task estimation for the Requirement, documentation of module design, unit testing, integration and system testing, design coding and testing, solving customer technical problems.
- Training the team in related areas, responsibility for VSS release, branching and merging.
- Review of design documents, interaction with QA in all stages of the project, status, Report meeting and discussion with onsite coordinator.
Confidential
Technology: C, C++, Embedded Linux, CVS, ClearQuest, ClearCase.
Sr Software Engineer
Responsibilities:
- Developed Device Layer for ‘Scan Engine’ and ‘Scan Sequencer’ in C++ on PowerPC Linux Operating System
- Developed complete low level driver for scanner. It receives scan options as commands from application and business layer as like Zoom, Gray Scale, Enhancement, Compression etc., and sends appropriate assembly machine instructions to hardware. And it receives responses from hardware, it then passes it to business logic layer to Scan Sequencer.
- State, Observer and Factory design patterns were used for developing code for scan, print and fax functionality