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 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 Guice, Guava, Protocol Buffers, jOOQ, MySQL, Kafka, Vertica, and GCP.

Catalog

  • The Catalog team manages the items and inventory that Square merchants sell to their customers. We support all types of merchants from food trucks with just a few menu items to retail stores with hundreds of thousands of SKUs for sale.

  • 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 use Go, JavaScript, Ember.JS, Java, Objective-C

Pricing

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

  • We are focused on building a new pricing engine which will enable merchants to apply sophisticated pricing rules to their catalog.

  • We also own the Square SaaS platform, managing subscriptions, access, and revenue for all SaaS products at Square.

  • We use Java and Objective-C on mobile, Javascript and Ember on the web, and Java and Ruby on the server.  

Identities

  • The Identities team maintains the data store of Square customers and the authentication system they use to access Square services.

  • We curate the merchant data model (merchants, locations, employees, devices), provide authentication services (login, two-step verification, access control), and provide highly available services for both of those that answer thousands of queries per second.

  • 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

  • The Orders team builds platform software that coordinates transaction flow across Square’s products.

  • We are a new team that will ultimately tie together many software components across Square, allowing developers to quickly combine new and existing components to innovate new features on top of Square’s platform.

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

  • We are building across mobile, Java, Go, Javascript and Ember.JS

Qualifications

 

 

You have:

  • 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

#LI-FB1

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.