David Ching
Windows System/Applications Engineer
![[Dividing Line Image]](images/div.gif)
OBJECTIVE
To provide
world-class consulting services developing
Windows Applications and System Utilities.
QUALIFICATIONS
-
20 years
experience
shipping popular Windows driver utilities and applications,
including SanDisk U3, Linksys Control Utility, Logitech SetPoint,
NetObjects Fusion, Sidekick for Windows, Borland C++.
-
Microsoft MVP
(Visual C++), fluent with
MFC, .NET, C#, WPF, WinForms, Win32, ATL, Threading,
WinInet, Windows hooks, User mode API hooking, Shell
Extensions, IPHelper, Sockets, Active Accessibility, WinLogon,
Device Manager, WinXP
Themes, Windows Media SDK, Windows Media Format SDK, Mixer API, DDE,
RAS, DirectDraw, GDI+, Rich Text editor, HTML, Public Key
encryption, Lua scripting, Installshield/Wise/Nullsoft installers,
Crypto API, Localization, XML, Wizard Property sheet, Layered
Windows,
DHTML UI.
-
Management perspective combined with ability
to deliver debugged and maintainable code.
-
American-born US Citizen.
EXPERIENCE
CONSULTING
(2004 - Present)
Embedded Resource Group
(07/07 - Present). Creating an ASP.NET application used by
hourly contractors to submit weekly timecards that are routed via
e-mail for manager approval. In addition a Winforms client app
generates Intuit QuickBooks invoices from timecard data stored in a
SQL Server 2005 database. Technologies used: ASP.NET 2.0, Winforms,
C#, SQL Server 2005, Telerik RadControls.
Amicus Wireless
(12/07 - 08/08). Designed and implemented a Windows Control Panel for a WiMAX adapter, featuring a tabbed UI with Windows Presentation
Foundation. Technologies used: WPF, Winforms Interop,
C#.
PlantSense
(08/07 - 06/08). Created a dialog-based application to manage
a USB probe over a virtual COM port and to send data to a website.
Technologies used: MFC, Setup API, Serial port, WinInet, C++/CLI,
Device Manager.
Star Analytics
(09/07 - 04/08). Created a console application to prototype
consolidation algorithm for hierarchical database. Technologies
used: .NET, C#
Cranite (08/07
- 10/07). Created a Windows Control Panel
(screenshot)
for a wireless
security software product, featuring an Office 2007 UI.
Technologies used: MFC, CodeJock UI library.
Microsoft
(06/07 - 08/07).
Creating several videos explaining Visual C++ topics, including
Remote Debugging and
VC
Visualizers. The
videos are posted on MSDN.
Marvell (01/07
- 10/07). Localized a Windows Control Panel for a wireless
networking card.
NomaDrive
(09/06 - 01/07).
Rewrote hooking engine of application virtualization software,
similar to MojoPac. Created installation wizard and NSIS setup
package. Technology used: C++, MadCodeHook user API hooking
library.
SanDisk (10/05
- 06/07).
Recognized as Windows expert for TrustedSignins engineering.
Wrote IE/Firefox toolbars and MIME filters; developed loaders for
browser add-ons that don't require the Windows registry.
Prototyped
TrustedSignins security applications using UI skins and wizards.
Shipped DHTML-based UI and desktop icon for
U3 USB keys.
Devised simple
localization mechanism and supporting tools to quickly translate
application into 30 languages. Prototyped Windows AppBar that
docks when USB key is inserted. Used Crypto API to write a
hashing function. Technologies used: UI Skin, MFC, GDI,
GDI+, ATL, COM, BHO, DHTML, User Mode Hooking, AppBar, Crypto API,
XML, Wizard Property sheet.
Logitech
(3/05 - 07/07).
Architected and implemented MenuCast translucent windows, providing
10' UI for
MX Air mouse. Created several Vista gadgets which hosted
an OCX control to show status of Logitech devices. Created
Wizard-97 firmware update utility. Enhanced core of Logitech
SetPoint to execute different mouse and keyboard macros depending on
the active application. Created OEM customizations for
well-known OEM's. Technologies used: Layered windows,
Vista gadgets.
SoonR
(08/06). Created a DLL which provided simple API's to snap a
picture with a webcam and save the picture to disk.
Technologies used: VfW, multi-threading for synchronous API.
Blue Jungle (03/06
- 11/06). Enhanced Enforcer module which monitors and
restricts Windows desktop applications. Technologies used:
User mode API hooking.
Qpixel (9/05 -
9/05). Designed and implemented a skinned VCR application (screenshot)
to demonstrate a Video Capture board. Technologies used:
UI Skin, MFC, GDI, GDI+.
VelaStar (8/05 -
2/06). Created a very small (100 KB) application that presents
a Wizard-like UI to download and install all necessary
redistributables to run the .NET framework on Windows NT 4.0 or
later. Technologies used: straight Win32, Nullsoft
installer.
Qualcomm (12/04
- 9/05). Wrote the UI for the Linksys Control Utility (screenshot)
shipping with the
Linksys WPC54GX PC-Card
and the Airgo Wireless Client Utility (screenshot).
The UI's feature a skinned tab interface, a skinned popup wizard,
and a skinned launcher screen for the Setup. Standard and
custom Windows controls are overlaid onto graphical images.
Devised strategy to control Internet connectivity with IPHelper API
and NETSH.EXE. Technologies used: UI Skin, MFC, GDI,
GDI+, IPHelper.
Loyalty Ventures (6/04 - 7/05). Wrote an Internet client that interacts with
popular browsers in unique ways. It embeds the Lua scripting
interpreter, allowing customization with Lua scripts. With
full functionality packaged in a small 220 KB download, it is
extremely easy to deploy. Wrote an Internet Explorer toolbar.
Wrote an animated sliding "Toast" window similar to those in Instant
Messenger apps which uses special techniques for smooth scrolling.
Wrote a 9 KB Internet downloader in VC++ which excludes the C
Runtime Library for decreased size. Technologies used:
Lua, Microsoft Accessibility, User Mode API hooking, Threading,
WinInet, WTL, Nullsoft Installer.
EMPLOYMENT (2000 - 2004)
Logitech
(5/02 - 5/04).
Senior Software
Engineering Manager.
Managed four developers responsible for implementing new features in
Logitech SetPoint, the driver utility shipping with millions of mice and
keyboards (screenshot).
Also managed the development of the Media Desktop full-screen
application for listening to music and viewing pictures and videos from a
distance of 10' (screenshot).
Coordinated efforts with the localization and marketing teams in Switzerland
as well as with QA in the United States.
Applications
Consultant.
Architected and wrote the core functionality of Logitech SetPoint.
Written in VC++ and MFC, the utilities feature a skinned interface and easy
customization and localization through XML files. The utilities drive
an LCD embedded in the Logitech MediaPad to show the text of received
e-mail, instant messages, and the title and artist of the currently playing
song or video through Microsoft Media Player. As well, they make it
easy to adjust the mouse/keyboard sensitivity to the user's liking, as well
as to do useful things when the extra buttons on the mice/keyboards are
pressed. Created skinned WinLogon Notification Package which assists
in the proper connection of Bluetooth user-input devices before logon
occurs.
Proxim
(11/00 - 4/02)
Manager,
User Interface Software.
Managed 3-5 developers responsible for networking software utilities
shipping with Proxim Symphony, Harmony, and Orinoco products.
Found and fixed long-standing defects in the codebase.
Successfully shipped a number of versions, including
Harmony 802.11A and Symphony 3.0. The utilities are
written in VC++ and feature nifty MFC controls to modernize the user
experience, including full WinXP support, a scrolling bar chart,
text controls with gradient backgrounds to enforce company colors,
256 color support, tray icons, etc. Also designed the UI for,
and was a consultant to, the developers of the Orinoco Client
Configuration Utility, which PC Magazine called, "the
best of the three [reviewed utilities]." Coordinated
efforts among several product groups located throughout the United
States and in Europe.
DCSOFT
PARTNERSHIPS
4Developers, LLC
(1999 - 2001)
Partnered with 4Developers to create award-winning Talking Stocks and
Talking Greeting.
Talking Stocks
retrieves stock quotes from the Internet and uses an animated
character called Stockman to read them aloud (screenshot).
This innovative Windows application was nominated for the
Best Business Application or
Utility,
2000 Shareware Industry Awards, featured in On-line Investor
Magazine, April, 1999 and received the top (5-star) rating from
the prestigious ZDNet shareware site. Technologies used:
WinInet, worker threads.
Talking Greeting
lets users send greeting cards and other personal messages using
animated characters like Merlin the Magician, Peedy the Parrot, and
other Microsoft Agent animated characters (screenshot).
Created a simple script interpreter to read instructions in the
greeting file and drive the Microsoft Agent characters accordingly.
Talking Greeting is extremely popular with children and was featured
in the CNET Shareware Dispatch newsletter, March 29, 2000.
Technologies used: WinInet, straight Win32 programming for
aggressive .exe size reduction, worker threads, robust handling of
download errors.
DCSOFT PRODUCT DEVELOPMENT
(1995 - Present)
These products illustrate the purest vision of my software ideal.
.NET projects
is a work-in-progress portfolio of 3 year of .NET 2.0 experience.
SpamOne,
GoalTime
Stitcher, and
TimeCard ASP.NET
utilize a variety of .NET technologies including C#, C++/CLI,
WinForms, ASP.NET, WPF, and various UI and middleware component
libraries.
RegEditX
was included in WINDOWS Magazine's annual "100 Best Shareware
Programs", featured in Brian Livingston's INFOWORLD column,
and included on several CD-ROM's accompanying Windows books.
Technologies used: injection of a DLL into another process,
window subclassing in MFC.
CDRCue 2004
is a syntax-highlighted editor for audio cuesheets.
Technologies used: MCIWnd, object-oriented parsing, Public Key
Encryption; my first shareware app.
Goal Time Tracker
is a a simple application to track goals and the time spent on them.
Technologies used: MFC 101; my first MFC app.
PAST
CONSULTING (1995 - 2000)
Mirra
(11/02 - 12/02). Created Context-menu and Icon-overlay shell
extensions. Used Internet Helper API to access network settings.
FutureDial
(8/00 - 12/00). Developed a VideoChat ActiveX control in MFC which
transmits and receives pictures of the people who are chatting over the
Internet. The control also lets the users type text messages to each
other - the text is colored and italicized using a Richtext control.
Also developed an AudioChat application that records the user's voice coming
into the PC's microphone, compresses it using GSM, sends it over the
Internet, and uncompresses it and plays it on the PC's speakers using the
same application.
PCTEL
(2/00 - 9/00)
Developed Control Panel applet and Tray icon utility for
LiteSpeed adapter. Developed Installshield Setup program to
install the adapter. Created innovative ways of specifying TCP/IP and
other network settings not normally exposed through Windows API's.
Spinway
(5/99 - 12/99)
First Windows Developer for this startup providing free Internet access
technology to
K-Mart Bluelight.com and
Barnes and Noble. Designed and implemented an appbar window
to show ad banners. Created a custom dialer application (using RAS)
that dials the modem to establish an Internet connection. Programmed
the Windows Media Player to display a full-motion MPEG video ad.
Created a Wizard (property sheet) application that facilitated the
registration process.
Logitech
(11/95 - 4/99)
-
Lead Application Developer of Key Commander software
shipped with the Logitech Internet, NewTouch and NewTouch
Compact keyboards. The software configures the keyboard's extra
buttons, controls Internet Explorer/Netscape Navigator browsers,
launches programs and web sites, and controls system volume
level. Technologies used: Grid custom control, DDE, threads,
hooks, transparent windows.
-
Project Lead of hand-held Remote Control software.
Created software for IBM Aptiva Web Surfing Remote Control
to surf Internet using remote control with Internet
Explorer/Netscape Navigator browsers. Created "transparent"
displays shipped with NEC Ready 9600 PC's.
-
Created multi-threaded program launcher. Created
on-screen keyboard and menus which are accessed with the remote
control. Created remote-controlled CD player. Created
remote-enabled volume control.
Xerox PARC
(1996). Wrote two short MFC programs to parse the family lineage stored in a
GEDCOM file and to display the desired ancestor or progeny tree in a
hyperbolic browser. Wrote an object-oriented parser which made good
use of MFC's CString and CMapStringToPtr classes.
NetObjects
(1995). Plugged memory leaks in Fusion Web site editor. Used memory
diagnostics built into Visual C++ and MFC.
Wells Fargo Bank
(1995). Worked with Rae Technology to assess status of Wells Fargo on-line
banking project and reported problems with failed deliverables, management
styles, and skills of Windows programmers. Engineered bitmap control to
display 256 color bitmaps. Debugged various modules written in MFC and
cleaned up memory leaks. Served as MS-Windows expert to Apple Macintosh
team.
PAST
EMPLOYMENT (1987 - 1995)
XSoft, a division of Xerox
(1994-1995).
Team Leader of TabWorks, a Program Manager
replacement shipped with Compaq PC's. Coordinated deliverables with
Marketing and Quality Assurance, assigned development tasks, wrote
functional specs and added 256 color support.
Media Vision
(1994).
Designed and developed a Wave editor application
which graphs, filters and plays digital audio.
Borland Software
(1990-1994)
-
Enhanced an
internal Windows development environment for Computer Based
Training. Ported a programmer's editor to a Windows application
for linking together OLE-2 style components. Learned the
Component Object Model and further practiced C++, application
framework usage, and object-oriented skills.
-
Designed and
implemented the Address Book of a Sidekick for Windows
prototype. Devised a layered architecture to separate UI from
data access, and supported other engineers using the access
layer. Used C++ and an object-oriented application framework.
Assisted team members in tough debugging problems. Served as
liaison to the Languages team to ensure timely tool fixes.
-
Project Lead
for the Turbo Pascal for Windows Integrated Development
Environment, version 1.5. Enhanced environments in Turbo C++ for
DOS and Borland C++, versions 2 and 3. Represented Borland at
the Software Development trade show, on CompuServe, and at bug
hunts. Wrote preliminary documentation. Learned C++, Windows
custom controls, and advanced debugging.
Hewlett-Packard
(1987-1990)
-
Enhanced HP
LaserRX, a shrink-wrapped Windows application which presents
performance metrics from HP minicomputers. Wrote file access
routines and debugging utilities. Learned the Windows
event-driven model and debugged complex Windows 2.x real-mode
memory problems.
-
Software Design Engineer.
Wrote a UNIX "curses" application to display performance data
from networking cards. Learned UNIX development tools and the
Curses display library.
-
CO-OP student. Wrote a Turbo Pascal database for computer terminal
regression tests. Learned Turbo Pascal, text-mode DOS windows,
database APIs, and other DOS programmer tools.
EDUCATION
University of the Pacific
(1984-1988)
Graduated
Valedictorian (3.98/4.0 GPA) with BS in Computer Engineering.
NEXT:
Read about DCSoft Technology
Read the DCSoft Creed
Discuss your project with DCSoft
Home
| Products
| Consulting
| Writing
| Contact
Last modified:
March 29, 2010
|
|

|