This blog has been a bit quiet since June. Today I had to submit an annual update for Solve it once LLC to the State of Michigan and a brief update on the Michigan Drupal organization to Open Collective, so it seemed like a good time to also keep you up-to-date on what so1ve has been up to recently.
It’s a lot!
In October we surpassed 5000 billable hours to clients, and early in November we confirmed that 2023 will be the fourth consecutive year of revenue growth. These aren’t really the metrics I use to define success, but it’s nice to know the business is healthy nonetheless.
Runner up!
In the early Summer I went back to Tactis for a while to help out with getting the new Prince George’s County, Maryland site ready for launch.
I’d already pitched in quite a bit for this project:
- Migration from a legacy system using file exports and screen scraping
- Elaborate Acquia Pipelines work for cloud hosting, including automated accessibility testing
- Drupal Groups integration and patching for Drupal 10
- Help implementing the new design system using Acquia Site Studio
- AJAX-based menu solution for the giant navigation structure
- Custom drush commands and queue workers to easily batch updates
After it launched, the site was almost immediately nominated for an Acquia Engage award. Ultimately, the award for “Leaders of the Pack - Public Sector” went to another Tactis project with overlapping team members, the new Drug Enforcement Agency site. Congratulations to the DEA development team; I’m proud to work with folks doing great things in the public sector.
Getting into the Fortune 500
No, not Solve it once. We’re still a few dollars short of making any Fortune Magazine lists, but now we’re working with big companies! This was one of the last segments I had been targeting, since we’ve already done significant work with nonprofits, small businesses, higher education institutions, government at multiple levels, libraries, and B2B, among others.
In July I started contracting with Principal Financial Group and have mostly helped out with projects at the intersection of Drupal and web components:
- Contributing code and documentation to the web-component-based design system
- Pitching in to the Drupal starter kit team’s codebase to work with components via Layout Builder, webform, and other Drupal elements
- Playing a big part building the first live small site to use the new system while running on Drupal 10
This past week I deployed out Drupal 10 upgrades, single sign-on (SSO) updates, and other features for three different sites for associated brands, all using a new deployment process with redundant success checks and integration with corporate controls. What was most notable about these updates and the deployment was how not notable they were: the sites deployed without any hiccups. Often no news is great news.
Every team at Principal is a joy to work with, and I’m looking forward to many more fruitful projects with them.
Blast from the past
It took a bit more than 3 years, but I’m back doing support work for my previous employer, Symmetri Marketing Group, on a contractor basis this time. It’s great to catch up with a lot of familiar faces, and also a joy to see how many of the projects I had contributed to from 2016-2020 have evolved.
The Autumn of our Drupal 10 upgrades
Whether for Tactis, Principal, Symmetri, or another support client, this Fall has been very Drupal-10-upgrade heavy:
- 4 upgrades and one new site for Principal
- 6 upgrades for Symmetri
- Help getting ready for PGC’s upgrade with Tactis
- 1 upgrade for Human Element
- Discussions and prep with other clients
As you may know, so1ve’s frost install profile has been on Drupal 10 since March, and the experience getting an install profile upgraded relatively early in the version’s lifecycle was great practice for rapidly upgrading double-digit numbers of sites in the last couple of months.
All of the Drupal 10 upgrades have been smooth so far, with the custom parts all being along the same lines:
- Learning what Composer error messages mean rather than what they say
- Swapping composer dependencies without official Drupal 10 releases for Merge Requests using custom ‘repositories’ via drupal.org GitLab
- Changing out a few
*.info.yml
syntax changes, especially in custom themes - Including any required and removed core-to-contrib dependencies, like RDF, quickedit, bartik, classy, and stable
- Changing out deprecated and removed function-based calls for OOP calls using services. When possible, those updates inside classes can use Dependency Injection
- Getting nervous when a site uses Advanced CSS/JS Aggregation, as JSMin can cause a lot of problems for a Drupal 10 site
Many of the sites also went to PHP 8.2 at the same time, and the biggest issue for that is dynamically-declared methods and properties. There’s a strong correlation between codebases that use dynamic class elements and codebases that are a big mess to work with and refactor, so I’d recommend estimating a bit extra padding on PHP 8.2 update projects where errors have been found.
What’s next?
Since June I’ve been working more than full-time to contribute meaningfully to my short-term, full-time contracts, while also supporting my existing client base after hours. I plan to continue doing the same, and may have openings for projects and support in the new year.
If you’re in the market for a website or already have a Drupal 8/9/10 site and are looking for an inexpensive and flexible developer to support your platform, don’t hesitate to reach out via email to [email protected].