Canada
Knowledges: 1) Embedded system (MIPS, ARC, Zilog) 2) Multi-tasking OS environment (Linux, Unix, Nucleus) and RTOS (MQX) 3) Socket programming and networking stack (Linux, NucleusNet) 4) MPEG2 transport stream, MP4 5) Linux driver programming 6) Multi-processor programming (e.g. caching, data synchronization, concurrent operation, inter-processor communication) Familiar with 1) C, C++, Bash, Z8 Assembly 2) JIRA bug tracking system 3) Agile (Kanban) 4) Code review system 5) Version control system: CVS, Distributed system (e.g. hg)
• Windows Kernel driver debugging for Display related issues • Develops a display capture streaming solution with different teams • Team lead for a new color processing solution • Implements the framework for the new color processing solution • FPGA testing with new hardware IP , working with emulation infrastructure team to improve remote testing performance • Full chip emulation testing , troubleshooting in user mode and kernel mode drivers • Worked with various teams for the new IP integration • Automating manual testing through Jenkins CI • Scrum master to drive daily standups
- Maximized the real-time transcoding and streaming performance in multi-core chipsets. - Worked with the Product Owner to design and develop a cord-cutting solution with a new web server for the user account and device registration, a program guide fetcher; designed and implemented Web APIs for streaming device control from a client application, including a mobile app and web client - Assisted in side projects for porting GIF decoding into Android driver; developed a visual tool using HTML page for generating lookup table parameters.
• Brought up new chipsets (e.g. Task relocation, inter-processor communication, memory partitioning, and reduction) • Optimized firmware and middleware for efficient transcoding and channel switching • Redesigned and implemented a sample transcoding application • Defined HTTP web APIs (and also RESTful APIs) and implemented a web streaming server with device discovery, channel scanning, EPG parsing, tuning, transcoding and streaming capabilities • Implemented a tuner application using I2C driver • Implemented an error injection tool to test the robustness of video and audio decoders and fix all stability issues under weak signal input • Assisted in modifying a build system to adapt changes • Coached co-op student to implement a test suite for web streamer application • Customer support
• Implemented software modules to bring up new hardware modules in Field- Programmable Gate Array (FPGA), verified the correctness of hardware functionalities and analyzed the overall performance. • Implemented multi-media processing solutions for DTV and PVR customer projects according to requirements and project specifications. Involving: - Different combinations of transcoding (e.g. codec, bitrate, resolution, container) or passthrough streams support - Crypto operations on recording and playback stream (e.g. AES, RSA used in DTCP) - Customized descriptors in the output stream's metadata • Communicated with customers to meet schedules • Maintained firmware overall stability, involving the following modules - descrambling data path - data demultiplexing (program information parsing) and remuxing (e.g. mp4, transport stream) - video transcoding pipeline (e.g. decoding, re-ordering, 3:2 pulldown, frame rate conversion, scaling, encoding) - audio transcoding pipeline (e.g. decoding and encoding) - data crypto operations • Re-structured and generalized software implementation for re-usable and readable codes. • Assisted in designing a solution to combine two streams from different angles to form a transcoded 3-Dimension stream • Adjusted and balanced the system resources (e.g. memory bandwidth usage, cache programming, data synchronization, DMA usage) in multi-processor system to achieve real time performance. • Led and guided the team to define, implement and document new sample application for new product • Assisted other teams in troubleshooting project issues
• Fixed bugs in NucleusNet networking stack • Defined, implemented cross-platform portable software layer for the following modules - System (e.g. task, sleep, time) - Networking (To unify socket API behavior to become POSIX socket-like in all platforms) - Software/Hardware De-scrambing • Integrated with Digital Right Management (DRM) companies for content protection in different STB platforms and obtained DRM certification for protected environment (e.g. secured boot, restricted shell, software upgrade) • Implemented JNI APIs for 3rd party Set-Top-Box Java middleware • Created a random JNI test using J-Unit test suite • Implemented Linux device driver for Infra-red (IR) and Radio-Frequency (RF) receivers, front panel 7-segment LED • Implemented Universal Remote Control in assembly codes for emitting proprietary IR and RF signals and remote control pairing with Set-Top-Box. • Implemented software utilities - STB software upgrade script - Multicast joining/leaving utility for IPTV channel switching • Maintained system stability. Fixed bugs reported from the field or from QA • Field support; Remote debugging
• Implemented a bootloader to copy Linux image from a compact flash formatted with FAT16 filesystem to memory and launched Linux kernel