// PFE CHALLENGE · EDUCATION MEDIA COMPANY

Your tech internship in Agadir.

Six development and DevOps tasks to apply for a final-year internship at Education Media Company. You get a Docker environment on your own machine and 2–3 hours to work through practical technical problems.

2–3 internships per round · Agadir · 4–6 months

Free. 2–3 hours in total, split across sessions. AI tools are allowed.

Selected interns work directly with our CEO and Tech Lead, both ENSA Agadir graduates.

// 01 — HOW IT WORKS

How it works

Six technical tasks, followed by internship selection.

Each task is validated automatically with a flag. A team member then reviews the work of the top 10–12 candidates, who are invited to a video interview. At the end of the process, 2–3 interns are selected per round.

  1. You set up your environment.

    A Docker environment running on your own machine: that's where the six challenges take place. Getting it running is already part of the challenge.

  2. You fix things.

    Four dev and DevOps breakdowns: a cron job that no longer runs, phone numbers in every format, an endpoint that makes up dates, a CSV import that crashes.

  3. You investigate.

    Two incidents, like a real production day: Asterisk won't start, and logs that need to talk.

  4. You validate.

    Each fix produces a flag to submit on the challenge platform. Your progress shows live.

  5. You talk.

    The top 10–12 submissions get read by an actual human, and their authors are invited to a video call with the Tech Lead and the CEO.

  6. You sign.

    2 or 3 interns per wave land their final-year internship at EMC. The best ones stay on afterwards.

No ticking clock on your screen. Close the tab, come back tomorrow.

Every participant receives a personalised report, whether or not they are selected.

// 02 — WHAT'S IN IT FOR YOU

An internship with work going into production

Whether you finish first or hundredth, you won't walk away empty-handed.

Everyone leaves with something.

A personal report on your run: what you investigated well, where you got lost, how a senior dev would have approached it. Walkthroughs of every challenge. And one concrete line for your CV — an actual talking point in interviews, not another bullet under "skills".

The top 10–12 meet the team.

A video call with the Tech Lead and the CEO. Not a trap interview: a conversation about what you did in the challenge and what you want to do next.

2 to 3 internships on the table.

A 4-to-6-month final-year internship in Agadir, on a real project that ships to production. Direct mentoring from the Tech Lead and the CEO, who knows code inside out. Stipend: MAD 2,000 a month, plus an end-of-project bonus of up to MAD 10,000. And for the best interns, a job at the end.

// 03 — SUPERVISION

Your PFE supervisors, both ENSA graduates

Selected interns are supervised directly by Adam Bouhadma, CEO, and Ilham El Gharbaoui, Tech Lead. Both graduated from ENSA Agadir.

Adam Bouhadma

Adam Bouhadma

CEO · Education Media Company
ENSA Agadir · Class of 2013

A CEO who knows code inside out

Adam graduated from ENSA Agadir in 2013 and leads Education Media Company, the business behind 9rayti.com and Admissions Center. He has a technical background and still writes code. He is directly involved in supervising final-year internships alongside Ilham.

Ilham El Gharbaoui

Ilham El Gharbaoui

Tech Lead · Education Media Company
ENSA Agadir · Class of 2022

Your technical supervisor

Ilham graduated from ENSA Agadir in 2022 and is Education Media Company's Tech Lead. She supervises your internship directly. You know from the outset who you'll be working with on your project.

// 04 — THE COMPANY

The company behind 9rayti.com

Education Media Company. Agadir. 18 years, two products, one small team.

EMC runs two things, and both run every day. Admissions Center handles admissions for private higher-education schools in Morocco: dozens of schools, phone operators, a custom-built CRM, thousands of applicants tracked from first call to enrolment. 9rayti.com is a student-guidance website read by about 300,000 visitors a month since 2008. You may have used it to pick your school without knowing who built it.

The tech team fits in one room: a Tech Lead, three developers, and a CEO who still commits code. No HR department, no project manager between you and the code. When you're stuck, you turn your chair around and ask.

PHP/Symfony for the CRM, Python/FastAPI for services, PostgreSQL and MySQL, self-hosted Linux servers (Proxmox), Asterisk for telephony. And AI in production, not in slide decks: darija speech transcription, WhatsApp agents, lead scoring.

In a big company, a final-year intern maintains a corner of an internal tool nobody opens. Here, your code ships to production and real people use it the following Monday. You'll see the whole cycle: the ticket, the decision, the deploy, and the Friday-evening bug.

// 05 — GROUND RULES

The ground rules

Five points. No traps.

  1. AI is allowed.

    ChatGPT, Claude, Copilot — you use them every day, so banning them here would be odd. One condition: when the AI gets it wrong and you notice, tell us. Catching where it goes off the rails counts in your favour.

  2. Nobody's watching.

    No webcam, no screen sharing, no proctor. You run the challenge from home, in as many sittings as you like, over 2 to 3 hours total.

  3. No required stack.

    Never touched Symfony? Of course you haven't — you're a student. The challenges test how you dig and fix, not what you know about our framework.

  4. What we measure: how you search.

    Your approach, your hypotheses, your commit messages, your ability to read a log without panicking.

  5. What we don't measure: what you already know.

    Not your grades, not your memory, not your typing speed.

// 06 — CHALLENGE PREVIEW

Six tasks. Practical technical problems.

A real excerpt from PFE Challenge, ungraded. Click the answer that feels right.

Fix a cron job, standardise phone numbers, debug an endpoint returning incorrect dates, get Asterisk running again, repair a failing CSV import and investigate an incident through its logs.

Monday, 8:12 AM. Asterisk won't start on the Admissions Center server. Here's the log. What's the most likely cause?

[Sep  8 08:12:03] NOTICE[2411] loader.c: 235 modules will be loaded.
[Sep  8 08:12:03] WARNING[2411] res_config_pgsql.c: 514 Postgresql RealTime: Failed to connect database asterisk on 127.0.0.1:5432
[Sep  8 08:12:03] NOTICE[2411] res_sip.c: 412 SIP stack loading
[Sep  8 08:12:04] ERROR[2411] res_config_pgsql.c: 1073 Postgresql RealTime: Could not retrieve realtime configuration
[Sep  8 08:12:04] WARNING[2411] loader.c: 2387 Module 'res_config_pgsql.so' could not be loaded.
[Sep  8 08:12:04] ERROR[2411] asterisk.c: 1293 Asterisk has terminated. Reason: required module failed to load

See the answer

It was option B. The log almost tells you nicely: the PostgreSQL connection fails on the second line, res_config_pgsql can't load, and Asterisk refuses to start without it. Port 5060 (option C) appears nowhere — that's the classic trap: the loudest error isn't always the first one. The right habit: read a log top to bottom; the first error usually explains all the others. In the real challenge, you'd also have your Docker environment at hand to check.

This one's on the house. The six in the real challenge, a little less so.

// 07 — AGADIR & TECHNOPARK

Agadir. Technopark Tilila.

Our office is in Technopark Tilila, Agadir's technology park: a cluster of startups and tech SMEs, ten minutes from the seafront. Agadir is not Casablanca — and that's precisely the point. Life costs less, commutes are measured in minutes, and the ocean is the default answer to "what do we do after work?". On the job side, a small tech city has one thing big ones don't: everyone knows everyone, and your internship won't go unnoticed. As for attendance: 3 days a week at Technopark (Tuesdays and Thursdays are team days), the other 2 days wherever you like — and your first two weeks full-time on site, to get you up to speed. Housing and transport, we'll cover in the video call.

Map of Technopark Tilila, Agadir (OpenStreetMap)
© OpenStreetMap contributors

// 08 — WAVE DATES

Dates to keep in mind

No wave is scheduled yet — pre-registration stays open: you'll be attached to the next one and emailed when it opens.

// 09 — FAQ

What you're probably wondering

Is the internship paid?

Yes. The stipend is MAD 2,000 a month, for the full length of the internship — plus an end-of-project bonus of up to MAD 10,000, depending on the outcome. Work that ships to production deserves a paycheque.

Do I need to know Symfony or Asterisk for the challenge?

No. The challenges test how you search, not your technical CV. Never seen Asterisk? Neither had we, until we had to fix it one Sunday.

Can I take the challenge from Casablanca (or anywhere)?

Yes — everything happens online, from home, in as many sittings as you like. Only the internship itself takes place in Agadir: 3 days a week at Technopark (Tuesdays and Thursdays are team days), the other 2 days wherever you like — and your first two weeks full-time on site, to get you up to speed.

What happens if I don't finish the challenge?

Nothing terrible. You can pause, come back later, or drop out entirely. As long as you've cleared at least one challenge, you still get your personal report.

Will my CV be shared with other companies?

No. Your CV stays at EMC and is never handed to third parties for their own use. If you tick the CV-library box, we keep it for 24 months to contact you again — it's your call, and you can delete everything at any time.

Why do you want my CV before the challenge even starts?

Because the challenge is for final-year students, and the CV lets us check that's your situation — it's not there to filter on grades or pedigree. And if a wave is full, it keeps us from leaving you hanging without news.

Can I use ChatGPT during the challenge?

Yes, and generously. AI is allowed, with one condition: when it gets something wrong and you catch it, tell us. Knowing where it goes wrong is part of what we measure.

How long does the whole thing take?

Between 2 and 3 hours, spread however you like across the wave. No need to do it all in one sitting.

When do I hear back?

Everyone gets their personal report within two weeks of the wave closing. The top 10–12 are contacted earlier for the video call.

If I'm not selected, can I apply again next wave?

Yes — we'll invite you ourselves. Most waves include returning candidates, and they usually do better the second time around.

Ready to take on PFE Challenge?

Pre-register for the technical challenge and apply for a final-year internship in Agadir. Two to three interns are selected per round.

Pre-register

Just one technical cookie, no third-party trackers.