Software Engineer, Knowledge Platform (ML Infrastructure)
- San Francisco, CA
Square's Knowledge Platform team has two goals:
Make machine learning at Square easy. Square has over 100 engineers and data scientists building machine learning solutions; our team’s job is to support these efforts. We build model development tools, feature computation infrastructure, and high scale serving systems to ensure that those trying to use machine learning can spend less time on infrastructure and more time delivering value.
Provide ecosystem intelligence to all of Square's products. Few things are more frustrating than trying to access and decipher another team's data. We provide systems and models that help teams transform their idiosyncratic data into reusable knowledge, so that each new ML system starts with access to a large set of observations and features.
To accomplish these goals, we build highly scalable systems that can serve our customers needs. Our systems have to be tough enough to stand up to the high scale load of processing all payments at square; furthermore, they have to be flexible enough to enable data scientists to do their job. We sit in a unique spot, our team is an infrastructure one, but we work directly with Data Scientists on a daily basis. We get to learn directly from our customers and build new and better tools to directly improve their productivity and impact.
Within our team, we're looking for engineers to focus on building out Square’s Machine Learning systems. Specifically:
Working cross functionally to build tools and systems that make data scientists happier and more productive. As an infrastructure team that supports data scientists, we have a tight connection with the DS community and need people who are excited about working cross functionally on tools and have the engineering skills to build reusable, maintainable systems. Two tools we’ve open-sourced recently are Bionic and pydocker.
Build highly scalable systems that can do the heavy lifting of feature processing. Our team maintains the infrastructure to compute real time features used in the decision flows of all payments at square and the historical store that allows models to be trained. We need someone who with experience with big data processing systems and knows how to move fast, but carefully, in production.
Build highly flexible, fault tolerant serving systems. The main job of the team is to evaluate models to make the Data Scientist’s job easy in production. We need someone with experience in building flexible systems that support the vast array of ML requirements that can serve models built through any DS tool.
For this role, we like to see:
A desire to learn from others and share your own knowledge.
Customer empathy: you want to understand your customers’ needs and requirements.
Strong software development skills and computer science fundamentals.
Ability to produce scalable and robust production-quality code incorporating testing, evaluation, and monitoring.
Experience in designing and productionizing large-scale distributed systems built around machine-learned models and big data.
Experience using any of the major cloud vendors (GCP, AWS, Azure).
(Nice to have) Experience in any of: knowledge graphs, recommendation systems, NLP, deep learning, interpretable machine learning.
(Nice to have) An advanced degree focusing in computer science or other computational field.
Technologies we use:
Java, Python, Google Cloud Platform, AWS, Snowflake, JanusGraph, Docker
Python ML stack (pandas, scikit-learn, Jupyter, etc.)
MySQL, Redis, Hibernate, jOOQ, Bigtable