Precog is looking for a highly-talented software engineer with a strong background in computer science, who is passionate about developing production-quality solutions to incredibly hard problems in distributed storage, analytics, statistics, and machine learning.
We're a small but fast-growing company vying to power the next-generation of intelligent, data-driven applications across web and mobile. Our engineering team consists of well-known contributors to open source, book authors, and language developers.
Software Engineering: Design, develop, and test production-quality solutions to a variety of problems in distributed storage, analytical and statistical computation, and machine learning. Refactor existing code to remove duplication, improve architecture, and increase performance.
Automated Testing: Develop automated tests at the unit, integration, and system level to verify correctness of code. Add tests when defects are identified to prevent regression. Assume total responsibility for code quality.
Debug: Troubleshoot issues arising in production code without impacting availability or uptime. Create and deploy fixes to issues with minimal turnaround time.
Optimize: Profile code to identify hotspots. Highly-optimize critical sections of the code to achieve maximal performance. Potentially develop core algorithms in systems programming languages such as C in order to maximize performance.
Research: Research and invent novel algorithms, data structures, and methods across a wide range of functional areas.
Support: Support customers when they encounter performance or functional issues. Enhance developer documentation, develop code snippets for customers, and otherwise support customers as they put Precog APIs into production.
Learn: Continuously develop deeper understanding of topics in software engineering, computer science, mathematics, machine learning, and other relevant fields. Attend conferences and workshops, read blogs, study books, speak at meetups, and otherwise engage in continuous self-improvement.
You have extensive experience contributing to high-performance, production-quality, large-scale code bases.
You know your way around version control systems, and are interested in practicing not just continuous integration, but continuous deployment (bonus points if you didn't have to Google either!).
You are obssessive about automated testing, not just the common cases, but edge cases too. Code that passes your automated tests often "just works".
You can troubleshoot problems in complex distributed systems with only a minimum of feedback.
You are confident yet humble and open to new ideas. Precog is a 100% jerk-free environment!
You know your way around agile development, enjoy pair programming, and are open to Kanban-based software development.
You are passionate about completely disrupting the field of data intelligence with technology that levels the playing field.
You can take slow-running code, and through detailed profiling, make it scream (while not creating a maintenance nightmare!).
You are independent, responsible, and self-motivated, and you thrive without a lot of structure or guidance. You take initiative, self-optimize, and are insanely productive.
You are passionate about continuous self-improvement, striving to become more awesome every day.
BS/MS/PHD in mathematics or computer science
5+ years software engineering
Expert-level knowledge in two or more of the following areas: (1) database design and development, (2) high-performance systems programming, (3) statistics, (4) machine learning, (5) distributed systems engineering
Advanced knowledge of the JVM or x86 architecture
Excited to join a small but growing team of 9 people
Experience writing high-performance software
Smart-working and extremely productive
Contributing to open source a big plus
Functional programming experience a big plus