resume for Tom Howland <Tom@TomZilla.org> North Canton, OH
Objective
Data Engineer

Qualifications
Background
Spark, web applications, text mining, compilers, case tools, GUI, and network software.

Experience
Target, Paul, MN 55164-0874 OR 1110 Centre Pointe Curve, Suite 101, Mendota Heights, MN 55120-4100, 2020-02-24 to 2021-02-26, Sr. Data Engineer
I worked with a ML group devoted to providing forecasts for the demand of products at the global, distribution center, and store level. Mostly I fixed bugs, researched topics, and reviewed code. Two projects I was the exclusive author of were
  • A tool for uploading groups from arbitrary tables to a key-store system called Kyoto Tycoon. This is used for populating data for an R Shiny business intelligence application. This project was as much about teaching Scala to data scientists as it was the application itself.
  • SparkR Daemon Initialization, a change to the Spark distribution resulting in weeks of cpu-time being saved by our SparkR applications.
Criteo, 523 S. Main Street, Ann Arbor MI 48104, 2017-02-01 to 2019-12-31. Software Engineer
Criteo is the 3rd largest online advertising agency in the world. I worked on a search application used by many famous retailers such as Target, Walmart, and Kohls.
  • learned Spark programming by maintaining a set of applications on AWS involving Spark, hive, and tomcat
  • Converted above to
    • Spark on Mesos -- this is where our models are created
    • Finatra, a Scala based microservices framework that served our model
  • maintained & extended the Keyword Annotation UI -- a node app (React, Material-UI, and Redux) for rating how well a search terms relates to products
  • Designed and implemented
    • search-term to product-association -- a spark job that read event logs from retailers to deduce which search terms likely led to which product view
    • a way for retailers to fetch all the raw keywords (the original, unstemmed search terms) for a product
    • pipeline monitoring using Prometheus with a Graphite backing store
    • our pipeline in Cuttle -- a job scheduling framework in Scala
Switchboard Software, 115 Sansome St, San Francisco, CA 94104, 2016-03-01 to 2016-08-15. Staff Engineer
Corporate Mission Statement: "Convert programmatic big data into actionable insights for publishing and marketing". I
  • Wrote software that staged data from YouTube content reports to BigQuery
  • Wrote & maintained various Java utilities for converting data to forms Hadoop can work with
  • Moved our Java code to a Jetty server to better manage traffic bursts by limiting threads
  • Automated staging for digital publishing firms
  • Got lots of experience with cloud technologies including
    • AWS, especially CloudFormation
    • Google Cloud Platform
Twitter, 1355 Market Street Suite 900, San Francisco, CA 94103, 2012-06-04 to 2015-09-02. Software Engineer
Developer Productivity Group. Some highlights:
  • Developed and supported the open source Iago — a distributed load testing application written in Scala.
  • Designed & Implemented a distributed code coverage analysis of the 12 million line Twitter code base. This involved Jenkins, Aurora (similar to EC2), Scala, Python, Java, and Bash.
  • Designed & Implemented a patch server. This used an asynchronous framework (the Finagle-based Finatra) with the distributed key-value store (Manhattan).
  • lots of customer support of mostly in-house developed CI and Build systems
BMC Software, San Jose, California, 2009-08-17 to 2012-04-10. Lead Product Developer
We specialize in monitoring and provisioning the cloud.
  • GUI work (JavaFX and Swing) for an application that manages cloud deployments.
  • Both Architect & Project lead for adding Single-Sign-On capabilities to several applications
  • Designed, implemented, documented, and fielded a program that migrates knowledge bases. Patent pending.
  • lots of customer support of an event monitoring system
National Semiconductor, Santa Clara, California, 2007-07-20 to 2009-08-07. Senior Software Engineer
National was acquired by Texas Instruments September 2011.
  • Systems Analyst for a large project involving the automation of the 8-D process for National. This involved work project management, requirements definition, testing coordination, Oracle PL/SQL, nightly jobs, coordination of builds from the corporate data warehouse, and so on.
  • Designed and implemented several enhancements to the Green Compliance application - a Struts based web application (j2ee)
  • Cognos Reporting for the Product Quality Analysis project - this was mostly staging work in Oracle. I have cognos training in Report Studio & Framework Manager.

MindBox, Greenbrae, CA, 2005-05-31 to 2007-07-31. Senior Consultant

Mindbox consults to mortgage brokers using expert systems technology. I was trained in using their forward chaining rule engine ART, but ended up spending most of my time doing J2EE work including the creation of a web service for translating credit reports from an old binary form to a standardized XML form.

3Plus1, Saratoga, CA. 1/1/05 to 5/27/05. Member of Staff

  • Created proprietary extensions to VeriLog
  • Designed and implemented testing framework
  • System Administrator
  • Build God
Kaidara, Los Altos, CA. 5/1/02 to 10/31/03. Senior Software Engineer
  • Implemented and fielded a very responsive, game-like Java Swing interface to a text mining application.
  • implemented a web-based editor for natural language processing using DOM and Struts.
XACCT, Santa Clara, CA. 5/00 to 5/02. Member of Staff

XACCT is the premier IP mediation vendor. Telecommunications companies use XACCT software to gather the data upon which they base their billing. Designed and implemented
  • a high performance aggregator — if you are familiar with the aggregation operators of SQL think of this as aggregations on a continuous stream of data. Written in C++ and the Standard Template Library
  • multi point quality of service — a carrier can only identify quality of service issues in his network by making measurements at two or more points in his network. Doing this passively (without injecting information into the network for measurement) was the point of this product. Written in a Java framework.
  • a portal interface to a business intelligence application. Web Services and JSP Tag Libraries.
Price Waterhouse, Menlo Park, CA. 5/97 to 5/00.
I worked on a web application called "EdgarScan". It is a text mining application. It extracts financial tables and other structured information from the free text of SEC filings. To make the whole thing work requires competence in parsing techniques in Prolog, GUI & database access in Java, HTML generation in Prolog, HTML generation in Java Servlets, Oracle SQL, C & Perl, and so on.

I had a hand in the creation of an XML-based Financial Reporting Markup Language.
IBM, Santa Teresa, CA. 11/95 to 5/97. Advisory Programmer.
I worked on a product called DataHub. It manages large (~1000) heterogeneous nodes providing monitoring and database administration. It is a relatively small (60,000 lines) collection of small Prolog programs. I implemented its client-based monitoring systems and ported it to NT.
Sterling Software, Inc, Redwood City, CA. 1/95 to 10/95. Senior Software Engineer.
Sterling bought my former employer, KnowledgeWare. I designed and implementing a desktop integration product using Visual C++ and an embedded BASIC. It was a "container" application that relied heavily on OLE and OCX's. Much of my time was devoted to embedding BASIC in a "smart" container application.
KnowledgeWare, Inc, Redwood City, CA. 3/93 to 12/94, Senior Software Engineer.
KWI is a CASE vendor. It is considered the premier CASE tool for MIS applications. The heart of the software is a Prolog program called "Cool" that does constraint checking and code generation. I was hired to port this to UNIX and to connect it to a generic graphical user interface C++ library under UNIX. In the process I wrote but that was the fun stuff. Mostly I fixed bugs, of which there seemed to be an endless supply in our C++ code.

Quintus Corporation, Mountain View, CA. 9/88 to 2/92, Software Engineer.
Quintus was a Prolog compiler company that switched to help-desk applications around the time I left and then imploded in 2001.
  • Ported Quintus Prolog from SUN UNIX to VAX/VMS. This involved extensive work with C, X-Windows, GNU EMACS, VAX assembly language, and translating various UNIX system calls to VMS system calls.
  • Internationalized input/output for Prolog.
  • Wrote a tcp package which is used to easily implement inter-process communication over networks. It allows a course-grain parallelism with arbitrarily many processes running on different machines. This works on all POSIX (a subset of UNIX system calls) implementations.
  • Researched multitasking and declarative graphics.
  • Provided technical support on basic techniques in logic programming and software engineering.
Visual Intelligence Corporation, Cambridge, MA, 4/89 to 6/89, consultant
On a SUN 3/60, I built applications around the interactive drawing package "DataViews", which is a tool or "interface builder" for quickly building multi-screened real-time monitoring applications.

Lockheed, Artificial Intelligence Center, Menlo Park, CA. 11/83 to 9/88, Senior Scientific Programmer
  • Wrote an asynchronous user-interface for multiprocessing applications in Ada.
  • Wrote three programming language translators: FORTRAN to FORTRAN77 PL/I to Pascal, and PL/I to Ada. The PL/I to Ada translator was the most comprehensive. It was a recursive descent translator which understood data flow and used type inheritance. It was found to be 98% accurate, which is very good for translators.
  • Tutored A.I. and Knowledge Engineering techniques in the "mentor program."
  • Developed a graphics interface to an expert system (menus, trees, active values, real-time monitors) using Visual Intelligence Corporation's "DataViews."
  • Led a project for generic model based reasoning using a LISP based constraint language.
  • Extended a generic expert system shell to fit multiprocessor problem solving. This involved work in both tcp/ip and DECNET.
  • Extended the natural language Prolog program "Chat" to handle deictics, under the tutelage of its author: Fernando Periera.
  • Wrote a natural language front end to an expert system using semantic grammars to map to case frames.
  • Wrote benchmarks for various expert system shells.
Education
Santa Clara University - Santa Clara, CA. 1985

Post Graduate Studies

Studies stressed artificial intelligence. Favorite projects: writing in Prolog a planner for a robot controller and writing in LISP a logic based expert system building tool like Stanford's MRS.

The Ohio State University - Columbus, OH
  • B.S. Computer and Information Science - June, 1983
  • B.S. Physics - June 1981