---
title: "Senior Software Engineer · Lead PHP Symfony Developer - José DA COSTA"
description: "Lead PHP Symfony Developer"
locale: "en"
canonical: "https://portfolio.josedacosta.net/en/journey/senior-software-engineer-lead-php-symfony-developer"
source: "https://portfolio.josedacosta.net/en/journey/senior-software-engineer-lead-php-symfony-developer.md"
html_source: "https://portfolio.josedacosta.net/en/journey/senior-software-engineer-lead-php-symfony-developer"
author: "José DA COSTA"
type: "journey"
slug: "senior-software-engineer-lead-php-symfony-developer"
generated_at: "2026-06-02T15:37:20.073Z"
---

# Senior Software Engineer · Lead PHP Symfony Developer

**Organization:** Medialeads  
**Period:** October 2013 - November 2016  
**Type:** experience  
**Status:** Permanent contract (CDI)  
**Responsibility:** Lead PHP Symfony Developer

## Company vision

The startup/family SME environment gave me **full autonomy** and an **end-to-end product vision**. We built complete marketplaces from scratch, from backend architecture to SEO. Medialeads is where I gained my **technical maturity**: leading the **migration from Solr to Elasticsearch for millions of products**, designing **REST APIs with JWT authentication**, building **multi-bundle architectures reusable across projects**. The team was small (4-10 developers), which meant **mastering the entire chain** - Proxmox infrastructure, PostgreSQL database, Symfony backend, AngularJS frontend, SEO, deployments. Regular participation in AFUP Bordeaux meetups (French PHP Users Association) enriched my practice and connected me to the local PHP community. What I take away: **the versatility forged in a small structure where every developer wears multiple hats is an asset that larger organizations cannot offer**.

## Overview

Senior full-stack developer at Medialeads, the tech arm of European Sourcing. Built complete ERP/PIM/CRM/Marketplace platforms with Symfony, led the Solr-to-Elasticsearch migration for millions of products.

- Migrated search from Apache Solr to Elasticsearch at scale
- Designed REST APIs with JWT RSA 4096-bit authentication
- Mentored junior devs and defined team technical standards

## Related skills (11)

- **[Leadership & Team Management](https://portfolio.josedacosta.net/en/skills/leadership-team-management.md)** (confidence 4/5) _(soft)_: Mentoring junior and mid-level developers, code review, pair programming.
- **[Project Piloting & Agile Methodologies](https://portfolio.josedacosta.net/en/skills/project-piloting-agile.md)** (confidence 4/5) _(soft)_: Coordination with the Project Manager on technical planning, effort estimation, task prioritization, and delivery tracking across 10+ concurrent projects., Direct interface with management and ecosystem clients (B2B suppliers, resellers). Translating business needs into technical specifications.
- **[Problem Solving & Adaptability](https://portfolio.josedacosta.net/en/skills/problem-solving-adaptability.md)** (confidence 5/5) _(soft)_: Ramping up on Elasticsearch, PostgreSQL, and AngularJS in a multi-project context. - Solr-to-Elasticsearch migration, solving large-scale performance issues.
- **[Communication & Collaboration](https://portfolio.josedacosta.net/en/skills/pedagogy-communication-collaboration.md)** (confidence 4/5) _(soft)_: Managing the internal DokuWiki technical wiki, documenting projects and procedures.. Collaboration with the Project Manager, defining the team's technical standards.
- **[Software & System Architecture](https://portfolio.josedacosta.net/en/skills/system-architecture-design.md)** (confidence 5/5) _(technical)_: Reusable multi-bundle architecture across projects. CoreBundle, ApiBundle, PostgreSearchBundle., Abstract Repository, Abstract Controller, Doctrine traits (CreatedUpdatedAt, SoftDeletable, Localized, Sortable). - REST APIs with FOSRestBundle + JWT RSA 4096-bit + Swagger/NelmioApiDoc + HATEOAS. - Applying GoF design patterns in Symfony architecture: Factory, Repository, Strategy.
- **[Fullstack Development](https://portfolio.josedacosta.net/en/skills/fullstack-development.md)** (confidence 5/5) _(technical)_: Fullstack Symfony 2/3 development of ERP, PIM, CRM, and Marketplace platforms. AngularJS frontend connected to REST APIs.. Deployment scripts, crontab for automatic supplier feed synchronization.
- **[DevOps, Cloud & Production Industrialization](https://portfolio.josedacosta.net/en/skills/devops-cloud-production.md)** (confidence 5/5) _(technical)_: Dedicated OVH server administration, Proxmox LXC virtualization, SVN-to-Git deployments. - PHPUnit unit tests, Symfony functional tests, systematic code review., Proxmox LXC virtualization, container and environment management on dedicated servers.. Monitoring Elasticsearch clusters and application performance.. Progressive SVN-to-Git/GitHub migration, deployments on OVH production servers.
- **[Data, AI & Machine Learning](https://portfolio.josedacosta.net/en/skills/data-ai-machine-learning.md)** (confidence 4/5) _(technical)_: PostgreSQL, Elasticsearch, Solr-to-Elasticsearch migration for millions of indexed products.
- **[Application Security & Compliance](https://portfolio.josedacosta.net/en/skills/application-security-compliance.md)** (confidence 3/5) _(technical)_: JWT RSA 4096-bit authentication, REST API security hardening, access management.
- **[Innovation & Technology Watch](https://portfolio.josedacosta.net/en/skills/innovation-tech-watch.md)** (confidence 3/5) _(soft)_: Attending AFUP Bordeaux meetups, monitoring the PHP/Symfony ecosystem.
- **[Tech & Field Versatility](https://portfolio.josedacosta.net/en/skills/tech-field-versatility.md)** (confidence 3/5) _(technical)_: Linux server administration (Debian), Apache/Nginx configuration, certificate management.

## Missions

- **Full-stack development of custom ERP, PIM, CRM and Marketplace platforms** using **Symfony v2/v3**, generating digital storefronts for clients (Sommet de l'Elevage, Medical Place, Rusty Bobby, Groupe Plaisirs du Vin)
- Led the **migration from Apache Solr to Elasticsearch** for indexing **millions of products**, with cluster configuration and search query optimization
- Designed and maintained **REST APIs** (FOSRestBundle + JWT RSA 4096-bit + Swagger/NelmioApiDoc + HATEOAS) for interconnecting the platform ecosystem
- Reusable multi-bundle architecture with Symfony: CoreBundle (shared Doctrine entities), ApiBundle (REST API), PostgreSearchBundle (native PostgreSQL full-text search)
- Implemented **software architecture patterns**: abstract Repository, abstract Controller, custom JsonDecoder, reusable Doctrine traits (CreatedUpdatedAt, SoftDeletable, Localized, Sortable)
- Architected and deployed **Proxmox LXC virtualization**, optimizing development and deployment environments on dedicated OVH servers
- Developed **AngularJS v1 frontends** (Bootstrap 3, Bower, Grunt, Compass/SASS) connected to documented REST APIs
- Code review and validation for other engineers, **mentoring junior and mid-level developers**, pair programming, defining team technical standards
- Led **SEO strategy** and **Google AdWords (SEA) campaigns**, collaborated with Universem agency (Belgium) for backlinks and search rankings
- Administered the internal technical wiki (DokuWiki): documenting projects, servers, deployment procedures and technical configurations
- Managed production and staging servers (OVH), handled **SVN deployments then progressive migration to Git/GitHub**

## Featured client projects

#### European Sourcing

**Description:** B2B sourcing platform for the promotional products industry. Product search engine, reseller frontend, supplier backend, extranet, REST API, export module, automated feeds and sync system. Millions of products indexed via Elasticsearch.

#### Highlights

- Millions of products indexed in Elasticsearch
- Documented REST API (Swagger) with JWT RSA 4096-bit authentication
- Reseller frontend + supplier backend + extranet + translation module
- Automated supplier sync feeds via crontab

**Name:** European Sourcing

**Type:** B2B Platform

#### Tradexpo

**Description:** Full B2B marketplace built on Symfony 2.6, AngularJS and PostgreSQL. Modular architecture with CoreBundle (60+ Doctrine entities), ApiBundle (FOSRestBundle + JWT + Swagger/HATEOAS) and PostgreSearchBundle (native full-text search). Multi-locale, multi-currency support.

#### Highlights

- 60+ Doctrine entities (Product, Supplier, Order, Brand, Category, Variant..)
- HATEOAS REST API with automatic Swagger documentation
- JWT RSA 4096-bit authentication
- Multi-bundle architecture reusable across projects

**Name:** Tradexpo

**Type:** B2B Marketplace

#### My Easy Web

**Description:** Custom client site generator (mini-sites/microsites) with domain name or subfolder customization. Centralized admin, multi-domain, integrated Solr engine, multilingual version (including meineasyweb.de for the German market).

**Name:** My Easy Web

**Type:** SaaS / CMS

#### Birds Marketplace

**Description:** Modular SaaS marketplace platform handling commissions, multi-vendor management and payments (Stripe/Mangopay). Internal product aimed at packaging Medialeads expertise into a turnkey B2B e-commerce solution.

**Name:** Birds Marketplace

**Type:** SaaS Product

**Company presentation:** Medialeads is a **technology subsidiary of the European Sourcing group**, created in 2013 to structure the software development division. Located in Begles (Boulevard Jean-Jacques Bosc) under the trade name JOVETTE, the company designs and maintains a **complete ecosystem of interconnected B2B platforms** for the promotional products industry and professional sourcing.

## Global objectives

- Package B2B marketplace expertise into reusable and modular solutions
- Migrate search infrastructure from Solr to Elasticsearch for millions of products
- Level up on REST API architectures and software architecture patterns
- Structure team practices: code reviews, documentation, technical standards

## Positioning

Within Medialeads, I was positioned as **lead PHP Symfony developer and technical reference for the team**. My scope covered the entire project ecosystem: European Sourcing, Tradexpo, My Easy Web, Birds Marketplace and client portals.

I worked directly with the Project Manager to **translate functional requirements into technical specifications**.

I supervised junior and mid-level developers, led **code reviews** and defined the team's **technical conventions**. I had full autonomy over architecture decisions, technology choices and deployments.

**Team leadership:** Day-to-day mentoring of junior and mid-level developers: **systematic code reviews**, pair programming, defining **technical standards and naming conventions**. Spreading **Symfony best practices and PSR standards** across the team. Close collaboration with the Project Manager for **technical planning and effort estimation**. Active participation in **AFUP Bordeaux meetups** to stay connected with PHP ecosystem developments.

## Key numbers

- **2013** - Founded
- **4-10** - Developers
- **10+** - Platforms
- **B2B** - Promotional products
- **Millions** - Products indexed (Elasticsearch)
- **40+** - Client sites (MyEasyWeb)
- **254+** - Suppliers (Data pipeline)
- **7** - Languages (i18n translation)

## Key technical decisions

**Solr to Elasticsearch migration**
- Probleme: Performance and scalability for millions of indexed products. Solr could no longer handle the load or complex faceting queries.
- Resultat: Reduced search time, operational clustering, advanced faceting on B2B catalog.

**Symfony multi-bundle architecture**
- Probleme: Code reusability across 10+ ecosystem projects. Each project started from scratch without a shared foundation.
- Resultat: CoreBundle (shared entities), ApiBundle (REST API), PostgreSearchBundle (full-text) - shared across all projects.

**JWT RSA 4096-bit authentication**
- Probleme: Securing cross-platform APIs. Classic sessions did not work for machine-to-machine calls between services.
- Resultat: Stateless authentication across all ecosystem services, automatic Swagger documentation of secured endpoints.

**SVN to Git/GitHub migration**
- Probleme: Modern collaboration and branching. SVN did not support feature branches or code reviews before merge.
- Resultat: Progressive migration without production downtime, adoption of pull requests and systematic code reviews.

## Full project ecosystem

Beyond the 4 main projects, Medialeads maintained an ecosystem of interconnected platforms for the promotional products industry.

- **Data Leads** _(Data)_: B2B data and lead management platform
- **European Tool** _(Export)_: Product catalog export to PrestaShop (CSV + Web Services)
- **Gourmet Online** _(Marketplace)_: Marketplace for the gastronomy and food sector
- **Tendance Objet** _(Media)_: News portal for promotional product trends
- **Kadobjet** _(Portal)_: Promotional products portal
- **Omyague** _(E-commerce)_: Corporate gifts platform
- **C!Print** _(Print)_: Platform for the professional printing sector
- **Offres Auto** _(Automation)_: Automated offer system for resellers

All these projects share the same technical foundation: Symfony, Doctrine ORM, PostgreSQL, and reusable bundles (CoreBundle, ApiBundle, PostgreSearchBundle).

## Technical leadership

- **Systematic code reviews**: Review of every pull request before merge, educational feedback to junior and mid-level developers.
- **Pair programming**: Regular sessions with juniors on complex parts: Doctrine architecture, Elasticsearch queries, REST API.
- **Technical standards**: Naming conventions, PSR standards, Symfony patterns (Repository, abstract Controller, Doctrine traits).
- **AFUP Bordeaux**: Regular attendance at French PHP User Association meetups to fuel technical watch and share insights with the team.
- **Symfony training (October 2014)**: 3-day in-person Symfony 2 training covering framework fundamentals and best practices.

## Time distribution

**Par projet:**
- European Sourcing 50%
- MyEasyWeb 25%
- Tradexpo 10%
- Birds Marketplace 5%
- SEO / SEA 10%
- Infra / Admin 5%

**Par activité:**
- Development 40%
- Architecture 20%
- Code review / Mentoring 20%
- Coordination / SEO-SEA 20%

## SEO & SEA campaigns

In an SMB, the Senior Full-Stack also handles digital marketing. SEO management and advertising campaigns for the platform ecosystem.

- **Google AdWords (SEA)**: Creation and management of advertising campaigns for European Sourcing and client portals. Strategic keyword list management (promotional products, corporate gifts).
- **Organic SEO**: On-page and technical optimization for all ecosystem platforms. Synonym and keyword variant management.
- **Universem agency (Belgium)**: Collaboration with SEO agency Universem for backlink strategy and TendanceObjet.com ranking.
- **Google Analytics**: Traffic performance tracking, conversion analysis and reporting to guide marketing and product decisions.

## Technology stack

- **Backend**: PHP 5.4+, Symfony 2.6/3.x, Doctrine ORM, FOSRestBundle, JWT (LexikJWT)
- **Databases**: PostgreSQL, Doctrine DBAL, Doctrine Migrations
- **Search & Indexing**: Elasticsearch, Apache Solr, PostgreSQL Full-Text
- **Frontend**: AngularJS 1.x, Bootstrap 3, Bower, Grunt, SASS/Compass
- **API & Documentation**: Swagger (NelmioApiDoc), HATEOAS, REST
- **Infrastructure**: Proxmox LXC, OVH, Apache2, Memcached, SVN, Git

## Related achievements

- [generateur-sites-ecommerce-avec-cms](https://portfolio.josedacosta.net/en/achievements/generateur-sites-ecommerce-avec-cms.md)
- [supplier-backoffice-european-sourcing](https://portfolio.josedacosta.net/en/achievements/supplier-backoffice-european-sourcing.md)
- [flux-synchronisation-fournisseurs](https://portfolio.josedacosta.net/en/achievements/flux-synchronisation-fournisseurs.md)
- [import-european-sourcing](https://portfolio.josedacosta.net/en/achievements/import-european-sourcing.md)
- [export-donnees-produits-b2b](https://portfolio.josedacosta.net/en/achievements/export-donnees-produits-b2b.md)
- [plateforme-gestion-traductions-multilingues](https://portfolio.josedacosta.net/en/achievements/plateforme-gestion-traductions-multilingues.md)

Full interactive version with timeline navigation: https://portfolio.josedacosta.net/en/journey/senior-software-engineer-lead-php-symfony-developer
