クラウドを活用できるエンジニアを目指すなら,「今よりエンジニアとして自由になる」くらいの気持ちがあってよいと思う。YoutubeとUdemyの中から,Job interview,特にSystem Design interviewに関するリンクを残しておく。
System Design interviewの様子を見ていると,「今どきのエンジニアにとって,システム化要件定義のスキルがいかに重要か」が分かる。システム化要件定義をこなせるようになれば,自分でクライアントの話を聞いてシステムを提案できる。
System Design interviews on Youtube
私がなんとなく,「AWSのシステム設計例が欲しい」と思って検索していて「これだ!」と感じた動画。その場で話を聞きながら,非機能要件,エンドポイント,バックエンドの構成などをサラサラと決めていく。もちろんこの設計が決定稿なわけではないが「検証可能なレベル」なら先に進めるのがクラウドだ。
"Design Netflix"とか。マイクロサービスの先駆者でもあるNetflixなので,いきなり「設計して」と言われると戸惑うところ。要件定義でうまく話を進めていく様子が分かる。
ちょっと調べたところ,interviewの題材としては,
という2方向があるようだ。
Exponent社のJob interviewはほかにもたくさんある。mock interviewだけではなく,Tipsも簡潔で素晴らしい。例えばREST API。
すでに海外の情報は,無料でもこのくらいまとまっている。
Youtubeは無料でも情報が得られるので,"System Design Interview"の調査は定期的にやりたいところ。
System Design interviews on Udemy
Mock interviewsとして,以下の6つが紹介されている。
- URL Shortening Service
- Restaurant Reservation System
- Web Crawler
- Top-Sellers
- Video Sharing Service
- Search Engine
このMock interviewの前のSectionでも技術解説も簡潔。"Section2: Designing Systems that Scale"にスケーラビリティに関する設計方針がまとまっている。
case studyが13ある。設計全体図は別途downloadできる。ほかにも"System Design interview"で検索するとたくさんhitする。
クラウドを活用できるエンジニアになりたい,と思っている人は「より挑戦的な仕事で,より高い報酬で働きたい」という気持ちを持ってよい。エンジニアとしての現状を自力で変更できる人は,もう「上司の指示なのでやる」という領域を超えている。