Senior Sylius / Symfony Developer

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

TYPE OF WORK

Full Time

SALARY

Negotiable based on experience

HOURS PER WEEK

TBD

DATE UPDATED

Apr 16, 2026

JOB OVERVIEW

About Us

We are building an innovative, upcoming online marketplace. We are moving away from traditional auction models to a dual-sales approach: "Buy It Now" and "Make an Offer."

We operate a full-service consignment model where we handle the physical inventory, inspecting, photographing, and storing the goods, while providing a seamless digital experience for both buyers and sellers. Our platform will integrate advanced features like a digital wallet for sale proceeds, hybrid payments, complex shipping logistics (including "Hold in Cellar"), and multi-channel sales via Google Shopping, Amazon Marketplace and eBay.

We are a small, experienced founding team looking for a highly skilled technical partner to build the core platform.

The Role

We are seeking a Senior Sylius / Symfony Developer to architect and build the platform from the ground up. You will be responsible for taking our detailed technical specifications and turning them into a robust, scalable, and secure e-commerce marketplace.

This is not a standard e-commerce build. You will be developing complex custom modules on top of the Sylius framework to handle our unique business logic.

Key Responsibilities

• Platform Architecture: Design and implement the core platform using Sylius and Symfony.
• Custom Module Development: Build sophisticated custom modules, including:

• Offer Engine: A state machine-driven system allowing buyers to submit offers and sellers to accept/reject them.
• Wallet & Hybrid Payments: A digital wallet system for sellers to hold proceeds, integrated with Stripe Connect for complex payouts and hybrid (wallet + card) checkout flows.
• Warehousing & Logistics: A backend module to manage physical inventory, barcode generation, storage locations, and consolidated shipping ("Hold in Cellar").
• Multi-Channel Integrations: Automated feeds for Google Shopping and a comprehensive two-way integration with the eBay API.
• API Development: Design and build RESTful APIs to support a future mobile application.
• Third-Party Integrations: Integrate with Stripe Connect, shipping providers, and potentially external identity/age verification services.
• Quality Assurance: Write comprehensive unit and integration tests to ensure platform stability and security.

Required Skills & Experience

• Deep Sylius Expertise: Proven experience building complex, custom e-commerce platforms using Sylius. You must understand how to extend Sylius core components, state machines, and resource management.
• Symfony Mastery: Strong background in PHP 8+ and the Symfony framework.
• Marketplace Experience: Previous experience building multi-vendor marketplaces or platforms with complex payment splitting (Stripe Connect experience is highly desirable).
• API Design: Experience designing and consuming RESTful APIs.
• Database Design: Strong SQL skills and experience with Doctrine ORM.
• Frontend Integration: While this is primarily a backend role, you should be comfortable working with Twig templates and integrating frontend assets.
• Testing: Commitment to automated testing (PHPUnit, Behat).

Work Setup

• Flexible hours: We are outcome-focused. Delivery matters more than specific hours logged.
• Collaboration: You will work directly with the founders and our UX/UI design team.

Application Questions (Required)

If this sounds like the challenge you've been looking for, please apply with your CV/LinkedIn, links to relevant GitHub repositories or live projects, and answers to the following questions:

1. Sylius Experience: Describe the most complex custom module or feature you have built on top of Sylius. What was the business problem, and how did you solve it technically?
2. Marketplace Payments: Have you worked with Stripe Connect or similar complex payment splitting systems? If so, briefly describe the implementation.
3. State Machines: Our "Make an Offer" feature requires a robust state machine (Pending -> Accepted/Rejected/Expired). How would you approach implementing this within the Sylius ecosystem?
4. MVP Delivery: If you had to deliver the core MVP (Buy It Now + Make an Offer + Basic Stripe integration) in 8-10 weeks, what would be your technical approach and what potential bottlenecks would you anticipate?
5. Availability & Rates: What is your general availability each week, and what is your expected salary?
6. What excites you most about joining a startup team building something new from the ground up?

Please also let us know why you are the right person, explain your experience and tell us why we should hire you.

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0021
Controller Execution Time ( Jobseekers / Job )  0.0322
Total Execution Time  0.0350
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,514,920 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Senior-Sylius-Symfony-Developer-1625299
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0253 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0004   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1625299
 LIMIT 1 
0.0008   SELECT *
FROM `employers`
WHERE `employer_id` = 417323
 LIMIT 1 
0.0008   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1625299
AND `misc`.`idIS NULL 
0.0008   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 '1625299' 
0.0011   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1625299 
0.0014   UPDATE employer_jobs SET hit_counts '***Apr-16-2026=89***Apr-17-2026=27***Apr-18-2026=9***Apr-19-2026=1' WHERE job_id'1625299'  
0.0006   UPDATE employer_jobs SET monthly_hits '***Apr-2026=126' WHERE job_id'1625299'  
0.0024   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1625299' 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` = 1625299 
0.0148   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '417323'
AND `date_added` >= '2022-06-08' 
0.0006   select from teasers 
0.0012   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)