Software Engineer (Multiple Openings)
Responsible for building the back-end wiring, application logic, and UI for applications and programs that engage our users; identify and apply the best technologies to add features and create new products; work with a team of talented engineers to start new projects from scratch, while also working within the existing code base; drive the development process including designing, coding, documenting, testing, debugging, and tuning applications and programs; provide accurate estimates, evaluate feasibility, and assess new platforms and technologies for project implementations; utilize and apply knowledge of Java, C++, Linux, Distributed Systems, Natural Language Processing (NLP), Python, Deep Learning, SQL, Git, AWS, Object-Oriented Design, and JavaScript to perform assigned duties; support projects from start to end as they travel through a fast-paced development cycle; collaborate and communicate clearly across multiple development teams to design and release amazing products that meet the needs of students and teachers all over the world.