A practice framework for CodeSignal's Industry Coding Framework (ICF) assessments.
This repository provides a realistic simulation environment to prepare for CodeSignal's Industry Coding Framework (ICF) assessments. It mirrors the actual test format with multi-level coding problems where each subsequent level builds upon the previous one.
I've long observed that coding assessments—whether CodeSignal, LeetCode, or others—ultimately come down to practice. However, CodeSignal's platform doesn't offer practice tests that closely resemble their actual assessments.
After reading How hackable are automated coding assessments?, I came to a deep realization: CodeSignal is no different than the SAT. More practice will definitively boost your score. This repo exists to fill that gap—giving you a realistic practice environment so you can walk into your assessment with confidence.
CodeSignal provides a conversion table to translate your score to a percentile ranking.
I passed the screening for a well-funded fintech startup with a score of 480, which corresponds to the 82nd percentile. Based on this, here's a general guideline:
| Score | Percentile | Likelihood of Passing |
|---|---|---|
| < 450 | < 70% | May struggle with competitive companies |
| 480 | ~82% | Passed startup screening |
| 500+ | ~85%+ | Safe target for most companies |
🎯 Aim for 500+ to confidently pass most company screenings.
CodeSignal's ICF assessments evaluate modularity as a scoring factor. Demonstrate your understanding of SOLID principles:
- Encapsulate your data in classes — Don't just use dictionaries everywhere
- Think about extensibility — Each level builds on the previous one
- Use proper OOP patterns — Not only does this showcase your software engineering skills, but it makes Levels 3 and 4 significantly easier
For example, instead of storing account data in a simple dict, create an Account class with methods for deposit, withdraw, and transaction history. When you reach Level 3 (scheduled payments) and Level 4 (account merging), you'll thank yourself.
- Python 3.10+
- pip
-
Clone the repository
git clone https://github.com/yourusername/LibreSignal.git cd LibreSignal -
Create a virtual environment (recommended)
python -m venv .venv source .venv/bin/activate # On macOS/Linux # or .venv\Scripts\activate # On Windows
-
Install dependencies
pip install -r requirements.txt
- Navigate to the question folder (e.g.,
Questions/bank_system/) - Read the problem description in the level markdown files (
level1.md,level2.md, etc.) - Implement your solution in
simulation.py - Start with Level 1 and progress sequentially — just like the real test!
Each level has its own test suite. Run tests for a specific level from the root directory:
# Test a specific level
pytest Questions/bank_system/test_bank_system.py::TestLevel1 -v
pytest Questions/bank_system/test_bank_system.py::TestLevel2 -v
pytest Questions/bank_system/test_bank_system.py::TestLevel3 -v
pytest Questions/bank_system/test_bank_system.py::TestLevel4 -v
# Run all tests
pytest Questions/bank_system/test_bank_system.py -v# Test a specific level
pytest Questions/in_memory_database/test_in_memory_database.py::TestLevel1 -v
pytest Questions/in_memory_database/test_in_memory_database.py::TestLevel2 -v
pytest Questions/in_memory_database/test_in_memory_database.py::TestLevel3 -v
pytest Questions/in_memory_database/test_in_memory_database.py::TestLevel4 -v
# Run all tests
pytest Questions/in_memory_database/test_in_memory_database.py -vLibreSignal/
├── README.md
├── requirements.txt
└── Questions/
├── bank_system/
│ ├── level1.md # Level 1 requirements
│ ├── level2.md # Level 2 requirements
│ ├── level3.md # Level 3 requirements
│ ├── level4.md # Level 4 requirements
│ ├── simulation.py # Your implementation goes here
│ ├── simulation_solution.py # Reference solution
│ └── test_bank_system.py # Test suite
└── in_memory_database/
├── level1.md # Level 1 requirements
├── level2.md # Level 2 requirements
├── level3.md # Level 3 requirements
├── level4.md # Level 4 requirements
├── simulation.py # Your implementation goes here
├── simulation_solution.py # Reference solution
└── test_in_memory_database.py # Test suite
For a deeper understanding of how CodeSignal's ICF works, refer to the official technical brief:
📄 Industry Coding Skills Evaluation Framework Technical Brief
- Read ALL levels first — Understanding what's coming helps you design a modular solution from the start
- Don't over-engineer Level 1 — But do set up proper data structures
- Test frequently — Run the test suite after implementing each method
- Manage your time — ~70 minutes total, so roughly 15-20 min per level
- Partial credit exists — If stuck on Level 4, make sure Levels 1-3 are solid
Found a bug? Have a new question to add? Contributions are welcome!
- Fork the repository
- Create your feature branch (
git checkout -b feature/new-question) - Commit your changes (
git commit -m 'Add new question set') - Push to the branch (
git push origin feature/new-question) - Open a Pull Request
This project is open source and available under the MIT License.
Good luck with your assessment! 🍀
Remember: It's just practice. The more you do, the better you get.
Last Updated: March 2, 2026
Made with [I-hate-doing-meaningless-coding-questions-but-I-want-a-job mindset] in Boston