RSSAmplifier

Blog

Mark Dorison

Mark Dorison: engineering leader writing about the culture, processes, and tools that engineering teams run on.

markdorison.comRSS feed ↗20 posts

Latest posts

Your Best Documentation Is a Conversation

For engineers exploring an unfamiliar codebase, the documentation experience usually goes one of two ways: there's almost none, or there's so much you don't know where to start. Neither is great. I've been using AI tools to explore new codebases, and it's changed how I learn. Not because it replaces good docs; it doesn't. But it gives you something docs never could: answers tailored to your…

Your PR History Is a Training Dataset

I love the idea that a team's code review history is a dataset. Hundreds of PRs, thousands of comments, years of accumulated judgment about what matters and what doesn't. The problem is that all of that knowledge lives scattered across PR comment threads, largely invisible to anyone who wasn't in the conversation. AI tools can already do code review, but it's generic. It doesn't know what your…

Believe in DevOps: Building Momentum with Automation

Achieving buy-in for DevOps initiatives, particularly automated testing, often hinges on a single factor: belief. This is true across the board, but especially when overcoming skepticism from fellow engineers. The "It Won't Work Here" Mindset We've all heard it; something like: "Automated testing makes sense in theory, but in our fast-paced environment, it never gets prioritized." This response…

The Untold Story of Technical Debt: How Engineering Leaders Can Rewrite the Narrative

For engineers, "technical debt" conjures vivid memories. We've all known bugs we yearned to fix before release or not-quite-polished features pushed to meet a deadline. These situations leave us crossing our fingers and hoping for time to revisit the work and achieve our initial vision. Unfortunately, that doesn’t always happen. Project managers, product leaders, and executives often view…

Why is Drupal 7’s End-of-Life a Big Deal?

It's not news that Drupal 7 is approaching its end-of-life (EOL), in fact, it has been a long time coming, but the EOL date ( November 1, 2023 ) will be here before you know it, and it seems less and less likely by the day that it will be extended further. There has been a lot of talk about what it takes to upgrade to "modern Drupal," but less ink has been spilled painting a picture of what it…

How to Add Tugboat Live Previews to Drupal Contrib Modules

It may be obvious , but we are big fans of using Tugboat to build live previews for every pull request that we create for a site. As of last spring, Tugboat has also been available for use on Drupal core and contributed projects . It is now dead simple to add Tugboat to Drupal contributed modules and it will build a live preview for any issue with a merge request . Add a composer.json file to your…

Apple's iCloud Shared Photo Library

An Eager, but not Too Eager, Review and Feature Request After holding out for a month, I decided to give the new iCloud Shared Photo Library a go. This has been a feature that I have really been looking forward to, but I was hesitant to turn it on straight away since I tend to be risk-averse with photo data. Overall, it’s great! It does the basics of what needs to be done. Someone moves a photo to…

Recoupling a Decoupled Site

When You Realize You Are Driving a Hot Rod to Make Grocery Runs At Chromatic, we love a good decoupled architecture. In fact, we have written extensively about decoupled and why you might want to “decouple” a site. One throughline in our work and writing has been that decoupled isn’t always a slam dunk; you need the right combination of business needs and engineering skillsets on your team for it…

Sharing Robo Commands Across Repos

Multiple Projects, One Set of Commands We have been using Robo as our task runner of choice on PHP projects for some time now. Over time our set of Robo commands has grown, and often they are quite similar across different projects causing us to duplicate code and then keep them in sync when changes are made to our commands. We recently took our first shot at improving this by releasing Usher , a…

GitHub Action: Platform.sh Database Dump and Sync to S3

Today we are releasing version 1.0 of our Platform.sh Database Backup and S3 Sync GitHub Action that will allow you to take a database dump from a site hosted on platform.sh and sync that database dump to an AWS S3 bucket that you specify. We are utilizing this action with a scheduled workflow on a number of sites to automate database backups without running on any of our own infrastructure. We…

Preventing Conflicts when Upgrading to Composer 2

The current plan is to release a 2.0 final before [the] end of October. This is exciting for anyone who has complained about Composer’s performance in the past as Composer 2 brings significant performance improvements . While developers will need to run composer self-update to opt-in to 2.0 locally , environments where the installation of Composer is scripted may end up on 2.0 surprisingly quickly…

Use Custom Docker Images to Speed Up Tugboat Builds

Tugboat is our tool of choice at Chromatic for building a preview environment for each of our pull requests. For an introduction to Tugboat, see A Testing Environment For Every Pull Request . Out of the Box One of Tugboat’s most compelling features is that it is fast , but that hasn’t stopped us from pursuing making it even faster . We wanted to turn our tugboat into a speedboat . The…

Announce Your Organization’s Drupal.org Statistics In Slack

As longtime members of the Drupal community, Chromatic strives to contribute whenever we can. Some of those contributions are monetary, such as with the ongoing Drupal Cares campaign, but others involve activity directly on drupal.org, including creating/testing patches, maintaining projects, and submitting case studies. For organizations that list themselves in the Drupal Marketplace , these…

Chromatic's Development & QA Process

One of our core values at Chromatic is to “delight our clients”. There are numerous ways that we try to bring delight, but as developers and designers one of our most frequent deliverables is code; our particular development and quality assurance (QA) workflow helps us deliver high-quality code to our clients’ production environments more frequently, in smaller change-sets. This results in our…

Speeding Up Node Dependency Installs With Yarn

At the time of Yarn’s debut, it brought big advancements to npm ’s performance and workflow along with the introduction of lock files. A lot of time has passed since then and with the arrival of a native npm lock file, I was under the impression that more recent npm development had rendered the benefits of Yarn obsolete. I was proven wrong. Recently, while optimizing a build process for a site we…

Having a Leader on Sabbatical

Chris wrote a couple of months ago about his approaching plans to take time off for a six-week sabbatical . Well, six weeks have elapsed and Chris has returned. We are thrilled to have him back. I am sure he will share his thoughts on what it was like to take a step back for that amount of time, but I wanted to share what it was like to have a business partner take an extended break. What Did We…

A Testing Environment for Every Pull Request

At Chromatic, when we are collaborating with our clients on a website or product, we typically work in an agile, iterative process. As part of that process, it is important for all stakeholders to be able to easily review and approve changes to a site as they are being made, but this can frequently be a pain point. There are often members of the team who are less technical, may not have a…

Using `composer outdated` to Manage Drupal Dependencies

Managing Drupal sites with composer brings a number of benefits. However, when installing Drupal dependencies from source (an option offered by composer), you also lose the functionality provided by Drupal core’s “Available Updates” page. Thankfully Composer will allow you to keep tabs on the available updates for all of your project’s dependencies, including Drupal core/contrib. Tracking…

Managing DNS Records in Version Control

Here at Chromatic, we are on a never-ending mission to get as many things as possible into version control as possible. Next step? DNS configuration. dnscontrol is an open-source tool written in Go by the fine folks at Stack Exchange that allows us to configure our DNS records in a JS file that can be committed to version control and published on demand. It supports a number of DNS providers…

Two Podcasts, Two Links, and a Puppy

1. Snowden and Surveillance with Glenn Greenwald 🤔 pod save the world / crooked media 2. Sorry for the Delayed Response 😂 susanna wolff / new yorker daily shouts 3. Missing Richard Simmons Episode 5 😮 missing richard simmons 4. Anthony Bourdain Does Not Want to Owe Anybody Even a Single Dollar 🤑 wealthsimple magazine 5. Puppy 🐶 Meet Indie. She's not a fan of baths but she's definitely a fan…