user
Tässä on haastattelukysymys, jota käytän tuotepäälliköiden arvioinnissa. Mikä olisi hyvä vastaus?
\*\*\**Kysymyksen alku\*\*\*\*\*

Johdanto

- Tämä on tapaustutkimus/roolipelikysymys.
- Voit vapaasti kysyä minulta mitä tahansa kysymystä
- Ei ole mitään temppuja / kikkailuja
- Yksinkertaisin vastaus on luultavasti paras. Tämä on suurin virhe, jonka ihmiset tekevät. Ei tarvitse olla hieno, pidä se mahdollisimman yksinkertaisena.

Asetukset

- Olet Uberin ETA-tiimin pääjohtaja.
 - ETA on arvioitu saapumisaika - luku, joka kertoo, kuinka kaukana autosi on.
 - ETA on tärkeä, koska se ei ainoastaan kerro asiakkaalle, kuinka kaukana auto on, vaan se on myös panos kaikenlaiseen hinnoitteluun/tarjonnan suunnitteluun. Joten jos se kaatuu tai siinä on ongelmia, se on iso juttu.
 - ETA-tuloksen tuottaa palvelu, jonka päämies sinä olet. Teet tavallisia asioita, kuten yrität parantaa sitä ajan myötä ja varmistat, ettei se ole rikki.
- Eräänä päivänä asiakaspalvelutiimi tulee luoksesi
 - He sanovat: "Hei, tajusimme juuri, ettemme ole koskaan kertoneet teille tästä datasarjasta, joka meillä on."
 - Tietoaineisto on loki kaikista valituksista, joita käyttäjät ovat tehneet Uberille sovelluksen kautta.
 - Esim. "kuljettaja oli töykeä", "auto ei tullut paikalle", "minulta veloitettiin kaksi kertaa".
 - Kukin valitus on yksi rivi tietokannassa.
 - Jokainen valitus on merkitty kategorialla. esim. "kuljettajaan liittyvä", "hintaan liittyvä", "ETAan liittyvä".
 
 
 📌 Ehdokas voi selvittää kysymysten avulla:
 
 - Tiedot ovat aina ajan tasalla reaaliajassa (yksinkertaisuus).
 - Ei ole avointa tekstikenttää. Sarakkeet ovat vain `trip\_id, time, category`.
 - Tiedot ulottuvat historiallisesti vuosia taaksepäin.
 
 
 

- ETA-järjestelmässä on aiemmin ollut katkoksia, ja uskotte, että nämä tiedot voivat tarjota mahdollisuuden havaita katkokset.
- Kysymys kuuluu: miten voitte käyttää näitä tietoja katkosten havaitsemiseen? Haluamme pystyä herättämään insinöörin automaattisesti keskellä yötä, jos havaitsemme katkoksen.
📌 Ehdokas voi selventää kysymysten avulla:

- Emme ole kiinnostuneita ongelman korjaamisesta tai perimmäisten syiden analysoinnista...
- Voimme olettaa, että käytössä on toimiva hälytysjärjestelmä, esim. Pagerduty.
- Emme halua käyttää muita tietolähteitä, vain tikettitietoja.

\*\*\*\*Kysymyksen päättyminen\*\*\*\**
assistant
Hyvä vastaus tähän kysymykseen edellyttäisi, että toimitettuja valitustietoja käytettäisiin ETAan liittyvien valitusten poikkeavuuksien havaitsemiseen, mikä voisi viitata käyttökatkokseen. Tässä on vaiheittainen vastaus tähän tapaustutkimukseen:

1. **Tietojen ymmärtäminen**: Ensinnäkin on tärkeää ymmärtää tietokokonaisuuden rakenne ja varmistaa, että se on ajantasainen ja että se ulottuu historiallisesti vuosia taaksepäin. Tietokokonaisuus sisältää sarakkeita, kuten `trip_id`, `time` ja `category`, ja jokainen valitus on merkitty tietyllä luokalla.
2. **ETAan liittyvien valitusten suodattaminen**: Koska olemme kiinnostuneita ETA-järjestelmän käyttökatkosten havaitsemisesta, aloitamme suodattamalla tietokokonaisuuden siten, että se sisältää vain valitukset, joiden luokka on `ETA related`.
3. **Kynnysarvon määrittäminen poikkeavuuksille**: Mahdollisten käyttökatkosten havaitsemiseksi meidän on määriteltävä kynnysarvo ETAan liittyvien valitusten lukumäärälle tietyllä aikavälillä (esim. tunti), joka osoittaa poikkeaman. Kynnysarvo voi perustua historiatietoihin, kuten ETAan liittyvien valitusten keskimääräiseen määrään tunnissa lisättynä tietyllä määrällä keskihajontoja.
4. **Valvonta ja hälytys**: Ota käyttöön seurantajärjestelmä, joka analysoi jatkuvasti suodatettuja ETAan liittyviä valituksia koskevia tietoja. Jos valitusten määrä tietyllä aikavälillä ylittää määritellyn kynnysarvon, järjestelmän olisi käynnistettävä hälytys olemassa olevan hälytysjärjestelmän (esim. Pagerduty) avulla, jotta insinöörille voidaan ilmoittaa asiasta.
5. **Validointi ja tarkentaminen**: Kun järjestelmä on otettu käyttöön, on tärkeää validoida, että se havaitsee katkokset tehokkaasti ja minimoi vääriä positiivisia tuloksia. Tämä voidaan tehdä analysoimalla järjestelmän suorituskykyä tunnettujen aiempien katkosten aikana ja tarkentamalla kynnysarvoa tai muita parametreja tarpeen mukaan.
6. **Iterointi ja oppiminen**: Arvioi jatkuvasti järjestelmän suorituskykyä ja tee tarvittaessa muutoksia. Tähän voi kuulua kynnysarvon uudelleenlaskenta laajenevan tietokokonaisuuden perusteella tai teknisen tiimin antaman palautteen sisällyttäminen laukaistujen hälytysten merkityksellisyyteen.

Näitä vaiheita noudattamalla ETA-tiimi voi käyttää valitustietoja mahdollisten käyttökatkosten seurantaan, varoittaa tarvittaessa insinöörejä ja ylläpitää järjestelmän luotettavuuden korkeaa tasoa.