riltsken.github.io Samuel Toriel github.com/riltsken samueltoriel@gmail.com Richmond, VA Mission I am an engineering leader who fosters positive environments with a focus on building quality products that are maintainable and scale. Languages Fluent in JavaScript, TypeScript, Python, SQL, HTML, CSS Familiar with Java, Ruby, Bash + More Experience ========== +------------------------------------------------------------------------------+ +-Beech Valley Solutions - Software Engineer April 2021 to Now-+ +------------------------------------------------------------------------------+ Fun Facts --------- * Third engineer * Mostly greenfield work * Wore a lot of hats (startup :)) Description ----------- Beech Valley is a "gig economy" staffing firm for the accounting industry. We leverage technology allowing us to handle 10-100x more staffing tasks than other firms could with less. Hired on as the third engineer I touched all aspects of the codebase, infrastructure and processes. The internal technology stack is a monorepo using NX and Typescript. The infrastructure is AWS on Fargate ECS. I worked on lots of projects but a few are described below. Projects -------- Project Nudge Project Lead. I wrote an informal blog post about the project https://riltsken.github.io/productdevelopment/staffing/recruiting/leading/2021/10/29/project-nudge-a-beech-valley-software-project.html Candidate Pipeline Project Lead. We needed to streamline our process for recruiting consultants. I helped simplify it by figuring out how we could combine multiple systems into one. When this project completed lead times for recruiting consultants went from an inconsistent 25+ days to a consistent 12 days. With the new system we were able to make sure every candidate was responded to. Infrastructure As the primary engineer responsible for the infrastructure (along with collaboration with the CTO) I helped ensure we had a structured environment that was easy to make changes in. We use Terraform Cloud to facilitate infrastructure changes and DataDog to monitor everything. I pushed for daily deploys allowing us to continuously deliver value versus large ad-hoc deploys. I faciliated learnings for the team on how to use tools in this realm. When Heroku declared it's security incident In April 2022 we decided to migrate to AWS. In just 4 months the CTO and myself were able to hammer out a multi-account architecture using AWS Fargate + ECS to manage our app. I implemented security tooling via DataDog to read from AWS CloudTrail and send alarms to Slack for any type of environment change (secret modification, anomalous s3 usage, ssh access, etc). +------------------------------------------------------------------------------+ +-Ibotta - Staff Engineer February 2020 to April 2021-+ +------------------------------------------------------------------------------+ Fun Facts --------- * Joined a team with lots of legacy code and few if any original owners * First time working with GraphQL * No manager for the first 6 months because they were let go and had to find a new one. Description ----------- Primarily worked in the domain of serving Content for Ibotta consumers. As a backend team we focused on storing internal data, applying personalization from customer interactions and serving it through a GraphQL API for Ibotta's external facing applications (Mobile & Web). Much of my day to day consisted of reviewing code from external teams wanting to add new api endpoints and ensuring performance, accuracy, and errors were in our allowed internal SLA's * Maintained and scaled a B2C facing GraphQL API which operated at ~2000 requests/s. During peak busy seasons we manually scaled up the data and compute planes to properly handle large traffic spikes. * After a mandate from the company that we needed to reduce spend I lead and organized team infrastructure costs in a shared spreadsheet month to month which allowed us to identify and reduce costs YoY in the low six figure range (mostly overprovisioned datastores) for our specific team. * When joining the team they deployed sparingly due to response times spiking. Apparently this had been going on for 9 months+. I was able to research, identify, and remediate this bug which required me working with the infrastructure team (we were an app team) to prove that the nginx loadbalancer we were using in kubernetes was the cause. The fix was to upgrade the nginx version + use a different loadbalancing algorithm because it had a bug (: * Introduced Typescript into Ibotta's 2nd largest codebase and provided a migration guide on how to move js parts to ts. The goal of Typescript was to help reduce bugs due to unknown and poorly understood data shapes from developers who were no longer at the company. +------------------------------------------------------------------------------+ +-Percolate - Engineering Manager in Infrastructure May 2019 to February 2020-+ +------------------------------------------------------------------------------+ Fun Facts --------- * Percolate was acquired by Seismic Softare. * First time dealing with SOC 2 Compliance. * Learned kubernetes as an operator. * Learned CFEngine which I have purged from my brain since then. Description ----------- While my tenure at Percolate was shorter than most my impact was still fairly strong. I took over the "team" that managed the legacy infrastructure which was managed by CFEngine (only one person in the company understood how it worked). They had 1000+ legacy nodes that were not using autoscaling groups which required a lot of hands on TLC. My role was in support of another team trying to migrate to Kubernetes as fast as possible while myself and the other individual pretty much kept the infrastructure running. During this period I uncovered a particularly annoying networking bug in Kubernetes causing lots of conntrack failures for apps connecting to datastores. There are many layers here but in concise terms we can say the SNAT implementation was the culprit which we were able to change. The "team" itself evolved and eventually after migrating to Kubernetes I started helping manage the datastores, security and helping with SOC 2 auditing. The team changed and I had 2 data engineers under me where we managed to automate a 25 RDS migration to the new Kubernetes VPC with 0 issues and minimal downtime. +------------------------------------------------------------------------------+ +-Apto - Senior Engineer + Engineering Manager November 2016 to March 2019-+ +------------------------------------------------------------------------------+ Fun Facts --------- * First time managing a team. * First time building a mobile app deployed to both Apple + Android. * Started up their AWS Cloud infrastructure from scratch using Terraform. Description ----------- During my time at Apto I started as a software engineer and eventually lead a product team consisting of 4 software engineers and 1 qa engineer. During my time managing I still helped with architecture, tricky technical bits, and infrastructure. As manager I was involved in 1:1s, engineer growth, hiring and dealing with everything that comes with that in a messy startup environment. Projects -------- Apto Mobile A mobile application linked to Salesforce API's to enable brokers to manage their CRM portfolio. Built with a team of four developers. I had zero mobile development knowledge prior to this application. Deployed to both Google Play Store and Apple iTunes. We practiced continuous deployment by taking advantage of Ionic Cloud to deploy to devices when updates are available without having to push binaries to the App Store. Technology - Ionic 2, Angular 2, TypeScript, Node.js Proxy Salesforce API's Prospect and Nurture A web application for brokers to help streamline their CRM workflow. Skinned on top of the Salesforce API and our managed Salesforce package. Built with a team of six developers. Technology - Ionic 2, Angular 2, TypeScript, Node.js proxy Salesforce API's Mapping A full mapping experience for the Prospect and Nurture platform. Create call lists from your property database using dozens of filters including polygons and radius. Built as a team of two developers Technology - AWS Lambda/SQS, Terraform, TypeScript Node API, Angular 2 pluggable frontend library +------------------------------------------------------------------------------+ +-FullContact - DevOps Engineer April 2015 to July 2016-+ +------------------------------------------------------------------------------+ Fun Facts --------- * Team Size was 3. * Worked with remote team in Latvia, Riga. * Went snowboarding for my interview. * Learned how to operate and scale microservices. Projects -------- Crosshair Internal dashboard we created to aggregate aws infrastructure across multiple accounts. Helped plan out reservations and report on infrastructure. Written as a single page application powered by backend API’s. Technology - Python, Django, MySQL, Browserify, Knockout.js Spinnaker Integrated Spinnaker into environment to handle deploys of microservices on AWS. Contributed open source pull requests that added AWS UserData, SAML SSO fix, and UI component for logged in user. Created tooling around Spinnaker API to create PaaS like heroku system for developers to deploy with. Technology - Groovy, Gradle, Spring, AngularJS, Ansible, Python, Jenkins Scribe Microservice our team developed managing user subscriptions across SaaS vendors. Had periodically syncing jobs, used kafka to handle user changes, and api endpoints for other services. Technology - Java, Gradle, Dropwizard Infrastructure Manage AWS portfolio of 600+ nodes / 50+ microservices. Automated auxiliary infrastructure of Kafka, Cassandra, Storm, ELK Stack, Graphite, Spinnaker, and Microservice Architecture for JVM. Technology - Ansible, Packer, Ubuntu, Bash +------------------------------------------------------------------------------+ +-Rackspace - Software Developer Feb 2012 to March 2015-+ +------------------------------------------------------------------------------+ Fun Facts --------- * Team size was 25ish. * Worked with remote teams in San Francisco and Brazil. * Learned what it was like working on a large team. * Experienced working in a monorepo. * Teaching interns how to get up to speed and push code on their first day. Projects -------- MyCloud The web portal for Rackspace public cloud (mycloud.rackspace.com). Contributed to all aspects including (100k+ line JavaScript, Google Closure Library, Knockout.js), backend (Python/Django), custom reverse proxy (Python/Twisted), infrastructure (200+ nodes, Chef) and qa (Ruby/Selenium). SSO Implemented custom SSO solution using SAML where MyCloud acted as the Identity Provider for other control panels at Rackspace. Allowed customers the ability to login only once and access multiple services. Technology - Python, Django Pilot Shared Header API used by multiple control panels and teams. Created unified look and feel to all control panels at Rackspace. Above SSO work was essential to create this experience. Technology - Python, Twisted, Flask, Gevent Closure Tracker Overlay chrome plugin created w/coworker which displayed information related to Google Closure Event Framework. Allowed for performance debugging and finding memory leaks from event handlers. Awards ------ Impact of the Month in September 2012 for organizing Startup Weekend Blacksburg Impact of the Month in March 2014 for migrating MySQL to Cassandra +------------------------------------------------------------------------------+ +-Center for Independent Living - Programmer Apr 2008 to Nov 2011-+ +------------------------------------------------------------------------------+ Fun Facts --------- * Team size was 3 * First job starting out as an intern * Felt impact by directly with people using my code in office next to me. Projects -------- COMS Developed web based data management and reporting suite to help win grants and operate the non-profit. SaaS system sold to several other non-profits across US. Additionally provided phone support and training. Technology - Python, Django, jQuery, MySQL, Ubuntu Education ========= University of Central Florida, December 2011, Bachelor of Science Information Technology