Careers at Serokell

Remote-first since 2016
6 engineering domains
GHC & open-source contributors

Work on challenging
things with people who actually know how

Technically demanding work with engineers who take quality seriously. Fully remote.

Serokell will never ask for payment or financial details during hiring.
All official communication comes from @serokell.io addresses only.
If anything feels off — write directly to hr@serokell.io.

Roles we're filling now

Short list, real demand: a role appears here only when a confirmed project stands behind it. No match today? Strong profiles go into the talent network — we reach out when something relevant opens.

We already know who we want to hire next.

  • Getting in means the hiring team has reviewed your profile and made a call: we want this person.
  • Curated by specialty — pick your areas, and you hear from us about work that matches them.
  • No automated drip campaigns. When we write to you, it's a person, with a project.
  • When a matching project opens, we reach out directly to explore the opportunity with you.
Serokell Talent Network

People we've decided we want to work with.

Choose the domains you're ready to rotate across — one profile, several possible directions.

Is Serokell right for you?

Four questions. Honest answers only — the quiz is for your benefit, not ours.

(It also quietly filters out AI bots. If you're one: hello, please tell your human to apply personally.)

fit_check.rs — zsh

guest@serokell:~$ ./fit_check --interactive

Problems that take real expertise to solve

Six domains. One standard: problems that require depth that off-the-shelf tooling won't get you.

Type systems, DSLs, compilers

GHC contributions, type-level programming, production Haskell at depth. We maintain universum (our Haskell prelude) and Servant-based APIs. Work where language semantics and type system design are the core deliverable.

Verification & proof

Formal verification as a deliverable. Smart contract verification, cryptographic proof systems, formal specification. When the code protects real money and live protocols, the standard for correctness is formal.

Rust systems engineering

Production Rust for performance-critical work — distributed systems, protocol tooling, infrastructure. deploy-rs (2,100+ GitHub stars) is written in Rust. Our "Rust in Production" interview series documents real-world Rust at scale. Same correctness standards as Haskell; different performance profile.

Nix-first reliable systems

deploy-rs has 2,100+ GitHub stars. We build infrastructure where reproducibility is the baseline: NixOS, Kubernetes, CI/CD, Vault secrets management. Every environment behaves identically — by design.

Applied AI systems

Real systems work: long-term memory architecture for LLM-powered applications, agent design patterns, evaluation infrastructure. We write critically about what AI can do in production — and build to that standard.

Protocol-level engineering

We built Morley and Lorentz — a Haskell framework and eDSL for Tezos smart contracts used in production. Clients: Cardano, Tezos (7 years), LIGO, Solana ecosystem. At this layer, correctness is the entire product.

Built by people who take the craft seriously

The people shape the work. Here's the public record.

The main indicator for people we are searching for is those that love to learn and who want to learn — because we try to be well-rounded.

Arseniy Seroka on the Team pageArseniy SerokaCEO & co-founder · at Serokell since 2016
  • Technical blog

    In-depth articles written by engineers, on the problems they actually work on.

  • GHC & open source

    We contribute to GHC — the Haskell compiler used by the entire ecosystem.

  • Remote-first since 2016

    The whole company has worked this way from day one. Async by default, hours are yours to manage, built for people spread across many time zones.

  • 10 years of client work

    A decade in technically demanding domains — from blockchain protocols to cryptographic proof systems. The work and the stack evolve; the standard for quality has stayed the same.

What to expect when you apply

Our hiring process, documented the way we document everything. Five stages — same process, same order, for every candidate.

  1. Apply + questionnaire

    Step 1

    Submit your CV. Every applicant receives a short questionnaire written by the team — role-specific questions that surface what a CV often can't. Answer async, in your own time.

  2. Personal review

    Step 2

    All applications go through our review process. We track who's been in touch before. If your profile is a strong match, you hear back promptly. If the timing isn't right, we may reach out when something relevant opens.

  3. HR call

    Step 3

    A ~45-minute video call covering background, working style, motivations, timezone, and engagement logistics. Rates and compensation are discussed here — openly, before you've invested hours in technical interviews. You get direct answers about the role and what to expect.

  4. Technical interview

    Step 4

    A conversation with a senior engineer or team lead. The interviewer reads your CV beforehand, so the discussion opens from your actual experience — plus role-specific technical questions, with space for your own questions too.

  5. Offer — or talent pool

    Step 5

    A written offer with full terms: rate, scope, timezone expectations, contract structure. We work with engineers across multiple countries. If the timing isn't right, we add you to our talent pool — the same curated list we reach out to first when a matching project opens.

Asked & answered

Every year we ask every engineer how the year actually went. From the 2025 survey:

5/5
Support from your team and leads when you're stuck.
5/5
How clear your priorities and expectations are.
4.8/5
Comfort of communication inside the team.
4.75/5
Feeling that your work has real meaning and impact.
4.5/5
"Would you recommend working here to an engineer friend?"
4.5/5
Overall comfort of working here in 2025.

Put faces to the names.

The whole team, photographed as themselves — no stock photos.

Meet our team

Common questions

Do I need to know Haskell?

For most roles, no. We hire across Rust, DevOps/SRE, TypeScript/frontend, blockchain (Solana, Solidity), data engineering, and AI/ML. Each job description states clearly what's required versus what's a plus. Haskell roles are a subset of what we hire for.

Are roles full-time or project-based?

Both at once: engagements are full-time, and they are attached to a specific project. A role only appears on this page when a confirmed project stands behind it, so what you read in the description is the work that actually exists.

How do engineers grow at Serokell — are there learning paths, or is it self-driven?

Self-driven, with the work itself doing most of the teaching. There is no fixed curriculum. What there is: problems that require depth, senior people to hold the work to a standard, and time budgeted for the things engineers here do in public — writing for the blog, contributing to GHC and to our open-source tools. If you need a syllabus handed to you, this will feel unstructured. If you pick your own direction and say what you are doing, it works.

What happens when a project ends?

We start looking for the next one before it does. Projects end on a known timeline far more often than they end suddenly, and the point of a bench of six domains is that the next engagement usually exists. If nothing matches at that moment, you go into the talent pool — the curated list we reach out to first when a matching project opens.

How can I research Serokell before applying?

Read what we have written. The technical blog is engineers writing about the problems they actually worked on, and the "Rust in Production" series is practitioners at other companies describing real systems. Our open-source work is on GitHub — deploy-rs, universum, and our GHC contributions. The projects page is what we shipped and for whom.

Do you use test tasks?

No. The five stages on this page are the whole process, in that order, for every candidate: a short written questionnaire when you apply, a review, an HR call, a technical interview, and then an offer or the talent pool. The questionnaire is role-specific and takes minutes, not an evening. The technical conversation starts from your actual experience, because the interviewer has read your CV beforehand. We do not ask people to build things for free.

Will I get feedback on my application?

Every application is read by a person, and we track who has been in touch before. If your profile is a strong match you will hear back promptly. Once you have reached the HR call or the technical interview, you get a decision and the reasoning behind it. We cannot write individual feedback on every application we receive — but you will not be left waiting on silence to work out what happened.

I applied before and wasn't selected. Can I reapply?

Yes, and it is not held against you. Most people we did not take on were a timing mismatch rather than a verdict — the project that needed your profile had already been staffed, or did not exist yet. We keep a record of previous conversations, so a second application starts from what we already know about you rather than from nothing.

Can I apply to more than one role?

Send one profile and tell us the domains you are open to. The talent network exists for exactly this: pick the areas you would be happy to rotate across, and we match you against everything that opens rather than against a single posting. Applying to several postings separately does not improve your odds; it just gives the same people the same CV more than once.

How can I ask you to update or delete my data?

Write to hr@serokell.io and say what you want changed or removed. Your data is processed for recruitment purposes only. One thing worth knowing: Serokell will never ask for payment or financial details during hiring, and all official communication comes from @serokell.io addresses. If a message claiming to be from us does either, tell us at that address.

Didn't find a suitable vacancy?

Send your CV and tell us what you're looking for — we'll reach out when it's a match.

Paris, France52 boulevard de Sébastopol, 75003

Tallinn, EstoniaPille tn 7/5-13, Kesklinna linnaosa,
Harju maakond, 10135

2015–2026 SerokellLegalPrivacy Policy