ddddddd
               AAA                                           d:::::d                                                                                   BBBBBBBBBBBBBBBBB
              A:::A                                          d:::::d                                                                                   B::::::::::::::::B
             A:::::A                                         d:::::d                                                                                   B::::::BBBBBB:::::B
            A:::::::A                                        d:::::d                                                                                    BB:::::B     B:::::B
           A:::::::::A         nnnn  nnnnnnnn        ddddddddd:::::drrrrr   rrrrrrrrr       eeeeeeeeeeee  wwwwwww           wwwww           wwwwwww       B::::B     B:::::Brrrrr   rrrrrrrrr      ooooooooooo wwwwwww           wwwww           wwwwwwwnnnn  nnnnnnnn
          A:::::A:::::A        n:::nn::::::::nn    dd::::::::::::::dr::::rrr:::::::::r    ee::::::::::::ee w:::::w         w:::::w         w:::::w        B::::B     B:::::Br::::rrr:::::::::r   oo:::::::::::oow:::::w         w:::::w         w:::::w n:::nn::::::::nn
         A:::::A A:::::A       n::::::::::::::nn  d::::::::::::::::dr:::::::::::::::::r  e::::::eeeee:::::eew:::::w       w:::::::w       w:::::w         B::::BBBBBB:::::B r:::::::::::::::::r o:::::::::::::::ow:::::w       w:::::::w       w:::::w  n::::::::::::::nn
        A:::::A   A:::::A      nn:::::::::::::::nd:::::::ddddd:::::drr::::::rrrrr::::::re::::::e     e:::::e w:::::w     w:::::::::w     w:::::w          B:::::::::::::BB  rr::::::rrrrr::::::ro:::::ooooo:::::o w:::::w     w:::::::::w     w:::::w   nn:::::::::::::::n
       A:::::A     A:::::A       n:::::nnnn:::::nd::::::d    d:::::d r:::::r     r:::::re:::::::eeeee::::::e  w:::::w   w:::::w:::::w   w:::::w           B::::BBBBBB:::::B  r:::::r     r:::::ro::::o     o::::o  w:::::w   w:::::w:::::w   w:::::w      n:::::nnnn:::::n
      A:::::AAAAAAAAA:::::A      n::::n    n::::nd:::::d     d:::::d r:::::r     rrrrrrre:::::::::::::::::e    w:::::w w:::::w w:::::w w:::::w            B::::B     B:::::B r:::::r     rrrrrrro::::o     o::::o   w:::::w w:::::w w:::::w w:::::w       n::::n    n::::n
     A:::::::::::::::::::::A     n::::n    n::::nd:::::d     d:::::d r:::::r            e::::::eeeeeeeeeee      w:::::w:::::w   w:::::w:::::w             B::::B     B:::::B r:::::r            o::::o     o::::o    w:::::w:::::w   w:::::w:::::w        n::::n    n::::n
    A:::::AAAAAAAAAAAAA:::::A    n::::n    n::::nd:::::d     d:::::d r:::::r            e:::::::e                w:::::::::w     w:::::::::w              B::::B     B:::::B r:::::r            o::::o     o::::o     w:::::::::w     w:::::::::w         n::::n    n::::n
   A:::::A             A:::::A   n::::n    n::::nd::::::ddddd::::::ddr:::::r            e::::::::e                w:::::::w       w:::::::w             BB:::::BBBBBB::::::B r:::::r            o:::::ooooo:::::o      w:::::::w       w:::::::w          n::::n    n::::n
  A:::::A               A:::::A  n::::n    n::::n d:::::::::::::::::dr:::::r             e::::::::eeeeeeee         w:::::w         w:::::w              B:::::::::::::::::B  r:::::r            o:::::::::::::::o       w:::::w         w:::::w           n::::n    n::::n
 A:::::A                 A:::::A n::::n    n::::n  d:::::::::ddd::::dr:::::r              ee:::::::::::::e          w:::w           w:::w               B::::::::::::::::B   r:::::r             oo:::::::::::oo         w:::w           w:::w            n::::n    n::::n
AAAAAAA                   AAAAAAAnnnnnn    nnnnnn   ddddddddd   dddddrrrrrrr                eeeeeeeeeeeeee           www             www                BBBBBBBBBBBBBBBBB    rrrrrrr               ooooooooooo            www             www             nnnnnn    nnnnnn

I built this website, because that's what I do. I've spent my career combining my love of technology with helping people. That started off with jobs doing technical support work, and eventually I migrated into creating websites for people. And when I'm not creating websites for others, I love to create them for myself.

I mostly build websites in Drupal these days, but I like to dabble in new technologies, so you might see some other methods in the examples below.

Things I've Built

Specifically, I like to build sports websites. More specifically, I like to build websites about the NFL and the New England Patriots. Here are some of my favorites and ones of which I'm most proud. If you want to see more code examples, you can check out my Github.

Patriots Dynasty

I came across an infographic that showed how the Patriots didn't have a losing record against any team in the NFL since Bill Belichick became head coach of the team. I created a sortable, filterable version of that infographic using the Isotope JS library. Since this was a living document now, I wanted to replicate it in an updatable way, so I decided to create a site using Grav as the CMS.

This has since grown into a fully-featured Drupal 9 site that utilizes the Search API to connect to a separate Solr server, the JSON API to export data, and a custom-built Tailwind theme. The site continues to grow, and a podcast has spun out of this endeavor.

Tom Brady TDs

I wanted to visualize all 700+ touchdowns that quarterback Tom Brady has thrown in his 20+ year career. I had all of his Patriots TDs logged in my patsdynasty.com website, so I was able to export that data, but he has since moved to another team. I created a second JSON file of Brady's TDs with his new team, and pulled the combined data into a separate site that charts all of his TDs in a variety of different views.

QBTDs

Inspired by the tombradytds.com site, I wanted to create an infographic of every receiver to whom Tom Brady had ever thrown a TD pass. This led to the infographic builder, which takes specifically-named image files of each receiver and sorts/resizes them by percentage of TDs caught. I used this to create the viral infographic as well as many other infographics for other QBs.

NFL News Generator

I wanted to learn how to use the canvas in Javascript to build images, so I built a small website that allows users to fill in some form fields to create a realistic looking image similar to the ones that the NFL uses in their social media posts.

City of Champions

After the Celtics won their latest banner I wanted to create an interactive list of all of the championship banners Boston sports teams had won in their history. This gave me the chance to try out using template tags in my HTML, and then using Javascript to build the banners dynamically based on a JSON list.

Andy Brown Signs

During election season I got it in my head to make my own non-election signs and put them up amongst the dozens of other signs at the top of my street. It got a surprising amount of attention, so I threw together a quick website to answer people's questions about it.

Resume

And here are some places I've worked, most of which have let me build websites (since that's what I do).

I'm back at Pega for a second round.

This time I'm in charge of managing the development of multiple internal websites (employee portal, sales & marketing document site, etc.).

I've also been more and more involved in the Digital IT team's DevOps and infrastructure work. Migrations seem to be my thing; I've migrated our entire ticketing system from Jira to our internal Agile Studio software, and also migrated almost 400 code repositories from our old GitLab server into the larger internal GitHub instance used by the rest of the company.

I worked autonomously on both new builds and site migrations of Drupal sites. The biggest project involved migrating an old Drupal 7 Organic Groups website to a new Drupal 10 site using Groups to manage both end user visibility and internal editing permissions.

I was generally responsible for working on the Pegasystems family of websites. I started on the Community website, and ended up as the deployment manager while also mentoring multiple new developers on the team.

I was then rotated onto the internal company Portal website, where I worked with stakeholders to simplify author workflows and personalize content based on user locations and roles.

I started at Genuine Interactive as a Junior Web Application Developer on the PHP team. In that role, I worked mainly on Drupal maintenance projects for a lot of Boston-based and international companies.

My largest project was adding Japanese and Chinese translations to one of five sites that was maintained using the Domain Access module to share content between them all. I managed to teach myself Drupal translation management as well as the intricacies of Domain Access (I had used neither before) and completed the project on time and within the budget. Unfortunately, due to outside circumstances, the project didn't launch.

From there I transitioned to the team responsible for the Johnson and Johnson platform that is being rolled out to all of their brands. Here I've learned true scrum practices, as well as module development. I was fortunate enough to be the only junior developer on the project, but since starting this work I have graduated out of the junior role and into a Web Application Developer position.

Eventually I was given my own projects to run, in which I learned how to estimate and architect a full website project from the ground up.

While at Planet Fitness I provided technical support for corporate employees, including both hardware and software support. I worked with suppliers to purchase new equipment and software licenses as needed. When needed, I also managed outside vendors on projects including the conversion of the company website from Coldfusion to Drupal.

I started as a mid-level technical support specialist, and within about 6 months I was running the support department, with three employees reporting directly to me.

At AdminInternet I wore many hats. As a developer/site builder I designed, deployed, and maintained websites using the Drupal framework, which was supplemented with PHP/MySQL custom code when necessary. These sites used a mix of Drupal 6 or Drupal 7 based on user needs, and I utilized drush when needed.

I was also the "client-facing" developer who would interact with clients in any sales or support capacities. I was responsible for training incoming clients on all of the various offerings that AdminInternet provided. I created support documentation and often participated in screen-sharing sessions if a client needed more hands-on help.

As a business manager I was in charge of billing and invoicing. The old system involved running custom SQL queries directly in a database to find work performed since the last billing took place. The billing entries were free-form, and had to be curated before any information could be sent to the client.

I created a system from scratch using Drupal 7 that streamlined the old billing system. Because time tracking was simplified, work was tracked more efficiently and required less editing when the invoices were created. Instead of a process that originally took up to 6 hours, my new system condensed the entire process to under 30 minutes. This increased the frequency of billing from once ever 4 months to once a week, stabilizing the cashflow process.

I worked part-time at John Mason Institute where I taught classes in entry-level web development as well as classes for the Adobe Suite (Photoshop, Illustrator, Dreamweaver, etc.) to individuals looking for certifications.

JMI works with the unemployment office to provide job-seekers with skills they can use to get themselves a job, so I was able to share my passion for technology with a wide variety of people from all walks of life.

I worked seasonally at H&R Block, where I provided on-site technical support for 20+ offices in NH and MA, including hardware, software and network support. My job was to keep the offices running smoothly for the tax professionals. Duties included setting up the offices at the beginning of the season (workstations, office networks, etc), providing on-location support to the offices once the season began, and then helping dismantle the office infrastructure once the season was over (after April 15th, as we all know!).

While attending UNH (see the Education section), I worked in the campus computer clusters as a Computer Consultant. I provided guidance and assistance to students, faculty and staff for various computer-related issues (mainly involving printers!).

Send Me a Message

Want to talk about websites? Send me a message.