| CARVIEW |
Peter Boling
Coding Bootcamp Instructor at edX, Michigan State University
Principal Cloud Engineer at Vital Connect
FLOSS Author & Maintainer at Tidelift
Co-founder & Researcher at Word Tree Foundation
Co-founder & Advisor at Hope For Tomorrow (Liberia)
For over 18 years I have been building web-based applications, primarily with Ruby. I am passionate about building FLOSS tools to help humanity accomplish more good things with fewer resources.
Skills
Experience
Teaching remote, online, coding course
Responsibilities:
- Teaching students to build, and refactor, modern, accessible, responsive, performant websites
- Stack: HTML, CSS, Javascript, React, Git, GitHub, GitLab, Heroku
Anywhere Patient Monitoring
Responsibilities:
- Building, maintaining, and upgrading vital signs monitoring solutions in support of the VitalPatch RTM.
Engineering, Product, & Design Recruiting. Minimized Hiring Risk. Predictable Success.
Responsibilities:
- Lead Engineering organization of 20, and directly manage backend team of 5 and devops team of 2
- Design migration paths toward increased data security, lower systems costs, fewer wasted resources
- My team leverages CQRS+ES (event sourcing), and GitOps for infrastructure-as-code, automation, monitoring, APIs, services, and data processing
- Maintain the legacy Grape/Rails app, and work on the Hasura Read Model, KNative Eventing, GraphQL APIs, Data Models, Ingestors, Denoramlizers (Projections), and Command APIs, in the new NodeJS CQRS+ES distributed system
- Event Storming to determine what we need to build; maps perfectly to CQRS+ES, and abides the principles of Domain Driven Design
- Primary Jira administrator for all company projects
Technical Advisor, Principal Software Engineer
Karuna Health, acquired by Commure, Inc
Nov 2018 - Apr 2020, San Francisco, CA
Karuna connects patients with healthcare guides through streamlined communication and automation.
Responsibilities:
- Advising on technology and hiring decisions at Karuna Health.
- Built the email gateway, much of the notification services, and helped plan the architecture of the system.
- Created automated tools that correct many forms of data corruption.
Principal Software Engineer
Group 1001
Nov 2018 - Nov 2019 (6 month contract, extended), New York, NY
We are a family of insurance companies offering accumulation and protection solutions
Responsibilities:
- Re-built and maintained Relay Rewards (now offline)
- Re-built and maintained Group 1001 @ https://www.group1001.com/
- Worked on many parts of Gainbridge Life @ https://gainbridge.io/
- Primary Jira administrator for all company projects
Principal Software Engineer
Intricately, acquired by HG Insights
May 2016 - Nov 2018, San Francisco, CA
Authoritative Product Adoption, Usage, And Spend Data. Get detailed insights into the cloud infrastructure of 7 million companies.
Responsibilities:
- Created time-series data collection & analytics; Generates events to track change on internet
- Scaling systems and creating devops tools to better utilize infrastructure
- Advanced math to transform non-scalar data from AWS Alexa into a scalar digest
- Monitor, log, benchmark, and automate the internet monitoring robots
- Build data pipelines for enterprise customers exposing the internet sliced in different ways
- Primary Jira administrator for all company projects
Bolt Threads is a material solutions company. Taking nature as our inspiration, we invent and scale cutting-edge materials that put us on a path towards a more sustainable future – and that starts now.
Responsibilities:
- Maintenance of a legacy, custom, in-house built, Lab Information Management System
- Analysis of potential replacement third party LIMS systems
- Interviewed candidates for Software Engineering leadership team (VP, Director, Sys Admins)
- Integration of Windows-based OPC DA services with LIMS via data sampling mechanisms
- Translate garment designs to instrumentation for a Stoll industrial knitting machine
- Left when the in-house LIMS system was replaced with off-the-shelf software
- Primary Jira administrator for all company projects
Principal Software Engineer Team Lead
Invoice2Go, acquired by Bill.com
Jan 2016 - Feb 2017, Jakarta, Indonesia
Send professional invoices and estimates in minutes. Invoice on the spot, right when you finish the job. Spend less time on paperwork and more time doing what you love.
Responsibilities:
- Lead the web team in developing a revamped web app, now at https://invoice.2go.com/invoice-generator/
- Laid the groundwork for new service architecture, implementation and continuous integration
- Designing and implementing git branching strategy and supporting toolchain
- Implementing sandboxed dev env and tiered deployed environments
- Design and implement feature flags allowing synchronized feature release across clients
- Tech Lead role in Jakarta office
- Primary Jira administrator for all company projects, and integration with ZenDesk
Personalized service and bespoke made-to-measure fashion.
Responsibilities:
- Rebuilding architecture of entire tech stack
- Extracting front-end parts to ember-cli and react thin clients
- Building structured, authenticated, performant APIs, utilizing versioning and caching
- Modernizing versions of Ruby, Rails, and many critical gems
- Implementing backend to support launches of new product lines (blazers, ties, belts, pants, sweaters, tees, etc), fulfillment processes, factories, and shipping methods
- Designed and created a fully spec’d 12-state Lead CRM tool
- Integrated Salesforce with internal Lead CRM via my celluloid-io-pg-listener gem
- Built a commissioned sales attribution framework that supports point-in-time history
- Fixed the factory pattern and rewrote the spec suite, adding thousands of additional tests
- Setup new deployed environments, created Thor deployment tool for automation of the many deployment related sub-tasks
Staff Software Engineer (9mos contract, extended)
Church Pension Group Services Corporation
Aug 2013 - Nov 2014 (9 month contract, extended), New York, NY
Provides resources and services to sustain the operations of the Episcopal Church worldwide.
Responsibilities:
- Forensic analysis of 5 year old ruby service layer
- Upgrade from Ruby 1.8.7 to 2.0, then 2.1
- Created ruby service APIs to support many varied clients, & regression test suite
- Implement account lock and token expiry security measures & automated enforcement
- Upgrade daemon infrastructure and trading systems, improve software stack /
makesystem - 10x performance enhancement of internal services
Co-founder, Chief Technology Officer
Acquaintable, acquired by Reveal (MS Ventures-backed)
Nov 2012 - Nov 2013, New York, NY
Socially curated dating through Friends of Friends
Responsibilities:
- Built the app, hired specialists to assist with some niche projects & made all tech decisions
- Advised on product and design decisions
- Created matching engine with Neo4j + PostgreSQL data analysis algorithms
- SPA, mobile first, responsive design, with intuitive, touch-enabled mobile interface
- Designed to provide an immediate experience to each new user
- Accepted into Entrepreneurs Roundtable Accelerator Winter 2013 class (ERA - NYC)
- Fully automated and self-correcting, no intervention required for 4 months.
Personal Wealth Management
Responsibilities:
- 1st Employee, and lead developer of Bloomberg Black, a personal wealth management startup
- Interviewed and built a team of 15 engineers
- Built internal tools, e.g. VCR extensions that automated management & recording of soap interactions outside test env
- Spec suite with thousands of tests to enforce style guide, validate ruby namespace against collisions
- SOAP services interface, generators for SOAP models and test fixtures; created version dependency resolution between Ruby layer and Java services
- Rack middleware for fast custom logging => Splunk, 10ms per request improvement
- CMS presentation code for the dynamic content on the site with all content available via static route or ajax widgets
- Designed project structure - ajax widgets built out of reusable RequireJS modules, cells for componentized features, presenters for single instance variable, and logic free views
- Spec infrastructure - created custom rspec matchers, acceptance tests, JS unit tests
- Javascript - flyout menus, internally tabbed ajax pages, scrollspy, breadcrumbs
- Javascript - Built the CMS backend for the content entry in the 100% javascript Rapid IDE
- Maintained platform interoperability – Windows & RedHat & MacOS
- What started as Bloomberg Black eventually became CircleBlack.com
Projects
oauth2
Oauth 2.0 for Ruby
oauth
Oauth 1.0 for Ruby
oauth-tty
OAuth 1.0 TTY Command Line Interface
flag_shih_tzu
Bit fields for ActiveRecord
dynamoid
Ruby ORM for Amazon’s DynamoDB.
omniauth-identity
A simple login and password strategy for OmniAuth.
sanitize_email
An Email Condom for your Ruby Server
gem_bench
Static Gemfile Analysis; A Toolkit for working with 3rd party libraries in Ruby
debug_logging
Unobtrusive, configurable, drop-in debug logging useful when a call stack gets unruly
resque-unique_in_queue
Resque plugin allowing configuration of queue-time job uniqueness
resque-lonely_job
[WIP-Deprecating] Resque plugin allowing configuration of run-time job uniqueness
resque-unique_at_runtime
Resque plugin allowing configuration of run-time job uniqueness
resque-unique_by_arity
Magic hacks which allow integration of job multiple Resque plugins providing different types of job uniqueness
anonymous_active_record
Faux Anonymous AR Models for testing Concerns, Observers, Decorators
month-serializer
Serialize Month objects to Integer
rspec-stubbed_env
Unobtrusively stub ENV keys and values during testing
activerecord-tablefree
TableFree ActiveRecord w/ associations and nested attributes
react-rails-benchmark_renderer
Benchmarking instrumentation of the sort found in Rails’ view rendering
each_in_batches
Allows reverse batching, which means it can handle many types of destructuve blocks!
destination_errors
Mixin providing management of error surfaces within the familiar territory of ActiveModel
cacheable-flash
(ARCHIVED) Gets the Rails flash object working with page cacheing.
controller_validator
Simple Validations in the Controller
analog-reshaper
Analog (gem) plugin allowing non-linear rescale of numbers
dry_views
Keep the views dry with content_for_with_default and friends!
letter_group
Organize data results from raw sql queries (as with PGresult, or Dossier) intelligently.
csv_pirate
100 Pirates agree creating CSVs is boring. Pirates prefer lazy. Pirates use CsvPirate.
rails_env_local
Where the rails environment for local development can be named anything it desires!
status_tag
Provides a method signature that can be splatted to Rails’ content_tag_for to create labels.
capistrano_mailer
A Gem For Capistrano Deployment Email Notification
strict_states
State machine typos are the worst. Never again! Compatible with most state machines.
include_with_respect
Find out if your include and extend hooks are misbehaving!
require_bench
Benchmark Ruby’s require for Debugging Glory
rspec-block_is_expected
Simplify testing of blocks in RSpec
celluloid-io-pg-listener
Allows you to LISTEN for NOTIFY events from PostgreSQL and asynchronously handle the payload
rspec-pending_for
Mark specs pending or skipped for specific Ruby engine / version combinations
activerecord-transactionable
Properly Implement ActiveRecord Transactions
silent_stream
ActiveSupport Stream Silencing (STDOUT & STDERR) - Without ActiveSupport
rack-toolbar
Provides an easy way to create Rack Middleware that injects things into the response body
dotfiles
My personal dotfiles for Bash and Zsh
bsfl
Bash Shell Function Library (FORK)
bash_step
Bash Step Function Library
rack-insight
Debugging toolbar for Rack applications implemented as middleware
super_exception_notifier
Super Exception Notifier Gem/Plugin for Rails
jquery.environment
jQuery plugin that is analogous to the config/environments files in Rails.
jquery.ellipsis
Yet Another jQuery Ellipsis Plugin… only better.
js-cookie-calibre
A simple, lightweight JavaScript API for handling and namespacing configuration cookies
shiftable
Change ActiveRecord associations in a structured manner
snaky_hash
A Hashie::Mash joint to improve #snake_life for everyone
version_gem
Versions are good. Versions are cool. Versions will win.
undrive_google
🏴 Liberate files from your Google Drive
simple_column-scopes
Dynamic modules define dynamic methods from array of column names
service_actor-promptable
TTY User Input plugin for service_actor gem
sequential_file
Create Files Named Sequentially Intelligently
seed_migration
Seed Migration
qfill
Create Files Named Sequentially Intelligently
pretty_feed
Pass/Fail logging colorization
gitmoji-regex
A regular expression matching Gitmoji symbols only
archivist-client
Query archive.org for book data and download some things