Senior Software Engineer (Remote) at Guaranteed Rate
2021/04 - Present
- Worked on pre-existing Clojure jvm services
implementing new features and fixing bugs.
- Developed new Clojure(Script) projects to run on node.js Lambdas.
- Added new metrics for monitoring, alerting, and research.
- Implemented data (EDN) based DSL system for rule-execution
used in both clj and cljs apps.
- Implemented CI tests for libraries and applications
including application tests, service dependencies, and Jenkins pipelines.
- Developed terraform modules to create graphs and alerts for grafana dashboards.
- Deployed existing services to new environments.
Skills
-
Clojure
-
ClojureScript
-
Terraform
Senior Software Engineer (Remote) at Instructure
2016/09 - 2021/04
Worked on 5 Clojure services:
- Implemented core functionality of java interop with closed source vendor library (not easy).
- Added set of shared query APIs (8 different views) with honeysql (super fun).
- Added data migrations to deployment process to implement query optimizations.
- Refactored test suite from unit tests to request specs to increase confidence in dependency upgrades.
- Added metric collection, logging, and error handling middleware to provide consistency across services.
Created tools to increase productivity and lower barrier to entry for contributing:
- Built open source CLI in Go to provide a simple,
consistent workflow for local development including service configuration options, automatic
loading of secrets, and programmatic access to configuration.
- Utilized it in a variety of projects to enable coworkers of any team and role
to get the projects up and running with ease (including CI build to reduce local dev breakage).
- Built Ruby based super-project to stitch together multiple projects
and ease cross-service development.
Worked on a feature team for 2 years using Ruby and JavaScript
to implement and fix bugs in customer facing features;
Moved to infrastructure/tooling team to focus on core backend features,
tooling, testing infrastructure, and project architecture:
- Added services to test suite to increase test coverage.
- Built development/testing environments to better mimic production.
- Created several linters and implemented test helpers for the QA team to use.
- Fixed an awful lot of flaky tests to improve build speed and reliability.
- Added features to C++ ruby gem to integrate app with Apache Pulsar.
- Wrote ansible, terraform, and Dockerfiles to fix and enhance deployments.
Wrote articles for internal blog about Clojure and Docker.
Gave tech talks and demonstrations for Ruby, Sidekiq, Go, and several internal projects.
Skills
Software Development Engineer at Auction Edge
2009 - 2016 (Remote)
2004 - 2007
Work with remote team (video calls, group chat, pull requests / code reviews)
to develop websites and REST APIs with Ruby and Rails.
Mentor junior developers and new hires on
craft, collaboration, debugging, visibility, optimization, maintenance, and deployment.
Debug everything.
Use Perl, Python, Ruby, Node.js, Bash, and more
to fix, integrate, and automate whatever is needed.
-
Worked with two other developers to create, deploy, and maintain configurable
Ruby on Rails websites customized and deployed for more than 80 customers.
- GNU/Linux Server administration
- PostgreSQL database administration (including PL/pgSQL)
- Back end Ruby shared library code
- Rails web sites
- Front end HTML, CSS, and JavaScript (AJAX)
-
Implemented a distributed ETL system.
- Shipped GNU/Linux computers to customer locations.
- Wrote Perl software to query local databases (DB2, SQLServer, CSV files),
massage data, and scan local file shares for photos and submit changes to server.
- Wrote Perl web services to receive customer data, save it to PostgreSQL database,
and manage monitoring and updates for the satellite computers.
- Wrote Perl daemons to process queue of photos to import, monitor connections,
pass messages for RPC, and initiate interactive shell sessions with the remotes.
- Wrote Javascript SPA to view connection statuses and deploy scriptable updates.
-
Hacked old dev tools to integrate Sass compilation into a 10 year old Rails 1.0 project.
-
Wrote Python Flask app to export data and table definitions from SQL Server and diff records
to help another team maintain backward compatibility during a rewrite.
-
Created Puppet modules by analyzing existing legacy production systems
to migrate from physical servers to AWS for increased capacity.
-
Wrote Ansible roles, Puppet modules, Hiera configs, Fabric tasks, and shell scripts
to configure and maintain 20+ GNU/Linux AWS EC2 instances.
Skills
-
Perl
-
Python
-
Ruby
-
JavaScript
-
Bash
-
Ansible
-
Puppet
-
Hiera
-
Fabric
-
PostgreSQL
-
AWS
-
Git
-
Docker
-
Vagrant
-
Gimp
-
ImageMagick
Core Contributor, Administrator (Volunteer) at MetaCPAN
2011 - 2016
metacpan.org (github) -
Open source search API for the Comprehensive Perl Archive Network.
After contributing and participating on IRC for more than a year
I was invited to join the admin team to help with issue management,
deployment, system administration, and future design.
As team members live all over the world
collaboration is done almost entirely via IRC and GitHub pull requests.
In the summer of 2014 I mentored an intern with the
Free and Open Source Software Outreach Program for Women
(now called Outreachy)
and assisted another team member mentoring a student
through Google Summer of Code.
Skills
-
Perl
-
JavaScript
-
Elasticsearch
-
Puppet
-
Hiera
-
Vagrant
-
Bash
-
NGINX
Webmaster (Volunteer) at Groundwork Guatemala
Since 2009
Skills
-
Perl
-
Bash
-
JavaScript
-
Haxe
-
ImageMagick
-
Inkscape
-
Gimp