# Senior Drupal expertise, under your brand

> Senior Drupal developer (10+ years, Acquia Certified, Warsaw) providing white-label capacity for agencies in the Netherlands, Belgium, DACH and the Nordics. Drupal 10 goes end of life on 9 December 2026 — D10 to D11 upgrades scoped and closed before the date, plus audits, performance and security. Entry point is a fixed-price audit delivered in a week.

Your team stays the face of the project. I do the engineering — Drupal 10 → 11 upgrades, audits, performance and security — and your client never knows I exist. Right now that is mostly Drupal 10 sites that have to be on 11 before support ends on 9 December 2026.

10+ years · Drupal 6 → 11 · Acquia Certified · Warsaw · CET

White-label Drupal capacity · NL, BE, DACH & the Nordics

The few intense weeks per quarter that are the worst possible shape for a hire, and a perfectly ordinary shape for a contract. The entry point is a fixed-price audit, delivered in a week: send the repo and the problem as you see it.

[Start with an audit](#next-step) · [See rates](#engagement--rates)

## 01 — The deadline

### Drupal 10 goes end of life on 9 December 2026.

After that date core stops getting security releases. Drupal 12 arrives the same week, and a major version cannot be skipped: a Drupal 10 site reaches 12 through 11, not directly. Done now it is one ordinary upgrade — 10 to 11, on a branch, in a month your team picks. Left until the deadline it is two majors under a client's timeline, with whatever contrib has not moved yet.

- **5 January 2025** — Drupal 7 end of life. Already past.
- **Week of 7 December 2026** — Drupal 12.0 and 11.5 released. 11.5 is the last Drupal 11 minor, as 10.6 was the last Drupal 10 one.
- **9 December 2026** — Drupal 10 end of life. No further core security releases.

Send the repo and I come back with the size of the jump — deprecated API calls, contrib with no Drupal 11 release, custom modules that need rewriting — priced, and scheduled to close before December.

## 02 — The gap

### You sold the Drupal project. Now it needs a senior.

A legacy D7 site that has to reach D11. A migration that stalled two sprints ago. A page that takes eight seconds to render. A security review the client's IT department demands a week before go-live.

None of that is a full-time role. It's a few intense weeks per quarter — which is the worst possible shape for a hire, and a perfectly ordinary shape for a contract.

| Senior in-house | Senior on demand |
|---|---|
| €6–8k / month — €75–100k a year fully loaded, six to ten weeks to hire, paid through the quarters when no Drupal project needs one. Plus recruitment, holidays, downtime. | €85–120 / h. The two to four days a month most agencies settle into come to under €4k, and nothing at all in the quarters between. Booked when the work is already sold, invoiced B2B, closed when it ships. |

€85–120 an hour is more than an in-house senior costs per hour worked, and less than one costs per year: no recruitment, no holidays, no sick leave, no ZUS, and nothing at all for the weeks with no Drupal project in the building.

## 03 — What I take on

### Seven kinds of work, all of them billable to your client.

1. **Technical audit & code review** — architecture, custom module quality, security posture, performance, upgrade readiness. Written report with findings ranked by risk and effort, ready to forward to the client under your letterhead.
2. **Drupal 10 → 11, before December 2026** — the one with a date on it. Deprecated API calls, contrib with no Drupal 11 release, custom modules and themes brought up to current — scoped first, then closed on a branch while the site stays live. Ends with a codebase that takes Drupal 12 as a routine update rather than a second migration.
3. **Migrations from Drupal 6, 7, 8 and 9** — the longer job: content migration, custom modules rewritten, a contrib replacement strategy for everything that never got a modern release, and a plan that survives contact with the client's editorial team. Drupal 7 has been out of support since January 2025.
4. **Complex custom development** — custom modules, third-party integrations, REST APIs (including Apigee Edge), and decoupled front-ends on React or Gatsby when the project genuinely calls for one.
5. **Performance** — profiling, caching strategy, database and query work, front-end delivery. Measured before and after.
6. **Security** — review against the client's checklist, dependency and core update strategy, hardening before go-live.
7. **Monthly maintenance & updates** — core and contrib updated every month, on staging first and then live. Security advisories applied within 48 hours, a regression pass over the flows the client earns money on, and a one-page report to forward under your letterhead.

## 04 — How it starts

### Small first step, then whatever fits.

The usual entry point is a fixed-price technical audit: you send the repository and describe the problem, I return a written report within a week, and we both know what we are dealing with before anyone commits to a larger scope.

## 05 — Engagement & rates

### Published rates, so the first call can be about the work.

Net, in euro, B2B invoice.

| Model | What you get | Rate |
|---|---|---|
| **Technical audit** — the usual entry point | Fixed scope, written report, one call to walk your team through it. Delivered within a week. Credited in full against the first engagement that follows. | €350–700 |
| **Ad-hoc** — per ticket or sprint | Migrations, performance, security, complex custom work. Estimated before it starts. | €85–120 / h |
| **Retainer** — monthly, reserved capacity | An agreed number of days each month kept for your team, a response SLA, and a written report at the end of it. | €1,200–2,800 / mo |

Also available, not an engagement model: monthly maintenance at €150–350 / mo per site — core and contrib updated on staging then live, security advisories inside 48 h, a regression pass and a one-page report. Bought after an engagement rather than instead of one.

The rate lands within the range based on urgency and how much of the codebase is undocumented. I flag it when an estimate is going to be exceeded — before it is, not after.

## 06 — White-label terms

### Invisible by default.

The work ships under your brand. No contact with your client unless you ask for it, no attribution, no portfolio entry, no mention anywhere. NDA signed on request.

## 07 — Track record

### Ten years on the same platform, on purpose.

Enterprise migrations and high-traffic builds, not brochure sites — including three years as Tech Lead owning roadmaps, technical decisions and delivery.

- **2025 — · Bilberrry, Warsaw** — Senior Drupal Developer. Custom module architecture and technical roadmaps for large-scale D10/11 migrations.
- **2022 — 2025 · Famaash, Warsaw** — Senior Engineer / Tech Lead. Team coordination and technical decisions on high-performance Drupal 8–10 platforms.
- **2020 — 2022 · DRUPFAN** — Decoupled React + REST architecture, Apigee Edge integration, caching and performance work across parallel projects.
- **2018 — 2020 · ELEKS, Lviv** — Drupal 7–9 delivery for clients across industries. Acquia Certified Developer (Drupal 8).
- **2015 — 2018 · AnyforSoft** — Drupal 6 and 7 builds from scratch. Where the fundamentals came from.

**On drupal.org:** https://www.drupal.org/u/serhii-shandaliuk — issue history, project credits and the account your team can check before we talk.

**Languages:** English (B2, working language for a decade), Ukrainian (native), Russian. Written English is client-safe — reports go out as-is.

## 08 — Selected work

### Three I can name, and the ones I can't.

One enterprise consolidation, and two agencies who handed me the one site they could least afford to have broken: their own.

**01 · Seventy sites into one Drupal instance** — Imerys is a French industrial minerals group, €3.6bn revenue, listed in Paris, present in 40+ countries. Its web estate was roughly 70 separate sites on Drupal multisite: seventy content models, seventy update paths, seventy chances for the brand to drift. I was Tech Lead and owned the migration architecture — one instance, one codebase, country and language versions handled by Drupal rather than by cloning. The content was never the hard part. Collapsing seventy content models into one without any division losing what it actually needed was, followed closely by carrying URLs and rankings across the switch and by permissions, so every division could still edit its own pages and nothing else.
*Famaash · 2022–2025 · Tech Lead & migration architect*

**02 · An agency's own site, on Drupal 8** — AnyforSoft build custom platforms for education and media: Verifone, Stage Entertainment, Game Informer. Their own site ran on Drupal 8 through my years there, and I did the migration work behind it. It has since been rebuilt on another platform, so what is shown is the archived capture.
*AnyforSoft · 2015–2018 · [archived Drupal 8 build](https://web.archive.org/web/20171001183024/https://anyforsoft.com/)*

**03 · Migrating the site of the agency that brought me in** — Bilberrry is a Seattle digital agency whose case studies include GoFundMe.org and Business Wire. I migrated their own site. Not a Drupal project, which is rather the point: the platform matters less than knowing how to move a live site without dropping its URLs, its rankings or a working day.
*Bilberrry · 2025 — · [bilberrry.com](https://bilberrry.com/)*

Most of my work ships under an agency's brand and stays there — which is exactly what you are buying. Three I can put on screen; the rest below without names, and I can walk through any of them on a call.

**Anonymised, under NDA**

- **Drupal 10 → Drupal 11** · ~8,000 nodes, 3 custom modules · 4 weeks · Deprecated API calls cleared; the codebase takes Drupal 12 as a routine update
- **Drupal 9 → Drupal 10** · 3,500 nodes, REST API behind a React front end · 6 weeks · Front end untouched, API contract preserved
- **Drupal 8 → Drupal 10** · ~40,000 nodes, 6 languages · 9 weeks · 14 contrib modules replaced, editorial workflow unchanged
- **Drupal 7 → Drupal 10** · ~12,000 nodes, 4 custom modules · 11 weeks · URLs and rankings carried across, cutover with no downtime

## 09 — Before you ask

### The six questions every agency asks first.

**Will my client ever find out?** No. The work ships under your brand, I do not contact your client, and nothing appears in a portfolio or anywhere else. NDA on request.

**What about conflicts of interest?** I do not take work from your client directly, during the engagement or after it.

**What is your availability?** CET, first reply within 24 hours, calls in the late afternoon and evening, deep work in agreed blocks. The response SLA is stated up front and kept.

**Is this something you do on the side?** It runs on B2B contracts, which is the only way I work with agencies, and I hold a deliberately small number of them at a time. I do not take work I cannot carry on the hours I have — if a timeline needs more than that, you hear it in the first reply.

**Which timezone?** Warsaw, CET. Same working day as agencies in the Netherlands, Belgium, DACH and the Nordics.

**How do we pay?** B2B invoice from a Polish sole proprietorship, in euro, 14-day terms. Audits are invoiced on delivery, ad-hoc work monthly in arrears.

## 10 — Next step

### Send the repo and the problem.

Describe what stalled, which Drupal version you are on, and when it has to ship. You get an answer with a scope and a price, not a discovery call.

Email: shandalyuk94@gmail.com

drupal.org profile: https://www.drupal.org/u/serhii-shandaliuk
