/!\ Due to confidential policy, I cannot disclose precise facts and information about internal resources from Meta. I will explain my experience as better as that I can.
Meta (ex Facebook) is one of the biggest tech company in the world and has had an influence on our daily life since 20+ years. Recently, they have decided to pursue the path of Virtual Reality and Augmented Reality devices, strongly thinking that it is the way we want to explore for the future of social network. A big part of the company is called Reality Labs, as it corresponds to the research and production of VR headsets. I worked in a team focused on the calibration and test of prototypes and production devices.
Working for Meta is definitely an experience. The environnement is very comfortable and flexible. The company is very open to culture and promotes the employees’ mutual respect. I participated in the music club and contributed to various concerts during events. I also practiced football in the regular session proposed by the soccer club. In my team there were many people from different countries, which was nice and allowed to have friendly and interesting conversations. Not to forget the food benefit which made lunches more social and enjoyable.
My role was to work on the data collection pipeline. For this, my team and I used industrial robots that allow for repeatable motion. Getting the position in space of the tool tip of the robot would then allow to get a positional groundtruth that can be used to evaluate headset position accuracy. I have programmed a client-server using the robot API that can pull the position of the robot accurately along a launched trajectory. To validate the accuracy of the groundtruth, we also had a more standard system of motion capture using cameras and parallax (Optitrack). The whole difficulty was to evaluate each system even if they were different. For this I used DTW or Dynamic Time Warping, that allows to compute the similarity between two trajectories in space, independantly on the time.
I worked with many tools provided by the company and part of the infrastructure. Versioning tool such as Mercurial, Sapling and Jellyfish allow to push your code and check for unit tests or compatibility issues and trigger reviews. Jupyter on servers and other distributed services allow launch analysis automatically after data collection. Other tools includes dashboards connected to blob repositories to display ongoing results. There was also an internal wiki although I have to say the structure was a bit chaotic.
Tools
Code management tools (Mercurial, Sapling, Buck, Jellyfish) – Workplace – Deployment and management – Coding (Python, C++, VSCode, Jupyter) – Robot API
Methodology
Reverse engineering
Code analysis
Machine learning
Dynamic Time Warping
Outcome
Client/Server application that extracts position of an industrial robot.
Analysis and quantitative comparison of 3D trajectories.
Development and deployment of a data collection pipeline.