Upwork
Contract: Senior/Lead Back End Engineer (Java and Python)
Job Summary
This role involves designing, developing, and maintaining scalable backend systems using Java, Kotlin, and Python, with a focus on performance and reliability. Candidates should have experience with REST, GraphQL, databases, AWS, and solving scalability issues, along with collaborating in distributed teams and participating in Agile processes. The position requires supporting high-load web applications and potentially working with AI agents or large language models. It is a contract role with responsibilities including code reviews, documentation, and on-call incident management.
Required Skills
Job Description
Upwork ($UPWK) is the world’s work marketplace. We serve everyone from one-person startups to over 30% of the Fortune 100 with a powerful, trust-driven platform that enables companies and talent to work together in new ways that unlock their potential.
Last year, more than $3.8 billion of work was done through Upwork by skilled professionals who are gaining more control by finding work they are passionate about and innovating their careers.
This is an engagement through Upwork’s Hybrid Workforce Solutions (HWS) Team. Our Hybrid Workforce Solutions Team is a global group of professionals that support Upwork’s business. Our HWS team members are located all over the world.
Are you a Senior/Lead Software Engineer who is passionate about designing and building highly performant, robust systems to create outstanding user experiences and help impact the professional lives of millions of independent professionals and clients around the world? Do you relish solving important problems? Do you enjoy identifying potential scalability issues, implementing solutions that follow engineering standard methodologies, and coming up with creative solutions to both technical and product challenges? If so, we’d love to hear from you!
This is a contract position with the potential for contract renewal based on project needs and accomplishment towards deliverables.
Work/Project Scope:
- Collaborate with cross-functional teams to understand requirements and deliver high-quality solutions.
- Design, develop, test, and maintain scalable and robust server-side logic, databases, and APIs according to project requirements.
- Utilize programming languages such as Java or Kotlin for backend development.
- Architect and optimize backend systems for performance, scalability, and reliability.
- Implement security measures to protect backend systems and data.
- Contribute to the enhancement of our codebase by improving quality and documentation, and reducing technical debt.
- Stay updated on current and emerging technologies.
- Utilize collaborative tools such as Gmail, Slack, Confluence, Jira, and various others for efficient communication, documentation, and project management.
- Participate in code reviews and design reviews.
- Provide technical guidance and support to junior developers.
- Document code and technical specifications for future reference.
- Analyze system performance and respond to incidents within specified deadlines, and provide services during on-call rotations to address system issues
- Provide services in the Scrum process, including sprint planning, daily stand-ups, and retrospective meetings, to contribute to project progress and team coordination. Participate in project-critical meetings and provide regular status updates on deliverables.
- Manage your time independently and effectively to achieve project deliverables, which may require an estimated 40 hours of project-related effort per week.
- Time zone PST +/-3 (or willing to work in a way that overlaps with 9 am-3 pm PST).
Must-Haves (Required Skills):
- Solid software development experience using Java/Kotlin and Python;
- Extensive knowledge of REST and/or GraphQL;
- Experience in writing well-structured, easily maintainable unit tests (such as JUnit, Mockito, etc);
- Experience with relational and non-relational databases;
- Consistent track record of collaborating with large, distributed teams of engineers over documentation, code, and reviews;
- A desire to learn new technologies and continually develop your professional skills;
- Comfortable working with AWS;
- Experience building / supporting high-load web applications and solving scalability issues;
- Experience working with AI Agents to any degree (or extensive experience with LLMs).
Upwork is proudly committed to fostering a diverse and inclusive workforce. We never discriminate based on race, religion, color, national origin, gender (including pregnancy, childbirth, or related medical condition), sexual orientation, gender identity, gender expression, age, status as a protected veteran, status as an individual with a disability, or other applicable legally protected characteristics.
To learn more about how Upwork processes and protects your personal information as part of the application process, please review our Global Job Applicant Privacy Notice
Upwork
A freelancing platform connecting businesses with independent professionals for remote work across various industries.
See more jobsSafe Remote Job Search Tips
Verify Employer Thoroughly
Research the company's identity thoroughly before applying. Check for a professional website with contacts, active social media, and LinkedIn profiles. Verify details across platforms and look for reviews on Glassdoor or Trustpilot to confirm legitimacy.
Never Pay to Get a Job
Legitimate employers never require payment for applications, training, background checks, or equipment. Always reject upfront payment requests or demands for bank details, even if they claim it's for purchasing necessary work gear on your behalf.
Safeguard Your Personal Information
Protect sensitive data like SSN, bank details, or ID copies. Share this only after accepting a formal, written job offer. Ensure it's submitted via a secure company system or portal, never through insecure channels like standard email attachments.
Scrutinize Communication & Interviews
Watch for communication red flags: poor grammar, generic emails (@gmail), vague details, or undue pressure. Be highly suspicious of interviews held only via text or chat apps; legitimate companies typically use video or phone calls.
Beware of Unrealistic Offers
If an offer's salary or benefits seem unrealistically high for the work involved, be cautious. Research standard pay for similar roles. Offers that appear 'too good to be true' are often scams designed to lure you into providing information or payment.
Insist on a Formal Contract
Always secure and review a formal, written job offer or employment contract before starting work or sharing final personal details. Ensure it clearly defines your role, compensation, key terms, and conditions to avoid misunderstandings or scams.