Daniel K. House Resume 111 Keeler Blvd. Toronto, Ontario M1E 4K6 danny@cs.toronto.edu (416) 282-7003 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 and Languages Years of experience ==================================== =================== Oracle 12 UNIX / Linux >20 C >20 Objective-C 5 C++ 2 Java 5 SQL 15 Oracle - PL/SQL 6 Oracle DBA 2 UNIX / Linux Shell Scripting >20 UNIX / Linux System Programming 13 UNIX / Linux System Administration 3 Multi-threading / Multi-processing 13 Client Server Programming 13 Software Engineering 16 Business / System Analysis 10 Data Modeling 11 Object Oriented Analysis / Design 16 Configuration / Build Management 13 QA / Testing 5 Teradata Development 3 Teradata DBA 2 Top End 5 Datastage 3 Smalltalk 2 Lisp 3 Prolog 2 Basic 2 EMPLOYMENT HISTORY AMAZON Software Development Engineer (October 2010 to 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. BANK OF MONTREAL Software Consultant (May 2010 to 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. ACHIEVO Software Consultant (February 2010 to April 2010) Technology Used: Java, Eclipse, RCP, SWT, H2 Database, JDBC, SQL 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. CANADIAN SHARE OWNER Software Consultant (April 2007 to 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. STEELMAN SOFTWARE SOLUTIONS Special Projects Consultant (January 2007 to 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. EXPRESS SCRIPTS Associate Consultant to Infomaxium (June 2006 to November 2006) 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. ENBRIDGE GAS DISTRIBUTION Associate Consultant to Infomaxium (April 2004 to June 2006) 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. COMPUTER SCIENCE DEPARTMENT, UNIVERSITY OF TORONTO Obtained Master of Computer Science Degree (January 2002 to April 2004) 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: * In a Master of Computer Science program. * 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. REUTERS INFORMATION SERVICES Technical Specialist (November 1993 to December 2001) * Promoted, July 2000, to Technical Specialist * Promoted, September 1999, to Specialist, Database Analyst * November 1993 to August 1999 Senior Programmer Analyst 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. COMPUTERVISION GIS Senior Software Engineer (May 1991 to 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. AASTRA AEROSPACE Senior Systems Analyst (January 1989 to 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. NESBITT THOMSON DEACON INC. Senior Programmer-Analyst (July 1988 to 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. MOTOROLA DACSCAN Engineer III (Senior) (August 1983 to 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. ALLIED ALUMINUM Consultant (November 1982 to 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. MINISTRY OF NATURAL RESOURCES Programmer-Analyst (October 1981 to 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. ERUDITION DATA SERVICES Consultant (August 1981 to 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. MATHEMATICS DEPARTMENT, UNIVERSITY OF TORONTO Research Assistant (May 1981 to 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 2004, Master of Computer Science Degree, University of Toronto, Department of Computer Science 1986-1997, Part-time, continuing education in Computer Science at the University of Toronto 1981, Bachelor of Science Degree, University of Toronto, majoring in mathematics