Software Engineer – Portland, OR

Location: work at office location in Portland, Oregon

TextWise develops a cutting-edge search engine using advanced language modeling and deep learning techniques.  Our Semantic Gist platform powers’s intellectual property search and analytics product, InnovationQ.

Job Summary

We are seeking a creative and passionate Software Engineer to expand and complement our team of developers, to work on any and all aspects of our software platform, on a variety of initiatives, in our downtown Portland office.  We offer an exciting opportunity to work with a small, talented team on state of the art machine learning technology.

You will be expected to:

  • Write high-performance, scalable software, mostly in C++, but also in Java, Javascript, bash, Python, or whatever language is best suited to the task at hand
  • Collaborate with the team on all aspects of software development, from design to testing
  • Help troubleshoot errors or performance issues in our various deployment environments to help with root cause identification and resolution
  • Independently research and develop solutions to complex problems
  • Give estimates for your deliverables, and meet them

Some specific things you may do, depending on your skills and our evolving needs:

  • Take ownership of a web service and application that manages the deployment, patching, and monitoring of the web services that make up our platform. Improve the monitoring and alerting systems so we have more detailed knowledge of what is happening at any time and improved notification of any problems.
  • Add features to our search system to make better use of information other than the relevance of the query to the document text. This includes time, references and links to and from other documents, author and ownership information, and more.
  • Work on improving our deep learning system. Evaluate recent research for applicability to our domain. Prototype and test different algorithms and integrate improvements into our production system.
  • Add functionality to our Semantic Map search result visualization and clustering UI, and write other visualizations that expose the value we add to structured and unstructured text data.

Minimum Qualifications

  • Bachelor’s degree in Computer Science, Computer Engineering, or a related discipline
  • Proficiency in C++ or Java
  • Strong programming fundamentals, including knowledge of algorithms, data structures, design patterns, concurrent programming, distributed systems, optimization, and different programming paradigms
  • Experience with common Linux command line tools

Desired Qualifications

  • Any skill set or experience that can help us and isn’t shared by a present member of our team. Some possibilities: recurrent nets, Javascript frameworks, GPU programming, linear algebra, distributed filesystems, different programming languages.
  • Knowledge of algorithms for information retrieval, machine learning, or deep learning
  • Experience integrating and modifying open-source projects
  • Experience with REST web service design and development
  • Knowledge of map-reduce and other large-scale data processing strategies