Understanding natural language with its twists and turns is vital for searching. At Luigi’s Box, we know this and support the world’s most spread languages at varying quality levels. We are looking for a person to join the team who will be fully dedicated to language support development and gradually increase the quality of understanding of the individual languages.
Today we have such a person on our team, but we are looking for a partner for them so that we can progress faster. In recent years, we have learned a lot about developing language support. Luigi’s Box uses Elastic Search as a full-text engine for keyword-based search. Elastic Search supports several languages, but we haven’t been completely satisfied with the built-in support for any of them. As a result, we usually end up creating our language-specific parser as a plugin for Elastic Search. Those are written in Java, therefore we are looking for a person who can program in Java. We’ll teach you the details of creating plugins, but we expect you to have at least the basics of Java.
What we can tell you about the language support development:
- It is not quick at all. The whole process takes several weeks to months for one language.
- We are systematic. We have shared search tests for all languages and, at the same time, a separate set of tests for each language. To give you an idea, we’re talking about thousands of tests.
- To create language support, you need to study the language. You don’t need to learn to speak it, but you will need to know its basics – at least the grammar. We will provide a native speaker for consultations for each language.
- A significant part of the work is rummaging through reports from offline tests, analysing the results, finding a solution, and consulting with a native speaker.
- Multiple Java plugins can be created for one language.
- Some parts also overlap with our ruby code outside of Elastic Search, such as POS tagging.
- The whole language processing code is very sensitive to performance and memory. We cannot afford any memory leak or inefficiency. You will become very familiar with the profiler.
What do we expect from you
- If you are a linguist who can program high-performance code in Java or Ruby, then welcome to the team! 🤣 🦄
- Back to reality: we expect you to speak a foreign language, and it doesn’t matter which one.
- You can program in Java and ideally in Ruby (however, we can teach you Ruby).
- You are systematic and pedant
What you can expect from us
- An experienced team of systematically working people who know more about search than you think they can.
- Mentoring and willingness to help.
- Tests and test-writing culture. You will find thousands of tests that run after each CI commit.
- We deploy multiple times a day, as needed.
- An interesting scale. We measure request counts in thousands of requests per second.
- Flexible working hours, but we expect a significant overlap with 9-17. We are not looking for a night owl that works from 9 pm to 6 am, but if you need to go to a shop or pick up your children from school during the day, it is no problem.