Web platforms
Client sites that editors can actually run: custom post types, structured fields, sane templates, consent and analytics wired up correctly instead of bolted on afterwards.
engineer, occasional automator
I ship client platforms, internal tooling and agent-driven automation — the kind of work that has to keep running on a Tuesday morning when nobody is watching it.
01 — About
A working note on what I do, how I got here, and what I'm useful for.
I'm a full-stack engineer who spends most of his time in the unglamorous middle of things — the integration that has to reconcile two systems that disagree, the CMS that has to stay editable by non-engineers, the automation that runs at 10:30 every morning whether or not anyone remembers it exists.
Most of my work has been agency-side: client web platforms built on WordPress and custom fields, product interfaces in Next.js and Supabase, and a growing pile of n8n and MCP-based automation that quietly removes manual steps from other people's days.
Lately I've been deep in agentic systems — self-hosted orchestration, local models, tool-calling that actually behaves. Less demo, more uptime.
the part I actually enjoy: making a complicated
thing feel obvious to the person using it.
02 — Services
Four things I do properly, rather than twenty I do adequately.
Client sites that editors can actually run: custom post types, structured fields, sane templates, consent and analytics wired up correctly instead of bolted on afterwards.
Dashboards, portals and internal tools built end to end — schema through interface — with the auth, state and edge cases handled before they become support tickets.
Recurring manual work turned into a reliable pipeline: scheduled sweeps, reconciliation between systems that disagree, feature-flagged rollouts and replayable runs when something goes wrong.
Model Context Protocol servers, agent workflows and retrieval-ready documentation — built so a model has the right context and the right tools, not a bigger prompt.
03 — Selected work
Four builds that earned their place — client platforms, internal automation, and one full product.
Organisation inventory automation · Next.js + Django
Office stock-keeping without the spreadsheet. Staff photograph a shelf or just say what they took; the system resolves it against the catalog, moves the stock and predicts what's about to run out.
POST /products/identify (shelf.jpg)detected potato, rice, oil, cardamommatched 3 catalog idsunmatched cardamom → tap to add---// consumption model, α = 0.3sugar dtd 3d reorder 12 kgrice dtd 19d reorder —[fallback] no key → trigram search
Sole WordPress engineer · African Tours · Scuba Travel · Hummingbird · Tour Pacific · Waidmann · Intoit
A portfolio of production travel and hospitality sites that I maintained single-handedly — content architecture, consent and tracking, and the long tail of bugs that only appear on live data with real editors behind it.
wp estate:status --allafricantours.se upscubatravel.se uphummingbirdmeetings.se uptourpacific.se upwaidmann.se upintoit up---// one maintainer, near-zero downtimeconsent gate → gtm deferred
n8n automation · Slack + Sheets + ERP
The office lunch count came from three places that disagreed — a Slack thread, a spreadsheet and the ERP. The kitchen cooked to the highest number, so food went in the bin every day and people who booked sometimes went without. This reconciles all three before the 10:30 cutoff, chases the gaps itself, and hands the kitchen one trustworthy figure.
// three sources, one numberwindow 08:00 → 10:30sources slack:#meals · sheettarget erp360.bookings---mismatch → dm sentcancelled → reason requiredover-order → trimmed pre-cutoffresult: cooked ≈ eatenwaste ≈ 0
n8n + Slack · Multi-channel status automation
Who's out, who's on leave and who's heads-down was posted in whichever channel someone remembered, so every team held a different version of the truth. One update now propagates everywhere it's relevant.
event: status.changedmember @teammatefrom available → on leave---#team-platform synced#proj-northlight synced#daily-standup syncedone update, every channel current
04 — Achievements
Competitions, responsibility, and the quiet kind of record that only shows up when nothing breaks.
First place, competing against internal teams on a fixed clock — build, demo, defend.
Back on the podium two years later, with a bigger field and a harder brief.
Led a development team alongside shipping my own work — scoping, review, unblocking, and carrying the handover discipline into how the team documented things.
Maintained an estate of 8 to 10 production websites single-handedly, keeping them online through migrations, plugin churn and client deadlines.
05 — Toolbelt
06 — Process
Same shape whether it's a two-week fix or a quarter-long build.
I ask the annoying questions early — edge cases, who owns the data, what happens when the third-party API is down. Cheaper now than in week six.
Small increments you can see running. Feature flags where a change is risky, so nothing ships as an all-or-nothing switch.
Real data, off-hours overrides, replays of the failure paths. If I can't break it deliberately, it's probably ready.
Documentation your team can actually use — architecture notes, flow diagrams, runbooks. Nothing that only works while I'm around.
07 — Words
Colleagues and clients, in their own words.
I had the chance to work closely with Redwan almost one year. What stood out most was how he handled the client-facing side of our projects, particularly on African Tours and Hummingbird, from sorting out tricky form and content issues to keeping both client accounts running smoothly day to day. Redwan has a real skill for translating client needs into clear direction for the team, and always made sure we understood not just what to build, but why it mattered to the client. Beyond the client work, he also drove a lot of the automation improvements for the organization that made our day-to-day smoother. The meal booking flow is a great example — it took a process that used to rely on manual back-and-forth and turned it into something automated and dependable that just runs in the background now. He also pushed us forward on the MCP and agent tooling side, which has genuinely changed how we approach problems and think about what's possible with the tools we build. What I appreciated most is that Redwan leads with patience and clarity, even when things get hectic. I learned a lot working alongside him, and I'd gladly work together again.
During my time at Strativ as the sole project manager for website projects, Redwan had been a key player in the PHP team in developing solutions and independently collaborating with some of our longest-running customers. I've seen him learn relentlessly, process feedback with a sound strategic acumen, and augment his processes and performance rapidly over time. His promotion to a team leadership role was well-deserved. Beyond the timeline of my management, I've followed his work that crossed the spheres of Wordpress development onto automations and custom collaboration tracking portal, among other things. He has also consistently been a team player, adding valuable "human element to the development machine" by supporting, mentoring, and uplifting peers from his own team and beyond. Wishing Redwan great success ahead with high confidence!
08 — Contact
Briefs, contract work, or a system that needs untangling — tell me what's broken and what "done" looks like.