Back-End Engineering Virtual Experience Program at Lyft
Project Overview:
This project simulates real-world back-end engineering challenges faced by Lyft. It focuses on:
- Refactoring: Rewriting existing code to improve its maintainability, extensibility, and efficiency.
- Unit Testing: Writing comprehensive tests to ensure individual components and functions work as expected.
- Test-Driven Development (TDD): Implementing new functionality based on pre-written tests, ensuring efficient and robust development.
- Object-Oriented Programming (OOP): Applying OOP principles like classes, inheritance, and encapsulation to build modular and reusable code.
Challenge:
Lyft needs a system to determine when rental cars require service based on engine, battery, and now, tire wear. The initial system is messy and lacks flexibility. Your task is to:
- Refactor the codebase: Design a clean architecture that allows for easily adding new service criteria (e.g., tire wear).
- Write Unit Tests: Create unit tests for existing engine and battery classes to ensure code quality and stability.
- Implement New Functionality:
- Upgrade Spindler Batteries: Modify Spindler batteries to require service after 3 years instead of 2, showcasing the new architecture's efficiency.
- Add Tire Servicing: Implement criteria for Carrigan and Octoprime tires based on tread wear sensor data.
Skills Learned:
- Software Architecture: Designing scalable and maintainable systems.
- Refactoring: Improving code readability, maintainability, and performance.
- Unit Testing: Writing thorough tests for code robustness and correctness.
- OOP: Applying OOP principles for modular and reusable code.
- TDD: Developing code driven by clear requirements and comprehensive tests.
Outcomes:
- Successfully refactored the codebase for enhanced flexibility and extensibility.
- Wrote a suite of unit tests for code quality and stability.
- Implemented new functionality for servicing Spindler batteries and tires.
- Gained valuable hands-on experience in crucial back-end engineering skills.
Acknowledgments:
I express my sincere gratitude to Lyft for providing this incredible opportunity to hone my skills and gain valuable experience in back-end engineering.