Principal Software Engineer
2021 - PRESENTProcore- Acted as a technical leader of Procore’s new observability team.
- Led discussions about team formation related to charter, vision, and process guidance.
- Developed a long-term company vision for observability, including infrastructure changes, vendor relations, and tooling.
- Interfaced with vendors for support, feature, and recommended practice development.
- Participated in negotiations of contracts with tooling vendors.
- Mentored a team and guided the development of an OpenTelemetry-based observability pipeline.
- Mentored a team in multiple languages, including Go, Ruby, and TypeScript, to develop tooling and libraries.
- Supported team efforts to own Helm and Terraform modules for managing the observability infrastructure.
Technologies: Apache Kafka, Docker, Ruby, Ruby on Rails (RoR), Go, TypeScript, Kubernetes, Amazon EC2, OpenTelemetry, StatsD, Sumo Logic, Datadog, New Relic, Helm, Python, SQL, C#, Git, Observation, Redis, GitHub, Back-end, APIs, Remote Team Leadership, Remote Work, Team Leadership, Visual Studio Code, OS X, Linux, Vim Text Editor, Slack, Zoom, JavaScript, Node.js, Amazon Web Services (AWS), Terraform, REST, AWS Simple Notification Service (AWS SNS), Amazon Simple Queue Service (SQS), Amazon S3 (AWS S3), .NET, NestJS, Architecture, Agile, Web Architecture, Back-end DevelopmentStaff Software Engineer
2019 - 2021Procore- Worked on a small team pairing and mobbing to drive architectural changes to Procore’s webhook and WebSocket systems.
- Designed and developed new Elixir-based APIs for change tracking.
- Headed design discussions with stakeholders to ensure designs met requirements.
- Advised and performed changes in Ruby on Rails codebase interacting with Elixir-based systems.
- Guided team discussions and development around service creation and observability.
- Mentored junior, mid and senior-level teammates in career growth discussions.
- Mentored teammates in designing and developing a NestJS and TypeScript-based template application for company-wide use.
Technologies: Elixir, PostgreSQL, Ruby, Ruby on Rails (RoR), Amazon DynamoDB, Apache Kafka, REST, NestJS, TypeScript, Kubernetes, Node.js, SQL, C#, Git, Redis, GitHub, Back-end, APIs, Remote Work, Team Leadership, Visual Studio Code, OS X, Linux, Vim Text Editor, Slack, Zoom, JavaScript, Go, Amazon Web Services (AWS), Docker, AWS Simple Notification Service (AWS SNS), Amazon Simple Queue Service (SQS), Amazon S3 (AWS S3), .NET, Amazon EC2, StatsD, Architecture, Agile, Web Architecture, REST APIs, Localization, Back-end DevelopmentSenior Software Engineer
2016 - 2019Malwarebytes- Acted as a technical lead on architectural and design decisions on the second version of our APIs using TypeScript, OAuth2, Node.js, AWS DynamoDB, and Amazon SQS.
- Assigned work, developed stories, and guided technical direction for remote developers on projects.
- Developed, designed, and maintained Malwarebytes Endpoint Protection and Incident Response back-end API server in Go, running on AWS ECS and using AWS SES, Amazon SQS, AWS S3, and AWS Kinesis.
- Provided guidance and architectural input on associated React front-end and .NET-based endpoint agent.
- Worked closely with the SRE and DevOps to expand services and automate deployments on AWS and diagnose and correct scaling and performance issues.
- Provided mentorship and guidance to coworkers and junior developers.
Technologies: Amazon Simple Queue Service (SQS), AWS Simple Notification Service (AWS SNS), Amazon DynamoDB, Amazon S3 (AWS S3), Amazon Elastic Container Service (Amazon ECS), Go, TypeScript, React, PostgreSQL, OAuth 2, .NET, SQL, Git, GitHub, Back-end, APIs, Remote Team Leadership, Team Leadership, Visual Studio Code, OS X, Linux, Vim Text Editor, Slack, Zoom, JavaScript, Node.js, Amazon Web Services (AWS), Docker, Terraform, REST, NestJS, Amazon EC2, StatsD, Architecture, Agile, Front-end, Web Architecture, REST APIs, API Integration, Back-end DevelopmentSenior Software Developer
2015 - 2016Moz- Continued development and maintenance of the Open Site Explorer product.
- Designed and developed a new Node.js-based export system for cross-product use.
- Provided guidance and architectural input on new products.
- Collaborated with the design and front-end teams to implement new features on new and existing products.
Technologies: Node.js, Ruby on Rails (RoR), JavaScript, Ruby, SQL, HTML, CSS, Git, Redis, GitHub, Back-end, APIs, Remote Work, OS X, Linux, Vim Text Editor, Amazon Web Services (AWS), Docker, REST, Amazon EC2, Agile, Front-end, REST APIs, API Integration, Localization, Back-end Development, MySQLSenior Software Developer
2012 - 2015Eliassen Group | Rooster Park- Delivered feature development and architectural input for Moz’s Open Site Explorer product. Migrated Rails application to new API-based architecture. Worked with the existing team on refactoring, new features, and bug fixes in Ruby on Rails.
- Delivered feature development and architectural input for WhitePages’ PRO Web lookup and API products. Designed and implemented new features for PRO Web lookup using Ruby on Rails. Improved existing deployment and development environments.
- Developed new features for Ratify’s still confidential web portal using Ruby on Rails. Designed new JavaScript-driven web interfaces. Established and debugged deployment environments.
- Provided mentorship to junior engineers and training in best practices.
Technologies: Ruby, Ruby on Rails (RoR), JavaScript, SQL, HTML, CSS, Git, Redis, GitHub, Back-end, APIs, Remote Work, OS X, Linux, Vim Text Editor, REST, Agile, Front-end, REST APIs, API Integration, Localization, Back-end Development, MySQLSoftware Developer
2011 - 2012Urban Influence- Owned feature work and maintenance on Moz’s Open Site Explorer.
- Rewrote the CSV export system using Ruby, Resque, and Redis to increase stability and visibility of running exports and migrated large data sets to the new system.
- Modified deployment environments to match staging and production clusters.
- Managed multiple large refactoring operations to increase test coverage, better separate code concerns, isolate dependencies, and decrease the risk of future changes.
- Collaborated with designers to convert provided Photoshop files to HTML and CSS.
- Worked with clients to ensure their requirements were understood and implemented correctly.
- Implemented themes for FastSpring and Zendesk sites using JavaScript to modify the Document Object Model (DOM) and CSS to affect the styling.
Technologies: Ruby, Ruby on Rails (RoR), JavaScript, SQL, HTML, CSS, Git, Redis, GitHub, Back-end, APIs, OS X, Linux, Vim Text Editor, REST, Agile, Front-end, REST APIs, API Integration, Localization, Back-end Development, MySQLSDET
2008 - 2011Microsoft- Wrote and implemented a test plan for .NET interoperability.
- Drove the migration of IronRuby from Subversion (SVN) to Git on GitHub.
- Designed and developed an automated system to synchronize Azure DevOps Server and Git.
- Developed WiX scripts to package IronRuby as an MSI package, including a rake library to abstract this process.
- Developed a test harness that combined multiple test runners into one command and result set.
- Developed new tests in C# and Ruby to test various parts of the interpreter.
- Collaborated with developers from other Ruby implementations to run RubySpec against IronRuby.
- Integrated IronRuby tests with internal continuous integration tools to enable pre-check-in verification.
- Participated in cross-team planning and code reviews.
Technologies: C#, Ruby, C++, Dynamic Language Runtime (DLR), Git, GitHub, Back-end, Windows, Vim Text Editor, .NET, Agile, Localization