Welcome to the Virtual Open-Space!


PeopleDoc has a long standing tradition of welcoming remote workers in the R&D department. And as the number of developers is growing, so is the number of remote workers. If you could see them on a map, you'd see that they're mostly living in France, but not only. On rare occasions, they live in the same city or the same area, but most of the time, we can say that remote workers live on a distance.

It's a well-known phenomenon: even if you think you're immune to it, it's possible that some of us would feel isolated.
Sure, we have webcam meetings, quarterly "in person" meetups, etc. Remote workers can reach a coworking place, when they can. But, on a daily basis, it may happen that you can't, for various reasons (mostly, the comfort of being home is priceless).

During the 2015 summer, we were working on cross-team topics, organized as a "hackathon". The organizer of the hackathon, Jamessie, had the idea to setup a specific hangout chatroom. Everyone involved could join it, chat with other people involved, ask questions, give update status, etc.

It was open all day long during office hours, and it helped solving complex issues, where text-only communication would have taken more time. Mails and text-based chats are great, but voice and face-to-face meeting have a wider bandwidth. We were able to share screens, tests things in pair-developing mode, show outputs, scroll up and down to find the cause of the bugs, rerun builds and inspect the output "on the fly", etc.

A few months later, we were talking about our next remote newcomers: Nicole and Olivier, who were living in the UK, and we tried to figure out how to onboard them as best we could. And then the idea of setting up a dedicated hangout chatroom re-appeared.

Creating a Hangout chatroom is as easy as opening your browser to:


and on the right-hand side of the window, type the name of the room you want to create or join. As soon as it's created, you can share the link URL with your co-workers and there you go!

The rules of the open-space

Open-spaces are noisy. They're disturbing, you can lose your focus if you're in the middle of a discussion, whether this is smalltalk or a serious topic. Everyone will tell you: you work better when you're on your own, physically, or simply wearing headphones playing your favorite music. You work better when you're not interrupted by someone tapping on your shoulder, or these famous "can we talk for a couple of minutes?" — that usually last a lot longer.

Virtual open-spaces can be noisy too. You can get involved in a smalltalk chat that can disturb you or your work. And even you can disturb your fellow coworkers, unknowingly.

But there's something magic with this tool: you can teleport from this hangout video chat room to another in a snap! Two clicks and you've created a new virtual room where you can welcome this heated discussion about the best way to make tea, or about this difficult refactoring you're working on, without annoying your collegues any longer.

That's it! You virtually have an infinite number of meeting rooms!

For the sake of everybody's comfort, here are a few "etiquette" rules for this virtual open-space:

  • Your presence not mandatory. You don't have to join everyday. You don't have to join all day long. If you think you don't need to, please don't.
  • Everybody is welcome. We mean it. EVERYBODY... even your cat if it wants to.
  • Even though if it's a virtual area, politeness is still a must-have: say hi when you're joining and goodbye when you leave, say please for asking and thanks when answered.
  • Switching your camera on is not mandatory. It's nice to show your face and smile, but if you don't feel like it, that's okay too. On a plus, it can save your bandwidth and CPU.
  • Pay attention to the fact that you can become too noisy / too chatty, just as with a normal open-space. If you think it's too much, just disconnect and find a better place.
  • If the physical environment around you is noisy — kids, street noises, a mechanical keyboard, background music —, it's better to cut your microphone ; this way, other co-workers won't be annoyed by your background noise. If you forgot, maybe one of the other citizens of this virtual open-space will cut your microphone (yes, you can do that in hangout). Don't be offended, if they did it, it was for everyone's comfort.
  • Casual chat is okay. It's friendly, gives a warm feeling and keeps this virtual open-space more "human-relationship-centered"... but beware, all-day-long chit-chat will kill your productivity, along with that of the people you chat with.
  • In this virtual space, it's impossible to have more than one conversation at a time. If you need to have a specific conversation that takes more than 5 mins or so and could distract / annoy others, create a dedicated chatroom for the people concerned, and shift to this one. Of course, you can always come back once you're done!

A few years in...

Sometimes this place is crowdy. Sometimes, nobody's here, for various reasons. Maybe everybody's on vacation. Or they all are trapped in a meeting. Maybe they're not in the right mood to enter this space.

Sometimes you think you always see the same faces (or avatars). But from time to time, a new colleague joins in, and they bring something new and refreshing.

But I think we've achieved our main objective, that is to say bring back a place to socialize with your coworkers, even if they're a thousand kilometers away. You won't feel isolated again, because at any time of the working day, you can find a friendly face, chat, share your feelings, tell jokes or ask for advice... if not "in person", at least it's much better than a text-only conversation via email or Slack.

More articles

How to detect (western) language with Python

Various options to (western) language detection

In order to optimise a NLP preprocessing pipeline, or to be able to tag a batch of documents and to present a user only with results in their preferred language, it might be useful to automatically determine the language of a text sample.

This article presents various options to do so in Python, from custom solutions to external libraries. Each solution is evaluated according to three dimensions, accuracy in language detection, execution time and ease of use.


This article is about TimescaleDB, a postgreSQL extension, specialized in storing Time Series data. The purpose is being able to easily manage data coming almost sorted on a time dimension. Log or audit events for instance.

Why TimescaleDB ?

PostgreSQL 10 introduces a real partitioning scheme. Before that, users had to …


Un nouveau plugin de type stdout callback fait son apparition dans la release d'Ansible 2.2. Ce plugin est fortement inspiré du snippet qui a tourné quelques années dans la communauté Ansible sous le nom de human_log.py. On peut l'activer avec ANSIBLE_STDOUT_CALLBACK=debug et en appelant ansible-playbook avec -v …

LXC démystifié

Cet article décortique l'installation de LXC. Le but est de pouvoir créer des conteneurs qui ont accès à internet, et qu'on peut résoudre en nom-de-conteneur.lxc. Je vais faire de mon mieux pour avoir une approche aussi instructive que ludique, un petit peu dans le style du site du zéro …

Utiliser l'application_name de PostgreSQL avec Django

L'utilisation d'un ORM efficace comme celui de Django abstrait la base de données au point de rendre parfois le debug malaisé voire difficile. Il n'est pas souvent évident de remonter jusqu'à la vue qui a généré une requête SQL consommatrice de ressources qui aurait été détectée dans les logs d'un …

Django, l'ORM et l'optimisation

Comme vous le savez sans doute, les objets de type QuerySet sont lazy. C'est à dire qu'ils ne sont évalués qu'au tout dernier moment. En fait, ils peuvent même ne pas être évalués du tout. Ou au contraire être évalués à de nombreuses reprises.

Evidemment, pour de meilleures performances, on …

Stockage Array avec Django

Actuellement dans un de nos projets nous stockons un ensemble d'id provenant d'une table dans une autre base de données, ces valeurs étant coûteuses à calculer et variant peu nous les stockons directement au niveau du tuple dans une colonne de type text en séparant chaque valeur par une virgule …

Supprimer un grand nombre d'objets dans une base

Dans ce billet nous allons nous intéresser aux différentes méthodes utilisables pour supprimer un grand nombre d'objets dans une base de données PostgreSQL avec Django.

Le test est réalisé sur des tables contenant 100 000 lignes et la suppression représente environ 16% des lignes. Les différentes mesures sont réalisées sur …

1 / 7