Resume: Todd Hoff
/ Status: Available
Bachelor of Science, Computer Science, University of Oregon, 1985
Bachelor of Science, Business Administration, Decision Science, University of
Oregon, 1985 (finance minor)
Facebook Messenger Bot / Slackbot / Website:
Created Probot, a system for asking questions and getting answers. Makes use of Lambda, S3, SQS, EC2, Node, API Gateway,
DynamoDB, Route53, Paypal, Bootstrap, jQuery, Nginx, PM2, Let's Encrypt, Cloud Front, Cognito. Establishes a two sided market and takes care of all the interactions
and billing process between an expert and the customer.
Heroku / Slackbot / Node.js / botkit / Redis:
Created a chatbot for a restaurant ordering and delivery service. Users can install the Slack app and use the bot to find restaurants near them, search by tags, fuzzy search by restaurant name, create a group order, have the entire team order, and have the food delivered. An innovative polling system allows the team to select which restaurant or type of food they want to eat. Created an interactive conversation system based Behavior Trees to guide people through the entire ordering process. It implements Sequence, Guard, Selector, Chooser, Doner, RepeatUntilFail, Succeeder, and Inverter to create dialogues.
Objective C / iOS:
Enough Objective C and iOS to create a fairly decent app called PicBak, which allows you to take a picture of any location, then when you need to go back to that same spot, just tap the picture and navigate back using Apple's turn by turn navigation. It has an Apple Watch component, MapKit, CoreData, ImagePicker, UIKit, and App Extensions.
Lambda / DynamoDB / Alexa Skills Kit / Node.js:
Created the Mirror Mirror on the Wall skill for the Amazon Echo using Lambda and API Gateway. Also created a cool Call Tree skill that in an emergency would send messages to a tree of people using SMS, notifications, and email. The potential costs were too high to publish it. AWS SQS was used to queue work and DynamoDB was used to store data in a highly available manner so a call always went out no matter what.
C++, Java, C, Perl:
Over 17+ years extensive programming in various versions of C++ and C,
3+ years Java. Creator of a C++ coding standards page and Perl page at
17+ years using the OO discipline in systems design, OOA, OOD,
and OOP. Used Test Driven Development, Booch, UML, CRC, Use Cases, CORBA,
ISO Managed Object Model. Architect and implementor of large multi-node highly
distributed systems down to small embedded systems.
Very successful at automatically generating large amounts of code
for state machines, messages, multi-threaded agents, and dialogues.
11 years internet programming in Perl/CGI, Java, Java Script, HTML, XML, servlets, JSP,
server side, Tomcat, with several highly visible and successful projects. Extensive backend
database integration, thin-client and n-tier design, shopping carts,
survey systems, etc. Complete web site and
network installation. Many years designing and implementing distributed
systems on the internet at the socket level. Design of large scale
fault tolerant highly available systems. Worked on large scale we based behavioral
Software Life Cycle:
Complete life cycle from needs analysis, requirements documents,
design, coding, documentation, integration, testing, manual
preparation, training, and support.
Very experienced in projects, team development, how to make
projects successful, and development of tools, build, test, deployment
environments, and other needed project infrastructure. Design and
implementation of several configuration management and release systems.
Used Booch, Extreme Programming, UML, CRC, use cases, user centered design,
Yourdon, spiral model, ER diagrams, object interaction diagrams, structure charts,
state-transition diagrams, etc.
System design and OO* mentoring, course development and instructor in
system administration, Unix, C++, Perl, WWW, shell, ODBMS, RDBMS, OOA,
OOD, and OOP.
Extensive data modeling for many projects, work flow reengineering, OR mapping,
data warehouse systems, Hibernate, MySql, DBA for Sybase, Oracle, UNIFY, dBaseII, FoxPro,
C-Tree, n-tier systems, SQL, stored procedures, business rules, developed
OO interfaces to RDBMS, Objectivity, POET, server design, OLTP, X.500,
query and report generation. Extensive experience in distributed
realtime heavy use environment.
Extensive application protocol design on many successful projects,
client-server design, thin-client design, highly distributed and
replicated publish and subscribe systems with filtering, message
passing middleware, large scale push systems, BOOTP creating
own ethernet/IP/UDP packets, IP/SMDS stack.
Over 12 years on NT, Sun OS, SGI, AIX, System V.2, BSD 4.3, Solaris,
VxWorks (realtime OS), some OS9K. Applications, system level full
design and implementation, multi-threaded design, LEX, YACC, RPC, NFS, FTP,
BOOTP, TCP/IP UDP, sockets, shell scripts, make, RCS, CVS, IPC, tools,
termcap, device drivers, ISODE, CMIP/CMIS, ASN.1, SNMP, NTP,
network design and installation, system administration.
9+ years of Perl, C#/.Net, TCL, less heavily Fortran 77 and Pascal.
Familiar with Lisp, Prolog, FP, Forth and Ada. Developed several mini
and full languages using LEX and YACC including partial ASN.1 and SQL
parser, specification and domain specific languages for agents,
state machines, and more.
HighScalability.com Blog; Professional wiki: http://www.possibility.com/epowiki/.
Possibility Outpost 6/2004-present
- Launched HighScalability.com, a very popular site
exploring scaling and high availability issues for websites. Includes analysis of the architecture for
Google, Amazon, Flicker, eBay, and many other major websites.
- Technical advisor and mentor to several early stage startups. Advising on architecture, team structure and selection, development environment, and development process.
- Wrote distributed infrastructure for software based conferencing system based on H.264 SVC
based scaleable video coding for real-time IP communications. Platform: Windows, C++, perl, Scrum, Mediawiki.
- Used GWT to create a prototype social networking site. Platform: Java, Tomcat, AJAX, Windows.
- Created mashups with Twitter and Jaiku using JSON based REST interface.
- IM framework using Jabber/XMPP and the ACS IM server. Used C# and .Net to create a threaded, asynchronous, event based system.
- Wrote and published a book.
- Various applications written on GAE, AWS, GWT, iPhone.
- Architect and implementor for a real-time behavioral targeting engine for Yahoo.
- The goal was to make next click changes in ads and content by applying behavioral models to real-time
events like page clicks, page views, searches, search clicks, ad views, ad clicks, etc.
- Scaled to serve hundreds of millions of users using a high availability architecture
across multiple colocation sites.
- Used by Yahoo properties to enhance reach, lift, CTR, engagement, revenue, retention, conversion, and reduce churn
through more immediate and accurate targeting for direct response and branding markets.
Architect and developer on a billion dollar revenue high density SONET switch
with five 9s availability. Involved at the high level system design and planning as well as an individual
contributor writing 10s of thousands of lines of quality C++/OO code.
Started as an early member in a startup named Lightera. Lightera was later acquired by Ciena.
Technologies used: C++, OO, XML, SOAP, VxWorks, real-time, Windows, Perl, HTML, Java, Perforce,
Team Track, wiki, distributed state machines, distributed agent architecture, multi
threaded architecture, database, RSS, CORBA, DDTS, Eclipse, Tomcat, Test Driven Development,
TL-1, Data Grid.
Original development in highly scalable architectures that reliably survive
infinite data and CPU loads.
Major contributer to creating distributed client-server, publish and subscribe, and
Data Grid messaging framework; easy developer database interface; OS encapsulation framework;
application, file system, and database replication, hot-standby and synchronization; live
reliable upgrade architecture; highly available fault-tolerant architecture; software install and
distribution; common library infrastructure framework; card bring up framework; distributed
card bringup and synchonization framework; state machine code generator; distributed
synchronized state machines; managed object framework.
Designer of a high performance fault tolerant file system that served as a unified file system
and database for the product.
Major contributer to creating, planning, and implementing a large scale web based distributed
build system and development process for hundreds of developers over multiple locations;
bug tracking system; revision control system; submission control; code review system;
documentation system; company intranet.
Used XML as a transport syntax for distributed messaging system,
database storage and querying, configuration, and specification
Architect and developer on Visigenic CORBA/Java enterprise wide
disk array management system.
Created architecture using URL naming to make a robust highly scalable
distributed object system.
Created IDL specification of system.
Used servlets and server side java.
Architect and lead developer of commercial grade web site management, development,
and publication system for managing Intuit's web site production process.
100% dynamically generated.
Features include a job based metaphor; source code control integration;
life cycle control of pages from development, QA, to live site publication;
spell checking; page and link verification; global search & replace;
job database; bug database; site replication and verification;
timed publishing; feature extension mechanism; and much more.
Special attention to cross platform issues, handling extremely
large sites, database integration, handling distributed development
by multiple business units, and providing interfaces for people at
various skill levels.
Mentor on OO design of an embedded system implementing a cable modem.
Implemented design using VxWorks and C++.
Created complete software infrastructure for tasking, messaging,
logging, agents, events propagation, etc.
Created distributed publish and subscribe messaging system for component
Created language for specifying messages, state machines, and agents
along with a backend code generator retargetable to different frameworks.
Developed all system specifications and documentation in HTML,
image maps, etc.
Silicon Graphics (SGI) 8/95-2/96
Created (as part of a highly talented team) a city information web site
for a Japanese city on SGI's settop hosted web browser.
Developed all CGI programming to implement the complex WWW application.
Perl, C++, Oracle, used CORBA/IDL to access and create services.
Developed extended HTML using Perl to embed complex logic and
behaviours in HTML pages. Allowed a clean separation of creative
and programming talent for dynamic site creation.
Developed backend interface to Oracle database. Performed data
modeling, created schema design, and implemented stored procedures.
Worked with professional artists and UI designers to make a pretty cool system.
Worked on large project designing and implementing infrastructure
for an interactive TV system for ICTV and Cox Communications.
Major contributor to distributed architecture design, schema design,
configuration and network management, perfomance tools, class libraries, settop
Designed and implemented a large scale push architecture
for settop booting and image and data updates.
Created HTML/web based documentation system and Perl scripts to transform class
hierarchy into hypertext documents.
Silicon Graphics (SGI) 1/94 - 5/94
Architect and lead developer of a commercial insertion system for
SGI, which is a video server for TV commercials.
C++, Perl, MPEG, D1, realtime scheduling and video and sound
Created flexible multi-threaded distributed process message
Served video off high speed striped disks using a constant-bit-rate
approach to multiple video-outs.
Developed protocol to talk to controlling devices, store a
content database on a high capacity robot and multi-level cache
for playback, create and manage play lists, user interface, and
Worked and coordinated with multiple vendors.
UCSC 7/93-11/93 & 1/94-4/94
Developed and taught a comprehensive course in Object Database
Management Systems (ODBMSs).
Overview of RDBMSs and relational theory, a comparison of
ODBMSs and RDBMSs, interfacing OO systems to RDBMSs.
OOD/OOA using Booch's methodology.
Overview of OOP using C++ and issues related to persistence.
ODMG and OMG standards.
ODBMS architectures, query languages, client-server systems,
performance, administration, etc.
Evaluation methodologies: OO1, OO7 and custom benchmarks.
Made use of systems like: Objectivity, Versant, ObjectStore,
POET, O2, ORION, Texas.
Net Express 9/92 - 8/93
Member of project implementing an advanced Asynchronous Transfer
Mode (ATM) communications switch. Developed on VxWorks (realtime
OS) 68K and Sun OS targets using C++ and OOP methodologies (Booch).
Implemented complete BOOTP subsystem to boot the switch.
Integrated BOOTP client into VxWorks kernel stored in EEPROM.
Created Sun and VxWorks BOOTP servers.
Designed switch IP network architecture and IP to SMDS mappings.
Implemented low level ethernet, SMDS, IP, UDP class libraries.
Debugged drivers, protocols, and IP IP/SMDS stack.
Implemented UDP/TCP IP socket/connection encapsulation class
Implemented switch's Network Time Protocol (NTP) architecture.
Sun Microsystems 4/92 - 9/92
Architect and lead developer of a system to enhance Sun's
product support and account management information system.
Worked closely with Sun management and employees to model their
current support process and create a improved work flow to meet
customer service goals.
Implemented using Sybase, APT, C, and Perl.
Created a data warehouse from a variery of information sources
and implemented data purification procedures.
Created data model, ER diagrams, data dictionary, and entire
forms interface and work flow backend.
Created a user manual and lead training sessions for admin personnel.
PAC Bell 1/92 - 4/92
Developed a language called Emulation Script Language (ESL) providing a
generic programming environment for connecting UNIX workstations to IBM
mainframes over a 3270 emulation stream. Implemented in ESL a
system for downloading trunc usage statistics from AnswerDB to
Oracle hosted on a Sun workstation.
Sun Microsystems 8/91 - 1/92
Developed automated test suites under X/Open TET environment.
Compiler and language conformance testing and test development.
Created detailed formal test plans for C++, C, Lisp, Ada, Modula2
Litton Integrated Automation 3/90 - 8/91
Major contributor to 25+ person, $30 million project successfully
implementing an optical disk based image retrieval system for
Boeing. System used a cooperative message passing agent model
to store and retrieve over a terabyte of images from over 200
SPARCstations running SunOS 4.1.2.
All coding was done in C++ and Unix making full use of object
oriented design methods and object oriented programming techniques.
Designed and coded and agent interface modeled on Dialogues
providing each agent with objected oriented asynchronous task
based message passing.
Created a Component Data Definition Language using LEX and
YACC that parsed an extended BNF creating a reusable parse tree
that could be used to generate any kind of code. Used to generate
C++ objects representing complex messages and to automatically
generate SQL schema definitions, queries, and stored procedures.
- Designed and coded an asynchronous interface to Sybase's
server and SQL engine; developed methods for connecting an object
oriented system to a RDBMS.
Developed Agent Monitor Protocol for remote control/debugging/testing
of agents. Developed many techniques to make agents fault-tolerant
Convergent 8/89 - 2/90
One of a team of six that designed and partially implemented ISO
and NMF compliant network management system using C++ on a Unix
System V.3 box. Used ISODE, CMIP/CMIS, ASN.1, X.500, CMOT, MIB's
and Motif. Made thorough use of object oriented design and object
oriented programming, system worked on a message passing model.
Implemented NMF's Managed Objects operating over an interoperable
IBM 4/89 - 8/89
Systems programming on IBM's AOS 4.3 compatible UNIX Operating
System. Helped debug Ethernet and TTY driver, DOS virtual file
system interface, profiled and tested kernel, made many fixes
and upgrades to the OS.
System Industries 10/88 - 4/89
Part of R&D department developing a hardware assisted file
system on Sun 4's.
Developed multi-threaded software on Encore implementing a virtual file
system linking multiple operating systems and hardware platforms.
Installed and maintained an Ethernet TCP/IP network linking
Macintosh systems, various VAX systems running Ultrix and VMS,
Sun systems and the Encore.
NEC 7/87 - 10/88
Part of a 20+ team developing a Network Management System (NMS)
on Intel 80386 and M68020 platforms running XENIX/UNIX System V.
Developed interface processes to monitor, control, request/response
processing for realtime networks of up to 10,000 modems, multiple
DBUs, multiple DSUs, T1-MUXs, and Netview compatibility. Made
extensive use of message queues, semaphores, shared memory, protocol
analyzers, realtime techniques synchronizing multiple processes
and interrupt handling.
Developed distributed database server processes using UNIFY
to efficiently handle a high load of requests between a host
and multiple workstations communicating through IPC/ICC interfaces.
Used forward and backward chaining AI techniques for network
fault detection and resolution.
Harold Harvey 7/86 - 7/87
Part of a five member project team developing a very innovative,
realtime inventory and accounting system for book sellers and
publishers on a PC AT running XENIX System V.2. Each book seller
and publisher is a node connected via modem to a host server.
Developed IPC/ICC program interface to connect all nodes
for database services, updates, technical help, and mail. Interface
compatible with Sockets and Transport Library Interface, allowing
virtual circuit connection and datagram service.
Developed user-friendly system interface using windowing
techniques and sound user interface principles for a powerful
and easily modifiable system.
Interfaced database for realtime updates from OCR-A font
readers, barcode readers and cash registers.
Extensive use of multi-user database software, OLTP, ensuring
efficient use of bandwidth, record locking, database integrity,
error recovery, and minimizing these affects on response time.
Applied structured programming techniques and object oriented
design techniques in program development to create generic, reusable
modules and integrate the large number of modules into a tested,
University of Oregon 8/84 - 8/85
Complete Software Life Cycle Design and Implementation of a graphics
based automated diagramming tool that formed part of CASE environment.
Project was on a VAX 11/750, BSD 4.2, using a HP 2677-A color
monitor. Working in a four member project team, we completed
a needs analysis, requirements definition, full specs, data flow
charts, structure charts, data dictionary, module and system
level test plan, documentation, user's and installation manuals.
Several patents pending.
Created and taught OO and database class for UCSC Extension.
Created and taught System Administration class for UCSC Extension.
Taught RDBMS classes through a training company.
Taught Perl class for Sun Microsystems.