Welcome to the AI Engineer technical challenge for i.AI 👩💻
The Prime Minister has an urgent request! Due to the high workload of the job, they need help solving their essential morning crossword. In this exercise, you'll build a LLM powered crossword puzzle solver that demonstrates your software engineering and AI skills.
This interview will be split into 2 sections:
- Part 1: 1 hour private coding time
- Part 2: 45 minutes paired programming session
After working on the individual coding task, you will pair program with an interviewer to discuss your solution and continue developing the crossword puzzle solver.
When the interview is over please send a zip file of your code to the interviewer.
- Try to build an efficient and fast solution
- Focus on clean, maintainable code
- Be prepared to talk about key decisions and tradeoffs
- There is no single correct solution that we are looking for
- You are not expected to complete the entire challenge, but you should be able to explain how you could get there
- Time: 60 minutes
- AI assisted coding: Allowed ✅
The solver should:
- Read the clues and provide possible answers
- Resolve any conflicting answers
- Return a completed crossword as a result
- The medium puzzle in
data/medium.json - The hard puzzle in
data/hard.json - The cryptic puzzle in
data/cryptic.json
We provide a main.py script to help you get started. However, you can structure your code whichever way you think is best. We also provide a scratchpad.ipynb notebook to help you experiment with trying different solutions.
The crossword answers are included with the puzzles to help you validate your solutions, but your solution should complete the crossword without seeing any answers.
Note: You can use any libraries or tools to build your solution. We also provide an OpenAI API if you prefer to use that.
- Time: 45 minutes
- AI assisted coding: Allowed ✅
- Discuss and work with the interviewers to improve your solution to part 1
- Implement the missing unit tests for the crossword class
- Clone this repository:
git clone https://github.com/gavinedwards-ai/llm-crossword.git
cd llm-crossword- Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: .\venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Set up your environment variables:
cp .env.example .env #Copy the example env
# Edit the .env and replace with the values provided during the interview- Verify setup:
Run the main script:
python main.pyOr run the notebook cells in scratchpad.ipynb:
- Start coding!
llm_crossword/
├── src/ # Source code
├── tests/ # Test suite
└── data/ # Data files
Run the test suite:
pytestThis challenge is proprietary and confidential. Do not share or distribute.