Software Engineer, Developer Experience

  • Melbourne, Australia
  • Full-time

Company Description

When we launched the little white reader, we invented mobile, ubiquitous payments and enabled anyone to start, run, and grow a business. Ten years and billions of transactions later we’re reimagining commerce for businesses of all types and sizes—we’re enabling the independent electrician to send invoices, helping the beauty salon pay its employees, and giving the burgeoning coffee chain capital for a second, third, and fourth location. 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

On the Developer Experience team, we are focused on improving developer velocity and enabling engineers to build applications and integrations to meet the needs of a wide range of merchants. With the continued growth of Square Engineering, our workload and requirements have evolved significantly, demanding the next order of scale and flexibility in our developer environment.

Our day-to-day responsibilities include, but are not limited to:

  • Designing, developing, and maintaining systems to track and report on developer productivity

  • Maintaining and improving tooling and automation surrounding laptop/workstation configuration for development environments

  • Writing and maintaining IDE plugins

  • Ownership and maintenance of tooling used by developers to debug production issues

In the medium term, the Developer Experience team will be responsible for evaluating what the future of development looks like at Square. You will work with engineers, language communities, and stakeholders across the company to determine the best approach for private testing, development work, failover experimentation, and modeling dependencies.

This role is hugely impactful and visible throughout the entire company.


Must Haves:

  • Fluency in at least one of Java, Go, or Ruby and a willingness to learn the others

  • Bachelor’s degree or relevant technical experience

  • Experience working with applications in Linux containers (Docker, Mesos, etc)

  • Experience and skills with the Linux/Unix command line and tools

  • Proficient in unit and integration testing paradigms

  • Strong communication skills

  • A desire to continue learning

  • A personal commitment to quality

Growth Opportunities:

  • Act as a strength multiplier to product engineering efforts

  • Learn about every technology stack used at Square

  • Work at the intersection of the social and the technical, with growth opportunities in both

Technologies We Use:

  • Programming Languages: Ruby, Go, Java, Bash, Python

  • Operating Systems: Linux, OSX

  • Other: AWS, GCP, Kubernetes, Docker

Additional Information

At Square, our purpose is to empower – within and outside of our walls. In order to build the best tools for the businesses and customers we support all over the world, we have to start at home with a workforce as diverse and empowered as our sellers. To this end, we take great care to evaluate all employees and job applicants equally, based on merit, competence, and qualifications. We do not discriminate on the basis of race, religion, color, national origin, gender, sexual orientation, age, marital status, veteran status, disability status, or any other characteristic protected by law. We encourage candidates from all backgrounds to apply. 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.