Russell D. Fish
1618 East Meadow Moor Road, Holladay, Utah, 84117
Phone: (801) 274-2834 home, (801) 953-3778 cell,
E-mail: fish@cs.utah.edu, Web: http://www.cs.utah.edu/~fish
A longer form of this document may be accessed on the Web at http://www.cs.utah.edu/~fish/resume-long.html
SUMMARY:
I am an experienced system designer, software developer, and problem-solver.
My highest skill is leading a technical team in developing and refining systems
designs, detailing and producing implementations, and evolving software systems from
rapid prototypes to mature products. I strongly support good team process,
communication, and mentoring.
EDUCATION:
Graduate studies in Computer Science, 1975-1977, University of Utah, Salt Lake City, Utah.
B.S. 1973, Mathematics and Computer Science, The Lindenwood Colleges, St. Charles, Missouri.
COMPUTER KNOWLEDGE:
Languages: Python, OpenGL/GLSL, PHP/HTML, Perl, SQL, C++, C, C#(C-Sharp).NET, Visual Basic, shell/AWK, TCL/TK, Lisp, APL, Fortran, assembly.
Databases: MySQL, Oracle, SQL Server, Access, DBASE3/Clipper, IDMS, IMS, API's: ADO, OCI, ODBC, JDBC, VDBC, Python-DB.
Systems: MacOS/FreeBSD/Linux/UNIX (15 varieties), Emacs, Windows XP/2000/NT/98/95/6.22, embedded, cross-platform: Cygwin/XFree, VNC, VMWare, Citrix WinDD/Terminal Server.
PROFESSIONAL EXPERIENCE:
Senior Software Engineer,
Verio, Inc., Orem, Utah.
November 2009 - Present
Verio is a large virtual web hosting company. I am a member of the Cloud9
development team that is creating Verio's new cloud hosting product for
small-to-medium-sized businesses, using Python, Django, and MySQL, together with a
proprietary mix of cluster software components.
Embedded Software Engineer,
Systronix, Inc., Salt Lake City, Utah.
October - November 2009
Systronix is a small contract electronic engineering firm led by Bruce Boyes, an
electrical and computer engineer and entrepreneur.
I contracted with Bruce supporting early phases of software design and
development for an embedded ZigBee Pro (802.15.4) wireless control network. In
this product, a color touch-screen handheld unit controls rapidly reconfiguring
sports facilities such as gymnasiums.
Independent Software Developer,
Salt Lake City, Utah.
June - September, 2009
I began architecting, designing, and implementing Gem, my own geometric
modeler in Python and OpenGL. Gem is a cross-platform aid to making precise, 2D
and 3D diagrams, CAD drawings, and models of objects for engineering and
manufacturing.
Gem is also designed to work as a remote collaboration "design whiteboard", for
example while diagramming software or designing mechanical parts.
The Python GemCore geometry library is a new implementation, quite similar
in design to the Alpha_1
Shape_edit basic geometry library.
Software Engineer in Computer Aided Design and Modeling,
Nanorex, Inc., Bloomfield Hills, Michigan.
January 2008 - March, 2009
Worked from my home in Holladay, Utah designing and implementing
the NanoEngineer-1 molecular CAD
software, in Python with the Trolltech Qt GUI toolkit and OpenGL/GLSL. See
the
NE1 Gallery for some examples of NE1 designs.
My major project involved speeding up the real-time interactive 3D
graphics display of molecular "ball and stick" models by a factor of 50
times faster, drawing 50 frames per second for single DNA Origami tiles.
Assemblies of 10 tiles, which were previously impossible to design interactively,
now display at 10 FPS, so a factor of 100 times faster.
Computer Science Researcher,
Flux Research Group,
School of Computing,
University of Utah,
Salt Lake City, Utah.
March 2004 - December 2007
Worked as a research staff programmer in a networking and operating systems
research group. Extended the Emulab.net
network emulation testbed system,
used by over 1500 researchers in hundreds of organizations worldwide.
Emulation means each experiment has repeatable access to hundreds of real
physical computers and network VLANs, with controlled network link
characteristics.
My work included porting the Emulab experiment node software to Windows XP,
implementing a complete automated testing framework and SQL injection
scanner for the Emulab web interface, and improving the accuracy of robot
location-sensing on a mobile wireless sensor-net testbed.
Software Engineer, Think3, Inc., R&D group, Salt Lake City, Utah.
May, 2003 - February 2004
Worked as both the local system integrator and a software
developer, contributing to Think3's Computer-Aided Industrial Design
software product.
Software Engineer, Stabro Laboratories, Inc. (Now a division of Simco Electronics), Salt Lake City, Utah. September, 2001 - December, 2002
Worked with a small I.S. team to create Web-enabled calibration
laboratory work-flow software based on C# client apps, XML-RPC/SOAP,
and Linux servers with Apache, Zope, Python, MySQL and Samba.
Systems Programmer, Halosoft, Inc., Pittsburgh, Pennsylvania. January-August, 2001
Created extensions and server benchmark demonstration applications for the Viva multi-language distributed OS as part of a small core team in a start-up company.
Co-founder and Project Technical Lead,
GDC (Graphics, Design, and Computation) Project,
School of Computing,
University of Utah. 1980 to 2000
Served as the chief system architect and a lead implementer of the Alpha_1
3D sculptured-surface engineering CAD and computer graphics software project.
Personally advised the software portions of at least thirty M.S. and
Ph.D. research projects, as well as the continuous software evolution work
of a staff of up to eight full-time programmers.
Led research in NURBS algorithms, parametric and geometric design, automated mechanical
engineering and manufacturing processes, telecollaboration, and
portable object-oriented systems.
Scientific Applications Programmer,
Envirotech Information Systems Division, Envirotech Corporation. 1977 to 1980
Developed and implemented projects in support of engineering and manufacturing.
Co-authored Sketch, a graphical editor/front-end for structural engineering analysis programs.
Developed a computer-numerically-controlled machining (CNC) programming environment.
Evaluated CAD/CAM systems for engineering design and NC programming.
Architected, designed, and implemented all software for a new process control microcomputer.
Graduate student, teaching assistant, and research assistant, DARPA 3D Computer Graphics Project,
Computer Science Department, University of Utah. 1975 to 1977
Research Area: Portable, object-oriented architectures for geometric modeling systems.
Computer Center Operations Manager and Systems Programmer,
Parks College of Aeronautical Technology, Cahokia, Illinois. 1973 to 1975
Responsible for all administrative and engineering data processing of a small college.