Serhii Shandaliuk / Senior Drupal

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

Senior Drupal expertise, under your brand.

Your team stays the face of the project. I do the engineering, 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

What gets subcontracted

Drupal 9 → 11. Audits. Performance. Security.

The few intense weeks per quarter that are the worst possible shape for a hire — and a perfectly ordinary shape for a contract. With a December deadline attached to every D10 site you hold.

How it starts

A fixed-price audit, delivered in a week.

Send the repo and the problem as you see it. You see the standard of work before committing to anything longer.

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. Every D10 site on your books has that in front of it.

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. That is the version nobody wants to quote for.

  • 5 Jan 2025 Drupal 7 end of lifealready past. Anything still on it is running without core security support.
  • Wk 7 Dec 2026 Drupal 12.0 and 11.5 released11.5 is the last Drupal 11 minor, as 10.6 was the last Drupal 10 one.
  • 9 Dec 2026 Drupal 10 end of lifeno further core security releases. Anything still on 10 is on its own.

The offer is narrow: send the repo and I come back with the actual 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. Send a D10 site over.

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
€6–8k / month €75–100k a year fully loaded, six to ten weeks to hire, and paid through the quarters when no Drupal project needs one. Plus recruitment, holidays, downtime.
Senior on demand
€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.

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 — something you can forward to the client under your letterhead.

  2. Drupal 9 → 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, so these arrive as rescues more often than not.

  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 & security

    Caching strategy, query and render profiling, hardening before launch. Usually the fastest way to turn an unhappy client into a renewing one.

  6. Senior on call for your developers

    A retainer your team can escalate into: architecture second opinions, design review before a sprint commits to something expensive, unblocking the ticket that has eaten three days.

  7. Monthly maintenance & updates

    Core and contrib updated every month — on staging first, then live. Security advisories applied within 48 hours, a pass over the flows the client actually earns money on, and a one-page report you can forward under your letterhead. This is how a site stops drifting toward the next emergency migration.

04 — How it starts

Small first step, then whatever fits.

  1. A fixed-price audit

    Send a repo or a staging URL and the problem as you see it. Fixed scope, fixed price, report within a week. You see the standard of work before committing to anything longer.

  2. The work itself

    Ad-hoc tickets at an hourly rate, or a monthly retainer with reserved capacity and a response SLA. Your repo, your tracker, your branch conventions, your PM.

  3. A standing arrangement

    Most agencies settle into two to four days a month. You stop planning around whether a senior is available, and start quoting Drupal work you’d otherwise decline.

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 auditthe 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-hocper ticket or sprint Migrations, performance, security, complex custom work. Estimated before it starts. €85–120 / h
Retainermonthly, 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, €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. It is bought after an engagement rather than instead of one — the way a site stops drifting toward the next emergency migration.

06 — White-label terms

Invisible by default.

What “white-label” means here, in writing:

  • Your client is your client. I don’t contact them, pitch them, or appear in their inbox unless you put me there under your brand.
  • I don’t publish, name or portfolio the work. NDA signed before repo access, every time.
  • I don’t take on agencies competing directly with each other on the same market and service.
  • Communication goes through your PM, in your tools. If you want me on a client call, I’m on it as part of your team.
  • Everything I write is handed over: code, migration plan, report, and enough documentation that your developers can maintain it without me.

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 DRUPFANDecoupled 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 AnyforSoftDrupal 6 and 7 builds from scratch. Where the fundamentals came from.

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.

  1. Homepage of the consolidated Imerys website, showing the global navigation and search that replaced roughly seventy separate sites.
    imerys.com — the single instance, today

    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
  1. The AnyforSoft homepage as archived in 2017, headlined 'Drupal 8 web and mobile apps development team'.
    anyforsoft.com — archived 2017, the Drupal 8 build

    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 you see here is the archived capture.

    AnyforSoft · 2015–2018 · See the archived build ↗
  2. The Bilberrry homepage, showing client logos including Business Wire, GoFundMe.org, Deloitte, MIT and Delta.
    bilberrry.com — live

    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 ↗

Anonymised, under NDA

Shipped under an agency’s brand, so the names stay out of it. The shape of the job does not have to.

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

09 — Before you ask

The six questions every agency asks first.

Are you available during our working hours?
Partly, and I’d rather be straight about it than promise otherwise. I’m on CET, reply to anything within 24 hours, and can join calls in the late afternoon and evening. Deep work happens in agreed blocks. If your project needs someone on standby from 9 to 17, you need a hire, not me.
Will our client ever find out you’re not on staff?
Not from me. I work in your repo, your tracker and your naming conventions; deliverables carry no branding of mine. NDA before access. If you want me on a client call, I join as a member of your team.
What if the audit says the project is fine?
Then you have a written second opinion to show the client and I have an honest hour of billing. An audit that manufactures problems in order to sell a migration is worth nothing to either of us.
Can you work with our existing developers?
That’s the usual arrangement. Most agencies have capable mid-level developers who hit a wall on migration edge cases or performance. I review, unblock, and leave the team more able to handle it next time — that’s the point of the retainer.
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.
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. That is what keeps a booked week a week you actually get. I don’t take work I can’t carry on the hours I have — if your timeline needs more than that, you hear it in the first reply rather than in week three.

10 — Next step

Send the repo and the problem.

One paragraph is enough: what the site is, which Drupal version, and what’s going wrong. You’ll get a scope, a fixed price and a delivery date back — or an honest “not my area”.

One paragraph is enough. Repo or staging URL welcome.