Home
hsoi.com
hsoi.net
hsoi.org

Hsoi's Shop
Hsoi's Shop Home
Hsoi's Resume
News
Software
PowerPlant
WASTE
Other stuff
Programming Links
From the WorkShop

Links
Hsoi's Shop
Mac OS MUD Zone
Hsoi's Resume

Site Info
Legal Stuff
Built By
Contact Information
Email Webmaster
 

Resume - John C. "Hsoi" Daub

hsoi@hsoi.com
http://www.hsoi.com/hsoi/

Objective

To practice the fine art of software development in a manner allowing for the evolution of all involved parties and processes. I like making shrinkwrap Mac OS X software, working both on developing an elegant and intuitive user experience, and solid under-the-hood foundations.


Work Experience

Senior Engineer: Smith Micro Software, Inc., Consumer Group
April 2008 to present
Software Engineer: Smith Micro Software, Inc., Consumer Group
June 2000 to April 2008
NB: I started at the company when it was named Aladdin Systems, Inc. In January 2004, Aladdin Systems, Inc. was purchased by International Microcomputer Software, Inc. (IMSI), but remained a wholly owned subsidiary. In July 2004, Aladdin Systems, Inc. changed its name to Allume Systems, Inc.. In July 2005, Smith Micro Software, Inc. acquired Allume Systems, Inc. and while the "Allume" brand remains, technically Allume has been assumed into Smith Micro and I am a SMSI employee. So, I've essentially worked for the same people for a long time, just lots of corporate juggling about.
February 2008 - present
Working on my next project(s)...
Internet Cleanup 5
Released 6 February 2008.
Transitioned to using the same GUI as Spring Cleaning, which greatly simplified and improved our codebase and the user experience of Internet Cleanup. Continued to evolve SpyAlert, making it more data-driven and embedding Python as the mechanism to provide customized logic.
Spring Cleaning 9
Released 21 February 2007.
Spring Cleaning 9 was a major rewrite of the product, and I was the primary for the project. We retired the PowerPlant-codebase and rewrote the project mainly using the Cocoa frameworks. We redesigned the application from the ground up to have a more flexible and expandable architecture, along with simplifying the user experience. I was responsible for much of the core application design and infrastructure, as well as generating some of the end tool and action plugins.
Internet Cleanup 4
Released 22 June 2006.
I was only minorly involved in Internet Cleanup 4's release, updating components like SpyAlert and IM Log Cleaner. I was deeply involved in the rearchitecting of Spring Cleaning 9, so my energy was focused there instead of here.
Spring Cleaning 8
Released 9 January 2006.
In Spring Cleaning 8, I created numerous new plugins: Music Finder search plugin, Image Finder search plugin, Disk Image Finder search plugin, Archive Finder search plugin, Add to iTunes action plugin, Import into iPhoto action plugin, Burn to Disc action plugin. The Font Finder plugin was completely overhauled into the new Font File Finder plugin. Performed modernizations, updates, and massive optimizations to the core file searching framework resulting in some big performance gains.
Internet Cleanup 3
Released 28 June 2005.
Internet Cleanup 3 was a major bit of work, since it was a complete ground-up rewrite of the product. We wanted to rewrite using the Cocoa framework, and much of the GUI and presentation logic is in Objective C and Cocoa. However I spent a good deal of time developing our internal "Gonzo" library, a C++ Carbon/Core Foundation-based library of engine code to help implement and drive much of the internal functionality of the product. I was chief architect and implementor of Gonzo, and it's modern, flexible base is core to much of what we'll be developing in the future.
 
Some application-specific bits of implemenation have been: a rewrite of SpyAlert, providing a more thorough scanning for spyware and loggers; IM Log Cleaner; logging functionality; working on core functionality (Gonzo); core threading issues; sheet and notification managers and bottlenecks.
Spring Cleaning 7
Released 17 August 2004.
Spring Cleaning 7 was a tight release cycle that saw me implementing a means to save Custom Search search configurations; removing Fat App Slimmer and Trim Fat; creating the "Logs & Temporary Items Finder" plug-in; adding a custom dock tile menu to the Spring Cleaning application; and fixing some long-standing bugs.
 
This product version also saw the introduction of the System Snapshot product, based upon tripwire. I guess I'm responsible for bringing open source to Allume, or at least bringing about Allume's first GPL product. The work was performed by a buddy of mine and I was the liason/manager for the project between him and Allume.
Internet Cleanup 2
Released 1 June 2004.
In the time since Internet Cleanup 1 and Spring Cleaning 6 were released, I worked on the Internet Cleanup 1.1 release, and also a project that is as of this writing unreleased and may never be released depending how things go. The project furthered my Cocoa skills, use of "real" threads (pthreads via the QpThread framework), and improved my abilities in ground-up application architecture.
 
For Internet Cleanup 2.0 my major tasks were creating the IM Log Finder plug-in, integrating MailCleaner into Internet Cleanup (originally part of Spring Cleaning), updating SpyAlert, adding table striping, windows saving and restoring their locations, adding a custom Dock menu, many other GUI changes and improvements, some long-standing bugs were fixed, and various internal changes (e.g. no more HeapManager so we can use direct Mac OS X memory allocations).
Spring Cleaning 6
Released 6 June 2003.
Internet Cleanup 1
Released 10 June 2003.
My teammates were focused on NetBlockade, so a lot was left for me to focus on. I updated to the StuffIt 7 SDK and switched to supporting StuffIt X archives. Created the Secure Delete Action Plug-in. Added Preview support. Removed kind string cache and query OS directly. Created SpyAlert plug-in. Created Language File Finder plug-in. Performing code changes to establish Internet Cleanup's GUI and form.
 
I find myself enjoying object oriented thought and design. UML is a fun tool for brainstorming and sketching out ideas. My Mac OS X developer skills are coming along as well. Getting to work with Cocoa as well as Carbon.
StuffIt Deluxe 7.0.3
Released 9 April 2003.
Added tar archive support to ArchiveSearch.
StuffIt Deluxe 7.0
Released 19 September 2002.
Mostly an update for ArchiveSearch, adding Zip support, Unicode improvements, cleaning up some handling of the archive searching logic.
Spring Cleaning 5
Released 20 May 2002.
Big project for Spring Cleaning 5 was writing FileSearch. Taking design patterns I started in ArchiveSearch for "searching", I wrote a framework that abstracted the criteria and bridged the Carbon File Manager implementations of searching for files on Mac OS. All core Spring Cleaning searches were rewired with this FileSearch engine, and it lead to Search Plug-ins such as Custom Search. I also improved the GUI support for drag and drop search contexts so the user could search folders. General Mac OS X support improvements were also made. I found the work on FileSearch to have improved my framework architecting skills; UML was a helpful tool during design, and my STL skills greatly improved.
StuffIt Deluxe 6.5
August 2001 - September 19, 2001 - v6.5
Updated ArchiveSearch to function properly under Mac OS X. ArchiveSearch 6.0 worked under Mac OS X but had lots of problems (things broken, crashing, etc... hey, Mac OS X was still a beta OS when StuffIt Deluxe 6.0 was released). This was just an effort to get it working and functional, no new features added... that'll be in ArchiveSearch 7.
Spring Cleaning 3.5.1 & 4.0
October 2000 - 4 April 2001 - v3.5.1
October 2000 - 6 June 2001 - v4.0
My next project for Allume was Spring Cleaning. For v3.5.1 I helped with the effort to transition to Carbon, mostly involving rewriting/translating Font Remover from it's Pascal heritage into C++. It was an interesting project given what Font Remover does and the way Carbon considers fonts vs. how you could poke around at fonts in "Classic". A learning experience all around. ;-)
After 3.5.1 shipped, my main project for 4.0 became the development of the Standard and Advanced modes of operation. I lead the design and implementation of the feature, including the invention of the Standard Mode GUI and revamp of the Advanced Mode -- all GUI savvy to the Mac OS X Aqua user experience. Converted the alert system to the StandardAlert mechanism (SC, iClean, and all plugins). Added the preferences GUI to iClean. The Standard/Advanced mode helped me to further explore notions of object-oriented software development (design and implementation).
StuffIt Deluxe 6
June 2000 - October 2000 - v6.0
When I first joined Allume (back when it was Aladdin), my first project was ArchiveSearch 6.0. I did not write the original spec, but did probably 90% of the coding on it. Fun experience. Learned a great deal about writing multithreaded applications.
Freelance Software Developer, Grand Pooh-Bah: Hsoi's Shop
1993 to present Contributing Editor: MacTech Magazine
September 1999 to October 2005

 

Software Engineer: Pervasive Software, Inc.
April 1999 to June 2000,
Tango Engineering
Development of the Mac-hosted Tango Editor.
  • Implemented the GUI support for Tango Class Files (debut, Tango 2000).
  • Implemented the GUI support for Create Object and Call Method Actions (debut, Tango 2000).
  • Design, feature, and implementation input into Tango 5, but this never saw the light of day as Pervasive killed Tango on 13 July 2000. Oh well, them's the breaks. :-)
Software Engineer: Metrowerks Corporation
June 1996 to April 1999
PowerPlant Engineering
Development of the most popular C++ application framework (roughly 40% of all Mac OS applications at the time (and many still today) were based upon PowerPlant) for Mac OS software development.
  • Performed initial ports of PowerPlant (and the Metrowerks Standard C/C++ Library (MSL)) to Carbon and Mac OS X.
  • Author, Contextual Menu and Menu Utility Classes (debut on CW Pro 4).
  • Author, Cursor Classes (debut on CW Pro 1).
  • Author, Debugging Classes (debut on CW Pro 3).
  • Author, Editable Text Classes (debut on CW Pro 1).
  • Author, sundry PowerPlant example code (PP cdev, LArray Demo, TextView, MarqueeAnts, OutlineTable, etc.).
  • Co-Author, Appearance Classes (debut on CW Pro 2).
  • Contributor, PowerPlant core (general improvements, bug fixes, optimizations, ANSI C++ compliance).
  • Contributing Author, Metrowerks Constructor.
  • Maintainer, Metrowerks Constructor for PowerPlant (start, May 1998)
  • Maintainer, Thread Classes (start, May 1998)).
Junior Software Engineer: Metrowerks Corporation
June 1996 to May 1998 Quality Assurance
Testing, validation, and regression of software products and product components. Author and implement test plans, administer and coordinate components for beta testing, collate and integrate components into the unified end-product.
Technical Support
Provide product support to customers (other software developers), finding solutions and solving problems in a timely manner. Validate user bug reports and escalate to development engineers. Specializations include:
Computer Lab Manager: Texas A&M Department of Speech Communication
December 1994 to May 1996

Graduate Research Assistantship managing the TAMU-SCOM Instructional and Research Laboratories.

Co-authored two grant proposals receiving US$79,000 for the development of a Communication Instructional Computer Laboratory. Also established the Communication Research Laboratory. Key committee member in the planning, design, and purchase of the labs and their equipment. Implemented and managed both labs.

Instructed 1500+ undergraduates per semester on computer assisted presentation skills. Maintenance of lab security. Assisted faculty and graduate research projects. Sundry administrative tasks.

Instructor, Public Speaking: Texas A&M Department of Speech Communication
September 1994 to December 1995

Graduate Teaching Assistantship teaching two undergraduate classes per semester in public speaking.

Instruction of undergraduates in public oratory and overall effective communication skills. Administered exams and graded student work and tests. I was the students' actual teacher, not an assistant for a professor.


Publications

John C. Daub. Cool Tools: ARTIS Screen Tools. Useful utilities for pixels measurements. MacTech Magazine, Vol. 19, No. 9 (September 2003).

John C. Daub. Viewpoint: Apple's Developer Toolchain. Or, how I learned to appreciate Objective C. MacTech Magazine, Vol. 19, No. 8 (August 2003).

John C. Daub. Viewpoint: What we can learn from OpenBSD. MacTech Magazine, Vol. 16, No. 9 (September 2000).

John C. Daub. What Makes You Productive? Tools and toys to enhance your productivity. MacTech Magazine, Vol. 15, No. 12 (December 1999).

Ron Davis. John C. Daub, Contributing Editor. Learning to Tango. MacTech Magazine, Vol. 15, No. 10 (October 1999).

John C. Daub. Tango 2000 Unveiled: Extend to Tango application with COM, JavaBeans, and the new built-in Web analyzer. Tango Developer's Journal (feature article), Vol. 1, No. 1 (Fall 1999).

Aaron Montgomery. John C. Daub, Technical Editor. Threaded ACGI's in PowerPlant MacTech Magazine, Vol. 15, No. 7 (July 1999).

John C. Daub. Utility in Utilities: Exploring the PowerPlant Utility Classes. MacTech Magazine, Vol. 15, No. 6 (June 1999).

John C. Daub. PowerPlant's Debugging Classes: Techniques and tools to help you find and prevent bugs. MacTech Magazine, Vol. 15, No. 5 (May 1999).

John C. Daub. PowerPlant Tips, Tricks, and Gotchas: Tidbits of knowledge to improve your use of PowerPlant. MacTech Magazine, Vol. 15, No. 4 (April 1999).

John C. Daub. Modifying Objects at Runtime in PowerPlant: A look at PowerPlant's Attachments mechanism. MacTech Magazine, Vol. 15, No. 3 (March 1999).

John C. Daub. Arrays, Iterators, and Comparators... Oh my!: A look at PowerPlant's Array Classes. MacTech Magazine, Vol. 15, No. 2 (February 1999).

John C. Daub. The Ultra-Groovy LString Class: An introduction to the PowerPlant-way of working with strings. MacTech Magazine, Vol. 15, No. 1 (January 1999).

John C. Daub. What Is PowerPlant? An introduction to and overview of the Metrowerks PowerPlant application framework. MacTech Magazine, Vol. 14, No. 12 (December 1998).

John C. Daub & Dave Mark. From the Factory Floor: A PowerPlant Update, Part 2. MacTech Magazine, Vol. 14, No. 11 (November 1998).


Lectures

The Virtual Teleworker
A lecture given to the ATI Telework Group, a part of the Texas State Energy Conservation Office Comptroller of Public Accounts. This lecture discussed the realities of telework from both the teleworker (employee) and home base (employer) perspectives, and how to balance the realities, wants, and needs of both perspectives. Given 14 March 2002.


Computer Experience

Operating Systems
Languages : Programming
Languages : Scripting
Languages : Markup
Development Tools

Education

Texas A&M University; College Station, Texas
August 1994 to August 1996
GPA: 3.5/4.0
Degree: Master of Arts, Speech Communication
Thesis: The Mediating Effects of Choice Upon Computer Self-Efficacy (oh who am I kidding... I'm probably never going to finish the thing.) :-)
Area of Study: Communcation and Technology. An examination of technology and their impacts upon society, culture, and our communication processes.

James Madison University; Harrisonburg, Virginia
August 1990 to May 1994
GPA (Major): 3.5/4.0
GPA (Overall): 3.2/4.0
Degree: Bachelor of Science, Speech Communication
Major: Speech Communication, Concentration: Interpersonal Communication
Minor: Music Industry

Homeschooling
My wife and I home school our three children. My wife is the primary educator, but I too teach the children and act as "principal" of our school.


Volunteer Work

Cub Scout Pack 403; Austin, Texas
Summer 2005 - Day Camp Den Leader
Fall 2005 - Assistant Webelos Den Leader
Spring 2006 - Spring 2007 - Webelos Den Leader
Spring 2006 - Present - Outings Chair
Spring 2007 - Present - Pack Trainer

Boy Scout Troop 403; Austin, Texas
Spring 2007 - Spring 2008 - Assistant Scoutmaster


Hobbies

  • I am a 1st degree black belt in the traditional Korean martial art Kuk Sool Won. I enjoy researching and studying martial arts in general.
  • I enjoy riding and working on my Yamaha V Star 1100 Classic.
  • Spending time with my family is an enjoyable way that I try to spend as much of my time as possible. :-)
 

 


These pages copyright ©1999-2008 John C. Daub. All rights reserved.
Click here for legal mumbo jumbo.

Page Created: 28 December 1999
Last Modified: 23 April 2008