interview prep

What Cloudflare actually tests when it hires engineers

Cloudflare sits in front of a large share of the web’s traffic, and the interview is built to check that you understand the thing you’d actually be working on. People who prep the way they would for a generic big-tech loop, grinding tree and array problems until they can do them in their sleep, tend to freeze when an interviewer asks them to walk through a TLS handshake or explain why a reverse proxy exists. The coding rounds are real and they matter, but the networking and systems fluency is what usually decides whether you get an offer.

The whole thing runs about three to five weeks. It starts with a recruiter call, then a hiring manager conversation, a technical screen, and a virtual onsite of three to five interviews. Nothing exotic in the shape of it. The content is where it gets specific.

The rounds you’ll actually sit

Round Format and length What they’re evaluating
Recruiter screen Phone, ~30 min Background, motivation, logistics, rough comp expectations
Hiring manager screen Video, 30-45 min Team fit, your past projects, why Cloudflare specifically
Technical screen Video, ~1 hr Practical coding in your strongest language
Code Pair (onsite) Video, ~1 hr Building a working backend feature with clean, tested code
Systems design (onsite) Video, ~1 hr Scaling a Cloudflare-shaped system and handling failure
Debugging (onsite) Video, ~45 min Reading unfamiliar code and isolating a bug out loud
Behavioral / values (onsite) Video, 30-45 min Ownership, handling disagreement, fit with the mission

Two things stand out compared with a standard loop. The system design round leans hard toward Cloudflare-shaped problems, and there’s often a debugging round where you read code you didn’t write and find what’s broken. Some teams have started running an AI-assisted coding round where using an assistant is allowed and the point is watching how you drive it. More on that below.

The Code Pair round rewards building, not memorizing

The coding problems are practical and read like small pieces of backend work rather than puzzle-box algorithm questions. Expect things like parsing a stream of log lines and aggregating error counts by status code, implementing a cache with a time-to-live expiry, writing a token-bucket rate limiter, or checking whether an IP address falls inside a given CIDR block. That last one is a favorite because it’s short and it quietly tests whether you understand bitwise operations and how addresses are laid out.

The idiomatic Go answer uses the standard library:

func inCIDR(ip, cidr string) bool {
    _, network, err := net.ParseCIDR(cidr)
    if err != nil {
        return false
    }
    return network.Contains(net.ParseIP(ip))
}

Write that, and a good interviewer will nod and then ask you to do it without net.ParseCIDR: parse the prefix length yourself, build the mask, and compare the network bits. That follow-up is the actual question. They want to see you reason about a /24 versus a /16, handle IPv4 next to IPv6, and not fall apart when the helper is taken away.

Write real code. Handle the empty input, the malformed line, the off-by-one on the buffer. Cloudflare cares about production-ready more than clever, and reviewers will poke at your error handling before they praise your complexity analysis.

Networking questions you can’t hand-wave

This is the part candidates underrate. Cloudflare builds proxies, DNS, and edge compute, so they expect you to know how the web moves bytes. The questions are direct:

  • Walk me through what happens, step by step, when you type a URL and press enter.
  • Explain the TLS handshake. What does each round trip buy you, and what changed in TLS 1.3?
  • What’s the difference between a forward proxy and a reverse proxy, and where does Cloudflare sit?
  • How does anycast routing send a user to the nearest data center?
  • What’s the difference between TCP and UDP, and why does QUIC exist?

You don’t need to recite an RFC. You need a working mental model: DNS resolves a name to an address, TCP sets up a connection, TLS negotiates keys and proves identity, HTTP carries the request, and a reverse proxy in the middle can cache, filter, and route. If you can sketch that and then answer “what breaks if the DNS response is stale,” you’re already ahead of most candidates.

System design, Cloudflare flavor

The design round usually asks you to build a slice of something that looks like their own product. Design a distributed rate limiter that works across hundreds of edge locations. Design a global key-value store with low read latency everywhere. Design the caching layer for a CDN. The scenarios are picked because they force the exact questions Cloudflare wrestles with every day.

Expect the interviewer to push on scale and failure. How does your design behave when traffic grows 100x overnight. What happens when a database node dies mid-write. How do you keep state consistent across edge nodes thousands of miles apart, when a strongly consistent write to every location would blow your latency budget. The right move is to name the tradeoff out loud: eventual consistency for the counter, a short TTL to bound how stale it can get, and a limiter that fails open so an outage in your rate-limiting layer doesn’t take down the customer’s site. Candidates who reach for eventual consistency and gossip before they reach for a global lock tend to score well here.

The debugging round

Some loops include a round where you’re handed a small, nearly working codebase with a bug and asked to find it while talking. This tests something LeetCode never does: can you read unfamiliar code, form a hypothesis, and confirm it. Narrate as you go. Say what you expect a function to do, check whether it does that, and use the mismatch to narrow where the problem lives. Reaching for print statements or a debugger and reading the actual output beats staring at the code hoping the bug reveals itself.

The AI-assisted round nobody prepped for

A newer wrinkle: some teams run a coding round where you’re allowed, even expected, to use an AI assistant. The problem is usually bigger than you could finish by hand in the time given, and they’re watching how you delegate. Do you write a sharp prompt, check the generated code, catch the subtle bug the model slipped in, and steer it toward the real requirements. Treating the assistant as an autocomplete you accept blindly is the fail state. Treating it as a fast junior engineer whose work you review is the pass. If your target team lists this round, practice building something real with an assistant on the clock, because reviewing generated code quickly is a different muscle from writing it.

Behavioral, and what the values round is really checking

Cloudflare’s behavioral rounds dig into ownership and how you handle disagreement. Common prompts: tell me about a production incident you owned, a time you disagreed with a senior engineer, a project that slipped and what you did about it. Bring specifics with numbers and outcomes. Vague answers about great teamwork land as filler. They’re also feeling for whether you care about the mission of a faster, more private internet, so having a real reason you want to work on infrastructure at this layer helps more than you’d think.

Comp and how to read the offer

Cloudflare is public (NYSE: NET), so a large part of your package is RSUs that vest over four years and move with the stock. Cash base tends to be competitive with other large public tech companies, while total compensation at senior levels usually sits below the frontier AI labs that are paying at the very top of the market right now. Ranges shift with level, location, and the share price, so don’t anchor on a number from a forum post. Pull up levels.fyi for the current spread by level, and when an offer arrives, separate base from bonus from the equity grant, then ask what the grant is worth at today’s price versus the price they used to size it.

How to actually prepare

Spend real time on networking fundamentals: HTTP and HTTP/2, the TLS handshake, DNS, TCP versus UDP, and what a proxy does. Practice coding the practical stuff, a rate limiter, a TTL cache, a log parser, in Go or Rust if you can, since that’s the house stack alongside Lua. Do a few system design reps on rate limiting, CDN caching, and global data stores, and force yourself through the “what happens at 100x” and “what happens when a node dies” follow-ups instead of stopping at the happy-path diagram. And read a couple of Cloudflare’s engineering blog posts before the onsite. They write in detail about how their edge works, and dropping a specific, informed reference to something they’ve shipped is the kind of signal that’s hard to fake.

newsletter

What's actually being asked right now

Interview patterns & comp trends, straight to your inbox.

No spam. Unsubscribe anytime.

newsletter

What's actually being asked right now

Interview patterns & comp trends, straight to your inbox.

No spam. Unsubscribe anytime.

1972 Soviet postage stamp commemorating the Mars 2 probe

worth a read

Mars For The Rest of Us — a weekly-or-more deep dive on the technical side of Mars exploration: rocket propulsion, microbiology, mission architecture, and everything in between. Written by Maciej Ceglowski.

Read it on Substack →
Scroll to Top