Home Services Resume Portfolio Weather Sailing Links


Joseph Oster
Joseph Oster
Web Application Programmer
JavaScript / AJAX / CSS / PHP / JSP
www.JosephOster.com -
Bandon, Oregon
...sailing resume
2009 present

Wingo Web Site DesignJosephOster.com (formerly wingo.com)

Contract Programming, Consulting

Senior Front End Engineer, JavaScript / AJAX / HTML5 / CSS3 / PHP5

Programming, prototyping and consulting on "front end" UI features using JavaScript, AJAX, HTML5/CSS3, often mixed with PHP or JSP. Innovative custom solutions including control of a network PTZ camera with "point of interest" icons overlaid on the scene, scoring, history and ranking for online games using AJAX/REST APIs, extensive new features for managing a widely used acitivy booking system, an AJAX reservation widget with availability calendar based on number of seats needed, an AngularJS mobile app using PhoneGap to access native features (compass, GPS, etc.), on-the-fly JavaScript/CSS modifications via proxy server to support an outdated SAP application on Safari, and more. Also doing 3D CAD work in SketchUp and Rhino/Grasshopper.

May 2013 Sep 2013


Virtual Organization

Senior Front End Engineer, JavaScript / AngularJS / Bootstrap / CSS3 / HTML5

Created a "taxonomy browser" using a REST API to explore and traverse topics of interest. Optimized using responsive design techniques to work equally well at both full and mobile screen sizes. Implemented for multiple domains and topics using Bootstrap themes and a CSS "skin" for branding.

Commonly used tools: AngularJS, jQuery, Twitter Bootstrap

Jul 2009 Sep 2009


Virtual Organization

Senior Front End Engineer, JavaScript / DHTML / CSS / Velocity Templates / XWiki

Curriki is an online environment created to support the development and free distribution of world-class educational materials for grades K-12. Did maintenance, repairs and enhancements on legacy code, including CSS, ExtJS and Velocity Templates on the XWiki platform.

Commonly used tools: HomeSite editor, ExtJS, jQuery

Aug 2008 Jun 2009

BDLicense.comBDLicense.com (now Syapse.com)

Menlo Park, CA

Senior Front End Engineer, JavaScript / DHTML / Ajax / CSS / Django

Converted static HTML design to functional web application in a Django/Python environment. The goal: to "make it easy to find partners by creating a unique web-based application that expertly matches potential licensees of drugs and medical devices with new technology based on scientific compatibility". Interactive features include a create/edit process for describing technologies, a search/alert process for creating queries, a browse process to sort through technology listings; multi-row DHTML forms, AJAX, auto-suggest/complete, term validation, ranking, favorites, introductions and profile pages.

Commonly used tools: HomeSite editor, jQuery JavaScript library

Sep 2007 Jan 2008

StealthCo.com (real name not disclosed)

Palo Alto, CA

Senior Front End Engineer, JavaScript / DHTML / Ajax / CSS / PHP / SQL

Created a JavaScript DHTML widget for a VLC media player plugin and a video account management web site to support it. The widget could be embedded anywhere (private web pages, blogs), so it used dynamic SCRIPT tags instead of AJAX to communicate with the server. It could be "skinned" using CSS and configured w/ options (auto-start, channel to play, controls, etc.); the viewing area could be re-sized and the width/height ratio changed for each video. Sidebar of widget showed other channels, mouse-over "tooltip" for channel status and schedule of videos to follow.

Web site included AJAX sign-up/login w/ email verification and approval for private alpha, captcha image verification, feedback, video upload page with AJAX progress bar, extensive "My Channels" editing page w/ drag/drop for arranging videos in sequence, ranking and comments, profile page, fixed width or "liquid" (responsive) layout.

Users could change channels but not start them "on demand", so multiple progress bars were used to display each channel's current position. Created a series of PHP-5 classes for major server-side components and a 'ViewerEmulate' utility to act as a typical User, unit testing all features and logging results. Implemented image server scripts to create and cache different size jpeg images from original source, for both video "covers" and profile images.

Commonly used tools: HomeSite editor

Feb 2007 Jun 2007


San Mateo, CA

Senior Software Engineer, Ajax / JavaScript / DHTML / CSS / JSP/JSTL and custom tags

Worked with UX team and visual designer on total re-model of Engage.com - Extensively revised 300+ JSP pages (HTML, CSS, JavaScript, JSTL and custom tags) to new design and style guide, added AJAX and DHTML features including animated actions, "hover profiles", dynamic menus and "tooltip" dialogs (variable size boxes that appear and disappear as needed with PNG-24 drop shadows, style and behavior differences), new "front door" AJAX sign-up / sign-in process and related edit profile pages, chopped designer's Photoshop graphics for "pixel perfect" page layout, site navigation, some aspects of Spring framework.

Commonly used tools: HomeSite editor, Eclipse editor w/ CVS and Tomcat plugin Java Development Tools, Photoshop

Aug 2006 Oct 2006


Palo Alto, CA

Senior Software Engineer, DHTML / Ajax / JavaScript / CSS / JSP

Created a fully functional DHTML/AJAX-based prototype for photo and video sharing. Features include: thumbnail browsing with filtering ("Most Popular", "Most Recent", etc.), tag cloud, DHTML 'Viewer' for full size photos and playing videos without leaving thumbnails page, Ranking, "Pass It On", "Add to Favorites", folders ("collections"), drag & drop to arrange sequence of thumbnails, edit title description tags, single and multi-file uploads with progress bar and text, "My Channel" and view/edit profile, personalized CSS, AJAX login, sign-up (registration).

Commonly used tools: HomeSite editor, Subversion source control

Jan 2006 Aug 2006


Palo Alto, CA

Senior Software Engineer, DHTML / Ajax / JavaScript / XSL / XPath / CSS / PHP

Implemented a DHTML / Ajax "geography slider" to select locale and widen or narrow radius, with add / remove tags, to affect search results. Implemented "Edit Item Flow", a multi-page process that allows Users to create their own HTML content using a Rich Text Editor (WysiwygPro), to upload images for their content, to add rich media "attachments" with video and audio players, to assign tags from an Ajax updated "tag cloud", and to edit other meta data related to each item.

Commonly used tools: HomeSite editor, Subversion source control

Jan 2006 Mar 2006

iMemoryBook.com (memorypress.com)

Provo, Utah

Senior Software Engineer, DHTML / Ajax / JavaScript / CSS / PHP

"The Internet Memory Book - Collaborate with family and friends to turn photos and memories into a beautiful hardbound book."

Developed a DHTML / Ajax based editing system that shows the User exactly what the finished book will look like at all times. Graphic views generated with LaTeX show two pages side by side, precisely as they will appear when printed. Moving the mouse shows "hot spots" that can be edited by clicking to invoke "widgets" for titles, captions, text and photos. Photos are placed and repositioned using drag and drop from a "tray" of uploaded images. Powerful and intuitive crop, zoom and rotate features are available. A book can be re-organized by dragging and dropping whole sections of the Table of Contents, including moving sections between different levels in an arbitrary hierarchy. Patent granted: 7917848.

Commonly used tools: HomeSite editor

Nov 2005 Jan 2006


San Francisco, CA

Senior Software Engineer, DHTML / JavaScript / CSS / PHP

Implemented and heavily customized a Yahoo! Store to deliver personalized digital content in the form of astrology reports, including real time export of orders and delivery of "product". A link on the confirmation page leads the User to immediately and securely view the customized reports using birth date info entered before the sale was completed. A "tiny URL" system was used to hide the personal information and prevent hacking. Developed a report template system to transform XML versions of the reports to HTML with graphic elements.

Commonly used tools: HomeSite editor, Subversion source control

Aug 2005 Nov 2005

IMVU.com (screen snapshots)

Palo Alto, CA

Senior Software Engineer, DHTML / AJAX / JavaScript / CSS / PHP

IMVU offers a 3D chat client using animated characters called avatars. A developer community of members creates and sells enhancements that allow avatars to be highly personalized.

Implemented AJAX editing features to personalize the public profile pages of each registered user. Created widgets for setting text, background colors and images, panel borders for each panel header, panel body and the page itself, custom HTML / CSS content in each panel body. Drag & drop to re-arrange panels within and between columns. Graphic "stickers" attached to panels (with paginated "find lost stickers" feature) were exchanged between users, along with gifts for use by one's 3D avatar, and developed into a major micro-transaction business. Import profile from 'myspace.com', "safe mode" to disable custom content for debugging, inline help and gallery upload features.

Hand coded DHTML, CSS, JavaScript classes for a variety of AJAX "widgets", including drop down menus for each panel, PHP integration to personalize each page using IMVU's SQL API (MySQL database), implemented a page using AJAX to edit the contents of a 'My music' panel using search results from Amazon.com and enhanced a Google map showing the location of avatars currently online at IMVU.

Commonly used tools: HomeSite editor, CVS source control, Reactor Server, phpMyAdmin

Jul 2005 Aug 2005


Palo Alto, CA

Senior Software Engineer, DHTML / AJAX / JavaScript / CSS / JSP

Extensive functional prototyping in JSP, DHTML and AJAX; site design and navigation, creating "jots" and "stories" using a Rich-Text-Editor, uploading media - none of it appears on their current web site...

Oct 2004 Mar 2005

Opsware (formerly Loudcloud, now 'HP Data Center Automation Center')

Sunnyvale, CA

Senior Software Engineer, DHTML / JavaScript / CSS / JSP

Hired by the UI Design Lead to do rapid prototyping of DHTML features and pages related to a major new "Server Groups" component of the Opsware Command Center (OCC). Also worked in production code to implement many of the prototype pages for the "Darwin" release of OCC in Spring 2005. Advanced JavaScript and JSP programming, DHTML, XML processing in both JavaScript and Java; 4.5 months.

For the prototyping phase, I created dozens of XML files to represent navigable views of a hierarchical structure of nested groups (each with certain properties) containing servers (each with many "columns" of data to display). Then, first with JavaScript and pure DHTML and later with JSP on Tomcat, parsed those XML files and presented increasingly refined and detailed versions of display and navigation, row selection, menu toolbar and popup modal dialog features as defined in a very elaborate written spec (which itself was evolving along with the work). Did benchmarking and JavaScript optimization at this point to test performance with "thousands" of rows.

In the production phase, I spent another two months working with others to translate the prototypes I had created into working pages in the Opsware Command Center (OCC). Replaced XML sample data with calls to Java APIs, implemented reliable "transactions" for "New / Copy / Move" and other modal dialogs, converted all text to i18N resources, enhanced DHTML and JavaScript functionality. Besides my primary focus on new pages for creating and managing groups of servers, I also contributed significant JavaScript/DHTML and JSP programming to enhancing two existing pages for groups: the "Install Wizard Confirmation Screen" and "Attached Nodes Tab".

Commonly used tools: HomeSite editor, ClearCase source control, JBoss/Server, XML for <SCRIPT>, javax.xml.parsers, Photoshop, ClearQuest

Aug 2003 May 2004

LightSurf Technologies Inc.

Santa Cruz, CA

Web Engineer, JSP / Java "Front End" Application Developer

Application programming on the Sprint PCS Vision Picture MailSM web site (and here), primarily "front end" features using JSP, Java and JavaScript programming, custom and JSTL tags, XML documents, Struts/Tiles coding, CSS and HTML layout.

Specific projects included:

click to see VideoMail example
click to see VideoMail example
  • video player detection and display for QuickTime and Windows Media Player formats with JavaScript controls (see VideoMail example).
  • filter albums by "Calendar View" and "Media Type" ('Pictures', 'Video' or 'All').
  • modifiable "From" email address with email verification link for Shares created on phones.
  • embedded audio player with JavaScript controls.
  • enhanced slideshow pages, consolidated common code, wait for videos to finish, repaired Share creation and preview pages, Address Book enhancements to support Groups and Share creation.
  • functional prototype of "Universal Personal Organizer" using internal TrueSync Server (and here); two way exchange of data (backup and restore) between a cellular handheld device (Palm Treo) and web application for phone numbers, contact lists and a wide range of data related to features found in Personal Organizers (events, notes, etc.), which were then available in a web based version of a PIM ("Personal Information Manager"), merged and synchronized with the wireless phone data, available to be downloaded to a new cell phone when the old one is replaced or upgraded.
  • participated in conversion of core LightSurf PictureMail technologies to Struts/Tiles for application branding by other wireless carriers; created master default CSS stylesheet and customized for each retailer.
  • MMS Composer DHTML drag & drop MMS Composer combines pictures, text, audio and videos for web-based multimedia messages to phones or email addresses; access to media in all Albums and Gallerys, slideshow and single "slide" previews, session persistence, etc. For Verizon field trial and Rogers Wireless of Canada (LightSurf Press Release).
    Hold mouse down to drag this animated series of screen shots.
MMS Composer
drag me!

Commonly used tools: HomeSite and Eclipse editors, Struts/Tiles, Perforce, Resin server, Ant, Photoshop, CSE HTML(XML) Validator, ClearQuest

Nov 2002 Apr 2003

Outlook Technologies, Inc.

San Francisco, CA

Web Engineer, JSP / Java "Front End" Application Developer

Responsible for creation and maintenance of around 80 JSP pages, doing JSP / Java and JavaScript programming, advanced DHTML including insert, delete and re-sequencing of TABLE rows in the browser, alternate screen layouts of FORM fields based on User input (all without refreshing the page from the server), fixed column headings with scrolling TABLE rows, advanced CSS using positioned content, browser validation of FORM data, User interface design, minor modifications to servlets.

JSP application programming on a Spend Management system for eBreviate, part of the A. T. Kearney Procurement Solutions unit. Spend Management Technology is a database that accepts and consolidates data feeds from multiple historical accounts payable systems to track spend across the enterprise by division, business unit, supplier, and category/commodity. It allows companies to identify and monitor compliance of negotiated agreements, provides comprehensive spend information on company/subsidiary relationships to fully aggregate and leverage spend, and facilitates the management of T&E and P-card (Procard) spending.

Commonly used tools: HomeSite editor, Perforce, WebLogic server, Bugzilla, IntelliJ, Photoshop, Ant, Cygwin, WinSCP

Apr 2000 Nov 2001


Redwood Shores, CA

Web Engineer, JSP / Java "Front End" Application Developer

Photography-oriented web site, "film quality prints from your digital camera", personalized photo greeting cards, framed prints and other products, manipulation of images, borders, cropping, address book, shopping cart, etc.

Participated in two major revisions of the Shutterfly web site over a period of 19 months.

As member of small "front end" team, focused primarily on JSP ("Java Server Pages") and JavaScript programming in a BEA WebLogic environment. Produced "rapid functional prototype" and final production web pages on a regular, short schedule (2..4 weeks). HTML page layout, style sheets, PhotoShop work, JavaScript and Java application programming were used to accomplish the following tasks:

  • Did the majority of front end application programming for the photo greeting cards, framed prints, share and support sections; page layout, navigation and interactive functionality.
  • Developed a simple Java based system of maintaining state and providing extensive functionality among a collection of pages, independent of "back end" support (database, image server, etc.), yet easily connected to same (via Java). Used browser cookie and image replacement tricks to make sure no text typed by User into forms is ever lost (no matter what button is pushed!).
  • Validation of all data entry forms throughout the site, protection against cross site scripting.
  • Contributed programming to most functional pages throughout the site, especially those related to order review, summary, confirmation, history, address book. Also, many "hidden" features such as:
    • "skins" for different partners besides Shutterfly.
    • a pop-up warning window that appears with increasing frequency, starting six hours prior to a planned shutdown (for web site upgrades).
    • saved user preferences, available centrally and scattered individually on appropriate pages.
  • Developed in JSP and Java the interactive portion of a content management system that allows marketing people to schedule in advance the dynamic content of "promo wells" (small graphics scattered over dozens of web pages, each with a link to a promotional page). Included support for promo well content specific to each partner (see "skins" above).

Commonly used tools: HomeSite editor, Perforce, WebLogic server, Bugzilla, WS_FTP Pro, Photoshop

Jan 2000 Mar 2000

netSyndicate.net (now Syntrio.com)

San Francisco, CA

Senior Web Architect

Produced two new courseware modules from scratch using dynamic HTML in JavaScript functions, positioned LAYERs and Drag&Drop features. JavaScript programming, HTML layout, maintenance of existing code including ASP pages in administrative tracking system. Re-architected the way online courseware modules communicate with back-end tracking system. Eliminated all but one ASP page per module and integrated stand-alone and "tracking" versions of existing modules into single versions working with or without custom content and tracking (tremendous reduction in maintenance!). Introduced text scripted multiple choice quiz builder using JavaScript DHTML layout and scoring. Updated many old courseware pages with clean simple FRAMESET-based JavaScript code. Contributed to new company web site including Perl scripts.

Sep 1999

CharitableWay.com (defunct)

Palo Alto, CA


Contact forms and Perl scripts, frames based prototyping, "URL masking" project to provide each charity with unique URL (involved configuring Netscape Enterprise Server to run a custom Perl script instead of "File not found" message; the script parsed the URL, did a database lookup of the "directory" name to obtain a numeric ID, then called the BroadVision .jsp engine with appropriate query to generate unique page for each charity). Three weeks consulting.

1995..1999 present

Wingo Web Site Design (formerly wingo.com)

Sausalito, Santa Rosa, Half Moon Bay, Santa Cruz, Kauai (HI)

Independent Consultant

  • Web site design, programming, remodeling and repairs.
  • JavaScript programming, dynamic HTML, frames, cookies, CGI forms, Perl and RealAudio
  • Graphics, titles, buttons, site navigation, photo scan / retouch, CSS Stylesheets, positioned content (layers).
  • Domain name registration, search engine placement, meta-tags
  • e-Commerce:
    • Shutterfly.com (JSP and JavaScript applications)
    • ArmchairSailorBooks.com (custom JavaScript and Perl, since acquired by West Marine)
    • Ketubot by Naomi (custom JavaScript and Perl, cookie-based)
  • Services, Portfolio
1990 1995

CAM Data Systems, Inc.

Fountain Valley, CA

Software Development Manager for PROFIT$ (Senior Lead Programmer, AKA Jai Gopal Singh)

After being acquired by this former competitor, I continued to lead development of the PROFIT$ Merchandising System described below. Implemented reliable unattended document handling between remote store locations for Purchase Orders, Receivers and Transfers. Developed automated client-server utilities using existing "pMail" wide area network (see below) for continuous upgrading of large installed User base (thousands of stores), enhanced reporting features for large multi-store operations (30..50, 255 max), and other major functional improvements throughout the application.

Software and computer hardware sales related to the PROFIT$ product grew from four to seven million dollars per year during this period.

1981 1990

MicroStrategies, Inc.

Millis, MA (Boston area)

Co-founder, VP of Software Development (Senior Lead Programmer, AKA Jai Gopal Singh)

Co-founder and "Senior Lead Programmer" for the PROFIT$ Merchandising System, a proprietary Point-Of-Sale Inventory and Reporting system for single or multi-store retail shoe and clothing outlets. Systems sold widely in the U.S., Canada, Mexico, and the Caribbean (with international currency exchange and display issues!). Was software architect and chief among a team that grew to five programmers. The PROFIT$ product eventually supported dozens of software and hardware support technicians, sales people, assorted executives and generated 20+ million dollars in gross sales. (see CAM Data above)

Among other things, two key features made PROFIT$ unique at the time:

  • Report Generator - From the beginning, a powerful custom report generator was key; it offered the ability to produce reports at any level of detail from vendor, department, class, subclass, color and material down to individual SKUs (Stock Keeping Units). A "Group-by" feature with associated search criteria, user-defined column headings (choose up to 80 from list, arrange sequence), ability to save pre-defined reports and other features made the Report Generator a centerpiece of any sales demo.
    Very unusual for the time, any arbitrary date range could be used. All original documents (sales, receivers and transfers) were saved, then re-examined and summarized whenever the date range changed. This allowed many different reports to be produced quickly for a given date range, passing though the original data only once.
  • Two-dimensional size / width grids. Until then, inventory systems universally assigned a different SKU to each size and width of a shoe (for example). We allowed hundreds of user defined grids with column and row headings for shoe and clothing sizes. Each SKU was assigned an appropriate grid which was used as a template when ordering, receiving, and optionally, reporting on that SKU.

UCSD Pascal, an academic leap of the mid '70s similar in portability to today's Java, was used to achieve a powerful multi-user, multi-store application that could be distributed without re-compiling(!) across a variety of hardware (Intel, Motorola) and operating systems including single and multi-user DOS, Atari machines, Novell Networks and large UNIX networks.

A massive library of general purpose programming tools including database, list and screen handling features was created to support the PROFIT$ application (and others), many using object-oriented techniques pioneered in Smalltalk and Modula-2, translated to Pascal.

Implemented first on early "super-micro" computers using an SQL relational database, performance and data integrity demands eventually dictated a proprietary variable size record file system ("VSDO"), optimized for highest performance on UNIX systems. Complete with appropriate file maintenance utilities and supporting multi-partition files far larger than the limits imposed by the UCSD pSystem, this key development allowed PROFIT$ to grow with the demands of customers having 30..50 stores (255 max) and from 100 to 4000+ receipts per store in a single day.

With Jon Bondy, designed and implemented "pMail", a peer to peer Wide-Area-Network for unattended file and data (message) transfers between remote stores, including object code updates of all software. Logical messaging between applications on machines in remote locations supported easy, reliable, distributed database updates.  Implemented in 1986 using the portable pSystem and direct dial, point to point modems, prior to development of the commercial Internet as we know it today.

1980 1981

Satellite Telecommunications Systems

Washington, D.C.

Analyst (AKA Jai Gopal Singh)

  • Participated in writing and presenting a study for AT&T regarding the potential impact in seven key technology areas of the break-up of the Bell System.
  • Study on minimal spacing of geosynchronous satellites in preparation for the WARC (World Administrative Radio Conference).
  • Study of early "teletext" systems (Canadian Telidon, French Antelope, British Postal system, etc.) in connection with potential offering by a cable TV company.
  • Feasibility study to change frequency of existing microwave systems, eliminating interference to direct broadcast satellite television for a subsidiary of Comsat General.
1979 1980

Pabon, Simms, & Smith

Washington, D.C.

Project Director - U.S. Postal Service contract (AKA Jai Gopal Singh)

Extensive re-write of "ZMT Tape" mail analysis software (Fortran and BASIC) used by regional mail sorting centers of the U.S. Postal Service ("ADPT" for MPLSM - Multi-position Letter Sorting Machine). Did entire job myself; no need for additional budgeted staff. Then ported these applications and data for all offices from one main-frame system (SBS) to another (Tymeshare, Inc.)

web skills