My smiling face Philip H. Smith

Big Data, Service and Systems Developer in Seattle, USA

Redfin -

Senior Software Developer Seattle, USA

Led the adoption and deployment of Kubernetes, directly designing several key components.

In addition to championing the effort, I played a lead role in implementing the chosen security model, multi-region redundancy, integration with existing cloud and on-premise networks and several pieces of custom automation.

Several "buy" options for layering a deployment pipeline on top of vanilla kubernetes assume a static layout of "namespaces". Namespaces are a central feature of kubernetes which control access to secrets and hardware resources: a static namespace layout introduces unnecessary friction when the applications within are more dynamic.

To create the automation enabling a more dynamic, flexible namespace model we chose to build several "controllers" (robots running within the clusters) using metacontroller. These controllers validate and responded to certain requests by creating configured namespaces and turning control of them over to the requestor. The right to make these requests is protected with the native authorization rules, enabling controlled, dynamic dispersal of cluster resources.

Moz -

Senior Developer (Big Data) Seattle, USA

Architected, scaled and maintained web-scale databases, including link indexes of the Internet.

One prominent index is a legacy application written in C++, covering the requirements of crawling, indexing and serving queries over a restful interface. It worked, but it was highly coupled and had poor test coverage, making new feature addition difficult.

To address these issues I created sauce, a C++ dependency injection framework (Google's fruit, which I would recommend in a C++14 world, was not yet published.) Sauce effectively allows a developer to replace a component's dependencies with mocks or stubs during test. This in turn greatly increases the developer's ability to simultaenously achieve good coverage and speed up tests that do not need, e.g. the filesystem or network.

Before joining the Big Data team the focus of my work was the design and implementation of a campaign application, created in Ruby on Rails. In an effort to retain modularity the application was architected as a series of restful webservices, each charged with a different feature of the user's data experience. This strategy was successful, but implied a lot of boilerplate overhead as each new service exposed its particular assortment of database-backed resources.

To ease the burden of exposing new resources, I created a Ruby on Rails library called responder controller. It filled a feature gap in the then-new version 3 of the framework, by providing a concise DSL for articulating the relationships between restful resources and their database model peers.

Tech. Distribution Solutions -

Developer Seattle, USA (remote)

Sole developer and adminstrator for a startup in a niche market in retail electronics. Implemented in Ruby on Rails version 2 in a classic three tier model.

Business Logic -

Developer Chicago, USA

Implemented and maintained a retirement finance Monte Carlo simulator as a web service.

To enable domain experts to rapidly iterate and to retain BLAS-powered performance, the matrix-smashing aspects were implemented in Matlab. This work was exposed under a restful Tomcat service using a pool of Matlab processes. Each was exposed to Java through a novel interface best described as something between a glorified pipe and a terminal emulator.

Business Logic is now NextCapital.

X by 2 -

Consultant Farmington Hills, MI USA

Designed and implemented web service features as a client-facing consultant in the insurance industry.

Sandia National Labs -

Graduate Student Albuquerque, USA

Researched possible L1/2 CPU cache optimizations driven by patterns in concurrent data access.

Heuristics for maximizing cache efficiency by controlling CPU thread affinity were explored. I helped implement benchmark programs.

Rose-Hulman Ventures -

Student Developer Terre Haute, IN USA

Contributed to design and implementation of software components in several incubating projects.

Student developers usually moved between incubating projects on a 3- or 6-month basis. In this way I was exposed to and helped build several diverse projects:

  • A truck engine diagnostic tool that used sensor data to predict or diagnose failure
  • A real estate web application featuring an (ad-hoc) spatial index
  • A chemical engineering desktop application to aid scaling chemical processes from laboratory to processing plant settings.
  • A human-resources management web application.

University of Michigan -

Master's in Computer Science GPA 7.5 of 8

Emphasis on theory of computation, complexity theory and cryptography. Advisor Kevin Compton

Rose-Hulman Institute of Tech. -

Bachelor's in Math. and C.S. GPA 3.6 of 4