Senior PHP Engineer

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

TYPE OF WORK

Full Time

SALARY

PHP 115k - 145k

HOURS PER WEEK

40

DATE UPDATED

Apr 16, 2026

JOB OVERVIEW

We’re looking for a Senior Backend PHP Engineer to help design and build the scalable backbone of HelloPrint’s ecommerce platforms. You’ll work on microservices, APIs, and integrations, while mentoring others and driving technical excellence.

You’ll take a leading role in shaping the architecture of our ecommerce infrastructure. You’ll build reliable APIs, optimize performance, and ensure our systems scale as we expand globally. Beyond coding, you’ll mentor teammates, influence technical direction, and contribute to a high-performance engineering culture.


What You’ll Do:

Architect Our API-First Future: Design, develop, and maintain a robust and high-performance API layer that will serve as the core of our headless platform.

Own the Backend: Take full ownership of key backend services, from design to deployment, ensuring they align with our API-first strategy.

Drive Modernization: Lead the modernization of our existing system, with a clear focus on decoupling the frontend from the backend and creating a clean, API-first architecture. We prefer a pragmatic approach over the complexity and overhead of microservices.

Mentor and Lead: Guide and mentor other backend developers, sharing your expertise in API design, performance, and best practices.

Collaborate and Innovate: Work closely with frontend engineers, product managers, and business stakeholders to translate ambitious goals into practical, well-engineered API specifications and solutions.

Champion Best Practices: Introduce and advocate for modern API development tools, standards, and methodologies (e.g., OpenAPI, CI/CD, comprehensive testing).






Requirements
What We’re Looking For:

Proven Seniority: At least 5+ years of professional experience in backend development, with a strong focus on PHP.

API-First Mindset: Demonstrated experience designing and building scalable, RESTful or GraphQL APIs. You have a deep understanding of what it means to build a headless system.

PHP8 Expertise: Deep, hands-on experience with modern PHP, including PHP8 and modern design patterns like TDD. You are comfortable with frameworks like Symfony and understand the nuances of the PHP ecosystem.

Strategic & Pragmatic: You are a problem-solver who prioritizes impact and understands the challenges of a large-scale modernization project. You know when to refactor and when to build new, all while avoiding unnecessary complexity.

Ownership Mentality: You are proactive about identifying and fixing issues and feel a strong sense of responsibility for the performance and health of the codebase.

Data Savvy: Strong experience with relational databases (MySQL/MariaDB) and a solid understanding of database design, optimization, and query performance in an API context.

Experience with Git and agile methodologies (Scrum, Kanban).

AI-Accelerated Development: You are knowledgeable about and in favor of using AI to accelerate the software development lifecycle. You're keen on exploring how AI can be leveraged to generate code, improve quality, and maximize output.


Nice to Have:

Experience with e-commerce or high-traffic consumer environments.

Familiarity with cloud platforms (AWS, GCP) and containerization (Docker, Kubernetes).

Experience with message queues (e.g., GCP PubSub) or other asynchronous processing technologies.



What We Offer:


- Growth & Ownership: A performance culture where you grow fast, take ownership early, and design your own path: with access to AI learning and real responsibility.

- International Experience: Join a diverse team of 150+ HelloPrinters from 34+ nationalities, collaborating across countries, cultures, and functions.

- Impact & Innovation: Work in a fast-paced, tech-driven scale-up where your ideas shape the future of customised products.

- Collaboration: Learn from experienced leaders, contribute to meaningful projects, and thrive in a team that’s serious about performance and people.

- Celebrations & Culture: From work anniversaries and team events to monthly Keynotes and seasonal awards, we make time to celebrate wins and give back through volunteering.

Ready to Build the Future?
We are looking for bold thinkers, decisive executors, and engineers who embrace AI-first development.

If you're interested, apply here:
----------

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0011
Controller Execution Time ( Jobseekers / Job )  0.0137
Total Execution Time  0.0155
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,515,176 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Senior-PHP-Engineer-1553435
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0070 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0004   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1553435
 LIMIT 1 
0.0003   SELECT *
FROM `employers`
WHERE `employer_id` = 864788
 LIMIT 1 
0.0009   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1553435
AND `misc`.`idIS NULL 
0.0004   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-04-19',ej.date_added) duration_daysDATEDIFF('2026-04-19',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-04-19',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1553435' 
0.0007   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1553435 
0.0016   UPDATE employer_jobs SET hit_counts '***Jan-13-2026=76***Jan-14-2026=42***Jan-15-2026=42***Jan-16-2026=22***Jan-17-2026=10***Jan-18-2026=8***Jan-19-2026=29***Jan-20-2026=17***Jan-21-2026=13***Jan-22-2026=13***Jan-23-2026=8***Jan-24-2026=8***Jan-25-2026=7***Jan-26-2026=6***Jan-27-2026=88***Jan-28-2026=73***Jan-29-2026=65***Jan-30-2026=23***Jan-31-2026=14***Feb-01-2026=14***Feb-02-2026=28***Feb-03-2026=25***Feb-04-2026=10***Feb-05-2026=14***Feb-06-2026=6***Feb-07-2026=2***Feb-08-2026=4***Feb-09-2026=7***Feb-10-2026=3***Feb-11-2026=10***Feb-12-2026=5***Feb-13-2026=1***Feb-14-2026=7***Feb-15-2026=1***Feb-16-2026=101***Feb-17-2026=45***Feb-18-2026=24***Feb-19-2026=29***Feb-20-2026=21***Feb-21-2026=4***Feb-22-2026=4***Feb-23-2026=18***Feb-24-2026=13***Feb-25-2026=6***Feb-26-2026=9***Feb-27-2026=9***Feb-28-2026=5***Mar-01-2026=6***Mar-02-2026=8***Mar-03-2026=3***Mar-04-2026=2***Mar-05-2026=2***Mar-06-2026=35***Mar-07-2026=9***Mar-08-2026=2***Mar-09-2026=12***Mar-10-2026=11***Mar-11-2026=5***Mar-12-2026=5***Mar-13-2026=6***Mar-14-2026=3***Mar-15-2026=1***Mar-16-2026=1***Mar-17-2026=343***Mar-18-2026=9***Mar-19-2026=8***Mar-20-2026=5***Mar-21-2026=3***Mar-22-2026=4***Mar-23-2026=3***Mar-24-2026=177***Mar-25-2026=22***Mar-26-2026=8***Mar-27-2026=7***Mar-28-2026=3***Mar-29-2026=2***Mar-30-2026=32***Mar-31-2026=15***Apr-01-2026=5***Apr-02-2026=7***Apr-03-2026=13***Apr-05-2026=3***Apr-06-2026=4***Apr-07-2026=6***Apr-08-2026=55***Apr-09-2026=12***Apr-10-2026=7***Apr-11-2026=1***Apr-12-2026=2***Apr-13-2026=7***Apr-14-2026=4***Apr-15-2026=3***Apr-16-2026=36***Apr-17-2026=9***Apr-18-2026=4***Apr-19-2026=1' WHERE job_id'1553435'  
0.0006   UPDATE employer_jobs SET monthly_hits '***Jan-2026=564***Feb-2026=425***Mar-2026=752***Apr-2026=179' WHERE job_id'1553435'  
0.0008   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1553435' 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` = 1553435 
0.0003   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '864788'
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)