Paul Sadauskas
Senior Software Engineer
Passionate about the craft of creating software
My passion is creating software that is a joy for fellow developers to both use and contribute to. I am motivated to hone the craft of software development and to build tools that are elegant, robust, and reliable.
I am capable of digging into the nitty gritty of kernel stack traces and debate the merits of various javascript frameworks, as well as leading a team of fellow developers and mentoring junior engineers.
Notable Professional Skills
- Full-Stack Web Application Development
- Ruby & Rails
- Web APIs/services, ReST, JSON+LD, Hydra
- Service Oriented Architecture & Distributed systems
- System Administration & Large-scale deployments, AWS
- Javascript, CSS, Ember.js
- Open Source Contributor
- PostgreSQL and other relational and non-relations DBMSs
- Architecting, Planning, Developing, and Managing software products
Major Open Source Projects
Resourceful
- Implementation of a fully RFC2616-compliant HTTP/1.1 client in Ruby
- Includes support for advanced features of HTTP, including support for redirects and caching with pluggable backends
- Used to build other abstractions, such as object mappers for REST/Hypermedia APIs
progress_bar
- A very simple implementation of a CLI progress bar, similar to the output of cURL
- Mentored contributors to keep thier pull requests small, focused, and well-tested
- It was originally intended primarily for personal use, but is now a dependency of several popular projects
DataMapper
- Heavily involved in design and implementation of DataMapper, and preparing for release of 1.0
- Responded to issues and pull requests, and mentored new developers to get involved
- Redesigned and implemented DataMapper Adapters interface
- Designed and implemented Migrations plugin
Merb
- Heavily involved in design and implementation of Merb, preparing for release of 1.0
- Implemented support for conditional GET requests (304 response/Etag)
- Implemented correct handling of HTTP Accept header including negotiating
client and server priorities
Collectd
- Contributed the tokyo-tyrant collection plugin
- Contributed the write-http plugin, which will submit collected measurements via libcurl to an HTTP server
Additionally, I have made small code contributions to numerous other OSS projects, including Rails, Rack, Awesomewm, and Arch Linux.
Presentations
Professional Experience
Senior Engineer
Kapost
Feb 2015 - Present
- Architected and implemented an application to collect and present analytics data. Utilized CouchDB for analytics storage and aggregation, and SQS for background workers
- Extracted and optimized the authentication portion of the app to provide the service to all other SOA apps. Utilized modern cryptography to encode a shared domain cookie
Senior Engineer
RainforestQA
Aug 2014 - Feb 2015
- Wrote a full-stack Rails application (Postgres, Ruby, CSS, JS) to provide testers with a one-time use email address
- Added features to the open-source QueueClassic and QueueClassicAdmin gems
- Troubleshooted performance issues relating to load from a "stampeding herd" effect from testers
- Prototyped a replacement for a core component of the UI in Ember.js
Senior Engineer
Librato
Dec 2012 - Aug 2014
- Architected and implemented a queue/worker system in Ruby to import users' AWS Cloudwatch data into Librato Metrics
- Contributed to and coordinated feature development on the Librato open-source client libraries
- Drove greater adoption of hypermedia concepts in the Librato API, both external and internal
- Took charge of a website security audit and fixes to user-facing websites and APIs
- Evaluated various JavaScript frameworks to use in a new frontend dashboard
API Developer
GitHub
Jun 2012 - Nov 2012
- Design and implemented hypermedia APIs for extracted micro-apps to communicate with the main app and each other
- Made upgrades to various aspects of the GitHub API, and communicated those changes to users
- Improved tooling for generation of documentation of the GitHub API
Senior Software Engineer
LivingSocial
Nov 2011 - Jun 2012
- Took part in upgrades and enhancements to the email newsletter and notification delivery system
- As a member of the API team, drove adoption of hypermedia APIs as part of a SOA refactor
- Helped refactor a large Rails app by following the principles of TDD and Martin Fowler's Refactoring
Senior Software Engineer
Strobe
May 2011 - Oct 2011
- Implemented a "ChatOps" continuous deployment system using Campfire and Chef
- Created from scratch the Chef cookbooks and recipes to deploy the entire Strobe infrastructure to AWS
- Set up a JenkinsCI cluster for continuous builds of Ruby/Rails, C++ and Clojure applications
- Assisted other team members in getting their projects in CI and Chef for deployment
- Helped implement a CDN/Caching proxy for customer assets in Clojure and Riak
Senior Software Engineer
Absolute Performance
2006 - May 2011
- Rewrote an existing monolithic Perl web application into multiple Rails applications
- Architected and developed new applications to interact with the main apps by hypermedia APIs
- Accomplished an order of magnitude improvement in capability by implementation of HTTP caching
- Revamped procedures to ship and deploy applications in various languages to remote customer sites
- Implemented new features in various NoSQL databases, TokyoTyrant, MongoDB, and Redis
- Encouraged the team to adopt automated Unit and Functional testing, as well as agile methods
- Engaged in continuous deployment on non-cloud physical hardware at various customer locations
- Invovled as primary architect of all layers of the stack, from Javascript UIs to database schemas
Senior Web Developer
InputOutput Unlimited
2002 - 2006
- On a contract basis, implemented numerous web applications in PHP and later in Rails
- Created specifications and designs from (sometimes ambiguous) customer and stakeholder requirements