...

Lyft Back-End Engineering

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:

  1. Refactor the codebase: Design a clean architecture that allows for easily adding new service criteria (e.g., tire wear).
  2. Write Unit Tests: Create unit tests for existing engine and battery classes to ensure code quality and stability.
  3. 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.