Shopify Developer

Please login or register as jobseeker to apply for this job.

TYPE OF WORK

Any

SALARY

competitive

HOURS PER WEEK

TBD

DATE UPDATED

Apr 23, 2026

JOB OVERVIEW

we have a direct-to-consumer solid-wood furniture brand selling heirloom pieces across the UK and US. Our product is beautiful. Our store needs to match.
We're hiring a Shopify Developer who treats the storefront like a portfolio piece — someone who can build pages that feel like a premium editorial site, not a template with the colours swapped. If you can show us work that makes us stop scrolling, we want to talk.
What you'll own
You'll own the storefront as a craft surface — the place where a visitor d ---------- whether we're a £200 flat-pack brand or a £2,000 heirloom brand. That decision gets made in the first five seconds, and it's made visually.
Specifically:
– Building and shipping custom Shopify theme development — Liquid, sections, blocks, metafields, metaobjects
– Designing and implementing landing pages, collection pages, and product pages that feel bespoke, not templated
– Interactive front-end work: scroll-driven animations, hover states, image sequences, subtle motion that elevates without distracting
– Performance and Core Web Vitals — luxury doesn't mean slow, it means fast and beautiful
– Collaborating on creative direction with the founder — you'll often be given a reference, a brief, and trust
– App integrations and theme extensions where needed (reviews, upsells, financing, subscriptions)
– Maintenance, small fixes, and the ongoing pace of storefront iteration
What we're looking for
– 2–4 years building on Shopify, with deep Liquid fluency and comfort in Shopify 2.0 architecture
– A portfolio that proves taste — we want to see live URLs of stores you've built or meaningfully contributed to. This matters more than anything else on this list.
– Strong front-end fundamentals: HTML, CSS (modern — Grid, Flex, container queries), vanilla JS. Frameworks where they help, not where they show off.
– Comfortable with animation libraries (GSAP, Framer Motion for Hydrogen, Lottie) and knowing when not to use them
– Design sensibility — you can take a Figma file and make it better on the way to code, not worse
– Understanding of performance: lazy loading, image optimisation, Lighthouse scores that actually hit
– Strong written English, async-friendly, self-directed
Bonus points
– Experience on premium or luxury DTC brands — furniture, interiors, fashion, or adjacent
– Worked with Shopify Hydrogen or headless setups
– Familiar with Klaviyo, ---------- , Rebuy, Loop, Gorgias, or the usual premium-DTC app stack
– Motion design or animation background
– Comfortable collaborating on creative direction, not just execution
The setup
Remote, global. Full-time or long-term contract — tell us what works. You'll work directly with the founder with real creative latitude. If you do great work, you'll get more of it to do.
How to apply
Send us live links to 3–5 Shopify stores you've built or worked on, with a one-line note on what you specifically contributed. That's the first thing we'll look at. CV optional. Cover letter optional. The work is the application.

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0008
Controller Execution Time ( Jobseekers / Job )  0.0301
Total Execution Time  0.0315
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,500,608 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Shopify-Developer-1631218
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0221 seconds)  (Hide)
0.0009   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0010   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1631218
 LIMIT 1 
0.0023   SELECT *
FROM `employers`
WHERE `employer_id` = 921808
 LIMIT 1 
0.0020   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1631218
AND `misc`.`idIS NULL 
0.0012   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-07-16',ej.date_added) duration_daysDATEDIFF('2026-07-16',e.rebill_date) duration_rebillej.*, e.deactivate FROM employers eemployer_jobs ej WHERE e.employer_id ej.employer_id AND
                                   ((
e.user_level >= '500' AND ej.date_added <= e.rebill_date)
                                   OR 
e.employer_id '' OR (ej.date_approved <> '2000-01-01' and DATEDIFF('2026-07-16',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1631218' 
0.0016   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1631218 
0.0026   UPDATE employer_jobs SET hit_counts '***Apr-23-2026=128***Apr-24-2026=168***Apr-25-2026=17***Apr-26-2026=16***Apr-27-2026=25***Apr-28-2026=11***Apr-29-2026=6***Apr-30-2026=17***May-01-2026=2***May-02-2026=1***May-03-2026=1***May-04-2026=2***May-06-2026=5***May-09-2026=3***May-10-2026=1***May-12-2026=7***May-13-2026=1***May-14-2026=1***May-15-2026=1***May-16-2026=2***May-18-2026=1***May-19-2026=1***May-20-2026=1***May-21-2026=2***May-22-2026=2***May-23-2026=2***May-25-2026=1***May-28-2026=1***May-31-2026=1***Jun-03-2026=1***Jun-06-2026=1***Jun-09-2026=4***Jun-11-2026=2***Jun-12-2026=1***Jun-13-2026=1***Jun-15-2026=1***Jun-18-2026=1***Jun-19-2026=2***Jun-21-2026=1***Jun-24-2026=1***Jun-25-2026=1***Jun-27-2026=1***Jun-30-2026=2***Jul-03-2026=1***Jul-07-2026=1***Jul-16-2026=1' WHERE job_id'1631218'  
0.0012   UPDATE employer_jobs SET monthly_hits '***Apr-2026=388***May-2026=39***Jun-2026=20***Jul-2026=3' WHERE job_id'1631218'  
0.0029   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1631218' AND status LIKE 'sent%' ORDER BY id DESC  
0.0009   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1631218 
0.0037   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '921808'
AND `date_added` >= '2022-06-08' 
0.0009   select from teasers 
0.0008   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)