Работа мечты: различия между версиями
Перейти к навигации
Перейти к поиску
Google
Artem (обсуждение | вклад) |
Artem (обсуждение | вклад) |
||
Строка 191: | Строка 191: | ||
== Сколько нужно серверов? == | == Сколько нужно серверов? == | ||
<math>CPU = \frac{N_{CPU_Threads}}{\frac{1}/{T_{handle_1_request}}} = \frac{N_{32}}{\frac{1}/{T_{handle_1_request}}}</math> | |||
= Mock интервью = | = Mock интервью = |
Версия от 23:38, 17 января 2023
- Amazon
- Apple
- Netflix
- Microsoft
Compensations
- https://www.levels.fyi/
- http://www.tax-rates.org/income-tax-calculator/?ref=nav_income - налоговый калькулятор США
Jobs Websites
- https://linkedin.com
- https://indeed.com
- https://glassdoor.com/
- https://www.toptal.com/
- https://www.crunchbase.com/
Подготовка
- Cracking the coding interview
- Алгоритмы. Построение и анализ | Кормен Томас Х., Лейзерсон Чарльз И.
- https://www.topcoder.com/
- https://www.learneroo.com/subjects/8
- https://www.careercup.com/
- https://www.interviewbit.com/
- https://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/
- https://careers.google.com/stories/apm-preparation-materials/
Алгоритмы
- Не забываем про рекурсию
PHP
Python
Golang
JavaScript
TypeScript
Angular
SQL
Поведенческие вопросы
Решение задач
- https://www.leetcode.com/
- https://www.hackerrank.com/
- https://www.interviewbit.com/
- https://www.careercup.com/
- https://www.algoexpert.io/
- https://www.educative.io/
- https://www.pluralsight.com/
- https://www.learneroo.com/
- https://coderbyte.com/
Дизайн систем
- https://github.com/donnemartin/system-design-primer
- https://docs.google.com/document/d/1w3qb6SS1Hycyce5Fg5mVMdzkGYXTRskSf57IoD98ZQw/edit
- https://www.hiredintech.com/app#system-design
- Educative - https://www.educative.io/path/scalability-system-design
- YouTube Playlist - https://www.youtube.com/playlist?list=PLMCXHnjXnTnvo6alSjVkgxV-VH6EPyvoX
Время отклика систем
Latency Comparison Numbers -------------------------- L1 cache reference 0.5 ns Branch mispredict 5 ns L2 cache reference 7 ns 14x L1 cache Mutex lock/unlock 25 ns Main memory reference 100 ns 20x L2 cache, 200x L1 cache Compress 1K bytes with Zippy 10,000 ns 10 us Send 1 KB bytes over 1 Gbps network 10,000 ns 10 us Read 4 KB randomly from SSD* 150,000 ns 150 us ~1GB/sec SSD Read 1 MB sequentially from memory 250,000 ns 250 us Round trip within same datacenter 500,000 ns 500 us Read 1 MB sequentially from SSD* 1,000,000 ns 1,000 us 1 ms ~1GB/sec SSD, 4X memory HDD seek 10,000,000 ns 10,000 us 10 ms 20x datacenter roundtrip Read 1 MB sequentially from 1 Gbps 10,000,000 ns 10,000 us 10 ms 40x memory, 10X SSD Read 1 MB sequentially from HDD 30,000,000 ns 30,000 us 30 ms 120x memory, 30X SSD Send packet CA->Netherlands->CA 150,000,000 ns 150,000 us 150 ms Notes ----- 1 ns = 10^-9 seconds 1 us = 10^-6 seconds = 1,000 ns 1 ms = 10^-3 seconds = 1,000 us = 1,000,000 ns
- https://ping-admin.ru/free_ping/
- До МСК
- Европа < 50
- До Урала < 50
- Владивосток 100
- США-Канада 150-250
- Южная Америка 200-300
- Азия 200-300
- Австралия 300
Расположение датацентров в мире
Amazon
Alibaba
Cloudflare
MS Azure
Не функциональные характеристики систем
Availability / Доступность
Доступность % | Недоступность в год | Недоступность в месяц | Недоступность в неделю |
---|---|---|---|
90% (1 девяток) | 36.5 дней | 72 часов | 16.8 часов |
99% (2 девяток) | 3.65 дней | 7.20 часов | 1.68 часов |
99.5% (2 девяток) | 1.83 дней | 3.60 часов | 50.4 минут |
99.9% (3 девяток) | 8.76 часов | 43.8 минут | 10.1 минут |
99.99% (4 девяток) | 52.56 минут | 4.32 минут | 1.01 минут |
99.999% (5 девяток) | 5.26 минут | 25.9 секунд | 6.05 секунд |
99.9999% (6 девяток) | 31.5 секунд | 2.59 секунд | 0.605 секунд |
99.99999% (7 девяток) | 3.15 секунд | 0.259 секунд | 0.0605 секунд |
Reliability / Надежность
Среднее время между отказами (MTBF)
Среднее время отказа (MTTF)
Среднее время восстановления(MTTR)
Scalability / Масштабируемость
- Вертикальное масштабирование - увеличение мощности узлов (CPU(Frequency, # of cores), MEM(Volume, Frequency), HDD->SSD->NVMe)
- Горизонтальное масштабирование - увеличение количества узлов
Maintainability / Поддерживаемость
- Главный параметр - MTTR
- Легкость кода и прозрачность разработки
Fault Tolerance / Устойчивость к сбоям
- Отказоустойчивость - способность системы обслуживать запросы даже при отказе ее частей.
- Можно достичь шардингом и репликацией
Сколько нужно серверов?
Невозможно разобрать выражение (Ошибка преобразования. Сервер («https://wikimedia.org/api/rest_») сообщил: «Cannot get mml. upstream connect error or disconnect/reset before headers. reset reason: connection termination»): {\displaystyle CPU={\frac {N_{CPU_{T}hreads}}{{\frac {1}{/}}{T_{handle_{1}_{r}equest}}}}={\frac {N_{32}}{{\frac {1}{/}}{T_{handle_{1}_{r}equest}}}}}
Mock интервью
Interview tools
Проходить собеседования - отдельный навык
Не обольщайтесь - вопросы на собеседовании не говорят о том, что под капотом.