Steve Sinai
*** *** ***** *******, ********, California, 94044
650-***-**** (Home) 650-***-**** (Cell) ******@*****.***
* UI Design and Development, primarily with Java Swing. Also Ajax,
HTML, Javascript, XML, CSS, GWT and JSP.
* 2-, 3-Dimensional Computer Graphics and Visualization
* Computer Language and Interpreter Development
* RDBMS/SQL with Oracle, MySQL, Sybase
* MATLAB
* Project Management
My interests and specialties revolve around graphics, UI programming,
modeling and simulation, and interface design. I'm very interested in ease-
of-use and learnability issues, so over the last few years, I've been
experimenting with creating domain-specific languages and natural language
interpreters. I think that for certain applications, interacting with
computers using text phrases can be faster and easier to learn than
traditional point-and-click GUIs.
I'm a big believer that you can excel at either front or back-end
development, but not both. Writing code that interacts with unstructured,
unpredictable humans is very different from writing code that interacts
with relatively structured, predictable software, and the approaches,
methodologies, and tools used for one type of development don't necessarily
work for the other. Having been hired onto many projects after the front-
end effort had gotten into deep trouble, almost invariably I've noticed a
major problem had been trying to force a common approach to both front-end
and back-end development.
QUICK TECHNICAL HISTORY
1996-present: Java desktop and web application development, mostly on the
client-side. Swing/AWT, Ajax, Javascript, HTML, CSS, XML, GWT, JSP, J2EE.
UIs to Oracle and MySQL RDBMS.
1989-1996: UI/graphics development and porting, primarily on systems
utilizing Unix, C, C++, X-Windows, Xlib, Motif. UIs to Sybase and Oracle
RDBMS.
1983-1988: 2,3-D graphics and image processing for aerospace and broadcast
digital effects applications. Unix, C, Pascal, Fortran, Assembly, Ada,
various proprietary graphics libraries.
PROJECTS
* Since 1989, almost all my work has been done as a contract programmer.
Elastra Corp San Francisco, CA...May 2010-Present : Helping Elastra
rewrite their GWT/GXT-based GUI in preparation for an important customer
evaluation.
Math Scribbler...Pacifica, CA...Feb. 2004-Present : This is my own little
killer-app, start-up idea that I've spent a fair amount of time on, and
hope to be able to turn into a product someday. It's worth mentioning since
it involves some very unusual use of Java Swing combined with natural
language-like interpreter development, which allows for anything from
quick, simple calculations, to iterative "what-if" analysis, to charting
and graphing.
Math Scribbler is a very atypical Java Swing/2D desktop application that's
a cross between an easy-to-use text editor like Notepad, and a numerical
computing environment like Matlab, Maple, and SAS. It can also be described
as a spreadsheet alternative. Users type a series of math statements into
the text editor, which are then collectively parsed and solved using a
custom-built, Javascript-like interpreter. Unlike other math interpreters,
where results are displayed in separate windows apart from each equation or
statement, thus making it difficult to connect the statements with their
answers, Math Scribbler displays results immediately next to each math
statement. My goal has been to make it as inexpensive, simple and non-
intimidating as possible, so that anyone can use it...not just those with
math or engineering degrees.
The architecture uses a plug-in model that allows custom-written or
publicly available Java packages to be easily integrated into the
application. For example, if you have Java classes that contain methods
dealing with statistics or financial modeling, you can simply copy the
classes to a plug-in directory, and via Java reflection, the methods are
immediately available for use. There's no need to do any UI programming -
you just type the method names and their parameters into the worksheet. Non-
programmers can also create their own worksheets containing user-defined
equations and functions, and then save these for reuse whenever new numbers
need to be run.
Examples of unusual, advanced Swing functionality in Math Scribbler include
embedding custom Swing and JFreeCharts components directly into Swing text
documents; word-oriented undo/redo; phrase highlighting based on context;
print and print preview (very difficult to do in Java if you have text and
graphics embedded in the same document); and converting Swing documents to
PDF using iText.
Barclay's Global Investors...San Francisco, CA...Aug. 2008-Feb. 2009 : Java
Swing w/Jide client; Spring/Hibernate to Oracle middle-tier development for
Barclay's APEX portfolio management system.
Sensage, Inc...San Francisco, CA...Aug. 2006-July 2008 : Client-side
dashboard and reporting tool development for Sensage's log management
application. Java Swing, Ajax (Javascript, XML,) Spring/Hibernate, iText
(for PDF,), GWT, JFreeCharts, Jide. Designed and implemented print-preview
and printing capability.
ePropose...San Francisco, CA...Aug. 2000-Feb. 2003 : Swing UI application
and HTML/Javascript/XML web development (before it was called Ajax) for
ePropose's auction and collaboration software. My main task was to rewrite
the confusing and unmaintainable original Swing UI, which had been
developed by at least a half-dozen people, all with different ideas about
UI development. After four months, they forced me to lead the UI group,
which consisted of about six programmers and testers. The final UI was
much easier to learn and use (at least as judged by me), and code-wise was
only about 15% of the size of the original. When not working on the UI, my
time was spent writing demonstration programs, and on custom application
development for the company's customers.
Charles Schwab...San Francisco, CA...Jan. 2000-Aug. 2000 : Client- and
server-side AWT/Swing GUI-development for Schwab's institutional web-
trading application. First converted the application from AWT to Swing.
Then developed real-time quote and dynamic charting capability using a Java
Bean/RMI messaging system to send financial data between server and client.
Charts were generated on the client using using Swing and Java 2D.
McKesson Corporation...San Francisco, CA...Jan. 1998-Oct. 1999 : Client-
and server-side development for a set of web and data-mining applications
that allowed McKesson's sales personnel and customers to drill-down into
McKesson's sales data warehouse. Reports could be generated detailing
everything from high-level sales summaries on a monthly basis, down to low-
level sales information on a per-invoice basis.
Sun Microsystems...Mountain View, CA...Oct. 1996-Sept. 1997 : Project
manager, Java applet developer, database administrator (I don't know how I
ended up doing that), and webmaster on several web projects. Acted as a
Sun liaison and troubleshooter for projects that were being implemented by
outside consulting groups, but were running into trouble.
NEC...San Jose, CA...March 1996-Sept. 1996 : GUI development for NEC's
PrivateNet firewall product.
Lehman Brothers (RIP New York, NY...Sept. 1993-Dec. 1995 : GUI and
Sybase design and development for Lehman's Fixed Income Analytics group.
Passed the Series 7 Securities Exam. Except for wearing a suit, this was
one of my favorite jobs.
IBM...Kingston, NY...June 1991-Aug. 1993 : Two separate projects. The
first was GUI development and administration; Oracle and Sybase RDBMS
development for IBM's Geographic Information System application. The
second was GUI development and systems-level programming for IBM's
Massively Parallel Processing Supercomputer, aka, 'Deep Blue', the fastest-
computer in the world at the time, and first chess-playing computer to beat
a world champion.
Sun Microsystems...Palo Alto, CA...March 1991-April 1991 : Port of AION
Corporation's expert system application from OS/2 to Sun's Unix
workstations; and design and development of a new X-Windows/Motif UI for
the Sun version.
U.S. Sprint...Burlingame, CA...July 1990-Feb. 1991 : GUI design and
development; Oracle RDBMS development for a telecommunications testing and
billing application.
SL Corporation...Corte Madera, CA...Sept. 1989-July 1990 : Initially ported
SL's Graphical Modeling product to X-Windows, then stayed on to do custom X-
Windows component/widget development and customer support.
Boeing...Seattle, WA...May 1987-Aug. 1989 : 2- and 3-dimensional graphics
and GUI development for complex computer models and simulations. Expert
system, geographic information system development. One week of every six
was spent at the Pentagon developing computer models for the Air Force
Center for Studies and Analysis. Top Secret clearance.
Island Graphics...San Rafael, CA...April 1986-May 1987 : Programming for
desktop publishing, medical imaging, digital paint applications, 2- and 3-D
broadcast animation systems.
Dalmo Victor...Belmont, CA...Aug. 1983-April 1986 : 2- and 3-D graphics
displays; database development for real-time military flight simulators.
Secret clearance.
EDUCATION
Master of Science in Systems Management, University of Southern California
1989
- similar to Operations Research or Industrial Engineering.
Bachelor of Technology in Computer Science, University of Alaska, Fairbanks
1983