The loop at a glance
Four to five rounds, one clear bar per round. Everything below is how to clear each one.
- Coding, said out loud. LeetCode medium, parsing-heavy, occasionally hard. Correct code in silence loses to correct code you narrated.
- System design or CS deep-dive. Senior and up get design at global scale. Juniors get networking, OS, and DB fundamentals.
- Networking is home field. This is a networking and distributed-systems company first. Surface-level DNS/TCP/TLS answers get drilled until they crack.
- Global by default. Any design that assumes one datacenter misses the whole point. Put it in 300 cities before you are asked.
- Low ego wins ties. The culture is flat and pragmatic. Each interviewer scores you alone before the debrief, so give the room a reason to defend you.
1Snapshot, read this first#
| Thing | The reality |
|---|---|
| Roles | Software Engineer (backend, systems, full-stack, infra, SRE-adjacent) |
| Levels | SWE (new grad/L2), SWE II, Senior, Staff. Big jump in expectations at Senior. |
| Process length | Usually 3 to 6 weeks start to finish. Can stretch if teams are busy. |
| Rounds | OA (sometimes) to recruiter screen to technical phone screen to onsite loop (4 to 5 rounds) |
| What wins | Clean code you can reason about out loud, real networking/systems knowledge, honesty, curiosity |
| What fails | Memorized LeetCode with no understanding, hand-wavy system design, ego, "it just works" answers |
| Comp (US) | New grad ~$150k to $190k total. Senior ~$250k to $360k+ total (base + RSU + bonus) |
| Comp (India) | SWE ~₹25L to ₹45L. Senior ~₹55L to ₹90L+ total. Bengaluru/remote. |
| Comp (UK) | SWE ~£70k to £95k. Senior ~£110k to £150k+ total. London office. |
| Comp (Canada) | Not a major hub, usually US-adjacent bands when remote through US. |
The one framing to carry into every round:
- Cloudflare is a networking and distributed-systems company first, a "web company" second.
- The product runs across 300+ cities, and the whole pitch is that a request gets served from the metal closest to the user.
- If you understand what happens when a packet leaves your laptop (how DNS resolves, how TLS gets negotiated, how a request survives across a global anycast network), you are ahead of half the pool.
- The panel can tell whether you actually know this or skimmed a blog post the night before.
2Getting the call (the part most guides skip)#
Cloudflare gets a flood of applications, and the generic "Software Engineer" listing is the most crowded door in the building.
Referrals beat everything else.
- A referral moves you to the top of the pile faster than anything.
- Engineers get a referral bonus, so people are usually happy to drop your resume into the internal system.
- It will not pass the loop for you, but it reliably gets a human to read your resume instead of a filter.
No referral? Two things reliably work.
- Engage with the product in public. Cloudflare engineers live on their own blog and on X/Twitter and genuinely read what people build on their platform. A sharp GitHub project on Workers, Durable Objects, or R2, or a clean bug report with a repro on an open-source Cloudflare repo, gets noticed. I have seen a candidate pulled in off a single sharp issue they filed.
- Apply to the specific team, not the generic listing. Infra, Workers platform, security, data, networking: each hires differently and wants a slightly different shape of engineer. Name the team in your note and say why that team.
Your resume needs to scream "systems" and "scale." Recruiters and the ATS scan for it in the first six seconds.
Weak bullet:
Built a backend service for user data.
Strong bullet:
Rebuilt the session service in Go to handle 40k req/s, cut p99 latency from 320ms to 45ms, and dropped DB load 60% with a Redis read-through cache.
What makes the second one land:
- Numbers, a language they use (Go, Rust, TypeScript), a latency target, and a real tradeoff.
- Put the metric first when you can, because the reader's eye lands on the start of the line.
- One rule to push hard: every bullet answers "how big, how fast, and what did you trade off." No number means it is a to-do, not an accomplishment.
ATS keywords that help here: Go, Rust, TypeScript, distributed systems, Kubernetes, gRPC, HTTP/2, TLS, DNS, BGP, edge computing, Postgres, ClickHouse, Kafka. Only list the ones you can defend in conversation. A keyword you cannot explain is a trap you set for yourself. I see "BGP" on your resume and now it is fair game, and "a recruiter told me to put that" is a bad moment to have.
3The loop at a glance#
| Round | Length | What it tests |
|---|---|---|
| Online assessment (role-dependent) | 60 to 90 min | 2 to 3 coding problems, sometimes a short CS quiz |
| Recruiter screen | 30 min | Motivation, logistics, comp range, basic fit |
| Technical phone screen | 45 to 60 min | One coding problem, live, with a real engineer |
| Onsite: coding 1 | 45 to 60 min | DSA, medium to hard, communication |
| Onsite: coding 2 or practical | 45 to 60 min | Debugging, real-world coding, sometimes an API task |
| Onsite: system design (Senior+) or CS deep-dive (junior) | 45 to 60 min | Design at scale, or OS/networking/DB fundamentals |
| Onsite: behavioral / hiring manager | 45 to 60 min | Values, ownership, how you work |
How the loop actually runs:
- The onsite is often called a "virtual onsite" and runs over one day or splits across two.
- Not every candidate gets an OA. For referrals and senior folks it often skips straight to a phone screen.
- After the loop, the panel debriefs and each interviewer writes an independent score before they discuss.
- One person championing you matters, and one person with an unanswered concern can stall you.
A quiet-but-correct round gives your interviewer nothing to defend you with in the debrief. Scores are written alone, then argued. "Seemed fine, did not really hear their thinking" is the sentence that loses you to a louder candidate who was no better at the problem.
4The coding or technical rounds#
Here is the honest part. Cloudflare's bar is solid but it is not a FAANG-style LeetCode gauntlet built to filter on obscure DP tricks.
What the problems actually look like:
- Usually LeetCode medium, occasionally hard.
- They lean toward real work: strings and parsing, hash maps, intervals, trees, graphs (BFS/DFS), heaps, sliding window.
- You see parsing-heavy problems because so much of the job is chewing through requests, logs, and configs.
- Nobody at an edge company asks you to invert a binary tree for sport. They want to see you handle the messy input a real request stream throws at you.
What they actually reuse, in my experience:
- String and stream parsing (parse a log line, a rate-limit rule, a config format).
- Hash map counting and frequency problems.
- Intervals: merge, overlap, scheduling.
- Graph traversal, especially anything that smells like a dependency or network topology.
- Heaps and top-K.
- Concurrency-flavored questions in Go for backend roles (channels, worker pools, mutexes).
A concrete flavor of the parsing ones:
- "Given a stream of log lines
timestamp ip path status, return the top 5 paths by request count in the last 60 seconds." - That single prompt touches parsing, a hash map, a sliding time window, and a heap.
- The follow-up is "now the stream is a billion lines a day, how do you keep this in bounded memory."
- That follow-up is the actual interview. The first solution is table stakes.
Reveal the answer
Two things matter more than the solution itself.
First, communicate the whole time.
- What I am really checking is whether I would want to pair with you at 2am during an incident.
- Think out loud. Restate the problem in your own words. Say your plan before you type.
- Go quiet and type for ten minutes and I have nothing to evaluate even if the code is right.
- In the debrief I can only say "seemed fine," which is a weak signal that loses to a louder candidate.
Second, do the boring professional things.
- Clarify inputs and edge cases before coding: empty input, duplicates, huge input, malformed lines.
- State time and space complexity without being asked, and say which one you would optimize and why.
- Test your own code: walk one normal case and one edge case line by line, pointing at variables as they change.
- People who test unprompted almost always pass. People who declare "done" and lean back almost always get dinged, because catching your own bug before the interviewer does is exactly the on-call behavior they are hiring for.
How to practice:
- Grind maybe 80 to 120 LeetCode mediums across the patterns above, not 400 random ones.
- Spread across the six patterns and you start seeing the same handful of shapes everywhere, which is the point.
- For backend/systems roles, do a handful of Go concurrency exercises: a bounded worker pool with channels, a fan-out/fan-in, a context-cancelled pipeline.
- Practice narrating out loud, on video if you can stand it. The talking is a separate skill from the solving, and most strong coders have never once practiced it.
5System design (Senior+) and CS fundamentals (junior)#
For Senior and above, system design is where the offer is won or lost. For juniors, this slot is usually a CS fundamentals deep-dive instead.
System design (Senior+)#
Use a simple framework and stick to it:
- Clarify requirements and scale. Ask about QPS, read/write ratio, data size, latency targets, consistency needs. Put real numbers on the board: "let's say 1M QPS, 10:1 read-heavy, p99 under 50ms worldwide." Never skip this.
- Define the API and data model. A couple of endpoints and the core table/key schema is enough.
- Sketch the high-level components. Draw the request path from client to edge to origin and back.
- Go deep on one or two hard parts: storage choice, caching, partitioning, replication. Do not spread thin across everything.
- Address failure, scale, and tradeoffs out loud. What happens when a region drops? How does it behave under a 3x spike? This is what separates Senior from mid.
Classic Cloudflare-flavored prompts I have seen or asked variations of:
- Design a global rate limiter that works across hundreds of edge locations.
- Design a distributed key-value store (think Workers KV or Durable Objects).
- Design a CDN: cache invalidation, origin shielding, cache hit ratio.
- Design a DNS resolver or an authoritative DNS system.
- Design a global config/feature-flag system that propagates in seconds.
- Design a logging/analytics pipeline that ingests millions of events per second (ClickHouse territory).
The through-line: everything is global and distributed.
- If your design assumes one datacenter, you have missed the point, and the interviewer will immediately ask "okay, now put that in 300 cities." Get there first.
- Talk about eventual vs strong consistency and which one this product can tolerate.
- Talk about how data gets pushed to the edge and how stale it is allowed to be.
- Talk about what happens when a region is partitioned off from the rest.
- Talk about how you keep p99 low worldwide when the speed of light is the real constraint.
Take the global rate limiter, since it comes up a lot.
- The honest tension: true global accuracy needs a central counter, but a central counter adds a cross-planet round trip to every request, which kills latency.
- The strong answer names that tension out loud and picks a side.
- Know your CAP tradeoffs for real, not as a slogan: for this exact feature, be ready to say whether you sacrifice consistency or availability during a partition and what the user sees when you do.
Local counters, async reconcile
- Latency
- Fast: every decision is local to the POP.
- Accuracy
- Approximate: a small overshoot past the limit during the sync gap.
- Best when
- Most rules, where a little overshoot is harmless.
- Breaks when
- A rule must be exact to the request (hard billing caps).
Strict central counter
- Latency
- Slow: a cross-planet round trip per request.
- Accuracy
- Exact: one authority, no overshoot.
- Best when
- The handful of rules that truly cannot overshoot.
- Breaks when
- Applied to every request: p99 falls apart worldwide.
The signal they are grading: "it depends, here is the tradeoff, here is what I would default to and why" is the senior answer. A single confident "use Redis" is not.
CS fundamentals (junior)#
Expect pointed questions on:
- Networking: what happens when you type a URL and hit enter (DNS resolution, TCP handshake, TLS negotiation, then the HTTP request and response). TCP vs UDP and when you would pick each. What TLS actually does: not just "encryption" but the handshake, certificates, and how trust is established. Basic HTTP status codes and caching headers like Cache-Control and ETag. This is Cloudflare. Networking questions are not optional, and surface-level answers get drilled until they crack.
- Operating systems: processes vs threads, concurrency primitives, what causes a deadlock and how you avoid it, how memory and the scheduler work at a high level.
- Databases: indexes and why a query is slow without one, transactions, ACID spelled out, normalization, SQL vs NoSQL tradeoffs with a real "I'd pick X here because."
- OOP and general design: composition vs inheritance, writing testable code, keeping dependencies injectable.
Make it networking. It is the home-field question here and strong answers genuinely impress the panel. I have watched a junior move from "maybe" to "yes" purely on a crisp, layered walk-through of DNS to TLS to HTTP that showed they understood each step instead of reciting a list.
6Behavioral and culture fit#
Cloudflare's values are real and they do probe for them:
- Curiosity, a bias toward getting things done, transparency, and a genuine sense of mission around a better, more secure Internet.
- Low-ego collaboration matters a lot. The culture is pragmatic and fairly flat.
- Nobody wants a hero who hoards knowledge or needs to win every room.
- The question behind the question: "will this person make the team better to work with, or heavier."
Prepare 5 to 6 STAR stories:
- A hard bug, a conflict with a teammate, a project you owned end to end, a time you failed and what you learned, a time you pushed back on a decision.
- Every story needs a number in the result.
- The push-back story should end with you either right and gracious, or wrong and quick to adjust. Both read as low-ego. Refusing to ever back down does not.
One full worked STAR example:
Situation: Our payment webhook handler was silently dropping about 2% of events during traffic spikes, and finance only caught it at month-end reconciliation. Task: I owned the ingestion service, so it was on me to find the loss and stop it without a rewrite we had no time for. Action: I added structured logging and traced the drops to an unbounded in-memory queue that got garbage-collected under load. I moved ingestion behind a durable queue, made the handler idempotent with an event-ID dedupe key, and added an alert on queue depth. Result: Event loss went from 2% to zero over the next three months, and we caught two upstream outages early because of the new queue-depth alert.
Why that shape works:
- It is specific, it has a number, and it shows ownership plus a real engineering decision (idempotency and a durable queue, not a vague "I fixed it").
- Keep Situation and Task short, spend most of your airtime on Action, and always land a measured Result.
7Your prep plan#
4-week plan#
- Week 1: Patterns refresh. Arrays, strings, hash maps, two pointers, sliding window. 5 problems a day, narrating out loud.
- Week 2: Trees, graphs, heaps, intervals. Start one mock interview. For backend roles, add Go concurrency drills.
- Week 3: System design (or CS fundamentals for junior). Do 4 to 5 full designs. Drill networking: DNS, TCP, TLS, HTTP end to end.
- Week 4: Write your 6 STAR stories. Two full mock loops. Rest the day before.
2-week plan#
- Days 1 to 4: Top patterns, 6 mediums a day, say complexity out loud every time.
- Days 5 to 8: Graphs, intervals, heaps, plus networking fundamentals cold.
- Days 9 to 11: 4 system design prompts from the list above (or CS deep-dive).
- Days 12 to 14: STAR stories, one mock, light review.
2-day crash plan#
- Day 1 morning: Re-solve 10 problems you've done before across patterns. Rebuild confidence, don't learn new things.
- Day 1 afternoon: Read one solid system design primer, do the global rate limiter out loud, including the local-vs-central counter tradeoff.
- Day 1 evening: Drill "URL to render" networking answer until it's automatic.
- Day 2: Write 4 STAR stories with numbers. Review HTTP/TCP/TLS/DNS. Sleep early.
8Why people get rejected at Cloudflare#
- Zero networking knowledge. Fumbling TCP vs UDP or "what is TLS" at a networking company reads as "didn't care enough to learn what we do." The single most common quiet rejection.
- Silent coding. Correct code with no narration gives the interviewer nothing to grade and nothing to defend in the debrief, and it signals you'll be hard to pair with when things are on fire.
- Single-datacenter system design. Designing as if the whole world fits in one region misses the entire point of edge scale, and it's the fastest way to lose a Senior loop.
- Memorized, not understood. The moment a follow-up twists the problem, memorizers collapse. Interviewers probe for exactly this, usually with "now 100x the input" or "now it's global."
- Ego and defensiveness. Pushing back on every hint, or getting prickly when challenged, kills you on the low-ego culture fit even if the code was clean.
- No tradeoff thinking. Answering "which database" with one word and no "because" tells a senior panel you memorize defaults instead of reasoning about systems.
Designing a global product as if it runs in one building. You draw one datacenter, feel done, and when I say "now put that in 300 cities" you start over from scratch in front of me. At an edge company that is not a stumble, it is a signal you have never thought about the thing we sell. Reach for multi-region on your own and say how stale the edge is allowed to be.
9The offer, comp and negotiation#
Rough 2026 total-comp bands (base + equity + bonus):
- US: New grad ~$150k to $190k. Mid ~$190k to $250k. Senior ~$250k to $360k+. Staff higher.
- India: SWE ~₹25L to ₹45L. Senior ~₹55L to ₹90L+. Bengaluru and remote.
- UK: SWE ~£70k to £95k. Senior ~£110k to £150k+. London.
- Canada: no large hub; remote hires often land on US-adjacent bands.
On the equity:
- Cloudflare grants RSUs and the stock has been a real part of comp, so weigh it seriously, not as monopoly money.
- Understand the vesting schedule and whether grants refresh, because a big year-one number that cliffs later is not what it looks like.
- Bonuses are typically modest compared to base, so don't anchor your whole counter on the bonus line.
Three negotiation tips:
- Negotiate the equity, not just base. There's usually more give in the RSU grant, and recruiters expect a counter. A polite, specific counter backed by a competing offer or your current comp moves the number far more than a vague "can you do better."
- Get the level right before the number. A bump from mid to Senior is worth far more than a few thousand in base, and it compounds every year you stay. If your onsite felt senior, push on level before you ever discuss dollars.
- Be honest and warm. This culture dislikes games. "I'm genuinely excited, here's the gap, can we close it" works better than hardball. Give them one clear number to say yes to instead of a fuzzy range they'll anchor to the bottom of.
"Walk me through what happens when I type a URL and press enter."
"Your rate limiter needs to be exact for a billing cap. Still local counters?"
"The stream is a billion log lines a day. How do you keep top-K in bounded memory?"
"A region gets partitioned off. What does the user in that region see?"
"Do I have to interview in Go or Rust?"
What you can now explain in the room
- Why Cloudflare is a networking company first, and what that changes about every round.
- The full URL-to-render path: DNS, TCP handshake, TLS negotiation, HTTP request and response.
- The global rate limiter tension, and when you pick local approximate vs strict central counting.
- How to keep a billion-line stream's top-K in bounded memory with a sketch plus a heap.
- Why single-datacenter design loses a Senior loop, and how to go global before being asked.
- How to shape a STAR story so it reads as ownership and low ego, with a number in the result.
Want this turned into a dated, week-by-week plan around your actual interview date? Map your timeline backward from the onsite and build it out so each day has one clear job.
Get a prep plan built around your Cloudflare interview
Tell us the role and your interview date. We will send back a dated, day by day plan. Free.