Senior Software Engineer, Knowledge Platform

  • Seattle, WA
  • Full-time
  • Alternate Location: San Francisco, United States

Company Description

Square builds common business tools in unconventional ways so more people can start, run, and grow their businesses. When Square started, it was difficult and expensive (or just plain impossible) for some businesses to take credit cards. Square made credit card payments possible for all by turning a mobile phone into a credit card reader. Since then Square has been building an entire business toolkit of both hardware and software products including Square Capital, Square Terminal, Square Payroll, and more. We’re working to find new and better ways to help businesses succeed on their own terms—and we’re looking for people like you to help shape tomorrow at Square.

Job Description

Square's Knowledge Platform team has two goals:

  1. 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.
  2. 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 the flexbility to enable data scientists to do their job. We sit in a unique spot, we are an infrastructure team that works directly with Data Scientists daily. We get to learn directly from our customers and build new and better tools to directly improve their productivity.

Within our team, we're looking for senior engineers to focus on building Square’s Machine Learning systems. We are building fault tolerant systems that make data scientists happier and more productive. We need people with both the DS/ML and engineering experience to understand the process and pain points of ML, and the engineering skills to build reusable, maintainable systems.


For this role, we like to see:

  • A desire to design systems that solve our customer’s problems; you want to understand your customers’ needs.
  • You lead small projects and mentor junior engineers
  • The ability produce robust production-quality code incorporating testing, evaluation, and monitoring.
  • 5+ years of experience designing and producing 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.

We use and teach:

  • Java, Python, Google Cloud Platform, AWS, Snowflake, JanusGraph, and Docker
  • Python ML stack (pandas, scikit-learn, Jupyter)
  • MySQL, Redis, Hibernate, jOOQ, and Bigtable

Additional Information

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. Applicants in need of special assistance or accommodation during the interview process or in accessing our website may contact us by sending an email to assistance(at) We will treat your request as confidentially as possible. In your email, please include your name and preferred method of contact, and we will respond as soon as possible.