Interview guides · Licorne Society
Licorne Society Software Engineer Interview Guide
Licorne Society Software Engineer interview guide: reported rounds, questions and how candidates describe the process.
The 60-second brief
At Licorne Society, a Software Engineer is at the heart of building the digital infrastructure that powers the French startup ecosystem. As a premier talent partner and recruitment platform for high-growth tech companies, Licorne Society relies on sophisticated matching algorithms, proprietary data pipelines, and a highly responsive platform to connect elite talent with top-tier "licornes" (unicorns) and scaleups. Your work directly impacts how rapidly scaling companies build their core engineering, product, and business teams. You will design, develop, and optimize services that handle complex data enrichment, semantic search, and candidate-client matching workflows. Because Licorne Society operates at the intersection of recruitment and high-tech, the engineering team must maintain a highly agile, pragmatic, and scalable codebase.
This guide is scoped to a Software Engineer candidate at Licorne Society.
Focus areas
- Backend Engineering
- Software Engineering (General)
- Backend Development
The Licorne Society interview process
Licorne Society candidates report 4 rounds over 3-5 weeks. The stages below are what candidates describe, not a published process.
Initial Screening Call
A call with a recruiter or engineering manager to align on your background, career aspirations, and mutual expectations.
What to demonstrate
- A call with a recruiter or engineering manager to align on your background, career aspirations, and mutual expectations
- Depth in Backend Engineering
How to prepare
- Be able to walk your CV end to end in two minutes, and say why this company specifically.
- Have your salary expectations, notice period and location constraints ready, and ask for the rest of the loop in writing.
Technical Assessment
A technical assessment that may be a take-home assignment or a live coding session focused on real-world engineering challenges.
What to demonstrate
- A technical assessment that may be a take-home assignment or a live coding session focused on real-world engineering challenges
- Depth in Backend Engineering
How to prepare
- Answer aloud and timed: How do you handle database migrations in a production environment with zero downtime?
- Answer aloud and timed: Describe a scenario where you had to debug a severe performance bottleneck or memory leak in a backend service.
System Architecture Review
A deep dive into system architecture to evaluate your technical execution.
What to demonstrate
- A deep dive into system architecture to evaluate your technical execution
- Depth in Backend Engineering
How to prepare
- Answer aloud and timed: How would you design a background job processing system to handle bulk email distributions or data enrichment tasks without blocking the main application thread?
- Answer aloud and timed: Write a function to parse and normalize unstructured contact information from resume text files.
Cultural Alignment Conversations
Structured conversations with the founding or leadership team to ensure strong cultural alignment.
What to demonstrate
- Structured conversations with the founding or leadership team to ensure strong cultural alignment
- Depth in Backend Engineering
How to prepare
- Answer aloud and timed: Given an array of nested category tags, write an efficient algorithm to flatten the structure and remove duplicates.
- Answer aloud and timed: How would you implement an autocomplete search feature for job titles that minimizes database load?
Where candidates lose points
Focus on the "Why
When discussing your past projects or solving technical challenges, do not just explain what you built. Focus heavily on why you made those specific architectural choices, what trade-offs you evaluated, and how they served the business goals.
Showcase Pragmatism
In startup environments, shipping a clean, working solution today is almost always better than a perfect, over-engineered solution next month. Demonstrate that you know how to build modular, extensible systems that can be iterated on easily as requirements evolve.
Choosing a schema before the access patterns are known
Write the queries first, with their filters, sort orders, cardinalities and which ones sit on the latency-critical path, then design tables and indexes to serve them. An index nothing queries still costs write throughput and storage, and a hot query with no supporting index becomes a full scan that only hurts once the table is big.
Questions & practice
Given an array of nested category tags, write an efficient algorithm to flatten the structure and remove dupli
Medium · Coding & Problem Solving
Given an array of nested category tags, write an efficient algorithm to flatten the structure and remove duplicates.
Approach
- Restate the input: its shape, its size, and what is guaranteed about it.
- Name the brute-force solution and its complexity before improving on it.
- Choose the data structure from the access pattern, not from familiarity.
- State the target complexity and say which constraint rules the naive version out.
Follow-up
- How does this change if the input no longer fits in memory?
- What is the worst case, and how likely is it on real data?
How would you implement an autocomplete search feature for job titles that minimizes database load?
Medium · Coding & Problem Solving
Approach
- Restate the input: its shape, its size, and what is guaranteed about it.
- Name the brute-force solution and its complexity before improving on it.
- Choose the data structure from the access pattern, not from familiarity.
- State the target complexity and say which constraint rules the naive version out.
Follow-up
- How does this change if the input no longer fits in memory?
- What is the worst case, and how likely is it on real data?
Explain the concept of Big O notation and analyze the time and space complexity of a search algorithm you rece
Medium · Coding & Problem Solving
Explain the concept of Big O notation and analyze the time and space complexity of a search algorithm you recently wrote.
Approach
- Restate the input: its shape, its size, and what is guaranteed about it.
- Name the brute-force solution and its complexity before improving on it.
- Choose the data structure from the access pattern, not from familiarity.
- State the target complexity and say which constraint rules the naive version out.
Follow-up
- How does this change if the input no longer fits in memory?
- What is the worst case, and how likely is it on real data?
What are the trade-offs between using a relational SQL database versus a NoSQL database for storing rich, semi
Medium · Backend & System Architecture
What are the trade-offs between using a relational SQL database versus a NoSQL database for storing rich, semi-structured candidate profiles?
Approach
- Name the grain you start from and join outward from it.
- Check whether any join is one-to-many before aggregating, or the sums inflate.
- Say which index the query would use, and what makes it unusable.
- Handle the rows that do not match: that is usually the actual question.
Follow-up
- How does the query change if that join becomes one-to-many?
- What happens to this when the table is ten times larger?
Write a function to parse and normalize unstructured contact information from resume text files.
Medium · Coding & Problem Solving
Approach
- Name the grain you start from and join outward from it.
- Check whether any join is one-to-many before aggregating, or the sums inflate.
- Say which index the query would use, and what makes it unusable.
- Handle the rows that do not match: that is usually the actual question.
Follow-up
- How does the query change if that join becomes one-to-many?
- What happens to this when the table is ten times larger?
Explain how you would design a rate-limiting mechanism for a public-facing API.
Medium · Backend & System Architecture
Approach
- Fix the scope first: who calls this, how often, and what they do when it fails.
- Name the read and write paths separately; they rarely have the same bottleneck.
- Choose a partition key and say what query it makes expensive.
- State the consistency you need, and where you are willing to be stale.
Follow-up
- What breaks first when traffic grows ten times?
- How does this behave when that dependency is down for an hour?
How would you design a background job processing system to handle bulk email distributions or data enrichment
Medium · Backend & System Architecture
How would you design a background job processing system to handle bulk email distributions or data enrichment tasks without blocking the main application thread?
Approach
- Fix the scope first: who calls this, how often, and what they do when it fails.
- Name the read and write paths separately; they rarely have the same bottleneck.
- Choose a partition key and say what query it makes expensive.
- State the consistency you need, and where you are willing to be stale.
Follow-up
- What breaks first when traffic grows ten times?
- How does this behave when that dependency is down for an hour?
How do you write comprehensive unit and integration tests for a service that relies heavily on third-party API
Medium · Coding & Problem Solving
How do you write comprehensive unit and integration tests for a service that relies heavily on third-party API integrations?
Approach
- Say who the caller is and what they do when the call fails halfway.
- Define the identity of a request so a retry cannot double-apply it.
- Separate accepted, pending, failed and confirmed; they are different facts.
- Design the error taxonomy before the success shape; callers branch on it.
Follow-up
- What happens if the caller retries after a timeout?
- How does a client discover it is on an old version of this contract?
Describe a scenario where you had to debug a severe performance bottleneck or memory leak in a backend service
Medium · Backend & System Architecture
Describe a scenario where you had to debug a severe performance bottleneck or memory leak in a backend service.
Approach
- Establish what changed and when, before forming any theory.
- Pick a bisection that eliminates candidates whichever way it turns out.
- Check the instrumentation before believing the symptom.
- Separate the trigger from the cause; the deploy is rarely the bug.
Follow-up
- What would you look at first, and what would it rule out?
- How would you tell a cause from a coincidence here?
Suggested practice checklist
Built from the rounds and topics Licorne Society candidates report.
Day 1 — Map the Licorne Society loop
- Write out the reported sequence: Initial Screening Call, Technical Assessment, System Architecture Review, Cultural Alignment Conversations.
- For each round, write one sentence on what it is judging, from the description above, and mark the one you are least ready for.
Deliverable: A one-page map of the 4 reported rounds, with the weakest marked.
Day 2 — Work Backend Engineering
- Spend the session on Backend Engineering, which Licorne Society candidates report being tested on.
- Write one worked example in Backend Engineering and time yourself on it.
Deliverable: One timed worked example in Backend Engineering.
Day 3 — Work Software Engineering (General)
- Spend the session on Software Engineering (General), which Licorne Society candidates report being tested on.
- Write one worked example in Software Engineering (General) and time yourself on it.
Deliverable: One timed worked example in Software Engineering (General).
Day 4 — Work Backend Development
- Spend the session on Backend Development, which Licorne Society candidates report being tested on.
- Write one worked example in Backend Development and time yourself on it.
Deliverable: One timed worked example in Backend Development.
Day 5 — Answer out loud: Backend & System Architecture
- Answer aloud, timed: Explain how you would design a rate-limiting mechanism for a public-facing API.
- Answer aloud, timed: What are the trade-offs between using a relational SQL database versus a NoSQL database for storing rich, semi-structured candidate profiles?
Deliverable: Spoken answers to 2 reported Backend & System Architecture question(s), under time.
Day 6 — Answer out loud: Coding & Problem Solving
- Answer aloud, timed: Write a function to parse and normalize unstructured contact information from resume text files.
- Answer aloud, timed: Given an array of nested category tags, write an efficient algorithm to flatten the structure and remove duplicates.
Deliverable: Spoken answers to 2 reported Coding & Problem Solving question(s), under time.
Day 7 — Answer out loud: Behavioral & Collaboration
- Answer aloud, timed: Describe a time when you had a strong disagreement with a product manager or technical lead regarding a feature's implementation. How did you resolve it?
- Answer aloud, timed: How do you prioritize technical debt versus delivering new features when working under tight business deadlines?
Deliverable: Spoken answers to 2 reported Behavioral & Collaboration question(s), under time.
Behavioural preparation
Behavioural rounds judge the decision you made and what it cost.
How do you handle database migrations in a production environment with zero downtime?
Medium · Backend & System Architecture
Approach
- Pick a story where you made the decision, not one where you watched it.
- State the situation in two sentences and spend the rest on the reasoning.
- Give the blast radius: what could have broken, and what you measured.
- Name the disagreement and how you resolved it with evidence.
Follow-up
- What would you do differently if you ran that again?
- How did you know your change caused the improvement?
Describe a time when you had a strong disagreement with a product manager or technical lead regarding a featur
Medium · Behavioral & Collaboration
Describe a time when you had a strong disagreement with a product manager or technical lead regarding a feature's implementation. How did you resolve it?
Approach
- Pick a story where you made the decision, not one where you watched it.
- State the situation in two sentences and spend the rest on the reasoning.
- Give the blast radius: what could have broken, and what you measured.
- Name the disagreement and how you resolved it with evidence.
Follow-up
- What would you do differently if you ran that again?
- How did you know your change caused the improvement?
How do you prioritize technical debt versus delivering new features when working under tight business deadline
Medium · Behavioral & Collaboration
How do you prioritize technical debt versus delivering new features when working under tight business deadlines?
Approach
- Pick a story where you made the decision, not one where you watched it.
- State the situation in two sentences and spend the rest on the reasoning.
- Give the blast radius: what could have broken, and what you measured.
- Name the disagreement and how you resolved it with evidence.
Follow-up
- What would you do differently if you ran that again?
- How did you know your change caused the improvement?
Tell me about a complex technical project you led from inception to deployment. What were the challenges, and
Medium · Behavioral & Collaboration
Tell me about a complex technical project you led from inception to deployment. What were the challenges, and what would you do differently today?
Approach
- Pick a story where you made the decision, not one where you watched it.
- State the situation in two sentences and spend the rest on the reasoning.
- Give the blast radius: what could have broken, and what you measured.
- Name the disagreement and how you resolved it with evidence.
Follow-up
- What would you do differently if you ran that again?
- How did you know your change caused the improvement?
How do you keep your technical skills sharp, and how do you mentor junior developers or non-technical team mem
Medium · Behavioral & Collaboration
How do you keep your technical skills sharp, and how do you mentor junior developers or non-technical team members?
Approach
- Pick a story where you made the decision, not one where you watched it.
- State the situation in two sentences and spend the rest on the reasoning.
- Give the blast radius: what could have broken, and what you measured.
- Name the disagreement and how you resolved it with evidence.
Follow-up
- What would you do differently if you ran that again?
- How did you know your change caused the improvement?
Why do you want to work at Licorne Society, and how do you see yourself contributing to the broader startup ec
Medium · Behavioral & Collaboration
Why do you want to work at Licorne Society, and how do you see yourself contributing to the broader startup ecosystem?
Approach
- Pick a story where you made the decision, not one where you watched it.
- State the situation in two sentences and spend the rest on the reasoning.
- Give the blast radius: what could have broken, and what you measured.
- Name the disagreement and how you resolved it with evidence.
Follow-up
- What would you do differently if you ran that again?
- How did you know your change caused the improvement?