Software Engineer - Platform Team
Job Description
Afterpay’s mission is to power an economy in which everyone wins, to play fair, trust people and reward them for doing the right thing. We are obsessed with our product and we see and feel the impact of our work as more and more people gain financial freedom and retailers grow across the globe. Offered by more than 70,000 of the world’s best retailers and has more than 14 million active customers globally. Top fashion and beauty retailers across the globe - including Ebay, The Iconic, Myer, Foot Locker, Adore Beauty, Mac Cosmetics, Kathmandu and many others. We also have offices across the globe including New Zealand, USA, China, UK and Europe! The Opportunity Afterpay is looking for a Software Engineer to help enhance and scale our platform systems that underpin our products. Our mission in Platform Engineering is to empower product teams to deliver value to the end customer in a faster and safer manner by focusing on availability, reliability and scalability. You’ll be working with: Platform / Marketplace Scalability The Marketplace Scalability team’s mission is to work on the highest priority long term scaling issues related to critical customer facing products. A current multi year focus for the team is to deliver new services that will replace order lifecycle functionality within the afterpay monolith and significantly uplift scalability and reliability as related to online and in-store checkout. This is an exciting and unique opportunity to join the Platform Engineering division that powers one of the world’s largest payment networks and which makes a direct, tangible impact on Afterpay’s growth and success.
Job Requirement
What you’ll be doing
· Build and maintain/enhance services using Kotlin, Java and related open source technologies · Practice eXtreme Programming (XP) engineering techniques of Software Development
· Fostering the use of agile practices for Software Delivery
· Work in cross-functional Product teams responsible for the discovery, delivery and validation of product features via microservices, APIs, web-apps
· Work with the software engineering team following our software development principles, guided by the Staff Engineers and Engineering Managers.
·Peer review design decisions, code, automated tests and documentation
· Participate in the ongoing design and architecture of our evolving core platforms and services · Collaborate with product managers, experience designers & business stakeholders to build efficient and reliable feature implementations that will delight our customers
·Ensure that story estimates and code reviews are completed in a timely manner Who are you?
·A strong track record of software development, preferably Kotlin, Java and other JVM languages
· Solid understanding of how to build testable, decoupled, maintainable code and other engineering best practices such as XP techniques (TDD, pair-programming, CI, etc)
·Strong experience working with Cloud technologies (we use AWS)
·Experience working within an agile environment
·Very strong working knowledge of backend technologies including but not limited to: Springboot, ORM/Hibernate, relational and NoSQL databases
·Understanding of integration technologies and patterns: Kafka, RESTful APIs, gRPC, JSON and Structured Logging
·Experience with version control, preferably Git
·The ability to build scalable and maintainable software-as-a-service applications using modern JVM languages
·Willingness to learn and apply new methodologies and techniques as required
·Bachelors’ degree in Computer Science or relevant field
·Great communication skills, able to discuss engineering issues and trade-offs without hesitation.