Senior Software Engineer

  • Atlanta, GA, USA
  • Full-time

Company Description

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.

Job Description

The Atlanta office houses a number of platform teams at Square.  As Square's business continues to experience rapid growth, these teams serve the heart of the business, allowing Square product teams and third parties to build safe, scalable, and reliable products.  We are looking for awesome software engineers who feel comfortable in all parts of the stack to join our Atlanta office. Here are some of our teams:

Payments

  • The Payment Acceptance team owns the core of Square’s online payments stack and operates it at a massive scale.  

  • We provide APIs for first and third parties to access our platform.

  • We move money between customers, credit card processors, and banks quickly, reliably, and securely – and our ambition is to make this easy.

  • We tackle several technical challenges: Security and privacy, monitoring, re-architecting for the future, scalability, supporting payment methods such as cryptocurrency, 3DS, ACH, and support Square's expansion to support new payment types in international markets.

  • We are a backend service team, and use Java on Linux along with technologies like Guice, Guava, Protocol Buffers, jOOQ, MySQL, Kafka, and GCP.

Catalog

  • The Catalog team builds the platform and product features that allow Square merchants to manage the items and inventory they sell. We support all types of merchants from food trucks with just a few menu items to retail chains with hundreds of thousands of SKUs for sale across many locations.

  • The team is involved in the technical details of building highly available and reliable services, while also working with product teams to enable Square to rapidly build new capabilities for our merchants and buyers all over the world.

  • We partner with external developers to build public APIs that allow Square to expand it’s ecosystem.

  • We use Go, Java, MySQL, and Elasticsearch. We use ML to improve the product experience.

Prices

  • The Prices team is responsible for tools that help Square merchants set prices, manage taxes, and provide discounts to their customers.

  • We are a full stack team, delivering features via Mobile, Web, and API across nearly all of Square’s products.

  • We are reinventing Square’s models for pricing and taxes, building flexible primitives to manage complex needs.

  • We also own Square’s subscription platform, managing internal and external subscriptions, usage, and billing.

  • We use Java / Kotlin on Android, Objective-C / Swift on iOS, Javascript and Ember on the web, and Java and Ruby on the server.  

Identities

  • The Identities team maintains the account system for Square sellers.

  • We curate the merchant data model for that account system and provide highly available services for both of those that answer thousands of queries per second.

  • We support millions of Square customers through elegant interfaces on the web (Java,  JavaScript and Ember.js), Android, and iOS.

Auth

  • The Auth team provides authentication services including login, two factor verification, access control and session management for access to all Square services.

  • We protect customer accounts through smart, targeted rate limiting and machine-learning signals detection.

  • Support millions of Square customers through elegant interfaces on the web (Java, Go, Javascript and Ember.js) Android, and iOS.

Orders

  • We are a team that ties together many software components across Square, including Payments, Prices and Catalog, allowing developers to quickly combine new and existing components to innovate new features on top of Square’s platform.

  • Our Order Platform APIs are designed for use by first (internal) and third party (external) developers.

  • We design and implement high-volume, low-latency, distributed transaction processing systems, making thoughtful tradeoffs between consistency and availability when both are not possible.

  • Our work spans client and server environments and leverage Java, Go, Javascript and Ember.JS.

 

 

Qualifications

You have:

  • BS in Computer Science or equivalent. Minimum 4 years of industry experience.

  • Innate curiosity and a desire to explore solutions in a small, highly focused team.

  • Understanding and interest in creating highly available, scalable, low-latency, global systems.

  • Track record of pursuing self directed side projects, research, or open source projects.

  • Interest in state of the art security systems.

Technologies we use:

  • Java, Ruby, Go

  • iOS, Android, web

  • Guice, Guava, Protocol Buffers, gRPC, jOOQ, Rails

  • MySQL, Redis, Kafka, Vertica

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.