How a Ukrainian developer quaked the French government.
A true story, that happened a few years ago to a colleague.
It’s a story of a young Ukrainian developer, in Paris for a few months.
A small event will unroll a series of important consequences for him, my company, and the French government.
Let’s call him Jay for privacy reasons.
Jay was a young Drupal developer working for Adyax, my previous agency, for a year. We were still small and won an important public contract to help the French government migrate their gouvernement.fr to Drupal 6.
Jay arrived in Paris abruptly so we installed him in my apartment as I was living alone.
It was supposed to be temporary, we lived a few months together.
He fluttered through the day without enthusiasm, working at the government's offices in heart of Paris, without speaking a word, specifically of French, them speaking barely English.
Every day, he was religiously following the crowd of officials leaving at 17h59, rushing home to turn himself into a “tree” for the next 8 hours.

Nothing would retain him from playing World Of Warcraft until late in the night.
In 6 months I couldn’t drag him to the Eiffel Tower, Orsay Museum, Louvre, or even the Crazy Horse show, he would only leave to rollerblade for a couple of hours each time I would bring a girl home.
Falling asleep around 3 AM, he never managed to wake up completely. I never understood how he could then code Drupal for 8 hours a day.
6 months flew by without noticeable changes…
One day, I decided to visit him at work, to check how things were going as we approached a critical milestone: the mid-term government change.
Gossips. Who stays? Who leaves?
You felt the tension in the corridors. Officials were flying through swiftly trying to avoid your gaze.
Before I could reach Jay’s desk, a bunch of journalists was already interviewing him. I blanched imagining the headlines — “While unemployment rates skyrockets, Sarkozy uses offshore developers to build their website!” —, with my name somewhere in the article and a stolen old photo of teenager me.
When I finally get to him and asked how it went, Jay just said:
“It was ok. They spoke french, I don’t. They were disturbing me with questions, but I still managed to push my code in production”.
I laughed. We both went home at 17h59 that day.
How to launch a migration project
A detailed checklist to start a re-platforming project.
medium.com
In the last 3 weeks prior to the announcement of the new government, a complete black-out was set on everyone working inside Government Communication Center. Even Jay started to work longer hours and play less WoW.
Then, one night I was woken up by a call.
2 AM in the morning.
It was the Chief Communication Officer, a high-end official directly reporting to the Primer Minister. She did not finish announcing herself, and I felt the adrenaline punch knocking me out.
She was on the phone with the Primer minister, and he was furious. I imagined him, very tall, staring at me from above through.

She briefly explained what happened and asked me to prepare a workaround immediately.
This night, at 0:01 AM the official RSS field of the french government website sent to all journalists the pages of all potential members of the new government.
There were much more people on that list than minister places, negotiations ran until the last minute. Content editors prepared biographies in advance, to avoid night work at the moment of announcement. The content was there, simply not published.
Articles were already being printed by the time I woke Jay and he started to investigate.
French political circles were trembling.
The ones who were not on the list made calls. The ones who were too. Journalists were calling. Opposition attacked. Confusion was total.
During his investigation, Jay discovered that the problem came from a simple IF clause.
He forgot to check if a content (node in Drupal language), was published or not before inserting it into the RSS field.
// Get status method
$status = $node->isPublished();Worse, as the ministers' pages were not accessible (because not published), only their titles and description were inside the RSS feed, which added conspiracy to the matter.
The bug was pushed into production the moment journalists were trying to interview Jay. His only moment of inattentiveness.
We lost the contract. Jay returned to Ukraine. He worked with us for many more years, then founded his own agency.
He visited me yesterday, here in Paris, and we remembered the old good times. And this story too.
He left at 17h59, he had a plane to catch.
