Senior Software Developer

Schulz.codes GmbH
Darmstadt, Germany
1 day ago
Apply on www.adzuna.de
Prepare application

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Experience level
Expert
Experience required
6 years minimum
Compensation
€75,000.0 - €95,000.0
Working hours
Regular working hours
Languages
German
Job source

Tech stack

Application Programming Interfaces (APIs) Artificial Intelligence Amazon Web Services Microsoft Azure Cloud Computing Code Review Pair Programming Google Cloud ReactJS Backend Integration Frameworks Front End Software Development
+1 more
Domain Driven Design

Job description

  • Take full responsibility for entire features and epics, from conception through deployment
  • Quickly get your bearings in unfamiliar codebases and see the big picture of the entire system-across backend, frontend, infrastructure, and interfaces
  • Communicate directly with business teams, make decisions about architecture, and take ownership of them
  • Raise risks, dependencies, and integration issues early on-not just right before release-and build small proof-of-concepts when a technical question can’t be resolved otherwise
  • Estimate in a way that accounts for uncertainty: not “five days,” but “five days, risk: the API specification is still unclear”
  • Get the team on board: pair programming, reviews that foster learning, onboarding, and standards and conventions that will endure even after you’re gone

For us, the last point isn’t just a bonus-it’s the heart of the matter. We’re on-site with the client to help the entire team work faster, not just to check off tickets., * Native-level German, because you’ll be communicating directly with German business departments and modeling domains

What Will Give You a Significant Edge

  • Interface and integration design
  • Active communication with customers
  • Gradual modernization of large legacy landscapes
  • “API as a Product” and Developer Experience
  • Active engagement with current developments in AI and automation

Requirements

What you bring to the table

  • About six to eight years of professional experience, including several years of backend development in a typed language in production
  • You’ve taken responsibility for architecture yourself, not just implemented it: Domain-Driven Design, hexagonal architecture, and modular monoliths are decisions you’ve made and stood by
  • Making decisions even when requirements are still fluid
  • Clean modeling of business domains
  • Cloud at the architectural level, with a deliberate selection of services (AWS, Azure, and GCP are all equally viable to us)
  • Reliably deliver React without being a front-end specialist
  • Write tests, lead by example in code reviews

Benefits & conditions

The people. When we ask our own team members what keeps them here, the team comes first. We communicate openly and directly, with respect, and everyone has each other’s backs. There are six of us, so there’s no one to hide behind-but also no one who makes decisions over your head. By the way, we’re not a family. We’re colleagues who get along well, and that’s enough.

Short decision-making paths. When a new tool comes along, we try it out. We don’t go through twenty thousand processes first, like you’d see in a large corporation. Plus, we have regular one-on-one meetings with the CEO, with no middle management in between.

When the workday ends, it’s over. No constant overtime. If one week was demanding, we’ll make sure the next one is intentionally shorter.

€75,000 to €95,000 per year. The range is intentionally set at the higher end right from the start so we can both save ourselves the hassle of renegotiating later.

Four hours of professional development per week. Fixed in the calendar, usually on Fridays. We set the learning goals together every six months during our development review. Plus, there’s a weekly AI catch-up with the team.

Remote, but not location-independent. You’ll work from home with flexible core working hours: you should be easily reachable between 9 a.m. and 3 p.m. Every two weeks, we’ll meet in Darmstadt to work together, hold a retrospective, and take turns hosting a “pizza lounge” with short presentations from the team. This isn’t a job offer-it’s the rhythm at which this team operates. That’s why we’re looking for someone for whom Darmstadt is a day trip without an overnight stay-Frankfurt, Mainz, Wiesbaden, Aschaffenburg, and everything in between.

Let’s be honest: not everything is fully set up here yet. There are six of us, and we’re just starting to work on some processes. You’ll find things that you know are done better elsewhere. Instead of silently getting annoyed about them, you’ll help reshape them.

If you’re wondering how stable things are with just six people: We rely on a small number of customers-that’s true-and we don’t pretend otherwise. But we’re not operating on a shoestring budget either. We currently have about four months’ worth of cash reserves in the bank, which means the business can keep running for four months even if no more invoices were paid starting tomorrow. If you’re looking for maximum security, though, you’re still better off with a large corporation.

About the company

Anyone can write code these days. Deciding what to build-and what not to-has become the scarce resource. That’s what the client pays us for, and that’s why we pay you. We want you to be a voice of clarity amid all the AI clutter out there-a guiding light for a client team to follow.

The stakes are high: good work alone isn’t enough here. A decision you can’t explain won’t be implemented, no matter how correct it is. We’ll help you get better at this. But we can’t do it for you.

We’re schulz codes: six people, remote-first, based in Darmstadt. We join the development teams at corporations and product companies so they can deliver faster and more reliably afterward. Not as just another developer on the project, but as the people who elevate the output of the entire team. That’s only possible if we’re really good at what we do-which is why we don’t hire quickly, but carefully.

Yes, this is agency work. But not what you might imagine. You won’t be jumping between five projects; instead, you’ll join a client team on a permanent basis and stay there. You’ll truly get to know the domain, know the people by name, and see the impact of your decisions a year down the line. There are times when a second context comes into play, especially when switching projects. But that’s the exception, and we’ll let you know in advance.

The role in a nutshell: You join a client team with us, help build it from the ground up, and are the go-to person for technical questions.

Here, you’ll get three things-and we mean that literally.

  • Ownership. You make your own decisions about architecture, talk directly with the business departments, and then take full responsibility for what you’ve decided. No one makes decisions over your head and then just has you implement them. But you won’t be on your own: We approach every project with at least two people. Placing a single developer somewhere and billing by the hour is exactly the kind of business we don’t want to be in.
  • Impact. You’re not judged by how many tickets you close, but by what the team around you is capable of six months later. And you’ll see that too-we’re small enough for that.
  • And if something doesn’t sit right with you, you speak up and change it-whether it’s with us or with the client. That’s not a matter of courage here-it’s just part of the job.

This is a senior role in delivery. You won’t be leading a team, and we won’t dangle a “lead” title in front of you as a carrot. What you’ll get is real technical responsibility, direct client contact, and the time to become truly great. We promise you less here than other job postings, but we deliver on what we promise.

Where we’re headed, to be honest: Custom software and agency work will look different in a few years than they do today. AI is currently changing what clients actually pay for. We’re aware of this, and we’re not just sitting back and waiting it out. We’re currently testing various ideas and models that combine fun, learning, and profitability. Growing by hiring more people or putting in more hours is definitely not part of that. We’d be happy to tell you exactly what we’re testing during our first conversation., * Node on your resume. If you come from a Spring or .NET background and have React experience, we’ll plan your onboarding into our stack. What we can’t teach you is architectural substance-that has to be there

  • A specific Node framework, whether NestJS, Express, or Fastify: it’s the substance that counts
  • A college degree. We value skill, not a piece of paper

What interests us more than your tech stack

There are plenty of people with the right technical skills; the role comes down to the person. You must have two things.

  • A drive to learn that comes from within. Not “I learned this because the project required it,” but a genuine urge to understand and help shape the future. AI is the best example of this right now: it’s meant to empower you so you can go further and build more, but it should never replace your own understanding.
  • The drive to make work better for everyone. Not just your own progress, but tangibly advancing the team and the client. Lifting up the people around you, building genuine connections. This creates trust, and trust is the foundation of everything we do. This includes taking responsibility for your work-and going a step beyond it.

And since this ties into the statement above: Voicing your opinion doesn’t mean putting on a show. The question is always what the client and the team need-and that’s where you align yourself. Constructive criticism on an equal footing is still part of the process, in both directions. Anyone who argues just to be right is in the wrong place here. But so is anyone who never argues.

Here’s our strictest criterion: you must be willing to adapt to our way of working. We’re very open to your ideas and happy to make changes, but “that’s how I’ve always done it-deal with it” doesn’t work here.

When we’re not a good fit

  • If you’re primarily driven by salary and title
  • If you want to impose your own way of working instead of trying to understand first
  • If rules are more important to you than the impact on the customer
  • If you use AI to avoid having to understand things
  • If you turn off your camera during calls and would rather keep coding during team days. We’re working on different projects, but we’re one team
  • If, at the end of the day, it’s just a job to you. Then you won’t be happy here, and neither will we

How it works

  • Screening interview-short and straightforward
  • Three interviews with the team in Darmstadt, totaling just under three hours. A pair code review-deliberately done without AI. Then a guided work session using your own AI setup. Finally, a discussion about client scenarios, with feedback exchanged in both directions. This isn’t a workday or homework-it’s collaborative work with breaks. If an in-person meeting isn’t possible, we can do it remotely
  • **References and Offer **We’re in no rush to fill this position; finding the right person is more important to us than finding someone quickly. Hiring the wrong person with a team of six is so costly that we’d rather say “no” three times too often than “yes” once too often.

Feel free to apply informally. Tell us about a system whose architecture you designed rather than just listing your previous positions. And what you’ve most recently taught yourself is what interests us the most anyway.

And if, while reading, you’ve gotten stuck on two points you can’t check off: Get in touch anyway. We’re not looking for a checklist; we’re looking for someone with good judgment.

Apply for this position

This job is hosted externally. Click below to view the full posting and apply.

Apply on www.adzuna.de
Prepare application

Good distractions

Talks and stories from around this role — technically off-topic, practically not.

1:21 min

Exploring the target application for front end tests

Anna Mcdougall ¡ JS Congress

1:52 min

Structuring and scaling the backend engineering team

Stefan Lingler Stefan Lingler +1 ¡ Coffee With Developers

3:39 min

Addressing code review surrender and process exploitation

Laura Tacho Laura Tacho ¡ World Congress 2026 Europe

1:06 min

Developer experience and project variety at scale

Alexandra Petri ¡ World Congress 2023

1:38 min

Transitioning into backend engineering from web development

Stefan Lingler Stefan Lingler +1 ¡ Coffee With Developers

2:59 min

Introduction and transitioning into the tech industry

Anna Mcdougall ¡ JS Congress

Videos

See all

Related articles

See all