[Job posted on September 19th 2014 by Artificial Solutions]
NLP Software Engineer
Job Title:NLP Software Engineer
Number of Openings:1
Job Type (Employment Type):Direct Hire
Job Schedule:Full Time
Job Category:Computers/Information Technology – Software EngineerCareer Level:Intermediate (Non-manager)
Level of Education:University
DegreeYears of Experience:3
Artificial Solutions is looking for a performance-minded Java software engineer for our Barcelona office with a passion for algorithms and languages.
You will be part of a team developing new tools at the forefront of modern language technology to create our next generation natural language processing (NLP) platform.
You will work inside the Products & Technology department together with an international team of developers and research engineers, following an agile project development methodology and using English as the daily working language.
The position offers a lot of freedom, responsibility and the opportunity to grow both as a person and within our company in order to realize your full potential.
The position will focus upon:
• Participating in the development of our JVM based NLP platform as a back-end developer in several of our platform components.
• Implementing accurate, efficient and maintainable production quality algorithms for challenging linguistic tasks.
• Transforming functional requirements into technical requirements.
• Measuring and optimizing your algorithms and other parts of the code base.
• Improving and enhancing existing software as well as creating entirely new components for the platform.
• Designing and developing APIs.
Position Requirements Essential Required Knowledge and Experience:
• MSc/BS in Computer Science or Computational Linguistics or related fields, or equivalent know-how acquired through working experience.
• A solid foundation in computer science, with strong competencies in algorithms, data structures and software design.
• 3+ years of software development experience.
• Excellent coding skills in Java.
• Knowledge of REST, JSON, Maven and Google Guava.
• Knowledge and interest of the functional programming paradigm.
Additional Desired Knowledge and Experience:
• Mathematical background.
• Strong functional programming experience.
• Experience in distributed computing, information retrieval, data mining and/or machine learning.
• Knowledge of Natural Language Processing (NLP) techniques and frameworks (e.g. OpenNLP, NLTK, LingPipe, Stanford, GATE, Antlr 4).
• Experience in big data processing techniques and NoSQL approaches such as Hadoop HDFS, Hadoop MapReduce, HBase, Elasticsearch, Apache Spark, Cassandra, Couchbase, MongoDB.
• Experience in building and maintaining highly scalable, highly available distributed systems.
• Expert knowledge on logging, monitoring, testing and tuning Java applications.
• Background with traditional databases, ETL, and data warehousing.
• Excellent English, both written and spoken.
• Any additional languages are a plus.
Personal Skills and Abilities:
• Strong analytic and problem-solving skills with a passion for algorithms.
• An ability to dive into complex problems with a can-do attitude.
• A self-starter with ability to work collaboratively in a distributed development team.
• Eager to learn and ability to pick up new technologies and frameworks fast.
• Enthusiastic about natural language processing, machine learning and computational linguistics.
What we Offer:
• The possibility to contribute to our award-winning Teneo platform.
• Diverse and challenging tasks, with lot of opportunities for learning and self-growth.
• Young, outgoing, flexible and international work environment.
• A place in a skilled international team with a well-oiled agile approach to project development.
• Competitive base salary, social benefits.Application InstructionsPlease send us your CV and Cover letter in English by applying through our career page