Software Engineer

Job Description

As a Software Engineer you have the primary responsibility in the development of core products. As well as improving and enforcing best practices, you’ll be part of an development team innovating solutions to problems such as maintenance, scalability, high-availability and regulatory compliance for our entire product line.


 Design and develop components and systems in distributed JVM environment, applying industry standards to ensure performance scalability, stability, and reliability

 Design NoSQL database schemas

 Incrementally improve existing software through test driven design and continuous integration

 Advocate best practices; engage and inspire junior developers through code reviews, coaching and mentoring

 Document system interfaces and designs where appropriate

 Interface with Development and Product Manager and communicate timelines and expectations, and obstacles to the successful timely deployment of products

 Research and assist in developing system scalability

 Develop innovative, automated test frameworks and harnesses for both verification and load/perfor- mance testing of core systems


B.S. in Computer Science or equivalent experience

Practical demonstrated experience in design and development of distributed applications using Java

Skilled using NoSQL databases such as Accumulo, Cassandra etc ; strong understanding of associated database design and modeling, complex queries

Technical written and presentation communication skills are essential; must be able to present technical topics to the team

Experience adhering to and enforcing strict software quality coding standards and best practices including version control, issue tracking, continuous integration in a test driven development; experience with reviewing others’ code, delivering constructive criticism, and assisting developers with making changes/fixes

Demonstrated strong problem solving ability, logic, and analytical skills; ability to prioritize work and participate in a number of projects simultaneously

Proven track record of implementing successful test harnesses and strategies using automated tools and techniques

Relentless attention to detail, correctness and accuracy with adherence to the highest standards of quality

Desired Skills

Prior start-up experience

Experience with other programming languages like Scala, R, etc .

Thorough understanding and experience with Apache Storm or Hadoop Natural Language Processing (NLP) and/or Deep Learning algorithms Passionate about technology (contribution to open source projects a big plus)


Principal Research Scientist

Job Description

We are looking for a Engineer with machine learning background to architect our data infrastructure. The candidate will have significant input into the team’s architectural approach and execution. We are looking for a hands-on coder who enjoys implementing algorithms as much as designing and fine-tuning them.


Design scalable predictive models with large number of features

Be responsible for the entire machine learning implementation process: model design, feature planning, system infrastructure, production setup and monitoring, and release management

Use machine learning techniques optimized for distributed computing environments


Prefer Ph.D. (will consider B.S. or M.S. in Computer Science or related field)

Advanced knowledge of predictive / statistical modeling / machine learning such as regression analysis, predictive models, Bayesian classification, collaborative filtering, decision trees, and clustering problems applied to large data sets

Expert in at least one of: Java, Scala

Good understanding of web technologies and Unix / Linux

Desired Skills

Familiarity with distributed systems and methodologies: Hadoop, MapReduce, Cascading, Hive, Pig

Experience with Key-Value databases: Accumulo, Riak, Cassandra

Experience with cloud technologies: AWS, Rackspace


Senior DevOps

Job Description

We're looking for a DevOps engineer to lead the building and execution of automated deployment scripts and tools for system provisioning and configuration


Work closely with our engineers to build out appropriate monitoring and reporting infrastructures

assist Engineering in troubleshooting system issues in all environments

Design world-class systems that keep our release process agile and efficient

Be the cornerstone that we need, in partnership with our engineering team, to deliver regular releases and updates


B.S. in Computer Science or equivalent experience

Knowledge of Hadoop, Key-Value stores (Accumulo, Cassandra), etc.

Desired Skills

Experience with Java (and JVM languages) and Bash

Experience with Configuration management (e.g. Chef, Ansible, Puppet)

Experience with System Monitoring (e.g. Nagios, Zenoss, Pandora)

Experience with *nix System Administration concepts including system security

Knowledge of HTTP and RESTful services

Knowledge of networking concepts (TCP/IP, DNS, UDP)