Lead/Staff Software Engineer (Java), Messaging Platform

Upwork's Messaging Platform team is looking for a passionate, hard-working, and talented engineer and technical leader to design and develop innovative software solutions that help clients and freelancers on Upwork collaborate, make and stay on top of hiring decisions, and track project and team performance. The platform is a critical component for our clients to run their businesses, and it can be the difference between financial success and failure for our freelancers.

Upwork is a truly global company, which brings some interesting challenges from an engineering perspective. Improving the performance and resilience of our products over high-latency, low-bandwidth network connections, and implementing self-healing protocols to handle failure scenarios, are just a couple of the areas where we have significant room for improvement. As an engineer on our team, you will come to work every day knowing that your contributions will make a noticeable difference for users who depend on the products that you deliver in order to make a living.

You will work in a fast-paced, iterative environment to architect, develop, and deliver cutting edge web services for critical customer facing applications. In the process, you will align with your peers and Product to understand the customer needs and ensure that the systems you build are optimized to fulfilling those needs and ultimately make a meaningful difference in our users' lives.

In this role, you will:

  • Design and develop scalable, high-traffic microservices using the latest open source tools and technologies.
  • Establish architectural principles, select design patterns, and mentor junior team members.
  • Be at the forefront of a company-wide effort to transition away from a monolithic legacy application stack to a modern, distributed architecture based on microservices.
  • Drive a high standard of excellence for web service scalability and availability.
  • Produce high-quality software that is unit tested, code reviewed, and checked in regularly for continuous integration and deployment.
To win in this role, you need:
  • BS in Computer Science or related degree.
  • Experience in designing and developing scalable and highly available REST web services using J2EE.
  • Experience in profiling and tuning Java applications for maximum performance.
  • Flexibility in the face of change, coupled with a strong desire to learn, respond to feedback, and grow. We’re looking for software engineers who grow with learning new technologies and don’t believe in one-size-fits-all solutions.
  • Excellent written and verbal communication skills. Our teams are widely distributed, and you will be required to communicate with both technical and non-technical audiences across different cultures.
Come change how the world works.

At Upwork you’ll make a real difference in the world, rolling up your sleeves to help reinvent how the world works. As a major player in one of the most exciting and fastest growing markets on the planet, you’ll join a team that’s leading the charge in online work – creating new freedom and opportunity for businesses and freelancers alike. In short, you’ll change lives, which will do wonders for your career, self-esteem and karma.

Along the way you’ll enjoy a bona-fide work-life balance (we practice what we preach), with all of the perks you expect from a thriving tech leader (think free breakfast and lunch, happy hours, team outings and the like). Plus every Wednesday is a work from home day for many teams, although our main offices in Mountain View, San Francisco and Oslo are warm and inviting. Naturally you’ll also draw a nice paycheck and enjoy some meaty benefits. So join us as we work wonders creating the future of work.

Back to top