Careers / Internship Challenges
What the work actually looks like.
We want to see how you approach real problems. Below is how we work, what a strong submission looks like, and our internship tracks to choose from.
Before you start
If you join, the effort you invest here comes back as a bonus on your fourth salary, after the three-month probation period.
How we work
The way we work.
These five run through everything we build, and through how we read what you build.
- Understand the problem deeplyStrong solutions usually come from careful investigation of the problem and the data behind it before writing code.
- Choose tools based on the problemThe goal is not to showcase a particular tech stack, but to solve the problem as effectively as possible.
- Question default approachesWhen no established solution exists, don't assume one. Explore the problem from multiple angles and be willing to define the approach yourself.
- Deliver real-world valueReal systems require balancing accuracy, speed, and effort to deliver value to those who rely on them.
- Learn and iterate fastExpect uncertainty and experimentation. Progress comes from testing ideas, learning quickly, and continuously improving the solution.
The hardest part is not writing the code. Most solutions fail before the first line is written.
Evaluation
What makes a great solution.
We review these projects as a signal of the impact you could have if you joined our team.
Treat it as a small production-ready project rather than a quick exercise. Submissions that consist of a minimal script, a mostly LLM-generated solution, or a solution where the problem is forced to fit a tool rarely demonstrate the depth we're looking for. We review a large number of projects and are familiar with the patterns these approaches tend to produce.
Problem framing
Did you correctly identify and define the actual problem to solve?
Engineering decisions
Are the key decisions and trade-offs thoughtful and clearly justified?
Use of tools
Are tools used to support the solution, or does the solution appear shaped around the tool instead of the problem?
Execution quality
Does the solution work correctly, respect the requirements and constraints, and cover the relevant cases?
Ownership
Does the solution demonstrate clear ownership of the reasoning, decisions, and implementation, even if AI or other tools were used?
Tracks
Choose your track.
One challenge per internship track. Pick the one you think you'll do your best at.
Website Technologies Scraper
Task
A company develops an analytics plugin for Shopify stores. Their salespeople want to find websites that are using competing products in order to create a marketing campaign to convince the owners to migrate to their solution.
Your goal is to build a tool that identifies technologies used in building a website.
Things to consider
- Gather as many technologies as possible.
- Provide proof about how you came to the conclusion that the website is using X technology.
- From a tech stack perspective, you can use any programming language, toolset or libraries you’re comfortable with or find necessary, especially if you know it would be a better option or a more interesting one (we generally prefer Node, Python, Scala).
Debate topics
You do not need to implement these, just write a few thoughts in the README.md:
- what were the main issues with your current implementation and how would you tackle them?
- how would you scale this solution for millions of domains crawled in a timely manner (1-2 months)?
- how would you discover new technologies in the future?
Ready?
Here’s a file which contains 200 different domains. We identified 477 different technologies on them. How many can your tool find?
Expected Deliverables
Solution explanation / presentation
Provide an explanation or presentation of your solution and results. You have total creative freedom here. Feel free to impress with your thinking process, the paths you took or decided not to take, the reasoning behind your decisions and what led to your approach.
Output
A file containing identified technologies for each of the input domains (JSON, CSV, Parquet, etc).
Code and Logic
Include the code that enabled you to achieve this task for the provided list, along with answer to the debate topics.
Submit your project
When you’re finished with the challenge, please submit the link to your Github project below.
Submit
See you in the next round.
If you're passionate about data, hard problems, and real impact, we look forward to welcoming you to the team. Thank you and good luck!