Brendan
McLoughlin

Open Web Engineer

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, My name is Brendan McLoughlin. I am a software consultant who works for Bocoup where I help clients develop large-scale responsive web applications. I'm often embedded as a technical leader in a client's frontend team where I help mentor developers and write code to solve problems and create value for customers. I'm also 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 consultant, experienced leading teams to develop ambitious open web applications.

2013 / April - Present

Bocoup LLC

Open Web Engineer
  • This is where I currently work as a consultant who has helped over a dozen clients build better web applications by taking advantage of open source technologies
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 love Ember.js because of its focus on building shared solutions to common problems, its diverse core team and its focus on adopting the latest open web advantages without abandoning its current users. I also have a good deal of experience with React and appreciate its power.

  • Ember - I am a frequent contributor to the Ember.js community and a member of the Ember Data core team.
  • Broccoli - I love how easily broccoli makes it to compose different build pipelines.
  • Redux - I love how redux forces use values as the interface between the various layers in you web application.
  • 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 hosting the index.html page for single page web application.
  • 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..
  • Ansible - I use ansible for writing my deployment scripts because it allows you to easily push out any deployment updates from any computer without the overhead of needing to pre-configure a special "puppetmaster" server.

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.
  • TravisCI - Continuous Integration is important to automate because we all underestimate the impact of "that last quick change".

Skillset

  • 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.