Software Engineer, Backend & Machine Learning

San Francisco
Full Time
At Forethought, we're solving the world's hardest problems in Natural Language Understanding to build an "answer engine" for the enterprise. Customers use our answer engine to give employees and customers access to the right information at the right time. Our mission is to "enable everyone to become a genius at their job".

Founded in 2017, Forethought is funded by some of the top VC's and Angel Investors in Silicon Valley. (Hint: We're backed by some of the same investors as Twilio, Lyft, and Front)

We're looking for world-class Backend & Machine Learning Engineers to join our team! We're looking for folks with a growth mindset, who love to solve the world's hardest problems, and want to have an impact on the world.

As a member of the Backend & Machine Learning team, you will be responsible for designing, building, and deploying the features and underlying systems that power our core answer engine. You will interact with everything from our document indexing pipeline to our natural language query infrastructure written in Python and Go. Our tech stack leverages top modern technologies, including Docker, Kubernetes, Kafka, Spark, Redis, AWS S3/EC2/RDS/KMS, MongoDB, and Lucene. As an early member of the team, you will also be building out custom infrastructure and algorithms on GPU/TPUs for Deep Learning & NLP.

What a typical week may look like at Forethought:
Develop backend services and infrastructure to expand our answer engine to support 10M+ documents and 100K+ QPS
Ship web applications and APIs using Python, Flask, MongoDB, MySQL, Lucene, Spark, React, Go, and/or TensorFlow
Optimize the performance of our indexing, processing, and query pipelines
Take product ideas from ideation to implementation
Read the latest papers in NLP and Deep Learning
Implement state-of-the-art algorithms in Question Answering, Machine Reading Comprehension, Text Summarization, in a scalable, production-ready fashion using Tensorflow and Spark
Build systems to evaluate and tune performance of a real world deep learning system, from data collection to processing to model implementation to post-processing and visualization

What we value and look for in a Backend & Machine Learning Software Engineer:
BSc, MSc or PhD in Computer Science, Mathematics, or a related technical field
Proficiency in Python or Go
3+ Experience in Software Engineering
Experience building large-scale distributed systems
Familiarity with modern Big Data stack (Spark or Hadoop, Kafka or RabbitMQ, ZooKeeper, Redis, Memcache, Lucene, MongoDB, MySQL)
Familiarity with containerization and dev-ops (Docker, Kubernetes, Docker Swarms, Jenkins, Phabricator, Continuous Integration, Continuous Delivery) is a plus
Familiarity with modern Deep Learning and Natural Language Processing / Natural Language Understanding (NLP, NLU), including Neural Networks, RNNs, seq2seq models, and real world machine learning in TensorFlow (incl. regularization, cross-validation, dropout) are a huge plus
Adaptable, humble, and interested in pushing the boundaries of what's possible

What you get:
A fast-paced and collaborative environment
Build large scale distributed systems from the ground up
Work with world class talent (our team consists of former Facebook, Palantir, Dropbox, and LinkedIn Engineers; we have 2 ACM ICPC World Finalists)
A chance to be a defining/founding member of the team, with equity to match
Make an impact, and help us in our mission to give everyone the opportunity to be a genius at their job; 
Medical, dental and vision coverage 
Unlimited PTO policy