Intermediate Software Developer, Backend
Job description
About the role
Software engineers turn product ideas into working code. Engineers work in small teams, review each other's work, and ship in small batches. Most teams follow agile practices such as sprints and daily standups. Engineers also write tests, fix bugs, and improve performance. The field values clear communication as much as technical skill. Engineers spend part of every week on planning, code review, and debugging, not just writing new code. The ability to explain a technical decision in plain words separates strong engineers from the rest.
Key facts
What you'll do
Written software tools, libraries, automation, and services to support development workflows.
Designed and built infrastructure platforms to improve platform capabilities and support team objectives.
Identified and implemented new platform features to address evolving needs.
Researched and evaluated new technologies to assess their applicability and benefits.
Refactored, rewrote, or retired existing platform features to maintain performance and relevance.
Operated developer experience and production application environments to ensure stability and usability.
Diagnosed and repaired distributed systems to resolve issues and reduce downtime.
Performed maintenance, upgrades, and migrations to keep systems current and reliable.
Enabled development teams by providing clear support and removing obstacles.
Provided executable interfaces to infrastructure platforms for consistent integration and usage.
Participated in a flexible on-call rotation to address production issues as needed.
Requirements
The posting states a bachelor's degree requirement. A degree in Computer Science or Engineering or equivalent experience working in a software engineering role.
Ability to write software and working knowledge of software engineering practice, including Java programming language and strong working knowledge of object-oriented programming concepts.
Proven experience creating stable, reliable, performing, and maintainable code.
Familiarity with data modeling and schema design.
Knowledge of data structures and algorithms.
Open communication that clearly conveys thoughts in writing and verbally, listens attentively, and asks questions for clarification and understanding.
Collaboration and teamwork that works with others to deliver results, contributing to team priorities.
Self development that is personally committed to continuously improving skills and practices.
Problem solving that uses an organized and logical approach to find solutions, looking beyond the obvious to understand root causes.
Resilience and tolerance for change or ambiguity to advance work and projects effectively.
Preferred working knowledge of Linux systems administration, including troubleshooting system-level issues, networking across layers L3-L7, and basic monitoring.
Preferred experience with operating, building, and maintaining cloud infrastructure.
Preferred understanding of SaaS software development practice, ideally through experience on a SaaS product.
Practical notes
Use of AI may support screening and assessment, while final hiring decisions are made by humans using professional judgment.
Typical interview steps
Hiring for engineering roles usually starts with a recruiter screen, followed by one or two technical rounds. Candidates often solve a coding problem, discuss past projects, and answer system design questions. Some loops include a take-home task. Final rounds typically cover team fit and give candidates a chance to ask questions. Interviewers look for how you break down an unfamiliar problem, not just whether you reach the answer. Practicing a few problems aloud and reviewing your own past projects are the best preparation.
Good to know
The role focuses on backend development within a distributed system environment.
Java and object oriented programming concepts are central to the required technical skills.
Stable, reliable, and maintainable code is a core quality for production platforms.
Data modeling, schema design, and algorithms knowledge support long term system performance.
Linux administration and cloud infrastructure experience are preferred for operating environments.
SaaS product experience helps align the role with company practices.