Structured learning system for preparing for Software Development Engineer in Test (SDET) interviews, specifically designed for Apple's Core OS Software Update QA team.
This repository contains a comprehensive learning system that emphasizes deep understanding over surface-level memorization. The methodology is reusable for any technical interview preparation or personal learning projects.
Interview Date: December 2, 2025
Created: November 23, 2025
Learning Approach: Problem → Solution → Deep Insights
apple_sdet_package/
├── exercises/
│ ├── 01_python_basics/ # Hash maps, sets, heapq, complexity
│ ├── 02_oop/ # Inheritance, composition, properties
│ └── 03_pytest/
│ ├── 01_basic_tests/ # Test discovery, assertions, exceptions
│ ├── 02_fixtures/ # Setup/teardown, scopes, conftest.py
│ └── 03_parametrize/ # Data-driven testing
├── quick_review/ # Fast reference guides
├── LEARNING_SYSTEM.md # Complete methodology documentation
└── topics_to_revisit.md # Progress tracking
Each topic uses three files for maximum learning:
XX_problem_*.md- Problem statement with requirementsXX_solution_*.*- Your implementation (code files)XX_insights_*.md- Deep documentation of concepts learned
This pattern ensures you:
- Understand requirements before coding
- Implement solutions yourself
- Document learnings for future reference
- Python Basics (6 problems)
- Hash maps, sets, heapq
- Time/space complexity analysis
- Object-Oriented Programming (3 problems)
- Inheritance and polymorphism
- Composition patterns
- Properties and encapsulation
- pytest Fundamentals (2 problems)
- Test discovery and assertions
- Fixtures and dependency injection
- Fixture scopes (function/module/session)
- conftest.py hierarchy
- pytest Parametrize (data-driven testing)
- Mocking and test isolation
- Linux debugging scenarios
- Test framework design
- Mock interviews
Python 3.12+
pytest 9.0+# Clone the repository
git clone <your-repo-url>
cd apple_sdet_package
# Create virtual environment
python -m venv venv
source venv/Scripts/activate # Windows Git Bash
# source venv/bin/activate # macOS/Linux
# Install dependencies
pip install pytest# Run all tests
pytest -v
# Run specific topic
cd exercises/03_pytest/01_basic_tests
pytest test_calculator.py -v
# Show fixture execution
pytest test_database.py --setup-show- Read the problem (
XX_problem_*.md) - Implement solution (create/edit code files)
- Run tests to verify
- Document insights (
XX_insights_*.md) - what you learned - Practice solo - redo without looking
- Deep Learning Focus - Understand concepts, not just syntax
- Interview Ready - Practice solo to simulate real interviews
- Reusable System - Adapt for any technology or interview
- No AI Shortcuts - Build genuine problem-solving skills
- Comprehensive Documentation - All learnings captured in insights files
# pytest basics
pytest -v # Verbose output
pytest -s # Show print statements
pytest --fixtures # List available fixtures
pytest --setup-show # Show fixture execution order
# Run specific tests
pytest test_file.py::test_function
pytest -k "test_name_pattern"Allowed:
- Personal notes and cheatsheets
- Official documentation
- Google for syntax
- Stack Overflow
Not Allowed:
- AI assistants (ChatGPT, Copilot)
- Live help from others
- Copy-pasting without understanding
See LEARNING_SYSTEM.md for complete documentation on:
- Adding new topics (Docker, FastAPI, React, etc.)
- Customizing for different interviews
- Scaling the structure
- Progress tracking strategies
Current status tracked in topics_to_revisit.md. Update after each session with:
- Topics that need more practice
- Concepts requiring deeper understanding
- Areas of confidence
This is a personal learning repository, but the system is designed to be reusable. Feel free to fork and adapt for your own learning journey!
Personal educational project - use freely for your own learning.
Note: This repository represents active interview preparation. The learning system emphasizes understanding over memorization and is designed to build genuine problem-solving capabilities without AI assistance.