Senior Software Engineer, Natural Language Processing - Cortex
Twitter is what’s happening and what people are talking about right now. For us, life's not about a job, it's about purpose. We believe real change starts with conversation. Here, your voice matters. Come as you are and together we'll do what's right (not what's easy) to serve the public conversation.
The Natural Language Processing (NLP) Signals team is part of Cortex, the central machine learning organization at Twitter. Cortex’s mission is to empower internal teams to efficiently leverage machine learning by providing the platform, modeling, and research expertise while advancing the ML technologies within Twitter.
We tackle Twitter-specific challenges in the NLP domain such as the real-time, ever-changing nature of our data and limited context. We apply and advance state of the art natural language processing techniques to invent new models and systems that can be used to improve various Twitter experiences for our customers.
What You’ll Do:
You'll work with an awesome team of Machine Learning engineers, product managers, data scientists, researchers, and our internal team's engineers to build the next generation of platform to serve our ML models and dispatch our signals to our customers more efficiently. This includes:
Architecting/building services and software components necessary to serve our ML models at a huge scale
Participating in the engineering life-cycle at Twitter, including designing high-quality ML infrastructure and data pipelines, writing production code, conducting code reviews, and working alongside our infrastructure and reliability teams.
Simplifying our architecture with an eye toward expandability and maintainability.
Mentoring other engineers on the team and up-level them on best software engineering practices.
Collaborating with cross-functional partners to come up with roadmaps for Machine Learning driven products for the team.
Do you identify with the majority of the following traits? Yes? We believe they will make you successful in this role.
You have a passion for machine learning and high-leverage infrastructure platforms.
You have a solid grasp of highly-performant algorithms, data structures, solve complex distributed systems problems, and envision and innovate the next solutions.
You’re fluent in concepts like design patterns, composition vs inheritance, commonality variability principle, primitives, etc.
You have educated opinions about what good library and API design in distributed systems looks like, both from formal study and from lived experience with past design decisions you made.
You take pride in the developer experience, the ease of use, documentation and the durability of the products you build, together with the team.
You bring partners together across organizational and functional boundaries.
You have a customer and impact focussed mindset in building software.
You have experience collaborating across cross-functional teams including product owning teams, researchers, and applied machine learning engineers.
By nature of the problem domain, we expect you to have:
4+ years building and delivering working software through an iterative, agile process.
2+ years in Sr engineering or architect capacity with a track record of resilient design decisions shipped to production.
3+ years of work experience in software engineering in the areas of distributed data processing, in high traffic or large data production environments.
2+ years of experience in two of: Scala, Python, C++, Java
Solid knowledge of core CS concepts such as: common data structures and algorithms, profiling/optimization
B.S, M.S., or Ph.D degree in computer science or a related field
Data Science and/or machine learning skills and related software frameworks such as Tensorflow, PyTorch
Familiarity with Airflow, TFX, and Kubeflow, Kubernetes, and GCP
Hands-on experience with data tools such as Hadoop, Apache Druid, MapReduce, Kafka Streaming, Beam, Spark, Storm and other big data frameworks and streaming technologies.
We care about making work happy and productive for everyone, with the option to work from home when you need, wellness benefits, regular #NoMeetingThursdays, #FocusTuesdays, and six months of parental leave.
We love sharing knowledge and ideas. Within our team, we closely work with our NLP partner at Cortex research (Content Understanding Research). We have fortnightly learning seminars. And there are many study groups you can join, the most recent being for Machine Learning.
A few other things we value:
Challenge - We solve some of the industry’s hardest problems. Come to be challenged, learn, and thrive as an engineer.
Diversity - Diversity makes us a better organization and team. We value diverse backgrounds, ideas, and experiences.
Work, Life, Balance - We work hard, but we believe with hard work should come balance.
Collaboration - There’s that saying, “If you want to go fast, go alone. If you want to go far, go together.” We want to go far.