Previous Job
Principal Software Engineer
Ref No.: 18-06720
Location: Durham, North Carolina
Principal Software Engineer
5 month Contract
Extension Possible: Yes
Durham, NC

Our job is to build software that helps people find the entertainment they enjoy. We spend a lot of time thinking about how to optimize the discovery experience, but we also passionately debate which of Trainspotting or Napoleon Dynamite is the best movie of all time. We like TV and movies. You don't have to like them too, but, "it'd be a lot cooler if you did. " We need new ideas and new approaches, and someone ready to contribute from the start.

The basic responsibilities for the job may include:
• Design, implement, and document core technology components
• Develop custom applications using internal software frameworks
• Develop and customize data mining and statistical techniques for operation on large datasets
• Update, optimize, and administer large-scale data processing routines

Discovery solutions for television are changing fast. Internet connected TVs are disrupting the marketplace. Because of the rate of change, the primary qualities that we are looking for in candidates centers around general intelligence and problem solving skill, rather than specialization and specific work experience.

Our ideal candidates are:
• Analytical. We want people who are able to evaluate situations that they have not encountered before and reason about them logically.
• Creative. We want people who can go beyond a repertoire of standard solutions and answer novel challenges with innovative and outside-of-the-box solutions.
• Practical. We want people who can find a balance between theory and practice to create solutions that are conceptually sound but also working and delivered on time.
• Fast learners. We want people who can quickly understand new ideas and learn new technology.

Superior skills in Java and related open source technologies
Strong understanding of RESTful Web Services and MicroServices
Experience using messaging services (e.g. Kafka, RabbitMQ)
Experience using Spring Framework (Spring Boot experience preferred)
Experience with variety of database systems – relational and NoSQL (e.g. MySQL, MongoDB, PostgreSQL, SQL/Server)
Knowledge and experience with Cloud Container Management (e.g. Docker) a plus
Experience with lightweight web servers (e.g. Undertow, Jetty) a plus
Ability to solve complex business logic problems and design solutions using modern technologies
Excellent communication skills and the ability to work across teams to create the best possible solution
Technology leader for a team driving critical decisions and pushing projects to completion
Strong background in object oriented programming techniques and design patterns
Familiarity with Agile methodology and iterative development
Dedication to lifecycle best practices, including Test Driven Development, source code management and continuous integration
Passion for code quality using industry best practices around logging, monitoring, unit testing and code reviews