
Fredrik Nordström
Senior full-stack developer · Stockholm, Sweden
Swedish (native) · English (full professional)
[email protected]linkedin.com/in/fredrik-nordstroemlivog.com
Senior full-stack developer with 14 years in web development, the last 8 as lead developer on Pernod Ricard's brand sites at The Absolut Group, including absolut.com and absolutdrinks.com, with millions of visits a month across 15 markets. I own systems from architecture to launch and operations, and I review and mentor a team of up to seven developers. I work closely with product owners, designers and content teams and bring the technical view in early: what's possible, what it will really cost, and where there's a simpler way. My track record includes migrating almost 40,000 URLs with under 5% traffic loss and a platform serving about 140 brand sites and 300k requests a day. I use Claude Code and Codex daily, with my own review rules that turn team standards into something automatic instead of something people have to remember.
Experience
to Present
Senior Full-stack Developer · The Absolut Group
Contract
Six Pernod Ricard brand sites. Consultant since January 2018, through my own company Livog AB since December 2022. I build and maintain the Pernod Ricard brand sites at The Absolut Group: absolut.com, absolutdrinks.com, kahlua.com, malibudrinks.com, malfygin.com and lillet.com. I review and mentor the other developers through pull requests, in a dev team of up to seven.
Brands on my age gate saw 8% more visitors reach their site. My first assignment was the group's age gate platform, the system behind the age check on about 140 Pernod Ricard brand sites, with legal drinking ages for 98 countries and an admin where agencies and markets edit their own brands. I rebuilt it in Nuxt/Vue and Express. Each brand's script is compiled once per language and served from cache, about 300k requests a day.
absolutdrinks.com: 39,978 URLs migrated with under 5% drop in search traffic. The site gets about 400,000 visits a month and a million at the holiday peak. I rebuilt it from four systems into one WordPress platform with 3,500+ recipes and 20,000+ pages in six languages, wrote the importers and mapped every old URL to the new site.
absolut.com: 15 markets on one site. I started the rebuild and built most of it. Visitors are routed to their market at the edge. When the sites moved from Akamai to Cloudflare I rebuilt image resizing and geolocation, and wrote a stale-while-revalidate Worker so edits go live without purging.
TypeScript services around WordPress. Cloudflare Workers for edge caching, AI tools for the drinks content with the AI SDK, Anthropic and OpenAI, and internal tools in Next.js and Astro. Built to WCAG AA, checked with axe and manual testing, with end-to-end tests in Cypress and Playwright.
- PHP
- WordPress
- Blade
- ACF
- WPML
- TypeScript
- Next.js
- React
- Vue.js
- Nuxt
- Astro
- Svelte
- Node.js
- Express
- Payload CMS
- Cloudflare
- AI SDK
- Tailwind
- Vite
- Playwright
- Cypress
to
Web Developer · The Generation AB
Built websites in WordPress with PHP and ACF.
Tech stack
- WordPress
- PHP
- ACF
- JavaScript
- TypeScript
- Node.js
- HTML5
- CSS
to
Frontend Developer · Vektorgrafik Stockholm AB
Built websites in JavaScript, HTML and CSS, plus WordPress features with ACF so the content was editable.
Tech stack
- JavaScript
- HTML5
- CSS
- WordPress
- PHP
- ACF
to
Web Developer · Nordic Leisure Group
Built an affiliate system for creating the company's own affiliate sites and optimizing them to rank high in search. More than 100 sites were managed in that one system.
Tech stack
- PHP
- WordPress
- ACF
- JavaScript
- HTML5
- CSS
- SEO
to
Web Developer · iGoMoon
Built WordPress sites for the web agency's clients, with custom themes, ACF for editable content and WPML for multilingual sites.
Tech stack
- WordPress
- PHP
- ACF
- WPML
- jQuery
- JavaScript
- HTML5
- CSS
Own projects
ParkMap
Turns Stockholm's tangled parking rules into a map: green where you can park, red where you can't. I built it and run it myself.
- Next.js
- React
- TypeScript
- Payload CMS
- MongoDB
- Bun
- MapLibre
- Turf
- AI SDK
PayloadPack Auth
An internal Payload CMS plugin I built for my own projects. It bridges Better Auth with Payload and replaces the built-in auth, with passkeys, 2FA, organizations and types generated from the Better Auth schema. It ships with a setup CLI and a private npm registry on Cloudflare Workers that handles license keys.
- TypeScript
- Next.js
- Payload CMS
- Better Auth
- Cloudflare Workers
- D1
- R2
- Hono
- Playwright
Skills
- Frontend
- TypeScript, JavaScript, React, Next.js, Vue.js, Nuxt, Astro, Svelte, Preact, Tailwind CSS, HTML, CSS
- Backend & CMS
- PHP, WordPress, Blade, ACF, WPML, Headless CMS (Payload), Node.js, Express, Bun, MySQL, PostgreSQL, MongoDB, Drizzle ORM, Algolia, Better Auth
- Platform & tooling
- Cloudflare (Workers, R2, D1, KV, Queues, WAF, DNS, Tunnels, AI Gateway), Vercel, Pantheon, Docker, Self-hosting (Linux, Coolify), GitHub Actions, Vite, esbuild, Playwright, Cypress, Jest, PHPUnit, Pest, Lando, Git, Monorepos, Figma
- Practice
- Web performance, Web accessibility (WCAG AA), Technical SEO, Multi-market, multilingual sites, Code review and mentoring, Scoping and estimation
- AI
- AI SDK, Anthropic, OpenAI, Embeddings and vector search, MCP servers, Claude Code, OpenAI Codex