Software Engineer, Knowledge Platform (ML Frameworks)
- New York, NY, USA
- Current Square Employee?: Apply via go/jobs
We believe everyone should be able to participate and thrive in the economy. So we’re building tools that make commerce easier and more accessible to all. We started with a little white credit card reader but haven’t stopped there. Our new reader helps our sellers accept chip cards and NFC payments, and our Cash app lets people pay each other back instantly. We’re empowering the independent electrician to send invoices, setting up the favorite food truck with a delivery option, helping the ice cream shop pay its employees, and giving the burgeoning coffee chain capital for a second, third, and fourth location. Let’s shorten the distance between having an idea and making a living from it. We’re here to help sellers of all sizes start, run, and grow their business—and helping them grow their business is good business for everyone.
Square's Knowledge Platform team has two goals:
Make machine learning at Square easy. Square has 50-100 engineers and data scientists building machine learning systems; our team’s job is to build tools, infrastructure, and proofs-of-concept to help them move faster and avoid reinventing the wheel.
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.
Within the Knowledge Platform team, the ML Frameworks sub-team is looking for a machine learning engineer to focus on data science and machine learning tools. While we prefer to use existing open source tools when possible, we also build (and open-source) our own tools when we see an opportunity to do better. Our ideal candidate has some familiarity with analyzing and modeling data, but also has the engineering and/or computer science knowledge to build flexible tools and frameworks that help data scientists work at a higher level of abstraction.
For example, many data scientists at Square use our Bionic framework to develop their data pipelines. Some problems you might work on within this framework:
How do we make it easy for data scientists to reuse each other’s pipelines without having to modify the original code?
How do we nudge users towards immutability and other good software engineering practices?
How do we figure out if a computation is “the same” as a previous one, so we can re-use a cached value? Can we do it without manual intervention from the user?
Can we abstract away the difference between running tasks locally vs on a distributed cluster?
How do we allow some (but not all) of a data science flow to be managed by a black-box hyperparameter tuning system like hyperopt -- in a generic way?
For this role, we like to see:
2+ years experience developing reliable software in a team environment.
Experience with Python and the “PyData” stack -- Pandas, scikit-learn, Jupyter, etc.
Familiarity with the basic principles of data analysis and machine learning.
Training in computer science -- especially machine learning, systems, and programming languages.
Experience using any of the major cloud vendors (GCP, AWS, Azure).
Experience with distributed systems and working with too-large-for-one-machine data sets.
At Square, we value diversity and always treat all employees and job applicants based on merit, qualifications, competence, and talent. We do not discriminate on the basis of race, religion, color, national origin, gender, sexual orientation, age, marital status, veteran status, or disability status. We will consider for employment qualified applicants with criminal histories in a manner consistent with the requirements of the San Francisco Fair Chance Ordinance.