This repository contains the codebase for the Lyft Backend Virtual Experience Program. A Backend Engineer at Lyft collaborates with a cross-functional team consisting of software engineering, product, data science, analytics, and operations to work on Lyft backend projects.
- Python
- Unit Testing Framework (e.g.,
unittest
) - Test-driven Development (TDD)
Use the tasks list to read the commits in this repository.
- Description: Designed a clean system architecture to ensure extensibility and easy modification of service criteria.
- Changes Made:
- Introduced a modular architecture to accommodate future changes efficiently.
- Implemented a class hierarchy for engines and batteries with appropriate attributes and methods.
- See
UML_diagram.pdf
in this repository for the revised architecture.
- Description: Ensured system correctness through rigorous unit testing.
- Changes Made:
- Created comprehensive unit tests for each engine and battery class.
- Validated edge cases and expected behavior to guarantee system robustness.
- Description: Modified the Spindler battery service criteria.
- Changes Made:
- Adjusted the code to require service after three years instead of two for Spindler batteries.
- Description: Added functionality to account for tire servicing criteria based on wear sensors.
- Changes Made:
- Implemented logic to evaluate tire wear arrays for both Carrigan and Octoprime tires.
- Integrated tire servicing criteria into the car factory class.
- Clone the repository to your local machine.
- Make sure you have Python installed.
- Navigate to the project directory.
- Run the desired Python scripts to execute the functionalities.
- The system is designed to handle valid inputs. In a real-world scenario, extensive input validation would be implemented.
-
Capulet Engine
- Service Interval: Once every 30,000 miles
-
Willoughby Engine
- Service Interval: Once every 60,000 miles
-
Sternman Engine
- Service Interval: Only when the warning indicator is on
-
Spindler Battery
- Service Interval: Once every 2 years
-
Nubbin Battery
- Service Interval: Once every 4 years
Car | Engine | Battery |
---|---|---|
Calliope | Capulet Engine | Spindler Battery |
Glissade | Willoughby Engine | Spindler Battery |
Palindrome | Sternman Engine | Spindler Battery |
Rorschach | Willoughby Engine | Nubbin Battery |
Thovex | Capulet Engine | Nubbin Battery |
-
There are five distinct car models within Lyft’s fleet, each equipped with a specific combination of engine and battery type.
-
It is important to note that the service criteria for these engines and batteries may undergo changes over time. Additionally, new car models are anticipated to be integrated into the fleet, making adaptability a crucial factor in the program's development.