Johnson Cheng
10832 Forbes Creek Dr. Apt. U-306, Kirkland, WA, 98033 | 206-529-4846 | johnson.cheng@utoronto.ca
Education
University of Toronto, Toronto, Ontario, Canada
Bachelor of Applied Science - Computer Engineering | Sept 1999 - May 2003
- Final year design project - Scalable Behavioral Simulation of Application-layer Peer-to-Peer Networking
- Course highlights - Compilers and Interpreters, Programming Languages, Computer Organization, Distributed Systems
Professional Experience
Microsoft Corporation, Redmond, Washington, USA
Software Design Engineer 2, Platform Architecture, Windows Kernel | Oct 2005 - Present
Owner of the ACPI Machine Language (AML) interpreter
& the ACPI Source Language (ASL) compiler
- Implemented and tested ACPI 3.0 features and coordinated the ASL compiler releases
- Triaged external issues, implemented debugger extensions, responded to industrial customer feature requests
- Researched interpreter rework including multithreading support, static bytecode analysis, deadlock detection
Developer for power management components in Windows
Vista© and Windows 7©
- Designed, implemented and tested the User-Mode Power Service
- Triaged and fixed bugs related to Windows ACPI driver, kernel power manager, and the battery driver stack
- Mentored a new employee and conducted interviews for potential intern candidates
Platform Computing Incorporated, Toronto, Ontario, Canada
Software Developer, LSF development team | Aug 2003 - Sept 2005
Main developer for the Platform License Scheduler©, a distributed client-server software used by EDA companies such as Intel©, Micron© and Infineon© to manage their application licenses intelligently and adaptively
- Designed and implemented core infrastructure (UNIX daemon) and key features in 6.1 and 6.2 release
- Drove and coordinated the 6.0 consolidation release
- Led development collaboration with partner Macrovision© Corporation on product integration
- Created and presented product training material for the technical support team
Developer for the Load Sharing Facility© software, the flagship POSIX-based product which enables businesses to build clusters and fully utilize their IT workload
- Implemented and unit-tested for various LSF releases
- Supported customers through beta testing, triaged and fixed bugs
IBM Software Lab, Toronto, Ontario, Canada
Summer and Part-Time Developer, AS/400 Application Development
Tools | July 2002 - Sept 2002
- Designed and implemented the Preference dialog for the RPG verifier options in Eclipse
- Held various meetings to communicate and co-ordinate projects with other developers
- Investigated possible migration paths for legacy tools in the Eclipse platform, created tutorials for the team
- Led the implementation of a new development process using CVS and Ant script
- Implemented a front-end dialog of the AS/400 Communication Console
Co-op student, VisualAge for Java Service and Support | Sept 1998 - July 1999
- Implemented a fix pack upgrade process based on Java servlets, simple database, and a VisualAge plug-in
- Developed a Java-based online parser for legacy internal customer survey reports
Summary of Technical Skills
Programming Languages
- C - Seasoned system level programmer in POSIX (libc), NT, and WIN32
- C++ / Java - Proficient application level programmer, experienced with STL, Eclipse SWT
- x86 / x64 / ia64 - Extensive debugging experiences and some coding experience in the context of an OS
- Python, PHP, Perl - Web programming experience
- 68k assembly, LISP, VHDL, Pascal - Various levels of experience in either academia and industry
Operating Systems
- Unix - Seasoned Slackware Linux administrator, professional development experiences with Redhat Linux and Solaris, in-depth knowledge of the GNU development tools such as gcc, gdb, strace
- Windows NT family - In-depth knowledge of the NT kernel, driver model framework, user-mode development
- OS/400, Mac OS X, Mac OS 9 - Enthusiast-level knowledge
Networks
- Distributed programming - Experience in client-server model based on Berkeley sockets, TCP/IP protocols, the RPC XDR protocol, and existing clustering technology
- Network Administration - Experience in building medium-sized LAN with NAT and Samba, configuring firewalls
- Internet WWW - Experience in CGI programming, Java servlets, active web pages
Awards and Affiliations
- Voted as the graduating engineering class valedictorian
- Executive in the University of Toronto Club for Cognition and Computation
- Member of the University of Toronto Hart House Film Board
- Co-developed a sniper shooting OpenGL game
- Developed a computer-controlled LEGO robot vehicle as part of a course
- Awarded as part of the IBM VisualAge Java/C++ support team
- Awarded as an Ontario Scholar upon secondary school graduation
- Top 25 percentile in the Open Challenge and Cayley mathematics contest
- The Earl Haig Canada First Robotics Team, computer programming club
- Selected to enroll in Computing Insights - a gifted computer science summer program
- Played recreational hockey in the Greater Seattle Hockey League and Seattle TechRec League
- Earl Haig Symphonic band, downhill ski team
Languages
- English - native-level fluency
- Chinese (Mandarin) - native-level fluency
Reference Available
Upon Request