Senior Software Engineer, Payment Foundations
Company Description
Since we opened our doors in 2009, the world of commerce has evolved immensely, and so has Square. After enabling anyone to take payments and never miss a sale, we saw sellers stymied by disparate, outmoded products and tools that wouldn't work together.
So we expanded into software and started building integrated, omnichannel solutions - to help sellers sell online, manage inventory, offer buy now, pay later functionality through Afterpay, book appointments, engage loyal buyers, and hire and pay staff. Across it all, we've embedded financial services tools at the point of sale, so merchants can access a business loan and manage their cash flow in one place. Afterpay furthers our goal to provide omnichannel tools that unlock meaningful value and growth, enabling sellers to capture the next generation shopper, increase order sizes, and compete at a larger scale.
Today, we are a partner to sellers of all sizes - large, enterprise-scale businesses with complex operations, sellers just starting, as well as merchants who began selling with Square and have grown larger over time. As our sellers grow, so do our solutions. There is a massive opportunity in front of us. We're building a significant, meaningful, and lasting business, and we are helping sellers worldwide do the same.
Job Description
As a Senior Software Engineer on the Payment Foundations team, you will be responsible for designing, building, and maintaining Payments platform services and infrastructure that move money for Square. You will be deeply 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.
You will:
- Build our Payments Platform, used by the rest of the organization and a key strategic asset of Square
- Design and implement reliable, high-volume, low-latency, distributed transaction processing systems, making thoughtful tradeoffs between consistency and availability when both are not possible
- Abstract away the legacy APIs of the financial world into consistent, coherent service APIs for Square and our sellers' products to build upon
- Build systems that manage customers' sensitive data and hold Square to the highest standards for security and compliance
- Mentor other engineers and contribute to the direction of the team
- Participate in agile development processes, including stand-ups, sprint planning, and retrospectives
- Work with our product, business, and finance teams to develop Square's global payments strategy
- Focus on operational excellence to deliver fault-tolerant systems enabling our teams to move fast without negatively affecting our customers
Qualifications
You have:
- 5+ years of software engineering experience in Java, Go or similar
- BA/BS degree in Computer Science or equivalent practical experience
- Understanding and curiosity in creating highly available, scalable, low-latency, distributed global systems
- Interest in changing the payments landscape in the US and globally
- Eagerness to learn, share your ideas, and work with others
Even better:
- Enterprise experience with JVM languages (Java, Kotlin)
- Experience designing & operating fault-tolerant, high throughput, low latency services & infrastructure in a microservices ecosystem
- Experience working in the payments industry
Technologies and practices we use:
- Java, Kotlin, Python
- Guice,Protocol Buffers, jOOQ
- MySql, Aurora, GCP Spanner, ElasticSearch, GraphQL
- AWS Cloud Technologies, Kubernetes, terraform, Datadog
- Design patterns, test driven development
- Metrics driven decision making
Qualifications
You have:
- 5+ years of software engineering experience in Java, Go or similar
- BA/BS degree in Computer Science or equivalent practical experience
- Understanding and curiosity in creating highly available, scalable, low-latency, distributed global systems
- Interest in changing the payments landscape in the US and globally
- Eagerness to learn, share your ideas, and work with others
Even better:
- Enterprise experience with JVM languages (Java, Kotlin)
- Experience designing & operating fault-tolerant, high throughput, low latency services & infrastructure in a microservices ecosystem
- Experience working in the payments industry
Technologies and practices we use:
- Java, Kotlin, Python
- Guice,Protocol Buffers, jOOQ
- MySql, Aurora, GCP Spanner, ElasticSearch, GraphQL
- AWS Cloud Technologies, Kubernetes, terraform, Datadog
- Design patterns, test driven development
- Metrics driven decision making