Senior Shopify Developer (Long-Term, Remote)

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

TYPE OF WORK

Full Time

WAGE / SALARY

$2000

HOURS PER WEEK

40

DATE UPDATED

May 17, 2026

JOB OVERVIEW

We're a fast-growing Shopify agency working with some of the biggest brands. We're looking for an experienced Shopify Developer to join our CRO department.

You'll turn approved designs into high-performing Shopify code, working alongside our existing dev team, designers, and QA manager.

What you'll do

- Modify Shopify themes and sections from approved designs (Liquid, JS, CSS, HTML)
- Implement A/B tests and landing pages for CRO clients
- QA your own work across browsers and devices before handing off. No "it works on my machine"
- Track tickets in our project management system and flag risks before they become problems
- Communicate proactively: estimate accurately, escalate blockers early, never let a client or the team wait without an update

What we need

- 3+ years of hands-on Shopify development (Liquid, sections, custom themes, not just page builders or app configuration)
- Solid JavaScript, HTML, CSS. Comfortable in vanilla JS without leaning on jQuery
- Experience with Shopify 2.0, theme sections, metafields, and JSON templates
- You take ownership of bugs without being told twice. You catch your own mistakes before the QA manager sees them
- You communicate ahead of time. If something slips, we hear about it the ---------- nt you know, not the day it's due
- Strong written English. You'll be in Slack and email with clients and the team
- Reliable internet and available during normal working hours

Nice to have

- Experience with Rebuy, Vitals, Klaviyo, Postscript, or other common Shopify stack apps
- A/B testing platforms (we use Intelligems)
- Experience with headless websites
- Page speed optimization on Shopify themes
- Git/GitHub workflow comfort

How we work

- Remote, async-friendly, as long as there's real overlap during working hours
- Competitive salary, clear KPIs, and a clear path for growth
- You'll own your tickets end-to-end. We trust experienced devs to manage their work, ask for help when needed, and ship clean code

Don't apply if: you've only used page builders, you're juggling other clients, or you go quiet when things go wrong.

How to apply

Send your application with:
1. Briefly share your background as a developer and Shopify experience.
2. Share a code snippet (Liquid, JS, or both) from something you've built that you're proud of. Paste it in your reply or link to a Gist/GitHub. Explain what it does and why you built it that way.
3. Proof of your track record — any combination of: OnlineJobs.ph ID and reviews, Upwork/Fiverr/Toptal profiles, Shopify Partner profile, GitHub, LinkedIn, or written references. The more verifiable, the better.
4. Your monthly salary expectation in USD
5. Your fastest realistic start date

Our hiring process

1. Application review
2. 1:1 interview (~20 min)
3. Quick unpaid technical task (~30 min)
4. Paid one-off project
5. Long-term role offer

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.0509
Total Execution Time  0.0522
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,513,648 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Senior-Shopify-Developer-Long-Term-Remote-1648734
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0453 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0003   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1648734
 LIMIT 1 
0.0008   SELECT *
FROM `employers`
WHERE `employer_id` = 588684
 LIMIT 1 
0.0367   SELECT COUNT(DISTINCT t.id) as cnt
FROM 
`t_thread` `t`
INNER JOIN `t_message` `mON `t`.`id` = `m`.`thread_id`
INNER JOIN `t_message_employer` `eON `m`.`id` = `e`.`message_id`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1648734
AND `misc`.`idIS NULL 
0.0006   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-06-20',ej.date_added) duration_daysDATEDIFF('2026-06-20',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-06-20',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1648734' 
0.0007   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1648734 
0.0015   UPDATE employer_jobs SET hit_counts '***May-17-2026=162***May-18-2026=86***May-19-2026=21***May-20-2026=21***May-21-2026=16***May-22-2026=10***May-23-2026=6***May-24-2026=8***May-25-2026=8***May-26-2026=17***May-27-2026=6***May-28-2026=4***May-29-2026=2***May-30-2026=1***May-31-2026=5***Jun-01-2026=54***Jun-02-2026=22***Jun-03-2026=29***Jun-04-2026=9***Jun-05-2026=9***Jun-06-2026=6***Jun-07-2026=4***Jun-08-2026=6***Jun-09-2026=10***Jun-10-2026=9***Jun-11-2026=2***Jun-12-2026=2***Jun-13-2026=2***Jun-14-2026=1***Jun-15-2026=1***Jun-16-2026=3***Jun-17-2026=2***Jun-20-2026=1' WHERE job_id'1648734'  
0.0006   UPDATE employer_jobs SET monthly_hits '***May-2026=373***Jun-2026=170' WHERE job_id'1648734'  
0.0012   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1648734' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1648734 
0.0016   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '588684'
AND `date_added` >= '2022-06-08' 
0.0003   select from teasers 
0.0002   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)