Back to Careers

Senior Software Engineer (Natural Language Processing)

AI Engineering, Chicago

Apply Now
Position Summary

Are you a talented, motivated Senior Software Engineer with a specialty in natural language processing? Join an innovative and fast-paced team building software that allows litigation professionals to use AI to filter millions of documents down to those most important to their case or investigation.

The ideal candidate will have broad experience designing and implementing natural language understanding systems across a range of textual data. You have built operational systems in text processing application areas such as entity recognition, sentiment analysis, terminology detection, information extraction, reference resolution, discourse segmentation, summarization, word sense disambiguation, search, categorization, or others. You have a working knowledge of tools that range from regular expressions to modern natural language processing and machine learning frameworks, and experience applying them to a diversity of text data types, including e- mail, chat, or enterprise documents. You are comfortable mentoring, leading, and delegating to other developers.

We are thoughtful about design and focused on ensuring that our clients have software that is both useful and useable. You won’t be buried in a dark corner – you’ll have the opportunity to actively shape the software, while working as an integral part of a dynamic team of AI engineers and data scientists who are focused on writing great code, learning every day, and having a lot of fun.

If you think you’d be the right fit for our team, we’d love to hear from you.

Responsibilities
  • Implement text processing and natural language understanding algorithms in Java
  • Strategically use new code development, legacy code, open source libraries, and commercially licensed technology
  • Develop and review designs, code, unit tests, system tests, and documentation
  • Collaborate in root cause analysis; diagnose, isolate, and fix software problems
  • Identify and correct issues that impact performance, reliability and scalability
  • Investigate and develop skills in new technologies
  • Mentor other developers
Minimum Qualifications

  • Bachelor’s, master’s, or doctoral degree in computer science or related field
  • 7+ years’ work experience in natural language processing and machine learning
  • Deep experience programming in Java
  • Fluency in one or more scripting languages
  • Practical understanding of morphology, lexicology, syntax, semantics, and pragmatics
  • Experience with experimental testing of machine learning and NLP algorithms and software
  • Experience working within Agile / Scrum / Kanban development methodologies
  • Strong knowledge of Unix / Linux environments
  • Good writing and communication skills
  • An eagerness to learn, explore, and introduce new technologies
  • Must have authorization to work in the United States
Preferred Experience
  • Experience with acquiring, organizing, and using large corpora and labeled training data

  • Understanding of basic statistical techniques including sampling, estimation, and hypothesis testing

  • Experience with textual data in languages besides English

  • Development experience in C++

  • Experience working with CI / CD 


Hiring Policy

This job description reflects the present requirements of the position. As duties and responsibilities change and develop, the job description will be reviewed and subject to amendment.

Reveal is an equal opportunity employer. We celebrate diversity and are committed to creating an inclusive environment for all employees. Reveal does not discriminate in employment on the basis of race, color, religion, sex (including pregnancy and gender identity), national origin, political affiliation, sexual orientation, marital status, disability, genetic information, age, membership in an employee organization, retaliation, parental status, military service, or other non-merit factor.

Ready to apply?