At Andrews McMeel Universal our digital products department started with a single engineering team, eventually growing to 4. More than 30 engineers specialized in a combination of the following tech stacks: Python/Perl, Ruby on Rails, React/Next.js with C# .Net Core microservices, and/or PHP/Wordpress. In 2017, as a newly promoted Lead Software Engineer, I had the opportunity to buildw a new team from the ground up. After hiring my first two engineers, I wanted them to be set up for success and ramped up to full speed as fast as possible. Following industry trends, I knew the positive impact that a styleguide of best-practices and coding standards could have on a team. Since this would be a new concept at AMU, I made a case to the Director. We were only approved for four hours per sprint for a few sprints, so I gathered all the relevant knowledge base articles and technical onboarding materials I had written previously. We quickly realized it would be much easier to maintain and enforce an existing styleguide that aligned with our values, but we needed to do our due diligence.
We spent hours, both on and off the clock, deep-diving into the Airbnb style guide, ESLint, Stylelint, and RuboCop’s recommended best practices. Standard after standard, rule after rule, we agreed on most of what we saw. For the few we didn’t agree on, we talked through the alternative perspective or worked together to discover an alternative angle on the rule. Any rule where my team diverged, we added to our Coding Standards Repo. In looking back, this was a surprisingly effective way to level up our engineer’s skills while establishing a shared vision for how we build best-in-class web applications. As we put this into practice, the other lead engineers began to take notice. Our coding standards repo served as a blueprint and engineering teams across the department began to shape their own coding standards.
Time uncovered the biggest challenges related to best-practices and standards are on long tail. We tried several approaches to keep up with any pertinent changes where Airbnb, Eslint, Stylelint, or Rubocop released new updates. The small number of overrides we fine-tuned, they were later transitioned into configuration files so we could actively enforce through lintering and formating. Evolving this further, we introduced Dependabot (a dependency manager) so keeping up with emerging coding standards changes from these platforms, happens effortless. If a new best-practice is introduced IE: Eslint is debuting Typescript’s strict mode as an option, Dependabot will automatically raise a pull request for updating Eslint and callout how it will impact our team’s coding standards. This project is a testament to a mantra I’ve said for years: “Act as a unit.” Having principled “Best-Practices” and coding standards is a cornerstone for any technical team. Navigating it together as a single unit, strengthens relationships, levels up development skills, broadens your perspective, and elevates the collective quality of what your team delivers.