Position: Senior/Lead Java Developer at Upwork
Company: Upwork
Experience required: 5y
English level: upper

**Company overview**

Upwork ($UPWK) is the leading tech solution for companies looking to hire the best talent, maintain flexibility, and get more done. We’re passionate about our mission to create economic opportunities, so people have better lives. Every year, more than $2 billion of work is done through Upwork by skilled professionals who want the freedom of working anytime, anywhere. Top companies connecting with extraordinary talent around the globe? Upwork is how.

**Position summary**

This is a long-term contract position at Upwork on a full-time remote basis. 

Once you pass the interviewing process in our company, we'll connect you with 2-3 internal engineering teams that develop different products and services and you'll be able to pick up one of them. Teams can be different, e.g. development of payment system, functionality for enterprise clients, functionality for freelancers, platform's API gateway etc. 

Example of the team description:

The Payments team at Upwork oversees over $2 billion in payments and payouts per year in 180 countries. Our payment system is a strategic business differentiator and an essential part of our business.

We are looking for experienced, top-tier engineers that will continue to evolve our payment systems. The payments domain is not for the weak of heart, so we’re looking for developers who are excited and challenged by working on a very complex product domain and build clean and highly accurate code.

You will be involved in designing, implementing, and maintaining the payments service business logic and infrastructure. Our work culture is based on collaborating contributors from around the world. If you’re someone who loves that kind of freedom, then you’ll be working with us.

**Responsibilities**

▢ you will build new features primarily using Java;
▢ our setup requires collaborative work which includes code reviews and writing supporting documentation;
▢ you’ll share the ownership of our code domain and will actively work to increase its quality and reduce technical debt.

**Requirements**

▢ 8+ years of software development experience;
▢ solid knowledge of HTTP and REST;
▢ experience in writing well-structured, easily maintainable unit tests (such as JUnit, Mockito, etc);
▢ experience with relational databases;
▢ proven ability to collaborate with a large, distributed team of engineers over documentation and code;
▢ good spoken and written English;
▢ have a desire to learn new technologies and continually develop your professional skills;
▢ have a value for simplicity and scalable software engineering.

**Nice-to-have**

▢ experience in building payments or e-commerce products;
▢ comfortable working with AWS;
▢ experience building / supporting high load web-applications and solving scalability issues.