Backend Engineer
Own the event-driven services that turn alerts from dozens of security tools into incidents our agents and analysts can act on.
- Remote (Italy) · HQ Turin
- Engineering
- Full-time
- ▶ Salary
- €45k–70k gross/year (RAL)Indicative. Truly exceptional? We go above it.
- ▶ Level
- Mid-level or senior
- ▶ Contract
- Full-time, permanent, CCNL Commercio
Who we are
RedCarbon builds AI agents for cybersecurity. Think of them as virtual colleagues that join a Security Operations Center and take on the work that burns analysts out: triaging the endless stream of alerts, investigating incidents, hunting for threats, writing the report at the end. The humans keep what needs a human: judgement, decisions, the call to the customer at 2am.
We are an Italian company with our HQ in Turin, remote since day one, and we closed a €3M Series A in 2025. Our customers trust us with their security, which is a polite way of saying that "it works on my machine" is not an option here.
We are a bit crazy. We put a hacking challenge in front of our application form, and a pixel-art mascot in our job posts. You are about to meet him.
But we are dead serious about the engineering. We aim for a technical bar that is very, very high, and we are AI-first: we build AI products, and we build them with AI, every day, on purpose.
So we don't hire people to turn detailed requirements into code. We hire engineers who start from a problem, understand it, question the assumptions, pick a reasonable solution, ship it, and check that it actually solved the problem. You don't need to know our whole stack on day one. You need solid fundamentals, and to learn fast.
The role
We're looking for a backend engineer who starts from the problem, not from the ticket.
Every incident our agents and analysts handle starts as data: alerts from the security tools our customers already use, normalized, enriched and routed to whoever, human or agent, has to act on it. As a Backend Engineer you build and run the services that make that happen, reliably, securely, and without waking anyone up at 3am.
What you'll do
- Build services in Go and TypeScript that ingest, normalize and route security data from many different sources.
- Design event-driven systems: streams, durable jobs, retries, idempotency. The kind of plumbing that keeps working when one of its inputs doesn't.
- Design APIs (gRPC/protobuf, GraphQL) that the frontend, the agents and the other services rely on.
- Own your services in production: metrics, traces, alerts, runbooks. If it breaks, you know before the customer does.
- Build security in from the start: least privilege, secrets handling, tenant isolation. If the default isn't secure, the design is wrong.
The problems you'll solve
- A vendor changes its API without telling anyone. You find out before the customer does, and the alerts keep flowing.
- The same alert arrives three times, from two sources, across two retries. It has to become one incident, not three.
- A customer's SIEM floods us in the middle of an attack, which is exactly when nothing can be dropped.
- Our software runs behind the customer's firewall, where you can't SSH in: it has to tell you what's wrong on its own.
- One stream, many customers, zero leaks between tenants.
What we're looking for
Must have
- Go or TypeScript/Node in production. One very well, ideally both.
- Relational databases beyond the ORM: schema design, migrations, reading a query plan. We use PostgreSQL.
- Distributed systems fundamentals: at-least-once delivery, idempotency, ordering, backpressure. You know why they are hard, not just which library hides them.
- Containers: you have built, shipped and debugged services running in Docker.
- Strong on tests, especially integration tests against real dependencies rather than mocks of everything.
- You have debugged a production problem you didn't cause, and you can tell us how you found it.
Nice to have
We use these every day. You'll learn the ones you don't know yet.
- Message brokers: we use NATS JetStream; Kafka or similar counts.
- Kubernetes.
- gRPC and protobuf.
- Observability with OpenTelemetry: metrics, traces, structured logs.
- CQRS, the outbox pattern, event sourcing.
- GraphQL.
- GitOps and infrastructure as code.
- Integrating messy third-party APIs, ideally security vendors'.
- Shipping software that runs in customers' environments (on-prem, their cloud, behind their firewalls), where you can't just SSH in.
Your first months
- First week: deploy a small fix to a service, and follow it on the dashboards up to production.
- First month: build or extend an integration with a security vendor: ingestion, normalization, tests against real responses.
- First three months: own a service: its alerts, its runbook, its roadmap. When it alerts, you're the one who knows why, and the one who proposes what it needs next.
- After one year: you are better at something that matters to you, technical or not, and you can prove it. That's what the growth budget is for, and we'll look at it together.
For every role
- You live in Italy. We hire in Italy only, for now.
- Fluent Italian and good English. Code and docs are in English; calls are usually in Italian.
- You take tests seriously. A feature without tests is a draft. Code reaches review when its author is convinced it works, not so that someone else can find out whether it does.
- You use AI to think better, not to stop thinking. AI raises the floor; it doesn't raise the ceiling for you. Use it a lot, challenge its output, and own what you ship: "Claude wrote it" is never an excuse.
- Big plus: you are visible. Interesting things on GitHub, talks at conferences or meetups, posts people actually read. Put the links in your CV.
- Plus: a degree in Computer Science or a related field. Nice, not required: show us what you built.
- Plus: you know some security. If you don't, we'll teach you; it's contagious.
Mid or senior?
Both, and we don't count years. A mid-level engineer ships features end to end in their area, with little guidance, and asks for help before being stuck becomes a habit. A senior engineer has owned a system in production and lived with their own decisions, sees problems before they become tickets, and makes the people around them better.
At every level we expect the same two things: you learn fast, and you take responsibility for your work. The autonomy grows with experience; the initiative has to be there from day one.
Is this for you?
If you have the fundamentals but not every nice-to-have, apply anyway: tools are learnable, and we'll teach you ours. If you'd rather get detailed tickets and someone to tell you when you're done, we're probably not the right place. No hard feelings.
How we think about engineering
Writing code is only part of the job, and with AI writing more of it every day, it's less and less what sets an engineer apart. What does: understanding the problem you're solving, questioning assumptions, exploring alternatives, and taking responsibility for the outcome.
We value curiosity over certainty, evidence over ego, and impact over activity.
Ownership means owning the problem, not falling in love with your solution. Sometimes the right thing is to push through a difficult problem. Sometimes it's to admit that the original decision was wrong and change direction. Knowing the difference matters, and changing your mind when the evidence changes is a strength here, not a loss of face.
We give people context, trust, and room to make decisions. We don't expect you to get everything right; we expect you to learn, take initiative, and grow. The team will help you, a lot, but it won't do your thinking for you.
We care about what you achieve, not how many hours you spend looking busy.
And we want to enjoy building things together. Great engineering and having fun aren't mutually exclusive.
How we work
We are agile, in the original sense of the manifesto, with security by design and by default on top. As an engineering team, we value:
- people and trust over processes and controls;
- real impact over plans and documentation;
- understanding the customer's problem over executing the spec;
- learning and adapting over following the original plan;
- security as a design choice over checking it at the end;
- growing together over excelling alone.
The things on the right matter. When we have to choose, we choose the ones on the left.
In practice:
- Simplicity over virtuosity. Complexity is a debt, clarity is an asset. When in doubt, the simplest thing.
- Ownership, not hand-offs. Shipping is not passing the ball. You follow your work until it really works in production, and you fix it if it doesn't.
- Decide, write it down, revisit it. The people closest to the problem make the call, and write down why: that's what the ADRs are for. When the evidence changes, the decision changes too. A superseded ADR means we learned something, not that someone failed.
- Remote, not isolated. Writing well is part of the job: we don't have a hallway, we have text. And we meet in person regularly, because some things remote can't give you.
- Mistakes are fine, repeating them isn't. A deploy that breaks something happens. The same deploy breaking the same thing three times is not "iterating".
- Cross the borders. Backend people touch the frontend, AI people learn the security domain, everyone cares about the analyst on the other side of the screen.
What we offer
- A competitive salary: €45k–70k gross a year (RAL), depending on your level. The range is indicative: if you are truly exceptional, we'll talk numbers above it.
- Full-time, permanent contract, CCNL Commercio, with health insurance.
- Full remote from anywhere in Italy. We do about 95% of the work remotely; the rest is alignment days and company retreats.
- A MacBook Pro. It's what we all work on.
- An AI subscription for everyone. Use it, a lot.
- Flexible hours, holidays managed on trust, zero micro-management.
- Growth budget: time for learning, courses and certifications, internal tech talks, and conferences paid for, even more so if you are the one on stage.
- Meal vouchers.
How to apply
There is no "send us your CV" form here. To apply, you have to hack the site.
The application form is behind a short challenge: a few puzzles that a curious developer solves with the browser devtools, a terminal and some patience. It's the same for every role. Solve it, then send us your CV and your GitHub profile. If you like the challenge, you'll probably like the job.
What happens next
- An intro call with your future manager and our Product Manager: who we are, who you are, what you are looking for.
- One or two technical interviews with the engineers you would work with.
- A final interview with our CTO, and then an offer.