Qualifications
- Worked on a wide range of products such as forecasting, keywords,
distributed monitoring applications, load testing, text mining, CRM,
data warehousing, business intelligence, web based end user
self-care, CASE, compilers, and expert systems.
- Developed and presented product training courses to field
personnel, including sales force, pre-sales engineers, professional
services and support teams.
Background
Spark, web applications, text mining, compilers, CASE tools, GUI, and
network software.
Published
- OAuth for Remote MCP Servers
-
GitHub
dev.to
Hashnode
Experience
OptConnect
Software Engineer
North Canton, OH (remote) · 2023-01 to present
OptConnect provides managed wireless connectivity for unattended
devices — ATMs, kiosks, vending. I work on Midway,
the in-house IoT platform that manages the SIM fleet's
provisioning, usage, alerting, and billing across carrier APIs and
NetSuite (Scala 3 / Pekko, MongoDB, Kafka & Kinesis, Vue 3,
Kubernetes on EKS).
- Built and maintain the carrier integrations: migrated AT&T
usage ingestion from the legacy SOAP API to JPO SFTP + REST —
shadow-validated against the old path before cutover, with
rate-limit throttling, retry orchestration, and a health
dashboard. Onboarded the Lattigo SIM platform end-to-end
(activation, suspend/restore, deactivation, error surfacing) and
keep Verizon ThingSpace in sync with NetSuite.
- Own much of the billing pipeline: distributed monthly billing
via Kafka, pool-vs-carrier reconciliation with validation runs
and coverage metrics, and the real-money bug hunts that follow
(usage doubling, shadow-bill drift, a $29K overage
investigation).
- Kinesis streaming: fixed a backpressure memory leak,
distributed consumption across pods, throttle-on-rate-limit
recovery.
- Drove platform migrations: Scala 3, Akka → Pekko, MongoDB 6,
and the Vue 2 → Vue 3 frontend rewrite through go-live.
- Stood up the observability stack: OpenTelemetry agents +
collector (DaemonSet), Jaeger tracing on OpenSearch, Grafana
dashboards as code, Elasticsearch log pipelines.
- Designed and shipped a Midway MCP server (OAuth 2.1, public
connector) so LLM agents can query lines, usage, pools, and
bills directly — and published what I learned as
OAuth for Remote MCP Servers (see Published,
above).
Target
Sr. Data Engineer
Mendota Heights, MN · 2020-02 to 2021-02
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
Software Engineer
Ann Arbor, MI · 2017-02 to 2019-12
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 term
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
Staff Engineer
San Francisco, CA · 2016-03 to 2016-08
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
Software Engineer
San Francisco, CA · 2012-06 to 2015-09
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
Lead Product Developer
San Jose, CA · 2009-08 to 2012-04
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
Senior Software Engineer
Santa Clara, CA · 2007-07 to 2009-08
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 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.
Senior Consultant
Greenbrae, CA · 2005-05 to 2007-07
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.
Member of Staff
Saratoga, CA · 2005-01 to 2005-05
- Created proprietary extensions to Verilog
- Designed and implemented testing framework
- System administrator
- Build god
Senior Software Engineer
Los Altos, CA · 2002-05 to 2003-10
- 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.
Member of Staff
Santa Clara, CA · 2000-05 to 2002-05
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 · 1997-05 to 2000-05
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
Advisory Programmer
Santa Teresa, CA · 1995-11 to 1997-05
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
Senior Software Engineer
Redwood City, CA · 1995-01 to 1995-10
Sterling bought my former employer, KnowledgeWare. I designed and
implemented a desktop integration product using Visual C++ and an
embedded BASIC. It was a “container” application that
relied heavily on OLE and OCXs. Much of my time was devoted to
embedding BASIC in a “smart” container application.
KnowledgeWare, Inc
Senior Software Engineer
Redwood City, CA · 1993-03 to 1994-12
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
Software Engineer
Mountain View, CA · 1988-09 to 1992-02
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
Consultant
Cambridge, MA · 1989-04 to 1989-06
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
Senior Scientific Programmer
Menlo Park, CA · 1983-11 to 1988-09
- 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
Pereira.
- 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
Post Graduate Studies
Santa Clara, CA · 1985
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