Types of technical tests
1. Take-home assignment:
- 2-8 hour project to do at home
- Deadline: 3-7 days
- Topic: web app, API, data transformation
- Criteria: code structure, architectural choices, tests, README
2. Live algorithm:
- 45-60 min via CoderPad, HackerRank, CodeSignal
- LeetCode-type problems (Easy to Hard)
- Criteria: think-aloud reasoning, Big-O complexity, edge cases
3. System design:
- 45-60 min discussion
- Topic: "How would you build Twitter / Uber / Netflix?"
- Criteria: scaling capacity, justified technical choices, trade-offs
4. Pair programming:
- 60-90 min side-by-side (virtual) with a senior dev
- Topic: feature to add to existing code, bug to fix
- Criteria: code understanding, communication, collaboration
5. Code review:
- 30-45 min, analysis of PR with intentional issues
- Criteria: bug detection, feedback quality, sense of detail
Preparation by test type
For algorithms:
- LeetCode: aim for 200-300 solved problems (Easy/Medium dominant)
- NeetCode 150: curated list of classic problems
- Cracking the Coding Interview (Gayle McDowell): reference book
- Daily practice: 30-45 min, 5-6 days/week for 8-12 weeks
For system design:
- System Design Interview (Alex Xu): 2 essential volumes
- High Scalability (highscalability.com): real case studies
- Designing Data-Intensive Applications (Kleppmann): in-depth reference
- YouTube: Gaurav Sen, ByteByteGo channels
For take-home:
- GitHub: 3-5 clean public projects before interview
- Unit tests: show your rigour
- Detailed README: architectural decisions, how to run, known limitations
- Polish commit history: atomic commits, explicit messages
Test day
Live algorithm:
- Clarify the problem (5 min): examples, constraints, edge cases
- Think aloud: your reasoning counts as much as the solution
- Brute force first: show you understand
- Optimise: Big-O, memory space, justification
- Code cleanly: clear variable names, modular functions
- Mentally test: trace execution on examples + edge cases
System design:
- Clarify requirements: functional and non-functional
- Estimate load: RPS, storage, bandwidth
- High-level diagram: components, data flows
- Deep-dive on 1-2 critical components
- Bottlenecks and scaling: where it breaks, how to scale
- Trade-offs: justify your choices
Recommended tools
- LeetCode Premium (USD 35/month): company-targeted questions
- AlgoExpert: detailed video explanations
- GitHub Copilot: familiarise yourself (used in interviews at some)
- Excalidraw, Whimsical: clean system design diagrams
- CoderPad: practice the real interview environment
Swiss specifics
- Banks (UBS, Raiffeisen): rigorous tests, focus algo + system design
- Multinationals (Google, Microsoft Zurich): classic Anglo-Saxon process, 5-6 rounds
- Start-ups (Logitech, Sonova): take-home + pair programming dominant
- Pharma (Roche, Novartis): focus on data engineering, ETL, SQL
- Crypto (Zug): required Web3 knowledge, blockchain basics
Common pitfalls
- Coding without thinking: 2 min of planning saves 20 min of debug
- Not asking for help: "Can I get a hint?" is better than stuck 15 min
- Over-engineering: don't create 5 abstractions for a fizz-buzz
- Neglecting tests: show you think about them even if not writing all
- Lack of communication: an evaluator who doesn't understand your reasoning will rate you poorly



