Junior Backend Engineer
Job description, salary, sourcing, interview questions and a 30/60/90 plan to hire a Junior Backend Engineer in a German SMB.
Compiled by the Join team from public data and our hiring experience.
Updated
At a glance
- Median salary€48,000€42,000 – €55,000
- Time to fill35–60 days
- Experience0–2 years
How to hire a Backend Engineer for your SMB
Before you write the job posting, settle three questions. They decide which profile you are actually looking for and help you avoid the most common mistakes in backend hiring at a German SMB.
Question 1: A backend specialist, full-stack with a backend lean, or DevOps? Backend Engineers focus on the API, the database, scalability, security and production operations of the server side. If your product is simple CRUD logic with a manageable UI and your team is under 5 engineers, full-stack with a backend lean is often the right choice. If, on the other hand, you have distributed systems, high load, hard latency requirements or complex data models, backend specialization is the right answer. DevOps or SRE as a dedicated role becomes worthwhile only from around 8 to 12 Backend Engineers; before that the backend team carries the operational responsibility too.
Question 2: Which stack do you have and how mature is it? A good Backend Engineer on Go and Postgres is not immediately productive on Java with Oracle; they need 3 to 6 weeks of onboarding. For a mid-level profile, stack fit often matters more than absolute seniority. Put your stack prominently in the posting (language, web framework, ORM or query builder, relational DB, queue, cache, orchestration); that filters out poorly matched profiles automatically. If your stack counts as legacy (classic PHP, older Java EE monoliths), communicate it openly and look specifically for profiles who enjoy codebase modernization, instead of importing disappointed job-changers.
Question 3: Which system complexity do you serve today, and which in 18 months? A mid-level backend profile in a service with 100 requests per second and one database makes different decisions daily than in a system with 5,000 requests per second, several services, event streams and multi-region consistency. The ideal profile differs: pragmatism and product proximity in the first case, deep experience with distributed systems and observability in the second. Clarify this dimension already in the posting and align the system-design exercise with your real load, not a hypothetical scale.
If all three answers point to a full-time Backend Engineer (and not a full-stack or DevOps profile), move on to the template below.
JD template
Backend Engineer (m/w/d): product and platform development at an SMB
[Company name], a B2B SMB in [industry] based in [city], [X] employees, [X] M€ ARR, is looking for a Backend Engineer to strengthen a tech team of [X] engineers.
Your role
You design, build and operate the server side of our application (APIs, data models, asynchronous processing, integrations with third-party systems), independently on familiar topics and in alignment on structuring decisions. You share responsibility for production operations (observability, on-call or standby depending on the organization). You report to the [Tech Lead / CTO / technical management].
Key responsibilities
- Deliver backend features end to end: understanding the product need, data model, API design, implementation, tests, deployment, support in production.
- Contribute to architecture decisions in your area of responsibility (data model, library choice, queue strategy, consistency guarantees, service boundaries).
- Ensure code quality: review colleagues’ PRs, apply the conventions, refactor in passing where it makes sense.
- Contribute to resolving production incidents (on-call or standby depending on the organization), co-write post-mortems, update runbooks.
- Document important technical decisions and non-trivial zones of complexity (ADR or equivalent).
- Collaborate with frontend, SRE and DBA profiles, PM, design and management on product briefs; constructively challenge infeasible or counterproductive requirements.
Profile
- Essential: [3 to 7] years of professional experience in backend development; solid command of at least one modern backend language (Go, Python, Java, Kotlin, Ruby, Node or comparable); experience with relational databases (Postgres, MySQL or comparable), API design and production operations (deployment, monitoring, incident handling).
- Desired: familiarity with our stack [to be completed]; experience with asynchronous processing (queues, event streams), distributed systems or multi-tenant architectures; experience at an SMB or startup (high autonomy); open-source contributions or visible side projects.
- Disqualifying: no experience with independent production operations; refusal of on-call or standby despite an operational requirement; blanket rejection of modern tooling (observability, CI/CD, containers).
What we offer
- Gross annual compensation: [52 to 78] k€ depending on experience. No structural variable; possibly VSOP or ESOP depending on the company’s stage.
- Model: [full-time, hybrid 2 to 3 days / week on-site, based in [city] / remote-friendly].
- Benefits: [company pension, bike leasing, employee equity, vacation days, home-office policy, hardware budget, professional development budget].
- Stack: [to be completed: language and framework, DB, queue, cache, infra, CI/CD, monitoring].
Salary band
Base salary, gross annual
- 25th percentile
- €42,000
- Median
- €48,000
- 75th percentile
- €55,000
Gross fixed salary per year for a junior Backend Engineer (0 to 2 years of experience, incl. recent graduates and bootcamp leavers) at a German SMB or Mittelstand company. Berlin, Munich and Hamburg in the SaaS and scale-up scene pull upward (52 to 62 k€); classic Mittelstand and regional locations trend downward (40 to 46 k€). A relevant internship or working-student stint and a visible portfolio (GitHub, side projects) pull up; no production exposure at all pulls down. Engineering roles in Germany usually have no variable compensation component.
Sources: Stepstone Gehaltsdaten Backend-Entwickler:in Deutschland 2026; Stepstone Gehaltsreport 2026 (Berufseinsteiger IT); Honeypot State of Software Engineering Germany 2025
Where to source this role
LinkedIn
Job posts from €200-400 / month; Recruiter Lite optionalFor junior backend profiles, well-written job posts (not active-sourcing outreach) do most of the work: recent graduates and career changers search actively and apply. Lead with the stack, the mentoring you offer and an explicit welcome to career changers and bootcamp leavers. Active sourcing pays off far less than for senior profiles, because juniors have no track record to filter on.
Bootcamps, universities and working-student pipelines
Bootcamp partnerships often free to €500 per hire; working-student wage during the stintThe highest-signal junior channel in Germany: career pages and alumni boards of coding bootcamps (Le Wagon Berlin, neue fische, Spiced Academy, Techstarter) and university job boards (TU/FH career centres), plus converting your own working students and interns to permanent roles. A working-student stint that converts is the single most reliable path to a strong junior hire.
Junior-friendly tech boards and communities
€100-300 per adBoards and communities that explicitly welcome entry level: German Tech Jobs and We Are Developers (filter for junior), plus local meetups and Discord/Slack communities around specific stacks. Lower volume than LinkedIn but higher intent — candidates self-select for the stack and for genuinely junior openings rather than applying to everything.
Evaluation playbook
For a junior Backend Engineer the evaluation shifts away from track record and toward fundamentals, learning speed and coachability. The bounded coding task (stage 3) is the most predictive step; a full system-design exercise matters far less than at mid or senior level.
Stage 1: CV and portfolio review
With little or no professional experience, weight the portfolio over the CV: a visible GitHub, a finished side project deployed somewhere, a bootcamp capstone, a relevant internship or working-student stint. Look for signal that the candidate has shipped something end to end, however small, rather than only followed tutorials. The degree matters less than evidence of building.
Stage 2: Phone screen (30 min)
Three questions: (1) Walk me through a project you built and are proud of; what was hard? (2) How do you get unstuck when you hit something you don't know? (3) Why backend, and why us? Outcome: go/no-go. Assess motivation and communication, not deep technical knowledge.
Stage 3: Bounded coding task (60 min, pairing)
Pair on a small, realistic task (add a simple endpoint, fix a bug, model a small table). Assess whether they can read existing code, reason out loud, use documentation, and iterate on feedback. Coachability shows here: do they incorporate a hint and improve, or get defensive? Avoid algorithmic gotchas; favour everyday tasks.
Stage 4: Fundamentals conversation (30 to 45 min)
A discussion (not an exam) on backend basics: what an HTTP request is, what a database index does, request/response vs. async, why you validate input. You are checking for a clear mental model and honesty about the edges of their knowledge, not senior-level depth. A confident I don't know that yet, but here's how I'd find out is a good answer.
Stage 5: References or a check-in
For recent graduates, a reference from a bootcamp instructor, internship manager or working-student supervisor. Ask about learning speed, reliability and how they take feedback — the three traits that most predict a junior's first year.
Structured interview questions
BehavioralBackend fundamentals Walk me through a backend project or feature you built end to end (side project, bootcamp capstone, internship). What decisions did you make and what was the hardest part?
What a strong answer surfacesEvidence of shipping something complete, however small: a data model, an endpoint, a deployment. Honest reflection on what was hard and what they'd do differently. Bonus: they can explain a trade-off they made (why a table instead of a file, why REST). A vague tutorial-follower answer with no ownership is a weak signal.
BehavioralAutonomy and resourcefulness Tell me about a time you were stuck on a technical problem you didn't know how to solve. What did you do?
What a strong answer surfacesA structured way of getting unstuck: reading docs and error messages, searching, minimal reproduction, asking for help after a genuine attempt (with a summary of what they tried). Bonus: they mention learning something reusable from it. Someone who just waited to be told the answer shows weak resourcefulness.
BehavioralCoachability Describe a time you got critical feedback on your code or your work. How did you react?
What a strong answer surfacesOpenness and the ability to separate feedback from ego. Bonus: a concrete case where feedback changed how they work. For a junior, coachability is the single most important trait; defensiveness here is a serious flag at an SMB with a small team.
SituationalPragmatism and prioritization You're asked to add a new field to an API endpoint and store it in the database. You've never touched this codebase. How do you approach it?
What a strong answer surfacesA sensible path: read the existing similar code first, follow the conventions already there, make a small change, test it locally, ask a targeted question if blocked. Bonus: they mention checking whether a migration is needed. Someone who wants to rewrite things their way on day one shows poor judgement.
SituationalCoachability Your code passes locally but a reviewer points out it breaks when the input is empty. How do you handle it?
What a strong answer surfacesGratitude for the catch, a quick fix, and ideally adding a test so it can't regress. Bonus: they reflect on checking edge cases (empty, null, very large) proactively next time. A defensive but it worked on my machine answer is a coachability flag.
SituationalAutonomy and resourcefulness You realise halfway through a task that you don't understand part of the requirement. It's mid-afternoon. What do you do?
What a strong answer surfacesAsking early rather than guessing and burning a day: a concise, specific question to the right person, with context on what they've understood so far. Bonus: they try to answer it themselves first (read the ticket, the code). Silently building the wrong thing is the failure mode to screen out.
TechnicalBackend fundamentals In plain terms, what happens when a client makes an HTTP request to your API? Walk me from the request to the response.
What a strong answer surfacesA clear mental model at the right level: routing, handler, maybe a database query, a response with a status code. Bonus: they mention status codes, JSON, or validation. You're checking for a coherent picture, not senior depth. Total confusion here is a concern for an entry backend role.
TechnicalDatabase fundamentals What is a database index, and why would you add one? What's a downside?
What a strong answer surfacesThe basic idea (faster reads by avoiding a full scan) and at least one downside (slower writes, storage). Bonus: they connect it to a query they'd want to speed up. Not knowing what an index is at all is a gap for a backend role, but a partial answer with sound intuition is fine at junior level.
TechnicalDatabase and security hygiene Why should you never build a SQL query by pasting user input directly into the string? What do you do instead?
What a strong answer surfacesAwareness of SQL injection and the fix (parameterized queries / prepared statements). You don't need a security specialist, but a junior backend hire should know not to concatenate user input into SQL. Bonus: they mention validating input as a second layer.
ValuesCoachability How do you like to learn on the job — pairing, docs, reading code, asking questions? How do you want to be supported in your first months?
What a strong answer surfacesSelf-awareness about how they learn and a realistic appetite for mentoring and pairing. Bonus: they ask about your onboarding, review culture or mentoring. Someone who expects to be fully independent immediately, or who wants zero guidance, is a poor fit for a junior role at an SMB.
ValuesCross-functional teamwork How do you work with teammates when you disagree, or when you need help but everyone looks busy?
What a strong answer surfacesA collaborative posture: asking respectfully, timeboxing solo attempts, being comfortable saying I don't know. Bonus: an example of helping a peer in return. At an SMB the junior's willingness to ask and to collaborate directly affects how fast they become productive.
ValuesMentoring and knowledge sharing Where do you want to be technically in two years, and what do you want to get better at first?
What a strong answer surfacesGenuine curiosity and a growth mindset with some direction (a stack, a domain, an area like databases or APIs). Bonus: it's realistic and connects to the role. You're checking that the role and their trajectory point the same way, which drives retention for junior hires.
How to recognize a great hire
| Trait | Below bar | On bar | Above bar |
|---|---|---|---|
| Backend fundamentals | Confused about the basics (HTTP, requests/responses, what a database does). Copies code without a mental model. Would need heavy hand-holding on every task for months. | Has a working mental model of the fundamentals from a bootcamp, degree or side projects. Can build a simple endpoint or query with guidance and grows quickly with review. The expected level for a strong junior. | Unusually solid fundamentals for a junior: understands indexing, status codes, validation and async at a conceptual level, and applies them without prompting. Effectively a fast-track profile toward mid-level. |
| Learning speed and coachability | Slow to absorb feedback or repeats the same mistakes. Defensive in review. Waits to be told the answer rather than trying first. | Takes feedback well and applies it. Learns a new tool or convention within a sprint or two with support. Asks for help after a genuine attempt. | Learns remarkably fast: incorporates a hint and generalises it, picks up conventions on the first pass, and starts helping onboard the next new joiner. The trait that most predicts a junior's first year. |
| Autonomy and resourcefulness | Blocks silently for hours, or asks at the first obstacle with no prior attempt. No method for reading docs or error messages. | Tries the obvious paths (docs, error messages, existing code) before asking, and asks well-scoped questions with context. Stays functional on familiar tasks. | Resourceful beyond their level: reads library code, reproduces a bug minimally, and unblocks themselves on unfamiliar topics, while still knowing when to ask early. |
| Communication and teamwork | Struggles to explain what they built or where they're stuck. Silent in stand-ups. Uncomfortable asking for help or admitting gaps. | Explains their work and their blockers clearly enough for the team to help. Comfortable saying I don't know. Collaborates and asks respectfully. | Communicates unusually well for a junior: writes clear PR descriptions, gives useful context, and already helps peers. A strong culture add on a small team. |
30 / 60 / 90 day success plan
By day 30
- Local development environment set up with support, access to the main backend services, and a first small PR merged to production with review
- Completed onboarding on the team's conventions, review process and where to ask for help
- Guided reading of one business-critical service with the mentor, plus a first documented 1:1 on expectations
By day 60
- Delivers small, well-scoped tickets (bug fixes, small endpoints) mostly independently, asking targeted questions when blocked
- Writes tests for their own changes and starts giving small, constructive review comments on peers' PRs
- Comfortable navigating the codebase and the main data models without step-by-step guidance
By day 90
- Owns a small feature end to end (with review at the design step), from ticket to deployment
- Visibly faster ramp on new tasks; needs help mainly on genuinely new concepts rather than day-to-day work
- Formal check-in with the mentor and tech lead: ramp on track, a clear growth plan for the next quarter
Common hiring mistakes for this role
Junior backend hiring fails in different ways than senior hiring: the risk is not a mis-scoped architecture but hiring for polish over potential, or dropping a junior into a team with no capacity to mentor.
Screening juniors with senior-level interviews
Running a full system-design exercise or LeetCode-Hard filter on a junior selects for interview preparation and academic pedigree, not for the traits that actually predict a junior's first year: learning speed, coachability and fundamentals. Use a bounded coding task and a fundamentals conversation instead, and score potential and how they take feedback.
Hiring a junior with no capacity to mentor them
A junior Backend Engineer is an investment: for the first 3 to 6 months they consume more senior time than they save. If your one or two senior engineers are already underwater, a junior hire will stall, get frustrated and leave. Only hire a junior when someone has explicit, protected time to pair, review and unblock them.
Optimising for the finished portfolio over the trajectory
A candidate with a beautifully polished portfolio may have spent months on it with heavy help; another with rougher projects may learn twice as fast. Probe how they built things and how they got unstuck, not just the end result. Trajectory and coachability beat a shiny GitHub for an entry hire.
Underpaying because they're junior, then losing them in a year
The German junior market is competitive; paying visibly below the band to save a few thousand euros is a false economy when replacement and re-onboarding cost far more. Pay fairly within the junior band, be transparent about the growth path, and you keep the person you invested six months of mentoring in.
Frequently asked questions
What does a Junior Backend Engineer earn at an SMB in Germany?
The reference range for a junior Backend Engineer (0 to 2 years of experience, including recent graduates and bootcamp leavers) at a German SMB is 42 to 55 k€ gross fixed salary per year (median around 48 k€). Berlin, Munich and Hamburg in the SaaS and scale-up scene pull upward (52 to 62 k€); classic Mittelstand and regional locations trend downward. A relevant internship, working-student stint or a visible portfolio pulls up. Engineering roles in Germany usually have no variable compensation component.
Should I hire a junior or a mid-level Backend Engineer?
Hire a junior when you have explicit senior capacity to mentor and a steady stream of well-scoped work; a junior is an investment that pays back after 3 to 6 months. Hire a mid-level engineer when you need someone productive within weeks, or when your one or two seniors have no time to pair and review. If the backend team is a single senior engineer under pressure, a mid-level hire is usually the safer first move; add juniors once there is bandwidth to grow them.
How long does it take to hire a Junior Backend Engineer in Germany?
Expect 35 to 60 days between posting and a signed contract — faster than mid or senior hires because the candidate pool is larger and juniors tend to move quickly. The main time sink is volume: junior postings attract many applications, so a fast, structured screen (portfolio review plus a short bounded task) is what keeps the timeline short without sacrificing quality.
Do Junior Backend Engineers need a university degree?
No. The German tech market widely accepts bootcamp graduates (Le Wagon Berlin, neue fische, Spiced Academy) and self-taught profiles for junior roles, provided there is evidence of building: a portfolio, a capstone, an internship or a working-student stint. A degree is reassuring but not required. Assess on a bounded coding task, fundamentals and coachability rather than academic pedigree.
How should the interview differ from a senior interview?
Drop the full system-design exercise and any LeetCode-Hard filter. Centre the process on a bounded, realistic coding task (can they read code, reason out loud and take a hint?), a fundamentals conversation (HTTP, indexes, validation), and behavioural questions about learning speed and how they take feedback. You are hiring for potential and coachability, not track record.