A little backgroundAdzuna (founded 2011) is a crowd-funded job search engine operating in 11 countries with its headquarters in London, UK. It's also a Perl shop.
On its home page Adzuna boasts: 'Every job. Everywhere.' There is no mistaking the main feature of the website: the search engine which brings together millions of jobs from thousands of websites.
There are lots of other interesting things going on too. Just one example is the 'Value my CV' feature which is in public beta. Over 50,000 CVs were analysed and, from these, algorithms have been developed to model patterns in the data. When people upload their CV, text-mining is used to extract the relevant information from the document, the algorithms are run and the user receives an estimate of their market value. It's surprisingly accurate.
What's Perl used for at Adzuna?In pretty much everything! The web framework, persistence, search, queuing, networking, etc.
Why was Perl chosen - what were the alternatives?Adzuna's main functionality revolves around collection, filtering and retrieval of textual data. The data arrives from a huge array of sources, in many languages and character-sets and in many different forms.
We needed to build an engine that would perform extremely well when handling such data. Perl has been the de-facto tool for text manipulation for a long time. It is a mature language that supported all of the features we had in mind in the beginning of the project.
Furthermore, despite its age, it has a very active community and it actively adds support for new features and tools, via its module system. It is still an excellent tool for prototyping ideas, system administration and networking, all core to the needs of our business.
Eventually, we decided that it would be best and easiest to carefully build something tailored to the vision we had in mind, rather than trying to mould a generic tool to fit our needs.
Also, we had good ties with the Perl developer community, so finding expertise and coming up with a good prototype and then alpha, was quite painless for us.
Can you tell us about the roles at Adzuna and the Perl roles in particular - how do they all fit together?We have a small but experienced team of Perl aficionados working on an informally agile basis, running all aspects of our site from devops to search, big data analysis and new features. By keeping the team tight, we can do a lot relatively quickly but still make it scale (11 countries, millions of users, tens of millions of searches, data points analysed and emails sent per month).
We're not yet big enough to formally break our dev team up into sub-teams, so everyone gets the chance to work on most aspects of the code, but people do also develop areas of expertise led by their interests and experience, as well as interacting with our front-end guys, data scientists and head of product. We are currently looking to add one or two Perl developers who can help grow our capability and contribute their own experience while fitting in to our general ethos.
Does Adzuna plan on continuing to use Perl in the future?Yes. We do not face any problems, even at our current scale, that we can attribute to Perl.
Having said that, Perl is no longer the only language that we use at Adzuna. We have components written in R, Ruby and C too. And since the backbone of our operations is distributed and modular, we have no difficulty writing components in other languages or using existing ones, if they are better-suited for a particular task.
What changes have you seen in Perl over the past few years?From our operational point of view, Perl has been pretty stable, in the sense that we have not yet had the need to use newer frameworks, like Dancer. But that does not mean that it has been stale. Frameworks and libraries like Moose, DBIx and Test are continuously improving and still maturing.
But the biggest benefit for us has been the speed at which support is added for newer services and tools, like EC2, APNS etc. It is certainly a testament to the footprint of Perl and the faith of the developers in Perl as a tool, that support for new tools arrives as early as in any newer language.
Adzuna currently have a job vacancy for a senior Perl developer, based in London, UK.