According to DataArt’s employees, they’ve had their inner community of professionals interested in machine learning for a long time already. Occasionally, this group conducts different R&D projects. Not so long ago, some of its members have decided to try different approaches to the task of creating a portrait of a typical programmer.  

It took several days to accomplish the task, and the team had to change their approach several times while they were at it. For the experiment, they picked 1,541 photos of men and 512 photos of women who work with DataArt in eight countries: Argentina, Bulgaria, Great Britain, Germany, Poland, USA, Ukraine, and Russia. For the analysis, they’ve used the method described by Satya Mallick, which is based on calculating 68 facial landmarks for every face in the sample population: the coordinates of the corners of one’s eyes, brows, lips, nose and so on. Then these facial landmarks were used to “average” the faces using a special program written in C++ with the use of dlib/opencv frameworks.

As result of the first stage of their project, the team succeeded in getting the portraits of two “typical” programmers - a male and a female.

Second stage

The second stage of the project was about learning whether one’s technology of choice also has an effect of one’s appearance. In order to answer this question, the project’s authors divided the sample population into several more groups and calculated the typical portraits of programmers who specialize in particular languages. As of now, they mostly focus on experimenting with photographs of developers who use Java and .Net. In order to save the most distinctive features while using minimum portraits, spectral analysis of vectors that contribute to particular features has been used for each group of subjects.

Perrett‘s experiment that his team used to study the attractiveness of faces is quite famous. He arrived at the conclusion that the average portrait, which is a composite of many, is not always the most attractive one and not as good as a portrait composed of a lesser amount of portraits of the most attractive example. This means that generally, attractive faces really differ from average faces, i.e. “deviation from the median” is an essential characteristic of an attractive face. We’ve decided to develop this idea even further. We used spectral analysis to automatically choose faces with most deviations from the median - those with biggest and smallest noses, notably round or drawn faces and the like. This way, we’ve succeeded in conforming to Perrett‘s essential characteristic and got less bland faces, but attractive people with characters of their own,” share the project’s authors.

As for the differences between programmers specializing in particular technologies, the experiment showed that there are indeed some: for instance, male developers who use Java smile more often, and those using .Net are more likely to wear glasses. Female programmers smile more than male ones.

According to the researchers, at first merging of multitudes of faces using the average landmark points from more than 20-30 photographs resulted in getting almost identical faces. Most of the photographs being those of developers from Russia and Ukraine provides one possible explanation for this phenomena: the results just tend to Slavic features.

Another issue is that an “average” face mostly has ideal proportions. So, in order to not create some “icon developer”, the project’s authors decided to apply spectral analysis so as to first choose several faces that are really different from most others and only then combine them.

What is more, the experiments with clusterization that rely on two different applications used in the original method turned to be too labour intensive, which led to the necessity to combine the applications and solve such issues as excessive memory consumption, low speed of batch processing and the “loss” of faces on smaller images.

All things considered, the project’s participants conclude that the experiment demonstrated that the face of a “typical programmer” does not differ much from the face of any other professional. Still, you might well recognize similar features in the appearance of the developers you know.

“It seems that typical programmers don’t tend to have some particular type of appearance. Well, that’s generally what you’d expect. Some 20-30 years ago, the portrait of a typical programmer could have looked different. Now, programmers can potentially look like anyone, as it is a popular profession that does not imply any special qualities or leave any particular traces on a person,” comments Dmitry Sobolev, one of the project’s participants and senior developer at DataArt.

“It’s hard to generalize the results for everyone, but we already got a perfect match for one of our provisional results: a .Net developer we know looks exactly like the “average portrait”, and also wears glasses. A truly unexpected result was that you need just a few photos to get an almost ideal face. Though Perrett has already conducted a similar study on attractiveness, observing the same “improvement” of facial features on a limited set of photographs has been an interesting thing to do in the very least,” concludes Andrey Sorokin, another of the project’s participants and senior developer at DataArt.