HackTheRounds Interview Experiences
Dropbox SWE Intern (Canada) CodeSignal Interview Experience (2025)
Dropbox Canada SWE intern CodeSignal assessment: four problems in 70 minutes spanning arrays, strings, trees, and dynamic programming. Intern track specifics an
By Anonymous ยท 2025-01-29
Background
I am a third-year CS student at a Canadian university applying for a 2025 summer SWE internship at Dropbox's Canada office. Dropbox runs its intern pipeline on CodeSignal for the initial screen, and the Canada track has its own recruiter but shares the assessment format with the US intern funnel. I submitted through the career portal with a referral from a senior who had interned there the previous summer. Four weeks from application to OA invite, then the CodeSignal window opened and I had seven days to schedule my attempt. Outcome is still pending; I am writing this while I wait.
Timeline
- Week 0: Application submitted with referral
- Week 2: Recruiter acknowledgement and OA invite
- Week 3: CodeSignal assessment completed (70 minutes, four problems)
- Week 4+: Waiting on next steps
Total so far: about 4 weeks.
Online Assessment (CodeSignal, 70 min, 4 problems)
This is the bulk of the story. The CodeSignal format is a single timed window, four problems mixing algorithm, SQL, and data handling, and you cannot pause the clock once you start. I took it on a Saturday morning with a full second monitor for the problem statement and a quiet room.
Problem 1: Candy Distribution (algorithm)
Problem: Given an array of ratings, distribute candies so every child gets at least one and any child with a higher rating than an adjacent neighbor gets more candies than that neighbor. Minimize the total candies given out.
This is the classic two-pass greedy. Sweep left to right bumping the count whenever the current rating exceeds the previous, then sweep right to left and take the max of the existing count and the required increment from the right neighbor. Sum the final array. I had seen this exact problem before, wrote it in about eight minutes, and moved on. If you have not seen it, the instinct to try a single pass will cost you a good fifteen minutes of failed attempts before you realize the two-pass structure is necessary. Pattern recognition matters more than raw skill on this one.
is a different problem but lives in the same string-and-array fluency bucket Dropbox likes to probe.
Problem 2: New User Signups by Country (SQL)
Problem: Given a db user table with country and registration date columns, return the monthly new user count per country for Q1 2021.
Straightforward GROUP BY with a date filter. The gotcha was the time zone of the registration timestamp column, which the problem specified as UTC but the expected output was bucketed in something that felt like local time based on the sample. I read the prompt three times, confirmed it was asking for a straight calendar-month grouping in UTC, and did not overthink it. Five lines of SQL with a WHERE clause on the date range and a GROUP BY on country and month.
Problem 3: User Retention (SQL)
Problem: Of the users who registered in January 2021, how many were still active in February? Compute a retention ratio.
This one needed a LEFT JOIN from db user to db engagement on user ID, filtered to January registrants and February engagement events. The retention ratio was the count of users with at least one February event divided by the count of January registrants. The trap was COUNT( ) versus COUNT(DISTINCT user id) on the engagement side; if you forget DISTINCT you will over-count users who logged in multiple times in February. I caught that on my first pass by eyeballing the sample output and reverse-checking the math.
Problem 4: Country with Most Contracts (Pandas)
Problem: Given a CSV of customer contracts with a country column, find the country with the highest contract count. If multiple countries tie, choose the country that comes last alphabetically (so Z before A).
Pandas groupby on country, size, then sort values. The tie-break was the interesting part. A naive sort by count descending gives you the alphabetically first country among ties because pandas is stable. You have to chain a secondary sort key that inverts the alphabetical order, or sort the country index descending first and then do a stable sort by count descending. I used the second approach because it was less error-prone and the dataset was small enough that a double sort was trivial.
I finished all four with about eleven minutes left on the clock, which I spent re-reading my SQL for the retention problem because that one had the most room for a silent off-by-one.
Virtual Onsite
Have not received this yet. Based on what my referral described, the onsite is three rounds. Round 1 is a live coding interview with an algorithm question plus follow-ups on space optimization and complexity. Round 2 is a technology deep-dive where the interviewer digs into a resume project and then pivots to a small system or API design, often in the file-sync or permissions family given Dropbox's core product. Round 3 is behavioral, focused on the company's three values (Trust, Impact, Collaboration), and the intern loop reportedly skips the bar-raiser equivalent.
I am actively prepping for the onsite on the assumption that it is coming. I have been drilling sliding-window string problems, hash-based deduplication like the find-duplicate-files style, and basic file storage design patterns.
and are both in the Dropbox bank and both map directly to the kind of onsite design prompt I expect. is the async variant of the same family.
Result
Unknown as of writing. The recruiter said feedback on the CodeSignal typically comes within five business days, but the Canada funnel has been slower this cycle. If I do not hear back in another week I will send a polite follow-up.
Tips
- Pace the CodeSignal ruthlessly. Four problems in 70 minutes averages to 17 minutes each, but the algorithm problem realistically needs 15 to 20 minutes and the SQL problems should be 5 to 10 each. Budget the extra time to the hardest problem and move on from the easy ones the moment you hit a green test case.
- Do not skip the SQL prep. Internship OA discussion in CS forums tends to focus on the algorithm portion, but two of four problems were SQL. Drill GROUP BY with date ranges and LEFT JOIN with aggregation until they are automatic.
- Pandas tie-breaks are a silent killer. Read the tie-break rule twice, then write out the expected output for a two-country tie by hand before you code. The reverse-alphabetical rule is easy to misread and pandas will happily give you the wrong answer silently.
- Prep the Candy problem specifically. It is the single highest-leverage algorithm problem for this OA based on what I saw and what my referral described. The two-pass greedy is the only tractable solution under the time limit.
- Canada track feedback is slower than US. Do not panic if you do not hear back within the posted SLA. The recruiters handle both funnels but the intern quota and timeline are slightly different.
- Start the behavioral prep now, not after the onsite invite. Dropbox's values-driven behavioral round has a reputation for being the decisive round even for interns. Have two concrete stories per value ready, with real numbers and real conflicts.