Sean H. Yang
I am an engineer with solid experience across entire software stack, from application to firmware development in fields of digital multimedia products and embedded systems. Always prepared to apply my unique experience to solve difficult problems, and never stops looking for new things to learn and ways to improve my skill set.
| 2015 to present
|| Senior Software Engineer, Roku Inc.
Ask Sean About
|Libraries and middleware
||Boost, SDL, DirectFB, pthread, ZeroMQ, cURL, Nexus, OpenGL, GStreamer
|Boards and hardware
||Panasonic PH1-Pro4, Jetson TK1, Toradex Apalis/Ixora, PandaBoard, Beagle Board, WinTV 950Q, HDHomeRun, Net Yaroze
|Software and debugging
||Valgrind, DUMA, gdb, GCC, CMake, Gradle (native binary with CUnit), Instruments, OProfile, Linux, Mac OS X
||C, C++, Lua, Mandarin Chinese, Japanese
| 2008 to 2015
|| Connected TV Technical Yahoo, Yahoo! Inc.
- Designing and leading implementation of new Connected TV architecture that is:
- Highly portable, runs on Linux and Mac OS X with various CPUs and 32/64-bit variants, using OpenGL ES 2 for rendering
- Resource management first, using multi-process system to allow control over memory and hardware utilization; ship only necessary components to fulfill partner requirements
- Customization and business logic through Lua scripting and extensions, allowing applications to be updated over network without firmware update
- Desktop emulation of target platforms, so that developers can work without always having hardware; simulate different performance profiles by adjusting parameters such as number of hardware decoders or target frame rate
- Establishing business connections with various hardware vendors, participated in legal contract negotiations and design specifications to build customized set-top device with dual ATSC input, multi-stream decoding and encoding, with connectivity options via ethernet, Bluetooth LE, WiFi, IR and HDMI input/output. Lead development effort by providing working sample implementations of channel scanning, tuning, decoding, encoding, video texturing and graphics post processing to rest of engineering team. Worked closely with multiple companies such as MaxLinear and Panasonic across different time zones. Achieved these tasks in 7 months at a cost that is a small fraction of industry norm.
- Design and implement new engine components allowing NodeJS and LuaJIT scripts to work together through message queues and easy-to-update middleware. Porting engine to run under ARM Linux and x64 Mac, source compiles with clang and gcc. Real-time rendering and video post-processing using GLSL shaders via LuaJIT.
- Bring up new development platforms, back-porting drivers, research to enable hardware accelerated graphics and video playback; customize root file system
- Design and implement build system using CMake, create toolchains
- Put together demonstrations so that other engineers can start integration immediately
- Working with frontend and backend engineers to define APIs for application platform, features such as:
- Provide hardware abstraction and allow instrumentation
- Implement hierarchical scene graph with time-based animation that interpolates between per-node key properties; easily apply masking and perspective effects to scene
- Port WebKit with customizations specific to our platform
- Help members of my team to develop and improve
- Created searchable internal web site to track documentation and specifications using MediaWiki and other customizations
- Present technical topics to transfer my research results to other members of the team
- Review check-in and provide feedback, always available for discussion or answering questions
- Working with different partners across the globe
- Yahoo's platform shipped with TVs and devices from Samsung, Sony, LG, Toshiba, Vizio, and many others
- Engine runs with tight integration from SoC vendors such as Broadcom, MediaTek, Sigma Designs, and Samsung
- Yahoo's Konfabulator engine has been driving Connected TVs since 2008, allowing users to stream videos from services such as Amazon VOD, Netflix, and Hulu; for partners such as Vizio and Sony, the engine drives the entire UI experience
| 2002 to 2008
|| Software Development Engineer, Toshiba America Electronic Components, Inc.
- Designing and developing new features (channel browser, directory browser, image viewer, etc.) for Toshiba's digital television application.
- Optimizing image decoding application by implementing faster algorithms, using inline assembly and other techniques.
- Tools to interact/adjust television features from a computer over network.
- Developing, debugging and enhancing video decoding firmware for Toshiba's LSI; designed and implemented firmware with automatic frame buffer management for single full-HD or dual half-HD decoding with minimum memory usage, and video output timing generation mechanism without application intervention
- Working with engineers in the U.S., Germany and Taiwan to create Linux-based ATSC and DVB-T televisions
- Working with engineers in the U.S. and Japan to create a Linux-based consumer digital video recorder
- Designing and developing hardware abstraction API layer for a multimedia processor capable of real-time MPEG2 encoding and decoding
- Creating build, package and test frameworks for hardware abstraction API layer
- MPEG2 TS/PS, VBI CC/WSS stream parsing and analysis
- Video playback trick play with audio/video synchronization, hardware/system resource management and data transfer tuning/analysis
- Video encoding with data pattern optimization
- Developed Linux PCM device driver to support a subset of OSS ioctl calls
- Tetris on our prototype board to verify graphics capabilities of our multimedia processor
- Experience working with various formats of audio/video streams
| 1999 to 2002
|| Development Tools Engineer, Portal Software, Inc. (now acquired by Oracle)
- Constructing a Oracle database to track Continuus metadata for over 500,000 elements in the SCM migration from Continuus to ClearCase
- Designing a UNIX filesystem hierarchy which supports the native Continuus directory structure, relative symbolic linking to nested objects, and automatically mapping this hierarchy to hundreds of UCM components to 8+ ClearCase VOBs via scripts
- Implementing a platform-independent CRC utility in C and perl to provide checksums on binary executables
- Analyzing server logs created from web server usage, operating system events, and software build operations with UNIX shell scripts
- Matching build error messages with SCM activities to generate detailed e-mail notification to build-breaking developers
- Generating statistical reports for source code files (e.g. C++, Java, perl, Windows Resource, SQL, makefiles, proprietary Portal file formats) in perl
- Modifying Oracle databases for Pin.com and ClearQuest
- Administering FrontPage Web Service to enable publication of internal Engineering guides, procedures, and FAQs
- Performing user support of Continuus and ClearCase/ClearQuest
- Authoring online training resources to install, administer, and maintain Portal's SCM end-user clients
- Executing and troubleshooting integration and nightly builds
- Producing product packaging (e.g. labels, CD jackets) and CD/DVD discs of Portal software for customers, Marketing, and Legal
| 1998 to 1999
|| Student System Administrator, SCU Design Center
- Manage 90 workstations (mixture of UNIX and NT machines) for SCUDC, computing center for school of Engineering
- Installing hardware, maintain environment from print queue to software installation
- Converting shell scripts between various shells
Education and Training
- KNK Seminars & Strategies, MPEG4 Technologies and Applications
- KNK Seminars & Strageties, H.264 / Advanced Video Coding
- Managing Software Projects with Rational ClearCase and UCM, ClearCase administration
- Fundamentals of Rational ClearCase and UCM, developer class of ClearCase and ClearQuest
- Enterprise DBA Part 1A: Administration and Architecture, Oracle database
- Introduction to Oracle: SQL and PL/SQL
- Continuus/CM administration
- Continuus/CM developer and build manager
B.S. Computer science, Santa Clara University
Thank you very much for taking the time to read my resume!
Document is accessible from
© 2002-2010 Sean Yang, Karen Yang, Don Yang and/or respective authors,
all rights reserverd.
This material may contain (biased) opinions,
inappropriate materials for numerous individuals,
work of other authors from the internet,
links that refer to other web documents and resources, or
origial work that cannot be use for personal or commercial purposes.
Please respect the work of original authors.