Mobile Tegra Organization, Android Camera Tools Development Manager, August
2010 to Present
Managing a team of engineers and projects to develop various tools for
the Android camera, critical to SoC Tegra's success, including: Camera tuning tools, lens shading calibration, stereo camera calibration, conformance tests etc.
MCP Tools Development, Manager, 2007/11 to Summer 2010
Lead a team to design and implement a cross-platform tools framework -
NFTools 6 Individual owner of the
nForce System BIOS flash tool and HDCP tools
Video BIOS team, Senior Software Engineer
Wrote the Video BIOS debugger 2001/07/12 through 2002 then supported, updated until 2007
Designed and developed from scratch; source-level, client-server x86 debugger
Developed configuration tools for Video BIOS, Core Tools,
CoreBrowser
+ BcfEdit 2007/06/14 through 2007/10/26
We had to deal with dozens of chips and configurations for various SKUs and customers
totaling in 1000s of images Wrote a GUI tool to manage and edit configurations Another tool to visually manage
and build images
First tool to manage Video BIOS build scripts, ScriptBrowser 2006/10/16 through 2006/12/12 This one satisfied immediate need to view hierarchical build scripts
Wrote a debugger for the VP (Video Processing) engine,
VP Debugger
Jump-started a debugger for the VP2 engine (project canceled)
Developed HDCP tools and consolidated various other tools into a toolset,
HDCP Toolkit 2006/09/21 through 2007/07/26 Took the ownership of the toolkit
and support through the rest
of 2007 Wrote utility that generates secure upstream keys We had key people from various functional teams and we worked together on a
process to generate and distribute keys to customers The process included upstream keys and manipulation of keys; creating a
master key set for the Company and disaster recovery for various stages Consolidated all HDCP tools (BPMicro sw, checker, programmer, wrapper,
splitter, upstream gen) documenting them, building etc.
Part of the initial team that developed MXM standard 2005/01/20 through 2005/03/14 development Worked on the early MXM specifications Wrote the
MXM GUI editor Support (updates, new features, fixes) through 2007 when another team took
over the tool
Engine to index Video BIOS sources 2003/02/04 through 2003/05/28 We needed something like Doxygen to help people follow and understand the
source This indexer run on the server servicing this and some
other needs of the VBIOS team Generated cross-indexed, pretty-printed top of tree, web-browser accessible
source
Compressed fonts for Video BIOS 2002/02/14 Developed font compression algorithm and wrote code that decompress on the
fly or through POST
Video BIOS display switch utility 2001/03/28 through 2001/05/23 Switches displays on a multi-header devices
Stack usage for the Video BIOS 2001/05/10 through 2001/05/23 Worked on minimizing stack requirement of the Video BIOS code and wrote a
tool to test the stack usage for each INT10 function
Protected mode interfaces for the Video BIOS 2001/01/31 through 2001/02/27 Cleaned up interface in BIOS and developed application that tests them
Supported various mobile OEM designs from the Video BIOS side 2001 through 2002 - Dell 2001 through 2006 - Toshiba 2007 - Sony
Joined right after the bring up of the first NVIDIA mobile part (NV11M) but
worked on OEM designs with it during 2001 Participated in the bringup of a second mobile part (NV17M) and then bring ups
of most GPUs after that as a member of the Video BIOS team
3DFX
vmSim - VMWare-like simulation platform
1999 - 2001
We needed a simulation platform to run the fmodel of a future GPU.
We talked to VmWare (at that time only few dozen people strong) but we could not arrange a suitable deal.
I started a project to replicate VmWare to the extent that we needed, all from
scratch. By the time 3dfx dissolved (December 2000), the vmSim was nearly
complete: it could load DOS and go far through the Linux boot; it had a
number of basic virtual devices. It implemented scan-before-execute to detect and
translate instructions which can't be virtualized. A task bridge code clearly
separated virtual machine address space from the host while maintaining virtual
copies of important structures such are page tables and descriptor tables. The
code was being trapped when needed and translated or implemented by the monitor
code. There was a quick scanner and built-in disassembler.
It implemented hooks to connect functional model of any
device, in our case a graphics device.
Worked on a GPU chip "Napalm" emulator
Cirrus Logic
1995 - 1999
Wrote 3D library for "Laguna 3D" graphics accelerator chip; this was one
of the first chips having texture mapping and perspective-corrected textures.
Wrote demo programs for Comdex and customers demonstrating the chip abilities.
As Cirrus Logic started shutting down their graphics division, I briefly worked
at their subsidiary, Crystal Semiconductors, on AC-3 audio drivers and
MediaMax set-top box.
Software projects done on my own
Yaos - Yet Another Operating System
Completely written from scratch, it features:
Implementation of the POSIX compliant C library
x86 kernel with pre-emptive multitasking, shared memory with
copy-on-write, multitasking, scheduling, tty devices, built-in debugger, v86
mode of execution (could execute DOS in separate virtual machines) swapped by a
hot-key, system calls
It can run few flat compiled gnu utilities such are banner and calendar.
Picture Frame - This is really a
software + hardware project: Picture frame made by stripping a notebook and
writing custom software.