Specification Sheet

Software Engineer

 

 

William W. Sellers 

3809 Greystone Legend Place

Oviedo, FL 32765

 

www.VirtualOutpost.com

WSellers@VirtualOutpost.com

(321) 279-3313

 

If you need an experienced software engineer to create high-quality software, be a fast learner and a team player, then look no further. You will look good.  Your customers and investors will be happy.

 

High-Quality Software: Do it right the first time!  Get excellence in design and code. Don’t waste time and money finding, tracking and fixing simple mistakes. Get full use of methods that help bring out errors automatically.  Get comments and documentation that are meaningful and well-written.

 

Maintainable Software: Don’t pay expensive salaries so that someone can figure it all out again.  Get well-documented software that explains itself so maintenance work is as quick and smooth as possible. Get it from an engineer experienced in upgrading and maintaining pre-written work. Use the engineer whose products are used over and over.  Did you ever ask “why did we do that?” six months later? This engineer will know.  He logged those decisions.

 

Eliminate Bugs! Find the bugs that have eluded detection for ages and clear them out. This engineer can even get the ones caused by compiler errors, corrupted ARP tables or simple power brown-outs.

 

Platforms:

 

IPhone / iPod Touch

Macintosh OSX

   Carbon APIs

   Cocoa APIs

Macintosh OS Classic

FileMaker

Palm OS

Windows

 

Languages:

 

Objective-C

C++

C

Java, JSP

PowerPC assembly

MC68K assembly

Pascal

Postscript

Tools:

 

Xcode

Interface Builder

CodeWarrior

FileMaker

Ant

MySQL

PostgreSQL

 

Other:

 

Cross-Platform code for:

   MacOS, Windows,

   PalmOS, SUN, VAX and others

International code (L10N)

Client-Server applications

Libraries and APIs

Project re-designs

 

 

Employment History

 

Sept. 2001 to Present    Virtual Outpost   Title: Senior Consultant

Self-employed independent Consultant/Contractor in software development and computer support.

-        iPhone Software Development Experience Includes: 

-        understanding managed memory versus garbage collection

-        quickly finding errors with over-releasing objects from the autorelease pools

-        understanding of MVC design patterns

-        maximizing layout in Interface Builder instead of coding up view components

-        using profiling tools (like Instruments and Shark) to find leaks and performance issues

-        use of Source Code Management to maintain easy teamwork and code revision history  (specific experience includes Subversion, CVS and SourceSafe)

 

Products Worked On

o       ChronoGami – A streamlined time-tracking program. Available free in the iTunes AppStore.   Product website at www.virtualoutpost.com/apps

o       Quizmo - multiple-choice quizzing engine for Licensure Exams, Inc. The application engine performs quizzes, scoring and sound effects, Licensure fills in icons, questions and answers from their database of certification practice exams, and sets each application name according to the practice exam being purchased. Free and paid applications are based on the engine.  Use the iTunes application to search for “Licensure” or following this link: http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewArtist?id=300730213
Licensure Exams, Inc  website: http://licensureexams.com

o       FlashCard - quizzing engine for Licensure Exams. The engine displays flashcard-style questions, flips to an answer, sound effects and allows the user to score themselves. Licensure fills in icons, questions and answers, and sets application name based on which practice exam is being purchased. Application has been delivered to Licensure, but applications based on the engine have not yet been shipped at this date (8-12-09)

 

-        Macintosh Development and Support

o       BounceBack product for CMS (see below)

o       FileMaker plug-in development C/C++ and Java

o       Mac OS X Server installation and support (X-Serve and Desktop hardware)

o       Mac OS X desktop client installation, setup, support, and erasure (for retiring hardware)

o       Network Troubleshooting

-        FileMaker Development and Support

o       Database Design and Support

o       FileMaker Server installation and support

o       Macintosh Plug-in Development

o       Java Plug-In Development (in 360-Works ScripMaster)

o       PHP Development (with SmartPill plugin)

-        Miscellaneous

o       Conferences:  Apple WWDC,  FileMaker Devcon

o       Professional Memberships: Apple Developer (Mac-Select & iPhone),  FileMaker TechNet,

o       Participant in local user groups:  FLMUG (Macintosh), FMPUG (FileMaker), OJUG (Java), InDesign Orlando, iPhone Users, CodeTown

 

Of Special Note:

-April to May 2005 – CMS Products,  Contract development for Macintosh user interface (GUI) portions of the “Bounce Back” line of backup products, primarily porting or copying the interface of the Windows product. This development was all in C++ using the Macintosh Carbon APIs. Cross-platform code was provided by CMS for the base functionality such as setting up whole-drive encryption.

 

-Feb 2003 to May 31, 2003

Imaginary Lines, Inc.: Contract Engineer creating Java Server Pages and Servlets, for the Sally Ride Science Club.  Goals included deploying email web pages and a web-based discussion forum. Initial requirements were to deliver all work in Java, have web content delivered in XML, and all forum data was to be stored in an SQL database. All content was to be served with JBOSS/Tomcat. Since I had never any of these professionally, I had a lot to learn very quickly.

 

The email pages work was short, but the initial design direction was scrapped as too bug-prone and a STRUTS-based page was built. The forum work was to be based on existing open-source java-based forums, backed by either. This required assessing the existing candidate systems for a feature-match to the  company’s requirements (such as moderated forums and supported databases.)  The selected system was YAZD.  The forum data was initially stored in a PostgreSQL database during development and was deployed using an MS SQL Server.

 

1999 to Sept. 2001 for AOL, AOL-Anywhere Division-Palm:  Title: Senior Software Engineer  Work: Palm Client

Developed C and C++ software for 3 versions of PalmOS AOL clients.

-        built an HTML-removal and processing library.  1st target was PalmOS, but it was used by other groups on other platforms, including WinCE, PocketPC, HP, and SUN computers.  The results met the following requirements so well, I heard “we used that code again” for quite a long time:

o       remove HTML from email messages

o       be very stable and maintainable (included self-checking code for debug-mode builds which automatically detected problems with the tables)

o       use as little heap space as possible, preferring data be in code space

o       use as little code space as possible

-        Acted as team lead for internationalization of the software and worked with the localization group in Ireland to handle issues. (Such as the inability to create multi-line checkbox GUI items in that version of PalmOS.) Got a letter of praise from the localization department.  The resulting code was used to deliver localized apps in many countries and was used to create branded versions such as the CompuServe and Gateway Palm clients.  When the project was complete, the team members that had been working on version 2 of the U.S. Palm client decided to discard their code-base and re-start from the Internationalized version 1 code-base.

-        Adapted the user interface elements

-        Worked on an email Palm conduit for the Mac and installers for delivery.

-        Detected and eliminated a bug in the main client code-base which had eluded the Mac client group for over a year.  (An off-by-one bug in a random-choice section resulted in a bad DNS result in 1/11 attempts.)

-        Built a tool to allow PC-to-Mac and Mac-to-PC conversion of CodeWarrior’s Palm resource files. This tool also fixed bad PICT resources created by the Windows CodeWarrior tools. This made it possible to use both PCs and Macs on the team’s project.

 

1997 to 1999 for AOL, Advanced Technologies Division:  Title: Software Engineer  Work: Software Libraries

Worked in development and support of AOL’s proprietary PC-Mac cross-platform multimedia libraries, called the “ART” libraries.  We utilized base routines for compression/decompression of specific data from our specialists and shipped them with a single encapsulating API.  These streaming libraries were built as plugins to the main architecture to allow parts of the code to be added and removed, making an application (or an application update) as small as possible. All implementation was in C with C++ wrapper objects.

 

-        on my first assignment, I found a bug which had evaded discovery since the original development of the library 2+ years before.

-        Designed the Macintosh ART self-player application.  This application was used to play multimedia greeting cards with only the exact number of ART plugins needed, minimizing file size. (Important for customers on modems.)  Designed the user interface (GUI) to be simple and self-explanatory. (No one ever asked me a question about it.)

-        SourceSafe and CVS code management systems

 

1989 to 1997  for BellSouth   Title: Systems Analyst   Work: Yellow Pages Publishing.   

Responsibilities: System Design, implementation, support and integration for the client-side of a custom client-server system for display ad creation and publishing. When I started, the system (called SAMSON) was sold as a commercial product that existed in two versions; client-server and standalone. SAMSON was later made an in-house-only product for BellSouth after being identified as a competitive advantage for the BellSouth line of yellow pages by an independent consultant.  I designed and implemented many new features, re-wrote many old ones (sometimes gaining 10x performance improvements), coordinated with the engineers in charge of the server to improve our custom protocols and create new parts of our communications libraries.  I was also responsible for a cross-platform image codec used on Macintosh and VAX computers. I met with internal customers to assess needs, gather requirements, address issues and discuss future development directions. (The two big questions: What are trying to accomplish?  How can I help you?)  I also provided the last line of support for the Macintosh client applications.

 

-        Worked through the complete re-design and re-write of the Macintosh client application project (one manager and myself were on the project from beginning to end.  Other engineers came and went, working as needed. The project took 1.5 years.) 

o       Reviewed, suggested, documented and implemented new coding standards for the work.

o       Merged the client-server and standalone versions into a single code base.

o       Changed development environments from Consulair to MPW (later changed to CodeWarrior).

o       Transitioned from AppleTalk communications to TCP/IP communications

o       Re-designed and upgraded user interface elements (GUI) for new object paradigms, faster and easier workflow, newer OS elements, lower training requirements for users, etc.

 

-        converted an image codec library from Motorola 68000 (aka 68K or 680x0) assembly code to C for portability and maintainability.  Documented same for other developers to use. (CCITT Fax group3 and group4, LZW, in TIFF files)

-        Moved the above C-based image codec from Macintosh to VAX

-        Moved all code from 68000-based MPW projects to PowerPC-based CodeWarrior projects

-        Used Projector and Visual SourceSafe code management products

-        Integrated the Houghton-Mifflin spelling checker to SAMSON and TARRIFS (a legal documents management system) projects

-        Used packet-sniffing tool to find communications problems.  In one case, discovering that the ARP table on a VAX was being corrupted by bug in Apple’s MacTCP implementation (somewhat like ARP poison.).

-        Developed a prototype website for comparing and choosing cell phones.  Integrated QuickTime-VR objects for visual comparisons.

-        Worked on standards committees

-        Worked with other groups to develop and implement the first process-color Yellow Pages system

-        Overcame a source code problem by hex-editing the needed changes into the binary executable code to remove a feature from the product.

-        Implemented onscreen Bezier curves for object drawing

-        Built tool to examine TIFF files for problems such as missing tags or bad end tags

-        Maintained company policies of off-sight backups and documentation of software licensing for the development group.

 

 

Education

Bachelor's of Computer Engineering from Auburn University, 1989. (ABET and CSA Accredited Curriculum)

 

Other Organizations

Past Secretary and Treasurer, Greystone Community Home-Owners Association,

Active Member and past President, Orlando Macintosh Users Group (FLMUG.org)