Daniel K. House

danny@cs.toronto.edu
(416) 282-7003
111 Keeler Blvd., Toronto, Ontario, M1E 4K6

Career Highlights
•	Expert in Oracle, UNIX / Linux, C and Java.
•	Over 20 years of experience solving problems and creating software.
•	Frequent contract extensions and promotions.
•	Team Lead – see employment history under Express Scripts, Enbridge Gas Distribution and Reuters Information Services.
•	MSc, 2004, University of Toronto, Department of Computer Science

Major Software Skills & Experience
Skills / Languages	Years of experience	Skills / Languages	Years of experience	
Oracle 	12	Software Engineering	16	
UNIX / Linux	>20	Business / System Analysis	10	
C	>20	Data Modeling 	11	
Objective-C	5	Object Oriented Analysis / Design	16	
C++	2	Configuration / Build Management	13	
Java	5	QA / Testing	5	
SQL	15	Teradata Development	3	
Oracle – PL/SQL	6	Teradata DBA	2	
Oracle DBA	2	Top End	5	
UNIX / Linux Shell Scripting	>20	Datastage	3	
UNIX / Linux System Programming	13	Smalltalk 	2	
UNIX / Linux System Administration	3	Lisp	3	
Multi-threading / Multi-processing	13	Prolog	2	
Client Server Programming	13	Basic	2	

EMPLOYMENT HISTORY

Employer:	Amazon	Begin:	October 2010	
Title:	Software Development Engineer	End:	November 2012	
Technology Used:	
	Java	Oracle	Git	Linux	SOA	Javascript	TDD	
	Eclipse	MySql	Perforce	Shell scripting	REST	JSP	Junit	
	Guava	SQL	Ant	Bash	Spring	CSS	Easymock	
	Ehcache	GraphViz	Wiki		JSON	HTML	Mockito	
Accomplishments:	
•	Designed abstractions in Java and data models in MySql to make a proprietary ETL tool easier to administrate and extend.  Contributed to the team that refactored the ETL tool, implemented the abstractions, and migrated to the new data models.
•	Designed an ETL administration interface and built a prototype using dynamic HTLM and automatic generation of GraphViz visualizations of the data flow.  This was handed off to others for the final implementation.
•	Wrote comprehensive technical specifications to provide full-text-search capability to merchants.  Analyzed alternative technologies such as Oracle Text Search, Lucene, and A9. Implementation was handed off to others.
•	Created data models for a dynamic configuration database and migrated systems to use them instead of static files.
•	Analyzed purchasing and warehouse usage patterns and created effective visualizations.
•	Wrote a Web UI for managing merchant fees for preparing inventory.
•	Debugged and upgraded Java services in a service oriented architecture for registering new merchants, preparing and tracking shipments, and initial placement and redistribution of inventory to minimize costs.
•	Contributed to streamlining the deployment process, migrating from 32-bit to 64-bit identifiers, accepting bulk shipment specifications from merchants, opening new business in Italy, and Oracle data models for monitoring warehouse capacity consumption.
•	Participated in 10-person teams using a modified Scrum development methodology using test-driven development and code reviews.
•	Performed system administration tasks.
•	Provided on-call support of production systems.
•	Identified key performance indicators and configured monitoring systems to issue pages as appropriate.
•	Provided mentoring on writing SQL for large Oracle data-sets.

Client:	Bank of Montreal	Begin:	May 2010	
Title:	Software Consultant	End:	September 2010	
Technology Used:	
	Unix Scripts	Oracle PL/SQL	Oracle SQL	
Accomplishments:	
•	Created reports detailing trading customer activities.
•	Enhanced and supported data feeds from third party vendors.
•	Resolved issues in backend database stored procedures.
•	Contributed to 11g upgrade impact analysis.
•	Wrote test plans and performed unit testing.

Client:	Achievo	Begin:	February 2010	
Title:	Software Consultant	End:	April 2010	
Technology Used:	
	Java	Eclipse	RCP	SWT	H2 Database	JDBC	SQL	MS Windows	
Accomplishments:	
•	Created rich client user interfaces using Eclipse RCP, SWT and Java.
•	Implemented interfaces to H2 database using JDBC and SQL queries.
•	Successfully delivered high quality product under extremely tight deadlines.
•	Worked with multinational development team.

Client:	Canadian Share Owner	Begin:	April 2007	
Title:	Software Consultant	End:	January 2009	
Technology Used:	
	Oracle	Oracle Financial Applications	Java	C++	Linux	Apache	XML	
	PL/SQL	Oracle Forms Developer	Swing	Borland C++
    Builder	Ubuntu	Tomcat	Sax	
	SQL	Enterprise Manager	NetBeans		Vmware	MS Server	DOM	
	TOAD		Eclipse	MS-DOS scripts	VNC	CVS	Xerces	
Accomplishments:	
•	Created and maintained Oracle Financial Applications forms and PL/SQL stored procedures used by the Canadian Share Owner stock brokerage to provide customer care and manage stock exchange transactions.
•	Designed and implemented tables, indexes, views and triggers.
•	Implemented multi-currency electronic fund transfers using PL/SQL.
•	Implemented book value database scrub of the Oracle Financials General Ledger using PL/SQL.
•	Created PL/SQL modules to generate Revenue Canada XML submission files.
•	Analyzed XML using Xerces.
•	Enhanced graphical stock market analysis tools written in Borland C++ Builder.
•	Migrated stock analysis functions from C++ to Java rich client platform application using Swing.
•	Designed controls and protocols for transferring stock data from Oracle to proprietary C++ application installed on customer desktop via HTTP.
•	Reverse engineered file formats.
•	Performed business and data modeling.

Client:	Steelman Software Solutions	Begin:	January 2007	
Title:	Special Projects Consultant	End:	April 2007	
Technology Used:	
	Oracle	Linux	Apache	Amanda	Openbravo	
	Developer	Red Hat Enterprise Edition	Tomcat	Samba	MS Server	
	Designer	Ubuntu	Ant	mtx	VNC	
	Oracle Metadata Repository	VMware	Bugzilla	Dell PowerVault Tape
        Changer		
	Oracle Application Server	TOAD	Postfix			
Accomplishments:	
•	Established multi-platform backup process using Amanda, Dell PowerVault Tape Changer, Samba, VMware and Linux.
•	Performed business modeling and wrote designs and technical specifications for changes to scheduling interface and data model in an enterprise management system specialized for the steel industry.
•	Created user interface prototypes in Oracle Forms.
•	Installed and configured various software packages including: Oracle databases, Oracle Application Server, Oracle Metadata Repository, Amanda, Bugzilla, Apache, Ant, Tomcat, Postfix, Openbravo, Linux kernel.

Client:	Express Scripts	Begin:	June 2006	
In Association With:	Infomaxium	End:	November 2006	
Title:	Associate Consultant			
Technology Used:	
	C	UNIX	ksh	sed	CVS	Oracle	TOAD	Tuxedo	
	Pro*C	HP/UX	awk	GNU-make	Insure++	SQL	Visio	VNC	
Accomplishments:	
•	Architect / team lead for C/C++, Pro*C and Cobol code migration from Oracle 8i (32-bit libraries) to Oracle 9i (64-bit).
•	Lead a team of 7 to modify code in over 500 files and eliminate over 10,000 issues detected via automated code analysis.
•	Defined strategies for mapping machine dependent code from 32-bit to 64-bit data model.
•	Resolved issues involving blobs and binary representations.
•	Coordinated with QA and development groups to produce test suites and validate the migration of 74 applications.

Client:	Enbridge Gas Distribution	Begin:	April 2004	
In Association With:	Infomaxium	End:	June 2006	
Title:	Associate Consultant			
Technology Used:	
	Oracle	PL/SQL	Datastage	Sybase	SQL-Programmer	UNIX	awk	Access	Control-M	
	SQL	TOAD	SyncSort	T-SQL	ERwin	ksh	sed	Visio	Harvest	
Accomplishments:	
•	Team lead on revenue forecasting and budgeting project, assigning tasks, monitoring activities and reporting progress.
•	Architect and implementer for project forecasting peak load on each node of gas distribution network connected to more than 2.5 million customers.
•	Performed business analysis, interviewed subject matter experts, and created functional specifications.
•	Interviewed subject matter experts to discover the legacy databases, data models and business rules used to track consumption and network topology data.
•	Wrote high-level and detailed design documents addressing database interfaces, run scheduling, and software architecture.
•	Designed and created Datastage jobs to load the forecasting database, monitor data quality and provide Excel reports.
•	Designed and implemented budget analysis engine using Oracle PL/SQL.
•	Worked with users to define user-acceptance criteria, wrote user acceptance tests, and then demonstrated conformance.
•	Wrote UNIX shell scripts for scheduling and monitoring Datastage jobs.
•	Mentored junior members on business analysis, writing specifications, Oracle PL/SQL, complex SQL queries and UNIX shell scripting.
•	Defined software architecture for exception handling, event logging and debugging support in Oracle SQL.
•	Wrote job-control package providing uniform transaction handling, locking, and messaging for batch processing in Oracle PL/SQL.
•	Debugged Datastage and Oracle performance issues, reducing trips-to-database, tuning complex queries, defining temporary tables and indexes, and applying utilities such as SyncSort and AWK.

School / Employer:	Computer Science Department, University of Toronto	Begin:	January 2002	
Program / Degree:	Master of Computer Science	End:	April 2004	
Title:	Research / Teaching Assistant			
Technology Used:	
	C	Java	UNIX / Linux	sed	HOL	SPIN	Maya	XML	Latex	
	OpenGL	JFlex	Ksh	Make	ML	SMV	Maple	HTML	MATLAB	
	SUIF	DrJava	Awk	CVS	PVS	CCW	Prolog	RCS	CUP	
Accomplishments:	
•	Obtained Master’s Degree
•	Research assistant: U. of T. Computer Program Reading Comprehension Project
•	http://wwwcgi.cdf.toronto.edu/~www1/programs.html
•	Contributed content for web site.
•	Lead project planning.
•	Guided configuration management effort.
•	Teaching assistant: wrote skeleton compiler in Java to be given to students of compiler course.
•	Teaching assistant: wrote auto-marking scripts for systems programming course.
•	Teaching assistant: marked assignments for Software Engineering course.

Employer:	Reuters Information Services	Begin:	November 1993	
Title:	Senior Programmer Analyst	Promoted:	September 1999	
Title:	Specialist, Database Analyst	Promoted:	July 2000	
Title:	Technical Specialist	End:	December 2001	
Technology Used:	
	C	Oracle	Datastage	TERADATA	sccs	UNIX	JAVA	
	ASN.1	SQL	BASIC	NCR 5100 and family	Sablime	Solaris	JDBC	
	TOPEND	PL/SQL	Developer	SUN 450/E10000 and family	Make	Linux	awk	
	gdb	TOAD	Designer	System Architect	Access	ksh	sed	
Accomplishments:	
•	Successfully lead 4 person team that constructed a proof-of-concept extract, transform, and load of a legacy long-row APL database to a short-row Oracle data warehouse.
•	Member of 4 person team that specified, designed, implemented and maintained a fault tolerant 200 megabyte cache of time-series data with real-time dynamic updates.
•	Created the detailed design of the fault tolerance and real-time synchronization mechanisms in the time-series cache.
•	Rescued project to provide API for arbitrarily large time-series queries.
•	Specified, co-designed and co-implemented API for arbitrarily large time-series queries.
•	Proactively represented Toronto, making significant contributions to multiple international teams (Toronto, London, New York) responsible for requirements analysis, data modeling, data model implementation, production monitoring, and database and system administration.
•	Coordinated systems maintenance activities for NCR UNIX, TOPEND, TERADATA development environment.
•	Senior member of systems support team for Solaris and Oracle development environment.
•	Designed and implemented logging subsystem for database feed from APL to Oracle via Datastage.
•	Created Oracle data warehouse cleanse programs in JAVA using JDBC.
•	Developed Oracle forms to support testing of database feed from APL to Oracle via Datastage.
•	Created and maintained multiple large-scale Oracle schemas integrated with work products from various sub-projects in support of development and testing.
•	Designed and implemented configuration management tools and procedures.
•	Co-authored effective database naming standards.
•	Coordinated the implementation of collection and analysis procedures for the performance of the time-series cache in the production environment.
•	Contributed to feasibility study for using Oracle8 to cache time-series data.
•	Contributed to preliminary design of a distributed version of the time-series cache in order to meet growth projections.
•	Performed feasibility study for using JAVA to distribute time-series data.
•	Provided mentoring, training and support for C, UNIX, SQL, data modeling, database design, and object oriented methodologies to various teams.

Employer:	Computervision GIS	Begin:	May 1991	
Title:	Senior Software Engineer	End:	November 1993	
Technology Used:	
	C	UNIX	Make	Openwindows	X-windows	Macintosh	Objective-C	
	gdb	Solaris	imake	Openlook	Xview	Sun and DEC workstations	MacProject II	
	Lex	Yacc	sccs	OLIT	Devguide	Empress	SYSTEM 9 GIS	
Accomplishments:	
•	Replaced hybrid inter-process communications used by in-house menu server with uniform client-server IPC.
•	Assisted in successful port of existing product from SUNOS4.2 to Solaris.
•	Coordinated software quality review process.
•	Enhanced in-house menu system to support extended ASCII on alphanumeric terminals and Sun and DEC workstations running Openwindows (which was ported to DEC in-house).
•	Debugged coordinate geometry subroutine library.
•	Performed requirements analysis for upgrade of user-interface from in-house menu system to provide Openlook compliance.
•	Independent reviewer for a subcommittee on GIS extensions to SQL.

Employer:	Aastra Aerospace	Begin:	January 1989	
Title:	Senior Systems Analyst	End:	May 1991	
Technology Used:	
	C	Oracle	Oracle Forms	UNIX	sccs	Objective-C	Sun workstations	
	Pro*C	SQL	System Architect	Make	PV-Wave	Smalltalk	Sunview	
Accomplishments:	
•	Created data models for simulation laboratory and inventory control and material flow system.
•	Designed and implemented configuration management software.
•	Member of team that built a simulation of the Defense Early Warning System.
•	Performed system analysis for, and designed and implemented an inventory control and material flow monitoring system to be used in a piezoelectric ceramics factory using Oracle on a PC compatible.
•	Designed a distributed, general purpose simulation laboratory using a client-server paradigm.
•	Prototyped the simulation executive in Smalltalk.
•	Implemented the final simulation executive as a server.
•	Designed and implemented Oracle Forms for specification of simulation configurations.
•	Given security clearance.
•	Provided training and mentoring in the use of C, UNIX, structured analysis methodologies, SQL.
•	Used Yourdon structured analysis and System Architect CASE tool to specify system requirements.
•	Evaluated object oriented languages prior for use in simulation laboratory.
•	Evaluated third-party graphics packages and databases for incorporation into the simulation laboratory.
•	Worked to military standards.

Employer:	Nesbitt Thomson Deacon Inc	Begin:	July 1988	
Title:	Senior Programmer-Analyst	End:	January 1989	
Technology Used:	
	Oracle	SQL	C	Pro*C	UNIX	Lex	Make	sccs	Unisys 5000/90	
Accomplishments:	
•	Implemented a month-end reconciliation of accounts.
•	Used Lex to convert a manual data-dictionary to one maintained and accessed under Oracle.
•	Documented the development library.

Employer:	Motorola Dacscan	Begin:	August 1983	
Title:	Engineer III (Senior)	End:	July 1988	
Technology Used:	
	C	UNIX	sccs	Make	Yacc	Lex	RSX-11M	cXOS	Pyramid	Motorola cXSVM	PDP 11's	
Accomplishments:	
•	Designed and implemented the following: event scheduler package, historical data storage and analysis system, dynamic object rule editor, 3-D relief graph generation tool.
•	Re-organized source to automate release generation.
•	Administered system library.
•	Enhanced the real-time display system.

Client:	Allied Aluminum	Begin:	November 1982	
Title:	Consultant	End:	May 1983	
Technology Used:	
	BASIC	CP/M	Datastar	Z80 desktop	
Accomplishments:	
•	Expanded scale and detail of the database.
•	Provided a new query language for the database.
•	Wrote a detailed user manual.
•	Debugged accounting software.

Client:	Ministry of Natural Resources	Begin:	October 1981	
Title:	Programmer-Analyst	End:	October 1982	
Technology Used:	
	C	UNIX	Lex	Make	sccs	FORTRAN-77	PDP 11/50	Perkin-Elmer 3230	Calcomp and Nicolet-Zeta plotters	
Accomplishments:		
•	Designed and implemented an automatic text placement program in C to find room in arbitrarily shaped polygons.
•	Rewrote Calcomp plotter interface written in FORTRAN-77 to allow use of Nicolet-Zeta plotters.
•	Aided in the design of an interactive map editor.
•	Ported geographic software written in C from a PDP 11/50 to a Perkin-Elmer 3230.

Client:	Erudition Data Services	Begin:	August 1981	
Title:	Consultant	End:	October 1981	
Technology Used:	
	BASIC	CP/M	Datastar	Z80 desktop	
Accomplishments:	
•	Implemented a customs brokerage database.
•	Provided a query language to handle government paperwork.
•	Technical support for customers.
•	Debugged accounting software.

Client:	Mathematics Department, University of Toronto	Begin:	May 1981	
Title:	Research Assistant	End:	August 1981	
Technology Used:	
	FORTRAN	TRS-80 desktop			
Accomplishments:	
•	Wrote software to evaluate a polynomial in five complex variables.
•	Designed and implemented a program to evaluate a very unusual version of the determinant.

Education
•	MSc, 2004, University of Toronto, Department of Computer Science
•	Part-time, continuing education in Computer Science at the University of Toronto, 1986-1997
•	Bachelor of Science Degree, 1981, University of Toronto, majoring in mathematics