EXPERIENCE
|
PEAK6 (Chicago, IL) |
Remote from Portland, OR |
Principal Software Engineer |
September 2021 - November 2023 |
Team Focus Insurance Group (Sunrise, FL) |
October 2022 - November 2023 |
- Designed and implemented many of "the tricky bits" underlying a multi-tenant insurance policy management platform.
- Enabled the reuse of intellectual property at scale by introducing sandboxed compilation and execution of existing business logic that had been implemented in Groovy, is managed by the tenant, and is modified at runtime.
- Updated legacy codebases to enable reuse of internal "v1" tools during initial "v2" launch to shorten time to market, to enable incremental development of modern components, and to allow clients to seamlessly migrate to the new system.
- Integrated a scalable document store with a legacy source of truth RDBMS to create a responsive, lossless, predictive, optimistic lock based persistence layer, allowing new development to exclusively leverage modern storage. Incorrect predictions due to concurrent updates are rare, but unavoidable. When encountered, DB2 updates always win, incorrect DynamoDB predictions are reverted, then replayed if disjoint, otherwise captured for manual resolution by the user.
- Introduced abstractions throughout a monolithic Python codebase to ensure consistent optimistic lock based persistence.
- Combined Java and Python code from single purpose, monolithic, and legacy codebases with IaC specifications into a high fidelity pipeline for pre-merge CI/CD static code, coverage, and integration tests leveraging Sonar, Docker, LocalStack, Terraform, Serverless, many AWS elements (e.g. API Gateway, Cognito, Kinesis, ECS, EKS, Lambda), etc.
- Migrated Java based microservices from containers to serverless environments while introducing multitenancy to both.
- Achieved one second AWS Lambda cold start (including warmed-up client injected code) with SnapStart.
- Refined specifications with management and business stakeholders to simplify, disambiguate, simplify, avoid race conditions, improve fault tolerance, and promote component reuse.
- Assisted with work breakdown and prioritization (order of execution) to reduce the need to revisit and revise prior work.
- Proposed, reviewed, and refined component and system designs; mentored colleagues; conducted code reviews; stressed the impact of resiliency, code quality, and correctness on development velocity and project success.
|
National Flood Services (Kalispell, MT) |
September 2021 - December 2022 |
- Delivered a hardened insurance policy management platform on AWS with reactive Java microservices, and hybrid persistence (relational and document based) using PostgreSQL.
- Reviewed and refined architectural designs to assist backend teams and project management efforts.
- Identified and addressed race conditions within/between internal services and 3rd party integrations. Resynchronized divergent data conflicts between an external source of truth (FEMA) and production data through both automated and manual detection/resolution mechanisms. Introduced resiliency and fault tolerance to preclude future regressions.
- Provided detailed pull request feedback, and coached those less technical, less seasoned, or lacking relevant experience.
- Improved development velocity, code reuse, test coverage, and maintainability by refactoring a monolithic repository.
- Added Veracode vulnerability scans, static code analysis, and forbidden API enforcement to CI/CD pipelines.
- Continued to fix/mitigate defects/oversights and support the platform adoption for another 6 months after the initial development teams departed. e.g. Identified and resolved privilege escalation vulnerabilities and authorization issues.
|
AMAZON.COM |
Portland, OR |
Software Development Engineer II |
December 2016 - August 2021 |
- Maintained a service which supported billions of calls per day that was used to manage a global, 25-year-old dataset core to Amazon's retail procurement systems, as well as a legacy internal website used to access/manage that data.
- Implemented data segregation mechanisms, allowing the system to support multiple, independent tenants.
- Completed a migration from a system synchronously executed against a relational database to an asynchronous system leveraging DynamoDB - decreasing operational costs, while improving both fault tolerance and system response time.
- Implemented traffic-shaping solutions. One protected the system's hundreds of service clients from one another and another limited inappropriate restricted data access and data manipulation through the internal website.
- Foresaw impending identifier space depletion, and supported a multi-year effort to migrate specific clients to longer identifiers, which should postpone depletion for the remaining clients for more than 20 years.
- Brought system into compliance with data handling standards, and shepherded systems through security reviews.
- Assisted with design and supported projects enabling brand-owner based procurement decisions and prioritization of item content provided by brand owners. Supported related efforts to define brands and their ownership.
- Routinely addressed new vulnerabilities, compliance issues, infosec concerns, dependent system updates, etc.
- Participated in intake discussions, requirements gathering, design reviews, planning meetings, code reviews, operational excellence reviews, on-call rotations, etc.
- Mentored new teammates and interns.
- Designed and implemented a mass execution framework for managing a variety of large data update jobs.
|
BODYBUILDING.COM |
Portland, OR |
Java Software Engineer |
October - December 2016 |
- Assisted with the design and implementation of a scalable search and retrieval microservice for a database of published hal+json annotated dotCMS documents stored in AWS Elasticsearch populated by an SNS triggered Node.js Lambda
|
CONTRACTOR
|
Northwest Evaluation Association (NWEA), through
VanderHouwen & Associates, Inc. |
February - October 2016 |
- Realized a scalable School Assessment platform for the OECD, integrating synchronous and asynchronous data flow between partners, vendors, and an AWS Elastic Beanstalk based network of RESTful microservices and worker tier Docker deployments, backed by PostgreSQL and LDAP in the data center and MongoDB and Elasticsearch in AWS.
- Expanded Terraform infrastructure to include IAM, SNS, SQS, SES, S3, CloudWatch, and more to implement access controlled, asynchronous state machines, notification systems, DevOps alerting, test response scoring, questionnaire response encoding, execution of statistical analysis both at the student and school levels, and PDF report management.
- Exposed both raw and processed data in both structured and tabular formats for ad hoc analysis via a domain specific query mechanism, which enabled rapid systemic validation and simple integration with R-based statistical analysis tools.
- Adjusted design and helped implement git-flow-based Continuous Integration/Release management tooling atop Jenkins.
- Assisted with development and maintenance of AngularJS-based UI deployed against Java 8/Dropwizard and Node.js.
- Built internationalized and localized event subscription and notification system atop S3, mustache.java, SQS, and SES.
- Mentored colleagues, conducted code reviews, ensured both code quality and correctness of the delivered product.
|
Nike Inc., through Mainz Brady Group |
May 2014 - February 2016 |
- Designed and implemented a replacement publishing framework and RESTful microservice for securely storing and exposing product data leveraging both complex relational databases in the datacenter and Couchbase docstores in AWS.
- Centralized business logic and eliminated technical debt by combining varied product and price import processes into a single codebase managed by Spring Batch and Splunk to add visibility into database and file-based data flow.
- Replaced legacy content management system with auditable copy authoring, translating, and compositing platform.
- Mentored colleagues, conducted code reviews, ensured both code quality and correctness of the delivered products.
|
TURNER ENTERTAINMENT |
Atlanta, GA |
Lead Systems/Software Developer |
February 2012 - April 2014 |
- Helped lead the agile team that built the CMS used by CNN, CNNMoney, Sports Illustrated, NBA, and NASCAR; an AS3/Flash/AIR GUI backed by distributed clouds of JSON/RESTful services, document stores, and delivery stacks.
- Mentored colleagues, conducted code reviews, ensured both code quality and correctness of the delivered products.
- Regularly supported 24/7 production use of CMS by content creators and web/template developers around the globe.
- Implemented deploy cookbooks in Chef/Ruby tying execution environments to a continuous integration build system.
- Extended Text Layout Framework (TLF) to support embedding decorated references to internal and external content.
|
Senior Systems/Software Developer |
January 2011 - February 2012 |
- Designed, implemented, tested, and maintained a statically and dynamically composable system for component reuse.
- Implemented an asynchronous task flow specification and execution framework used to replace continuation-based spaghetti code, as well as the associated controller state system, greatly reducing accumulated technical debt.
- Collaborated across the organization continually, but especially during site migrations, datacenter moves, etc.
- Developed secondary thin client shim allowing QA to automate regression testing of deployed, downloaded bundles.
- Extended Puppet deployment mechanism to allow environment-dependent, deployment-time software configuration.
- Performed ongoing maintenance of the syndication platform (upgrades, training, and support for operations and template authors).
|
CONTRACTOR
|
Turner Entertainment, through ProKarma Inc. |
September - December 2010 |
- Implemented a scalable, rule-based content syndication system with a RESTful API. Combined Java, Drools Expert, CouchDB (NoSQL), RabbitMQ, Spring's IOC, MVC, RestTemplate, FreeMarker, JUnit, Mockito, Maven, and an agile team to realize and deploy a tested and documented component of Turner's CMS3 under short deadline.
|
INDEPENDENT CONTRACTOR
|
Hey Jerry Brands LLC |
August 2006 - July 2010 |
-
Designed and implemented an on-site, scalable,
photography-based, social networking system.
Responsible for everything from gathering evolving
requirements, hardware and software architecture, and
database/datastore design to front-end, hardware,
end-to-end, user, and unit testing.
SeenAbout.com/PunimPlanet.com's standards-based
front-end provided many AJAX controls, while the
back-end was based upon a multi-tiered JEE stack built
using Spring, Struts2, and Hibernate3. The system
leveraged numerous open-source and commercial packages,
both providing and consuming SOA services, e.g.
enabling facial recognition, disconnected operation,
and reverse Turing tests.
|
Parabon Computation, Inc |
February 2005 - April 2006 |
-
Developed Application Distributor, an XML-based
scripting language for distribution of native
applications.
|
VECNA TECHNOLOGIES, INC |
College Park, MD |
Senior Software Engineer |
July 2002 - August 2004 |
-
Product Manager for vKiosk System, hardware and
software used in military treatment facilities to
streamline patient visits by automating patient self
check-in, vitals capture, and custom surveys.
-
Technical Project Lead for vTrack product suite, a
web-based project, expense, invoice, task, and time
tracking tool used by organizations ranging from
military treatment facilities to a bulk trash company.
-
Designed and developed components for numerous
J2EE-based projects, heavily leveraging various open-
source packages (e.g. Struts and Hibernate), deployed
within Oracle and Tomcat Application Servers.
-
Project Manager and scientific contributor for $2.7M
NIH-funded nosocomial infection detection system.
-
Employee of the Quarter in the third quarter 2003.
Qualified seven out of eight quarters at Vecna.
|
PARABON COMPUTATION, INC
|
Fairfax, VA |
Computer Scientist |
July 2000 - September 2001 |
-
Developed Prospector, a distributed genomic and
proteomic sequence comparison package.
-
Ported Molecular Dynamics Protein Folding application
from FORTRAN90 to Frontier Distributed Platform.
|
LOONEY LABS |
College Park, MD |
Developer and Administrator |
May 2000 - October 2002 |
-
Developed data model for unified business management
tool, including online sales, order processing,
contact management, product/retailer promotion,
content management, community management, testing,
and more.
-
Implemented complex portal for fans, consumers,
retailers, sales, fulfillment, game developers, and
game beta-testers.
-
Managed mailing list and web site migrations and
upgrades using both off-the-shelf and custom
components.
|
INSTITUTE FOR SIMULATION AND TRAINING
The University of Central Florida
|
Orlando, FL
Jan-Dec 1992, Feb-Aug 1994
|
-
Designed and built hardware and software for creating
and investigating Virtual and Augmented Environments.
-
Helped develop a Strawman Proposal for the inclusion
of Dynamic Terrain within the DIS Protocol.
|
SIGGRAPH '94
The Association for Computing Machinery
|
Orlando, FL
July 1994
|
-
Contributor: Designed, built, and contributed
R.O.V.E.R. (Remote audiO/Visual Explorer Robot).
-
Assistant to the Chair of "Special Venue: The Edge."
|
ROBOTICS INSTITUTE
Carnegie Mellon University
|
Pittsburgh, PA
May 1993 - February 1994
|
-
Created real-time mapping between a VPL DataGlove and
an MIT/Utah Dexterous Hand as the first stage of a
tactile and force feedback Tele-Manipulation and
Tele-Surgery Project.
|
|
EDUCATION
|
SCRUM ALLIANCE
|
Certified ScrumMaster
| November 2015 (expired 2019) |
UNIVERSITY OF VIRGINIA
Candidate for Doctor of Philosophy: Computer Science
|
Charlottesville, VA |
Graphics Group,
Advisor: David Luebke
January 1999 - May 2000
|
-
Designed and implemented a Scalable Distributed Interactive
Ray Tracing prototype on a large-scale workstation cluster.
|
Master of Computer Science
|
January 1999
|
Isotach Group,
Advisor: Paul Reynolds
May 1996 - December 1998
|
-
Integrated and tested hardware for Isotach, a novel
network architecture based upon logical time.
-
Developed Isorule, an asynchronous parallel production
system built on a Myrinet Isotach prototype.
|
User Interface Group,
Advisor: Randy Pausch
May 1995 - April 1996
|
-
Assisted in the design and testing of Alice, an
Interactive 3D Graphics Programming Environment.
-
Investigated interaction techniques for use within
immersive Virtual Environments.
|
CARNEGIE MELLON UNIVERSITY
Bachelor of Science: Mathematics/Computer Science
|
Pittsburgh, PA
May 1995
|
|
PUBLICATIONS
|
"Scratchpad: Mechanisms for Better Navigation in
Directed Web Searching," with Bhupinder Sethi and Kathy
Ryall, Proceedings of the 11th Annual ACM Symposium on
User Interface Software and Technology (UIST '98), pp.
1-8, November 1998, San Francisco, CA.
"Perceptually Driven Simplification Using Gaze-Directed
Rendering," by David Luebke, Benjamin Hallen, Dale Newfield,
and Benjamin Watson, University of Virginia Technical Report
CS-2000-04.
"Apparatus and Method for Providing Sequence Database
Comparison," by Douglas Blair, John Grefenstette, Hadon
Nash, Dale Newfield, and Dustin Lucien. U.S. Patent
Application following Provisional Application Serial No.
60/211,811.
"Prospector: Very Large Searches with Distributed BLAST and Smith-Waterman,"
by Douglas Blair, Dustin Lucien, Hadon Nash, Dale Newfield, and
John Grefenstette. Poster presented at The 9th Annual
International Conference on Intelligent Systems for Molecular
Biology, July 21-25 2001, Copenhagen, Denmark.
"Simulations of β-hairpin folding confined to spherical
pores using distributed computing," by D.K. Klimov, D.
Newfield, and D. Thirumalai, Proceedings of the National
Academy of Sciences, June 11th, 2002; Volume 99, Number 12,
pages 8019-8024.
|
|