Engineering Intern - Summer 2017
If you are up to the challenge of building new and cutting edge large scale applications used by millions of people around the world on a daily basis to earn a living and improve their lives, we want to hear from you. Upwork’s Engineering team is looking for a passionate, hard-working, and talented Software Engineer Intern to design and develop innovative software solutions that connect clients and freelancers on our platform.
As an Engineering Intern, you will be working on building a core part of our business application using a Java based distributed services architecture. You will have the opportunity to work with world class product managers, designers and engineers and be responsible for providing a delightful product to our clients in collaboration with them.. You will be part of a fast moving distributed team working in three different continents.
In this role, you will:
- Build micro services using the latest open source tools and technologies (we use Dropwizard/Hystrix/Jetty/Kafka and more).
- Be responsible for the architecture and design of your service (with support from another member of the team).
- Ensure that these services meet high standards for scalability and availability.
- Work on some older (Perl) and many current & exciting technologies (Java 1.8, DynamoDB, ElasticSearch, PostgreSQL etc.)
- Work with the QA and DevOps teams to ensure smooth deployments and quick (and automated) rollbacks.
- Collaborate with a world class team of engineers, product managers and designers.
To win in this role, you need:
- Be able to communicate and work with a globally distributed team.
- Understand micro services and the trade-offs between when to use them or not.
- Understand and have opinions on how to build distributed systems.
- Understand fault tolerance, resiliency, eventual consistency and how they intertwine into the development of a scalable and highly available system.
- Understand how to write RESTful APIs and maintain the contracts they expose while adding features, improving performance etc.
- Experience with SQL (PostgreSQL) & NoSQL databases such as DynamoDB, Cassandra or MongoDB.
- Comfortable working with (reading and writing) large and diverse Java based web applications.
- Have used as many of the following tools as possible: Java (1.8), PostgreSQL, DynamoDB, Kafka, ElasticSearch/CloudSearch, AWS Lambda, DynamoDB Streams, AWS Data Pipeline, Eureka, Hystrix, Git, PHP, Perl.
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