Arnaud De Abreu
  • Certified

A developer since 2004, Arnaud obtained a PHP certification in 2008, eager to move into web development as well as open source, particularly PHP.

Over the past 15 years, he had the opportunity to participate in the development of projects with technical or business challenges, as well as in production maintenance under heavy load.

Félix Eymonot
  • Certified

Félix is a PHP developer specializing in Symfony since 2017, certified "Advanced" in version 6. With agency experience across multiple industries, he builds robust, scalable solutions tailored to business needs.

Passionate about Symfony and open source, he actively contributes to the community and has even spoken at a tech conference.

When he's not engineering clean, maintainable code, he's drawn to the world of DC Comics—especially Nightwing, because whether in tech or in Gotham, agility, integrity, and a strong sense of justice always make the difference 🦇

Hugo Alliaume
  • UX Core Team

A full-stack developer since 2009, Hugo likes to learn a lot of new things, so he's super versatile. Since then, he has specialized in web development, mainly with PHP and JavaScript, but also in back-end and browser-side performance optimization.

Hugo recently joined the Symfony UX Core team. A fan of open-source since the very beginning, he has contributed to it either with his own projects or by working on Symfony, more specifically on Webpack Encore and Symfony UX.

As a fine gourmet, you can probably find him at the conference food buffets.

Jérémy Romey
  • Certified

Jérémy is a certified Symfony developer. He contributes to the Symfony codebase and its ecosystem while participating in community events.

He helps PHP and Symfony developers build high-quality applications. His goal is to help teams improve the way they work and gain confidence in the code they produce.

He never says no to a good espresso ☕

Jules Pietri
  • Certified
  • Former Core Team

Fond of PHP and open-source since more than ten years, Jules has become a trainer, an evangelist, and an advised consultant who loves technical challenges.

And for a bio, this is far fair enough.

Cheers 🍺🍀

Mathias Arlaud
  • Co-Founder / Consultant
  • Core Team
  • Certified

As a speaker, consultant, lead developer, and PHP/Symfony trainer, Mathias worked for two years with the creator of Symfony and two years with the creator of API Platform, Mercure, and FrankenPHP.

By being an open-source enthusiast, he greatly contributes to the Symfony framework and its ecosystem, especially focusing on the data serialization system. Specializing in API development, he brings his expertise to promote the development of fast, robust, and maintainable solutions.

Don't ask why, but to the question PHPStorm vs VsCode, he still answers VIM.

Robin Chalas
  • Co-Founder / Consultant
  • Core Team

Robin is a Software Architect & OSS Maintainer involved into the PHP/Symfony ecosystem for more than a decade, working as CEO and consultant @baksla.sh.

As a Symfony Core Team Member, he contributes to the framework by fixing bugs and security vulnerabilities but also bringing new features to its core, continuously improving its design but also helping contributors to contribute on Symfony and other popular community packages he maintains.

As a Consultant, he enjoys pointing technical teams of any size to the right direction based on his experience with designing large software systems.

Also, he loves helping and sharing his knowledge by participating to support platforms, reviewing contributions and speaking at tech conferences.

When he's away from keyboard, Robin is either petting his cats or playing Pétanque.

Valmont Pehaut Pietri

Valmont is a developer specializing in PHP/Symfony. After 10 years in sales, he transitioned into web development two years ago. He focuses on backend development, code optimization, and occasionally works with Vue.js.

He is also active in the tech community through talks and open-source contributions.

Valmont is also deepening his knowledge in design patterns, software architectures, and preparing for the Symfony certification.

A big fan of Lorcana, you'll often spot him at conferences, where instead of joining the usual after-work drinks, he'll be training with his friend Jérémy—though, of course, he's always up for both! He's also a craft beer enthusiast, but beware: if you bring up the subject, the conversation could get as intense as a political debate.

Yazid Hassani

Yazid is a frontend developer specializing in React and Vue since 2019. With a strong focus on performance and user experience, he crafts sleek, responsive interfaces that feel seamless and intuitive.

Passionate about modern web technologies, he constantly explores new approaches to refine his skills and stay ahead in the ever-evolving frontend landscape.

Always in pursuit of innovation, he thrives on tackling complex challenges, optimizing interfaces, and turning ideas into interactive experiences.

When he's not refining his code, you might find him perfecting his coffee brewing technique—because great code, like great coffee, is all about precision and balance. ☕🚀

Shhhht! The crew is at work 🤫

Discover the baksla.sh team members while they're working

💡 Click on a member to discover their full profile.
@@ -10,7 +10,7 @@
10
use App\Team\Infrastructure\InMemory\InMemoryMemberRepository;
11
use Symfony\Component\HttpFoundation\Exception\NotFoundHttpException;
12
use Symfony\Component\HttpFoundation\Request;
13
use Symfony\Component\HttpFoundation\Response;
14
use Symfony\Component\HttpKernel\Attribute\AsController;
15
use Symfony\Component\Routing\Attribute\Route;
16
use Twig\Environment;
Hugo Alliaume

Hugo Alliaume

  • UX Core Team
Could we alias this import to Twig to make it a little more understandable?
Félix Eymonot

Félix Eymonot

  • Certified
What about extending AbstractController and use the render() method?
17
18
#[AsController]
19
final readonly class ViewTeam
20
{
21
    public function __construct(
22
        private Environment $twig,
23
        private InMemoryMemberRepository $memberRepository,
Robin Chalas

Robin Chalas

  • Co-Founder / Consultant
  • Core Team
This should depend on an interface instead to avoid coupling to implementation details
Mathias Arlaud

Mathias Arlaud

  • Co-Founder / Consultant
  • Core Team
  • Certified
👍 That Repository contract belongs to the Domain layer IMHO.
Jérémy Romey

Jérémy Romey

  • Certified
To target a specific implementation, you can use the Autowire attribute.
24
    ) {
25
    }
26
27
    #[Route(name: 'app_team', path: '/team')]
28
    public function __invoke(Request $request): Response
29
    {
30
        return new Response();
30
        if ('GET' !== $request->getMethod()) {
31
            throw new NotFoundHttpException();
Arnaud De Abreu

Arnaud De Abreu

  • Certified
While it works, #[Route(methods: ['GET'])] is a better way to achieve this.
Valmont Pehaut Pietri

Valmont Pehaut Pietri

Indeed, better leverage Symfony Routing capabilities so you can focus on the business logic.
32
        }
33
34
        return new Response($this->twig->render('pages/team/index.html.twig', [
35
            'members' => $this->memberRepository->findAll(),
Jules Pietri

Jules Pietri

  • Certified
  • Former Core Team
Should it return a paginated result instead?
Yazid Hassani

Yazid Hassani

AFAIK, baksla.sh isn't gonna have enough members to need pagination anytime soon 😉
36
        ]);
36
Jules Pietri

Jules Pietri

  • Certified
  • Former Core Team
Extra blank line 👀
30
    }

Reviewers (9)

Arnaud De Abreu Félix Eymonot Hugo Alliaume Jérémy Romey Jules Pietri Mathias Arlaud Robin Chalas Valmont Pehaut Pietri Yazid Hassani

Reviewers (9)

  • Arnaud De Abreu

    Arnaud De Abreu

  • Félix Eymonot

    Félix Eymonot

  • Hugo Alliaume

    Hugo Alliaume

  • Jérémy Romey

    Jérémy Romey

  • Jules Pietri

    Jules Pietri

  • Mathias Arlaud

    Mathias Arlaud

  • Robin Chalas

    Robin Chalas

  • Valmont Pehaut Pietri

    Valmont Pehaut Pietri

  • Yazid Hassani

    Yazid Hassani