Anthony Power

Senior Drupal/PHP developer & technical lead.

For nearly 20 years I’ve built and supported websites and custom applications for nonprofits, membership organizations, financial institutions, and manufacturers. I work directly with customers to understand what they need, then turn complex requirements into reliable, maintainable software, from planning through deployment and long-term production support.

What I do

What I bring to a team

Full-cycle delivery and support

I work directly with customers, stakeholders, and end users from the first conversation about what they need through requirements, estimation, development, and release, in both waterfall and agile environments. After launch, I continue to manage and maintain their production websites: troubleshooting problems, applying security updates, improving performance, and adapting the site as their needs change.

Drupal, in depth

I have worked with Drupal since version 5, with deep custom module development from Drupal 7 onward. My experience includes custom modules and themes, entities and plugins, Webform, Views, Search API, Migrate API, OAuth and SSO, REST integrations, and Twig, with Drupal 10 in production and Drupal 11 development work.

Custom applications and integrations

I turn complicated business rules into maintainable PHP and Drupal applications for membership, payments, fundraising, search, and publishing, and connect them to CRMs, payment gateways, and other platforms. I design how the pieces fit together so each new requirement does not become a special case.

Hands-on technical lead

I plan and estimate work, establish technical patterns, review code, and mentor developers while continuing to build the difficult parts myself and support what reaches production.

Migration and modernization

I have moved systems across every Drupal major version since 5, migrated large content libraries from HubSpot and WordPress into Drupal, and helped move an entire customer base from an owned data center into AWS.

Infrastructure and DevOps

I plan hosting topologies on AWS and Linux, run production environments, and build repeatable deployment and rollback processes. I have also managed Cloudflare, handled production incidents, and worked with infrastructure specialists on server build-out.

Selected case studies

What organizations needed, and what I built

Each case study starts with the organization and its need, then covers what was delivered and my part in it. The Drupal implementation and the decisions behind it follow for anyone who wants the technical detail.

01AI

Nationwide Organization Directory Network

A connected Drupal directory platform that brought listings from participating websites into a central national directory, so organizations across the network could be discovered and connected in one place.

Read case study
02

Business Networking Membership Management

A custom Drupal 10 membership system, deployed in production for a business networking organization, handling membership plans, dues, renewals, payments, and staff workflows.

Read case study
03

Nonprofit Publishing Website & Content Migration

Repeatable migrations that consolidated years of nonprofit articles from WordPress and HubSpot into one Drupal publishing site, which serves approximately one million page views a month.

Read case study
04

Nonprofit Fundraising and Donor Management

Webform-based Drupal fundraising that let nonprofit staff configure their own campaigns, backed by one-time and recurring giving, donor history, payment processing, and staff reporting.

Read case study
05

Business Networking Referrals and Recognition

A guided referral system that helped members of a business networking community track introductions, follow up on opportunities, and earn recognition for meaningful participation.

Read case study
06In developmentAI

Connected Community and Learning

The core integration connecting a Drupal community with a separate learning platform: course synchronization, a searchable local catalog, and secure course launch. In its final stages of development and not yet launched.

Read case study

Current toolkit

What I work in now

Language and framework
PHP 8 · Object-oriented PHP · Symfony components · Composer
Drupal
Drupal 10 · Drupal 11 development · Custom modules · Entities and plugins · Render and Form API · Hooks and events · Drush
Frontend and theming
Custom Drupal theme development · Twig templates · HTML · CSS and SCSS · JavaScript · Drupal behaviors · Responsive design · Accessible markup
Data and search
MySQL · Search API · Facets · Migrate API · Views
Integration
REST and JSON APIs · OAuth 2.0 and SSO · Webform · Third-party and CRM APIs · Payment gateways and PCI DSS awareness
Website management and optimization
Drupal site maintenance · Troubleshooting and debugging · Security updates and patching · Performance profiling, optimization, and caching · Deployment and release management
Infrastructure, delivery and tooling
AWS · Cloudflare · Docker and DDEV · Git · Git-based CI/CD on Cloudflare · Linux and Bash · Waterfall and agile delivery · Jira and Confluence
Technical SEO and analytics
Metadata and canonical URLs · Redirects and XML sitemaps · Structured data · Core Web Vitals · Metatag, Pathauto, Redirect, and Simple XML Sitemap modules · Google Analytics · Google Tag Manager · Google Search Console · Matomo · GDPR and CCPA cookie consent
AI-assisted development
AI coding assistants · Context and constraint setting · Code generation and refactoring · Debugging support · Automated test development · Reviewing AI-generated code and tests

Also worked with WordPress · Moodle · HubSpot · Shopify · Apache Solr · Network Merchants · Authorize.Net · Google Maps · Google Charts · Chart.js

Modern development with AI

AI as a development multiplier

On recent projects, I’ve made AI coding tools part of how I work, using them to move faster through exploration, implementation, debugging, refactoring, automated testing, and repetitive tasks. I still define the problem, make the architecture decisions, and decide what belongs in the final product, and I hold AI-generated code and tests to the same standard as work from another developer.

  1. I set the direction

    I define the problem, architecture, constraints, and relevant context before asking AI to help with implementation. The quality of the result still depends on making the right technical decisions first.

  2. AI accelerates the work

    I use it to explore approaches, implement well-defined pieces, debug, refactor, and build automated tests faster, which leaves more time to evaluate alternatives and validate behavior.

  3. I own the quality

    I review and revise what it produces, checking behavior, performance, access control, caching, security, and maintainability. I run and validate the tests, and I do not ship code I cannot explain or take responsibility for.

Case studies marked AI include examples of how AI fit into the development workflow.

Career progression

How my role evolved

I started as a developer working across the stack and gradually took on more responsibility for architecture, estimation, technical direction, mentoring, and production systems. The scope of my role changed over time, but writing software remained at the center of it.

2006–2008

Developer

Learning the full stack through real client work

I started as one of two developers, working directly with clients as well as with the code. I helped estimate projects, took part in technical decisions, and built features across the database, PHP backend, and browser. That early exposure taught me to think about the customer problem and the implementation together.

What expanded

  • Drupal 5
  • Drupal site building
  • Custom modules & themes
  • Form API & hooks
  • PHP & MySQL
  • JavaScript & AJAX
  • HTML & CSS
  • LAMP stack
  • SOAP, XML & CRM integration

How I put them to work

  • International nonprofit operations: I built the website and employee portal for an Indianapolis nonprofit with over 150 staff across more than 80 countries, covering donation reporting and a volunteer application process. I also wrote an offline-capable interest form that ran on a local XAMPP stack and synchronized with their eTapestry CRM once connectivity came back.
  • Manufacturing inventory: I translated a paper-based parts process into a browser application with barcode scanning, permission-aware workflows, and more reliable inventory visibility.

2008–2011

Senior Developer · Technical Lead

Turning Drupal into a business platform

As Drupal became central to our work, I moved into technical leadership. I helped shape how projects were structured, broke requirements into estimable work, and used Drupal’s content model and extension system to solve operational problems rather than just publish pages. I was still building the features myself while taking more responsibility for how the overall solution fit together.

What expanded

  • Drupal 6
  • Views & content types
  • Multisite architecture
  • Drupal migrations
  • CSV imports
  • Linux & Bash
  • Waterfall delivery

How I put them to work

  • Bank employee portal: I helped turn Drupal 6 into an authenticated employee platform for a state-wide Florida bank, with a document library, an FAQ section, personalized dashboards, and a basic employee CRM tracking demographics and work location across every branch.
  • The start of a product: I helped shape the early architecture that let our small team reuse installation, module, and theme patterns across client projects instead of starting over every time.

2011–2015

Senior Developer · Technical Lead

Building reusable payment and membership systems

Drupal 7 marked a shift toward deeper custom application development. I began turning repeated client needs into reusable modules and products, while continuing to build the major features myself. My role also expanded into system design, task planning, code review, and helping less experienced developers work through unfamiliar technical problems.

What expanded

  • Drupal 7
  • Drupal Commerce
  • Advanced custom module development
  • Custom entities & Field API
  • Search API & Apache Solr
  • Payment integrations
  • Recurring transactions
  • Membership management
  • System design
  • Git & Bitbucket
  • Mentorship & code review

How I put them to work

  • Fundraising: I built the donation platform for a US missions organization supporting more than 160 missionaries and over 15,000 donors. Network Merchants had no subscription support at the time, so I wrote our own recurring schedule system on top of Drupal Commerce. It became the foundation for years of later client work.
  • Membership management: I built a member portal for a medical society collecting annual dues from more than 3,000 members, with self-service management, offline payment recording, past-due collection and forgiveness, and event registration gated on membership. It synchronized with their CRM over SOAP and ran for more than ten years.
  • Production systems: I helped plan and configure our own data center: Linux servers, load balancers, and a shared NAS as a distributed filesystem. I planned the topologies for availability and redundancy, worked with contractors on setup, then handled day-to-day changes and urgent production support.

2015–2020

Lead Developer · Solution Architect

Scaling applications and production systems

The systems became larger, more connected, and more operationally demanding. I took broader responsibility for architecture across reporting platforms, integrations, cloud infrastructure, and long-running production applications, while continuing to write core application code. I also helped a distributed development team break down, review, and deliver increasingly complex work.

What expanded

  • Drupal 8
  • Object-oriented PHP
  • Symfony components
  • Services & dependency injection
  • Twig & Sass theming
  • REST & JSON APIs
  • AWS architecture
  • Shopify APIs & GraphQL
  • Agile & Scrum

How I put them to work

  • Financial reporting: I helped maintain and extend a reporting portal for an Atlanta correspondent bank that served more than 100 banks every week for seven years. Customers uploaded Excel files that we mapped to database tables and processed into bond accounting, borrowing and SWAP reports, alongside a set of accounts-receivable conversion calculators.
  • Donor portal and pledge drives: I developed a donor portal and pledge-drive management system handling one-time, recurring and pledge gifts, with administrative dashboards and CRM and payment integrations. It served more than 2,000 donors a year and processed over $1 million in donations.
  • Guided selection: I built a wizard for a manufacturing parts supplier that walked customers to the right part through a series of questions, preserving state and validating complex choices without exposing the complexity behind it.
  • Shopify integration: I synchronized data through Shopify APIs and GraphQL, then used its JavaScript API to assemble carts and hand users into checkout.
  • Cloud migration and operations: I built and maintained an Elastic Beanstalk environment that scaled up through pledge-drive peaks and back down afterwards, then planned and carried out the move of every customer off our own data center and into AWS, across EC2, VPCs, EBS, EFS and RDS, improving estimated availability from roughly 98% to about 99.9%. I designed the topologies for availability and redundancy and ran day-to-day operations, including Ubuntu, Apache and MySQL changes and incident response, with contractors doing the server build-out itself.

2020–2026

Lead Developer · Solution Architect

Building a reusable Drupal product platform

My focus shifted from solving similar problems project by project to building a configurable Drupal platform those projects could share. I designed the architecture and remained the primary implementer for many of its hardest features, including shared modules, integrations, payments, membership, search, and access systems. I also continued guiding technical decisions and reviewing the work built around that foundation.

What expanded

  • Drupal 9 & 10
  • PHP 8
  • Entities, plugins & design patterns
  • Search API, Facets & Views
  • Drupal Migrate API
  • OAuth 2.0 & SSO
  • Open Social & Opigno
  • Moodle integration
  • Cache, queue & lock APIs
  • AI-assisted development

How I put them to work

  • Multi-source migration: I was both the solution architect and the developer on a migration that pulled a large content library out of HubSpot and WordPress into a single Drupal blog, writing the custom source and process plugins for both sources, and a custom destination plugin for the author migration. The site is a Drupal publishing platform serving roughly 1 million pageviews per month for a Cincinnati nonprofit, and my work there continued through application development and ongoing production support, including the custom views behind a daily blog that surfaces articles by day of the year.
  • Product platform foundation: I designed and built a suite of Drupal modules that formed the foundation of our SaaS platform. Shared capabilities such as payments, membership, search, access, and custom workflows were designed to work together and be extended by later modules, reducing duplicate code and giving new product features a consistent framework to build on.
  • Community and learning: We customized Open Social into our own distribution to run an online mental health community, with dashboards, daily check-ins, and custom SSO into Moodle. Later generations moved the learning side onto Opigno.
  • Membership and payments, next generation: For a business-networking group across the Midwest and South, I designed a shared payment service on Authorize.Net that moved us off Drupal Commerce and gave membership, fundraising, and other product features one payment foundation. It let us build Webforms that take payment, and I added referral tracking with points-based recognition. That community ran for six years.
  • Cloudflare: I moved our clients onto Cloudflare for DNS, SSL certificates, bot mitigation and DDoS protection.
  • AI in my development workflow: More recently, I have begun incorporating AI coding tools into my day-to-day development process. I use them to help work through complex implementations, debug problems, draft and refine tests, explore alternative approaches, and accelerate repetitive work. I still plan the solution, set the technical constraints, review the output carefully, and remain responsible for the final implementation.

Let’s talk

Let’s talk about the work.

I’m looking for a senior Drupal/PHP developer or technical lead role where I can keep building while helping the team make good technical decisions, plan the work, and review what we ship.

Connect with me on LinkedIn ↗