We provide IT Staff Augmentation Services!

Software Developer Resume

4.00/5 (Submit Your Rating)

Hamilton, NJ

9 years of experience in full life-cycle software development of embedded systems, especially in the domain of cable set-top boxes.

CAREER SUMMARY:

  • Good command in C and C++ programming.
  • Hands on experience in ST OS20 and Linux operating systems.
  • Strong experience in Advanced Set-top boxes.
  • Expertise in various Out-Of-Band (OOB) protocols like DAVIC, DOCSIS and SCTE55-1. I was completely responsible for the design, implementation and testing for these modules on the Cisco Cable Card project.
  • Working experience in the MoCA protocol.
  • Knowledge of CMTS, DHCP and router configurations.
  • Knowledge of various Headend devices like QPSK, QAM.
  • Knowledge of MPEG protocol, Conditional Access.
  • Knowledge of STB software architecture.
  • Experience in preparing the Requirements and Design documents using UML modelling.
  • Knowledge in TCP/IP and networking.
  • Worked for the Cisco Cable Card project for its full life cycle for more than 5 years. I was involved with requirements capture, board bring up, bootloader, drivers – initial to field deployment - and supporting MSOs at several live sites.
  • Experienced working in customer environments interacting directly with various customers and acted as liaison to development teams. This gave me an opportunity to enhance my customer communication and interaction skills.
  • Strong ability to rapidly narrow down software bugs in complex environments
  • Learned and absorbed the end value delivered to the customer and importance of customer success. Acquired the technical and communication skills to achieve the same while at various customer sites to solve field issues and to help with integration.
  • Worked with various major 3rd Party STB Host developers like Samsung, Panasonic, Motorola and TiVo for Cable Card integration at CableLabs and other customer sites. Got expertise with open cable specifications during this Cable Card project.
  • Worked for Honeywell (India) for the AIRBUS A380 Flight Management Systems project as a developer using Matlab Simulink™ code generator tool for implementation.
  • I mentored several new hires to my team during various project phases.

SKILL SET

  • Programming Languages : C, C++, Objective-C, Assembly
  • RTOS : OS 20, Linux, VxWorks
  • Micro controller and processors : ST-20 C105, Intel 8051, 8085 and 80x86
  • Networking : TCP/IP, ISO, IPv6, ATM
  • Cable domain : DAVIC, DOCSIS, SCTE 55-1, MPEG2, Conditional Access.
  • Hardware debuggers : ST Micro connect with JTAG debugger
  • Supporting tools : Cygwin, Microsoft Visio, Source Insight, PC-Lint, VSS source control, SVN source control, VIM editor, C-Scope, JIRA.

EMPLOYMENT HISTORY AND PROJECTS WORKED:

Currently working at Confidential (Hamilton, NJ-USA) Aug’11 – Till date

Title : RF-Sniffer on OCAP Middleware
Duration : Aug’11 - Till date
Customers : Time Warner Cable, Cablevision
Languages : C, C++
Platform : Linux, Broadcom Nexus

Description : The RF Sniffer is a library that links with the OCAP stack. It provides all the diagnostics of Out-of-Band and Inband data. The purpose of this application is to sniff the RF data and report any issues. It parses data like DCD, SI, EAS, XAIT, STT, NIT, NTT, SVCT and DSMCC. It also parses the Inband data like PAT, PMT. Reports the errors in data, or if the data stops coming, etc to a browser. The operator can access this data from the headend by using the browser.

Roles and Responsibilities:

  • Involved in the Research, Development, Testing and Integration
  • Understand the software architecture, the Nexus, Alticast and app layers.
  • Understand the Alticast OCAP middleware API, and use the same to get the data.
  • Understand the development policy and architecture of client OCAP middleware.
  • Troubleshoot the issues reported by customer to their root cause, and achieve a solution very quickly.
  • Write a memory manager to make sure this library does not create any memory leaks or corruptions to the process.
  • Test the application with live data captures of various real sites and make sure the parsing is success with all of them.
  • Port the Sniffer application as a separate stand alone application on top of Nexus.
  • Document the architecture and the modules with sequence diagrams.
  • Document the Sniffer user guide and common troubleshooting guide, and train the users accordingly.

Previously employed at:
Confidential (Lawrenceville, GA-USA) Mar ’05 – Aug‘11

Cisco Project #1:

Title : HD-DTA
Duration : Jan ’11 - Till date
Customers : Time Warner Cable, Cox
Languages : C, C++
Platform : Linux, ARM Cortex

Description : The second generation of Cisco’s DTA for cable HFC operations in US and Canada. It is a DTA with high-definition capability, and Cisco’s PowerKEY conditional access.
This product uses a 3rd party(Trident) hardware and drivers. We have a glue to access their drivers to get the Out Of Band and Inband data that is needed to get the SI, video and conditional access related data.

Roles and Responsibilities:

  • Involved in the Design, Development, Testing and Integration
  • Worked with Trident engineers to explain them about our requirements, and how our Out Of Band and QAM tuner work, and what kind of glue layer we need for our conditional access module.
  • Implemented the QPSK hunt algorithm and the MAC set up for the higher layers to get the data packets from the system.
  • The SI and code download parts are handled by another 3rd party(Bitrouter). Involved in explaining the design and implementation of the Cisco system for SI and code downloads.
  • Involved in the code reviews of the Bitrouter image download code.
  • I was the focal for triaging any integration issues for the test teams in all the labs.

Cisco Project #2:

Title : MoCA driver for G7 Cisco STB.
Duration : May ’10 – Dec ‘11
Customers : Time Warner Cable
Languages : C, C++
Platform : Linux, MIPS, STxP70

Description : MoCA is a specification for a system that can transmit Ethernet frames over the coax home network. The MoCA network is intended to transport audio, video, data and voice between devices in many different rooms in the house.
The MoCA driver in this project controls MoCA hardware with MoCA MAC(STxP70 processor) and MoCA PHY.

Roles and Responsibilities:

  • Involved in porting the code to Cisco G7 platform from G6 platform.
  • Integrated the code with other modules and verified with system testing.
  • Helped various test teams in setting up the home networking set up for their testing and triaged all the issues seen.
  • Worked closely with the ASIC team and reported the issues seen in the MoCA chip firmware.
  • Understood the MoCA1.0 and 1.1 specifications to a good level to work with the firmware team while reporting issues.
  • Successfully deployed the product at TWC and supported any issues seen in their setup.

Cisco Project #3:

Project Title : AMS Cable Card
Duration : Mar ’05 to Apr ’10 (5 years)
Customers : Time Warner Cable, Comcast, Cablevision, Cox, Verizon.
Languages : C, C++.
Platform : ST20 C105 Processor, OS20 RTOS.

Description:
A Cable Card is a module that allows for Conditional Access (CA) and network access to be separated from a receiving device (such as a television or set-top). It uses the PCMCIA form factor, and consists of 2MB flash, 4MB DRAM, PowerKEY™ embedded microprocessor, and NVM.

Modules worked on for AMS Cable Card:

  • UART Driver:

We have two serial ports on the development board. This is only for the purpose of debugging during the development. The driver supports for different configuration parameters (baud rate, data/stop bits, parity), interrupt driven.
Responsibilities: Design document, implementation and testing.

  • BMM (Buffer Memory Manager) Driver:

The BMM is responsible for handling the data to be transmitted or received between the Cable Card and Host across all the in-band, out-of-band and data/extended channel interfaces. The BMM has hardware buffers to store the data and as soon as an interrupt comes, it moves the data packets to the allocated software buffers for the handling of software.
Responsibilities: Design document, implementation and testing.

  • DAVIC Protocol:

In DAVIC OOB mode the MAC layer of the STB is present in the Cable Card. This driver implements the OOB interface of PCMCIA interfaces and also implements the DAVIC protocol for signing into the DNCS (headend controller) for 2-way operation. 
The SIL driver requests the STB to tune the QPSK Receiver to the correct frequency set in the QPSK modulator. It will hunt all the frequencies in the DAVIC range(70 -130MHz) to find the correct frequency that is set at the QPSK modulator. 
It sets the appropriate hardware filters to receive the packets on different ATM PVCs.
It uses Slotted Aloha, TDMA, Slot Reservation techniques for reverse transmission.
Responsibilities: Design document, implementation, testing and integration.

  • DOCSIS Protocol:

In DSG mode, the MAC layer of STB is present in the Host, and the Cable Card will work at network layer. Based on the network messages and Host capabilities, Cable Card decides whether to operate in DAVIC or DSG modes. Cable Card parses the DCD (Downstream Channel Descriptor), and then constructs the DSG Directory for the Host to set the filters at cable modem. The OOB data that is accepted by the cable modem as per the filters is sent to the Cable Card using extended channel PCMCIA interface. The Cable Card parses the data packets same as that is done in the DAVIC mode. The Card also requests for an IP by sending all the DHCP options to the Host. Host sends DHCP request on behalf of the Card, acquires an IP and sends to the Card.
Responsibilities: Design document, implementation, testing and integration.

  • Cisco Cable Card with NDS CA for Cablevision:

Cablevision has requested for a Cable Card with NDS conditional access in it. We provide the Cable Card with all the hardware and firmware, and NDS will provide a SIM and a library for conditional access. We worked with NDS to define the API to talk to their library for sending and receiving the data from or to their library.
Responsibilities: Design document, implementation, testing and integration.

  • 55-1 Protocol for Verizon:

Verizon uses 55-1 protocol for its OOB. Cisco has a new ASIC with 55-1 support. Verizon also has different set of requirements for its 2-way operation over MoCA. Responsibilities: Design document, implementation, testing and integration.

  • IPv6 Support in DOCSIS for Comcast:

Comcast has requested for IPv6 support in the Cable Card while operating in DOCSIS network. The changes include the support for the traditional IPv4, the new IPv6 and also dual stack mode for the transition support.
Responsibilities: Design document, implementation, testing and integration.

Role, Challenges and Issues solved for Cable Card:

  • Acquired the cable set-top domain knowledge quickly.
  • Understood the Cable Card requirements thoroughly as I planned for the long term association with this project.
  • Understood various hardware blocks of the Cable Card and gone through the ASIC document to understand the necessary register settings.
  • Worked with the team to bring up the development board initially using ST Microconnect debugger.
  • Participated in the initial planning of the card software design, cost reduction ideas, and work distribution.
  • Gone through the DAVIC and DSG specifications to understand the protocols thoroughly.
  • We didn’t have a good Host at the initial development phase, so have to rely on a test Host developed by ourselves. Overcome several issues with the test Host while testing for the QPSK RX/TX. The Host was sending a lot of noise signal upstream resulting in data burst at the headend. We have set up an isolated QPSK mod/demod for the initial testing until we fixed the Host firmware issue.
  • For the DOCSIS support also we didn’t have a Host initially. We relied on test Host and then integrated with our Cisco Host. As the Host development started later than Cable Card, helped the Host team in testing and finding several issues initially.
  • Discussed with the architects to solve the hub straddling issue that could be possible in Cisco DOCSIS network. Designed our proprietary algorithms for solving the hub straddling issue.
  • Supported various headends at the Atlanta labs to solve the integration issues, and helped the lab personnel to understand the Cable Card concepts, and to diagnose the behaviour correctly.
  • Worked with the NDS team for integrating their conditional access library with Cisco firmware. Understood the NDS headend servers that are different to Cisco and helped to set up the labs in Atlanta for the same.
  • Brought up the new board that is designed to support 55-1 OOB for Verizon. Worked with the lab personnel in setting up the headend, and then to test my software to get the data over OOB initially. Found several issues with the DNCS system, headend setup during this period.
  • Understood the need of IPv6 for Comcast and discussed with architects to help write the SRD by providing all the affected modules from client side.

Previously employed also at:
Confidential

Project Title : A380 Flight Management Systems, Crew Interface
Duration : Mar ’03 to Mar ‘05
Customers : AIRBUS
Languages : C, C++ and MATLAB Simulink
Platform : APEX OS and ARM processor

Description: 
The A380 Flight Management System is used for flight planning, navigation, performance management, aircraft guidance, and flight progress monitoring. The main purpose of Crew Interface is to interpret and respond to requests from the cockpit devices that the crew uses to communicate to the FMS. The FM-CI Interface Process is an event driven non-periodic process that performs all event processing which needs to go to the FM partition.

The crew interface functional area converts the format used by the CDS devices to ASCII and while displaying the data in the widgets, it sets all display properties like font, font size, colour and properties like visibility, enabling, disabling the widgets for entry, etc. For events that is given by pilot like entering some data, clicking some button…are categorized and the CI sends the events to other functional areas which can handle the events and send data to CI to display on CDS. CI also can process some events like getting data from databases, page navigation events, etc.

The development of CI is done through MATLAB, which generates the C code, and also some files are manually written. The other functional areas are developed in C, C++ or Ada. The interfaces between these functional areas are done by shared memory concept. The design of CI is done such that the worst-case response time when a pilot requests for some data or some action is 30msec.

Role & Responsibility:

  • Developed the Crew Interface for Fuel & Load, Flight Plan pages.
  • Performed unit testing using simulators.

Challenges and Issues solved:

  • Acquired the aerospace domain knowledge in very short time to take up the project soon I entered the organization.
  • Discussed several SRD issues with the architect to solve the requirement anomalies well in advance.

STRENGTHS

  • I am self-motivated and have strong interpersonal communication skills.
  • I regard team spirit as an integral part of productivity, efficiency, and eventual customer success.
  • I am experienced in taking on responsibility and working together with my team to accomplish goals.
  • I have the zeal to learn more and am a fast learner when it comes to taking on new assignments and/or responsibilities.
  • Developing for iOS at home is one of my hobbies.

EDUCATION

  • Bachelor of Technology from Confidential University

We'd love your feedback!