Call Routing Project: Inspired by a real-world problem at a telephony API company – let's call it Teleo. The primary task is to implement an international phone call routing system that finds the least cost route through multiple carriers. One of the goals of this project is to demonstrate the wide variety of solutions and compare the tradeoffs with each.
- Read the project background on phone numbers, routes, and carriers
- Read the description of input and output data file format and inspect the data files
- Solve the challenges for the 5 scenarios in order, as they are given in increasing difficulty
These challenges are the baseline required to complete the project. Be sure to complete these before before starting on the stretch challenges below.
-
Scenario 1: One-time route cost check
-
Scenario 2: List of route costs to check
-
Scenario 3: Multiple long carrier route lists
Brainstorm a few ways to approach each scenario, write a brief description of your approach in English or pseudocode, and finally implement it.
First run it on smaller data files to test if it works, then run it on larger files to see if it's robust and if it scales well with larger input size.
Annotate each function with complexity analysis of running time and space (memory)
For each scenario, describe the tradeoffs you made and why the solution you chose works well for that scenario. What does it optimize for? What does it not optimize for?
These challenges are more difficult and help you push your skills and understanding to the next level.
-
Scenario 4: High-throughput pricing API
-
Scenario 5: Changing carrier route lists
Annotate each function with complexity analysis of running time and space (memory)