Software Engineer Resume
SUMMARY
- Software engineer with 12 years of experience in creating multimedia streaming technology based embedded systems, products and solutions in consumer electronics.
- Operated through all phases of software development lifecycle of large - scale projects: involved in requirements specification, design and architecture, hardware manufacturing, software implementation, validation, beta deployment and performance monitoring in field
- Experience in HLS, HTTP, ASF streaming over IP, Sling Multimedia Placeshiting, Adaptive bitrate control of streaming, UPNP , DLNA and knowledge of other streaming protocols like RTP, RTCP, RTSP,
- Experience with MPEG2-TS, and knowledge of MPEG-DASH, MP4, H264
- Excellent programming, debugging, optimization skills in C/C++, Multithreaded, Embedded Linux
- Experience with Shell scripting, Python, Qt framework
- Experience in DTV/STB software stack development for ATSC, DVB standards
- Experience in working directly with third-party vendors, customers, and teams spread across various geographies
- Experience in developing in-house or reviewing third party schemes for secure system boot, and protection of data and multimedia content
TECHNICAL SKILLS
Programming Languages : C, C++, Qt and QML
Platforms: Linux OS, Embedded Linux for MIPS / ARC processors, Windows OS Scripting Shell, Python, Perl SCMs SVN, MKS, Clearcase, JIRA
Standards: HLS, DLNA, UPNP, DTCP-IP , MPEG2, DVB and ATSC DTV, UART, RS232, RS485. Worked with SOCs ViXS’s mips & arc based SOCs 5116, 5190, MIPS based BRCM 72xx, Xtensa cores, Philips uControllers TDA121xx, Philips’ S3C863A/39 and Trident’s PNX8541 SOCs for DTV systems Customizing Linux kernel, Universal boot loader in embedded devices.
Tools: Wireshark
PROFESSIONAL EXPERIENCE
Confidential
Software Engineer
Responsibilities:
- Ported tuner and demodulator drivers; design & development of interface library with functions program / channel scan across band and select channel tuning.
- Design & integration of functions program/channel scan across full band, select channel tuning
- Product requirements analysis & architecture of Phase 2 HDD program recording feature
- Worked with third party teams (SiLabs Tuner IC Si2141, Mstar Demod IC MSB1237), production issues analysis and resolution
- Recommended improvements in Channel scan sequence, scan time is effectively reduced to 10% of what had been in Sling product ProHD
- Lead board bring up efforts at initial stages kernel & u-boot customization, flash layout, boot-up sequence, secure boot, boot time improvements (manifest SHA256 -> CRC32) - boot time reduction by 6 secs.
- Managed kernel, uboot drops released by vendor and customized per product requirements.
- Mentor new team members with Cloud based firmware upgrade, Analytics, Jenkins automation adaptation, LED handling, automated build scripts.
Confidential
QA Lead
Responsibilities:
- Design, development and validation efforts of enabling multi session streaming in Slingbox SDK
- Design of Target Cloud Based Firmware Upgrade module. This integrates secure cloud based firmware information retrieval, firmware download and firmware/file system upgrade in deployed units
- Drove board bring-up activities and maintained kernel, uboot drops by vendor and customized per product requirements.
- Analysis of flash memory requirements, flash partition map creation, firmware installation through MTD interface and respective modules development in firmware.
- Design of firmware recovery system to address failures in firmware upgrade and unit turned into unusable.
- Latency improvements in stream start time and channel change time.
- Involved in firmware build and cloud deployment automation
- Integration of Nagra DRM with Sling stream
- Worked with customer, vendor and partner teams for requirements and technical discussions
- Prepared status reports to project management, responsibilities include project coordination and SW releases planning
- Drove efforts integrating MS4000 with Cisco Cox G8 set-top-box where data path and command path are slightly different from Moxi solution.
- ViXS 5190 SoC Quad Transcoders, Embedded Linux v2.6.30, C, C++ Slingbox 500: Slingbox 500 is a Sling’s new generation streaming device in its product lineup that enables anywhere remote viewing of Cable channels from home which is Slingbox SDK based architecture. It enables full 1080p video streaming, built-in Wi-Fi, HDMI support, in-built IR blaster.
- Design and integration of YouTube Trending videos and Contextual Videos display based on Audio Content Signature.
- Design of Web Gallery API support, MD configuration of curated channel listing.
- Developed WebGallery Caching which has improved user experience. Latencies in showing already visited channels or categories or playlists gone down from 5 sec (max) to 700-800 msec. This also reduces YouTube overall API quota cost extensively in case of repeated usage.
- Feasibility check over integrating features such as user authorization, like/unlike YouTube content, subscribe/unsubscribe channels, subscribed channels listing.
- Gathering requirements from product team esp. Slingbox 350 / Slingbox 500 and estimation of development efforts.
- Support in fixing issues reported by Beta team for Slingbox 350 / 500.
- Media engine management in SbSDK to abstract Transcoder dependencies.
- Design of Side loading feature in SbSDK.
- Developed value addition support like Master Directory, Configuration management, NVM data management.
Confidential
QA Lead
Responsibilities:
- Drove board bring-up activities and integration of kernel, uboot drops by vendor.
- Design and development of Vip922 discovery, connectivity & streaming.
- Design and development of Closed caption decoder & Renderer.
- Design and implementation of config module, parental locks.
- Involved in integration of direct TS streaming from Vip922
- Build Automation - Nightly builds ensures release readiness.
- BRCM7206 SoC, Embedded Linux v2.6.18, C, C++ and Qt framework
- Design of modules that enable playback of streamed content from ViP922 receiver
- Integration of Widevine 128-bit AES encryption / decryption of Sling stream
- Design of firmware update manager
- Board bring up and maintenance of kernel source drops by Broadcom
- Porting of SPSDK platform dependent abstraction layers (Network & OS)
- BRCM7206 SoC, Embedded Linux v2.6.18, C, C++ and Qt framework, Stream format ASF (H264, AAC)
Confidential
Software Engineer
Responsibilities:
- Developed Periodic (interrupt) Endpoint Support in WHCI, Periodic List QSet Cache Management.
- Developed Isochronous endpoint support over Bulk Endpoints
- Post production support of DWA and addressing the bugs and issues.
- WQST210 targets, Ten silica’s Xtensa cross compiler, C
- Developed camcorder drivers for Linux & Mac 10.3
- Developed Media editing application using Mac OS quicktime library
- USB Vendor Specific Video Drivers: Developed USB 1.1/2.0 compliant video drivers for Digital Camcorder. It includes development of USB Composite driver to facilitate loading vendor specific USB interface-video driver when video interface shows-up. Role of the device driver is to make USB requests to get stream of JPEG frames over Bulk endpoints. Video Digitizer component pulls video / audio frames from Video / Audio interfaces and converts them into a MOV stream format for application playback.
- Application Modules: Designed and developed Media Editing module. Media Editing Module deals with rendering of Video/Audio/Image clips, Insertion of Clip Transitions, Effects and addition of Text on Media. Development of Media Player to play all types of media files like avi, mov, mpeg, etc. Capture screenshots from running stream & save it various image formats like jpg, png, tiff, gif, bmp etc. Picture Editing and Enhancement module implements features like Pictures attributes adjustment, resize, Cropping etc.
- Target OS: Macintosh OS X 10.3, Macintosh OS 9.2.2, Linux, C, Metrowerks Code warrior 8.1/9.4, Xcode 2.0, USB DDK 1.5.5, C++, QuickTime 7.0.5, Powerplant GUI framework