Brendan
McLoughlin

Senior Principal Web Engineer at CarGurus

About Me

×

I am an expert at using open source technologies to quickly build maintainable, secure, and testable web applications.

My Profile

Who am I?

Hello, I am Brendan McLoughlin, I'm a Senior Principal Engineer at CarGurus. I lead initiatives at CarGurus to build the best car selling experience on the web. I also focusing on evolving our system-wide architecture within the constraints of our existing stack to meet and exceed business and customer expectations.

My background is a front end expert, but these days I fill an architect role who is desperately trying to get back into a "solver" archetype because I love helping clients and colleagues build large-scale responsive web applications. I have a bias for action, I like to solve problems and create value for customers. I can deliver a message to Garcia.

In the past I've contributed to many open source projects including being a member of the Ember Data core team.

What is it like to work with me?

I believe that communication, code reviews, unit testing and taking advantage of open source libraries are essential to developing a modern software product.

I am proactive about communicating my plans, progress, and problems.

I believe the feedback from unit testing is invaluable for developing quality software. I write tests for my code an love pairing with my teammates to coach and collaborate with them on testing.

I find that by taking advantage of premade open source modules and components my team can deliver better software faster and cheaper and have more time to spend on solving our customer's unique challenges. I encourage my teammates to adopt open source solutions whenever possible.

Feel free to send me an email at btmcloughlin@gmail.com for just about any reason.

Experience

×

Seasoned and creative software leader, experienced leading teams to develop ambitious open web applications.

2018 / August - Present

CarGurus

Senior Principal Software Engineer

My senior principal engineer role at CarGurus involves supporting the five teams within the wholesale organization (~30 engineers) to support product work and help my colleagues build and ship features quickly. I'm rarely in the critical path for feature development but I help my teams by unblocking work, fighting production fires and prioritizing the quarterly technical roadmap.

I'm also a member of the Technical Leadership Team, where I help address define standards, engineering policies, best practices, and patterns. My focus here is on cross cutting concerns that impact multiple orgs within the engineering function at CarGurus. I help shepherd ADRs to consensus, curate the tech radar and ensure the right teams are communicating.

2013 / April - 2018 / July

Bocoup LLC

Open Web Engineer

At Bocoup, I worked alongside some of the best JavaScript developers in the business. As a consultant, I worked at clients like RueLaLa, Constant Contact, Mozilla, Mass Mutual, Northwestern Mutual, Xively, WFMU, In-Q-Tel, and Harvard Business Publishing helping them to level up their team during a period of time when front end tools and frameworks were rapidly evolving.

I worked hard to keep my skills sharp as tooling transitioned from grunt to gulp to webpack, package managers evolved from vendored folders to bower to npm and yarn and frameworks matured from jQuery, to Angular to Ember to React. Over the years I contributed to many of these projects as I worked to advance the state of what is possible on the web.

I also got to see how the sausage was made, by working with the Chrome and WebKit team on browser specification compliance and building tooling to make it easy for different browser implementations to run the same shared test suit.

2011 / June - 2013 / March

Crunchtime! Information Systems

Software Engineer
  • Full stack web developer with a heavy focus on frontend development
  • Developed a unit-tested framework leveraging knockout.js and jquery.datatables to make it easy to create screens to display, filter and sort tabular data
  • Encouraged existing customers to transition away from Crunchtime’s legacy PowerBuilder product by redesigning their existing web replacements to improve responsiveness, functionality and ease of use
  • Worked with BAs and backend developers to quickly deliver new web interfaces to interact with a REST API
2010 / March - 2011 / January

Crosscut Media

Django Contractor
  • Developed scripts to aggregate time sensitive pricing information from Amazon and Walmart.com
  • Built an event rating web application, designed to maximize user interaction through the use of responsive technologies such as Ajax and single-click login
  • Designed a reporting system to track user interaction and conversions
2010 / June - 2010 / August

Kronos Inc.

Development Intern
  • Worked in a scrum-ban environment to build smarter Ant scripts, reducing the weekly workload of Dev Ops team
  • Streamlined InstallShield patch process, simplifying steps performed by customer
2009 / June - 2009 / August

SimpleTuition, Inc.

QA Intern
  • Located and suggested solutions for over 100 bugs in an Ajax heavy web application
  • Identified several XSS and CSFR security vulnerabilities
  • Designed and implemented automated regression tests using Selenium and TestNG

Education

×

My educational background.

2007 / August - 2011 / may

Worcester Polytechnic Institute

Bachelor of Science in Computer Science
Academic Projects
August 2010 - March 2011
Major Qualifying Project: Implicit Web User Interest
  • Researched web analytic techniques to determine user interest in online content
  • Developed a web application, to rank content, based upon implicit user feedback
November 2009 - March 2010
Interdisciplinary Qualifying Project: Hong Kong
  • In Hong Kong, interviewed teachers and developed recommendations for the administration of a local College on how to best handle challenges posed by recent educational reforms
  • Lived in a Cantonese speaking neighborhood for two months

My Skills

×

I am absolutely passionate software developer. Here are some of my favorite tools and technologies and why I love working with them.

Programming Languages

I primarily work in JavaScript and Python. However, on past projects I've also worked with Java, PHP, Ruby and Rust.

  • JavaScript - I am an experienced JavaScript developer who has written code that runs on browsers, servers, phones (Firefox OS) and microcontroller. I know the strengths of the language and understand the benefits of the latest ES2016 features, while also maintaining a respect for the language's limitations.
  • Python - I love working with python because of its readability, community and data analysis tools.

Browser Technologies

I'm a frontend expert with a deep knowledge of the capabilites and limitations of the web platform. I believe every website is a distributed system with state living on both the browser and server and the key challenge of web developers is to try to keep it all insync without exposing the user to the technical and physical challenges of making that happen.

  • Remix - Remix's focus on web standards and modern UX patterns makes it the best platform for building a website today.
  • React Router - I strongly believe routes are one of the best advantages of web apps and work hard to make sure a user's state can be shared via the current url.
  • Webpack - I appreciate webpack's ability to generate efficient asset bundles.

Server Technologies

My career focus has been primarily on building great browser experiences. However, I love the control and flexibility that is possible when writing code for the server. I prefer to take advantage of the enforced data constraints of a SQL database and leverage frameworks for solutions to common problems so I can focus on writing code that solves the unique challenges of my domain.

  • Nginx - I've used Nginx as a reverse proxy for many projects and it has never let me down.
  • Django - I love Django's admin interface so much. Getting a free CRUD interface for QA and site maintainers saves so much time when starting a new project.
  • Node.js - I've used node as a backend on several client projects. I think it is great for small servers and server side pre-rendering of React or Ember applications but I generally prefer other stacks for domain specific processing.
  • PostgreSQL - A powerful open source SQL database with support for jsonb columns. What's not to love?

Cloud Technologies

I'm a big fan of AWS and have used it as the backend for several client projects I've worked on.

  • Amazon S3 - I use S3 all the time for storing static assets and lifecycle management of inportant files.
  • Terraform - I like Terraform because it self documents any changes you make to your cloud infrastructure which is immensely helpful for avoiding surprises when deploying to QA or production.
  • Kubernetes - K8s is a wonderful swiss army knife for automating deployments and managing all aspects of server relationships (dependencies, ingress, rollbacks, ect.)

My Favorite Tools

  • Emacs - My trusty text editor.
  • Git - Because branching should be easy.
  • Github - I can't imagine working on a collaborative software project with using pull requests for consistent code reviews.

Skillset

  • Communication - I prioritize clear and effective communication, ensuring that information is both concise and comprehensive, particularly as team sizes increase. This approach minimizes misunderstandings and maximizes efficiency, enabling teams to focus on critical project elements.
  • Security - Securing software is a minefield of edge cases that need to be considered when developing software. I believe it is important for software APIs to prioritize making it easy to do things the secure way and obvious when a developer is about to do something dangerous.
  • Unit Testing - I strongly believe that developers should unit test all of their code. I find if it is painful or annoying to write a test for a piece of code that usually means the code is too coupled to its environment. Highly coupled code is brittle and increases the cost of refactoring.
  • Responsive - I believe one of the strengths of the web platform is its ubiquity. I work hard to make sure the web apps I develop are functional and performant on a wide variety of devices.
  • Leadership - I'm comfortable working in a Team Lead role and helping every developer on the team improve their skills and take ownership of the project.

Influential Books

  • The Pyramid Principle:Logic in Writing and Thinking by Barbara Minto - A really great book that helped me level up my technical wirting and learn how to present arguments in a way that is easy for readers to digest and understand.
  • Smart Brevity: The Power of Saying More with Less by Jim VandeHei, Mike Allen, et al. - A great book on how to send short messages to busy people an ensure the right message is understood.
  • The Staff Engineer's Path by Tanya Reilly - This is THE book for understanding what technical leadership looks like outside of the management path.
  • Kill It with Fire: Manage Aging Computer Systems (and Future Proof Modern Ones) by Marianne Bellotti - Modernizing sociotechnical system is the game for evolving a business to meet new needs and this book is the best guide I've ever seen on how to update legacy systems that are still providing value today.
  • Thinking in Systems: A Primer by Donella H. Meadows - A concise book for thinking about systemic problems and how to approach common failure cases in any large organization trying to change or handle the side effects of its success.