面接質問と回答の解説 — ページ 48 / 52

Offer.ccの面接質問と回答解説の48ページ目を閲覧。思考プロセス、実装の詳細、深掘り質問、公開情報ソースを確認できます。

バックエンド難しい

バックエンド面接:タイムアウト、リトライ、サーキットブレーカーはどう連携させるべきか?

エンドツーエンドのデッドライン、障害セマンティクス・マトリクス、リトライバジェットを用いて同期依存呼び出しを設計し、サーキットブレーカー、プローブ制限、フォールトインジェクションによってカスケード障害を封じ込めます。

質問と回答を開く
データ難しい

データエンジニアリング面接:大規模な履歴データの安全なバックフィルをどのように行いますか?

180 TBの再計算を復元可能なパーティションに分割し、決定論的な入力、リソースの分離、差分のキャッチアップ、検証ゲート、およびバージョニングされた切り替え(cutover)によって本番パイプラインを保護します。

質問と回答を開く
コーディング難しい

コーディング面接:ワークスティーリングスケジューラの実装

ローカルLIFOとリモートFIFOスチールを備えたワーカーごとのdequeを構築し、シャットダウン、アイドル状態、公平性、重複実行について考察します。

質問と回答を開く
システム設計難しい

システムデザイン面接:パーソナライズされたニュースフィードをどのように設計しますか?

候補生成、ハイブリッドファンアウト、段階的ランキング、安定したページネーション、認可フィルタリング、セレブリティホットスポットや結果整合性からの復旧を中心に、パーソナライズされたニュースフィードを設計します。

質問と回答を開く
バックエンド難しい

バックエンド面接:N+1クエリ問題をどのように診断し、修正するか?

ページサイズに比例して増加するクエリ数を検出し、JOINとselect-inバッチロードを比較し、オーバーフェッチや一貫性の変化を隠さずに修正を検証します。

質問と回答を開く
データ難しい

データエンジニアリング面接:Sparkのデータスキューをどのように診断・解消するか?

Spark UI、実行計画、キー分布を用いてデータスキューを立証し、AQE、ブロードキャスト、ターゲットを絞ったJoinソルティング、または2段階集約を選択して、正当性とパフォーマンスの双方を検証します。

質問と回答を開く
コーディング難しい

コーディング面接:キーごとのリクエスト結合(singleflight)の実装

結果の共有、失敗後の再試行、レースセーフなクリーンアップ、明示的なキャンセルセマンティクスを備えた、キーごとの処理中(in-flight)重複排除を実装します。

質問と回答を開く
システム設計難しい

システムデザイン面接:仮想ノードを用いたコンシステントハッシュ法の設計

剰余による再マッピングからハッシュリングを導出し、仮想ノード、重み付け、レプリカ、バージョン管理されたマイグレーションを備えたコンシステントハッシュ法を設計するとともに、それだけでは解決できないホットキーや障害の問題を特定します。

質問と回答を開く
バックエンド難しい

バックエンド面接:PKCE を用いた OAuth 認可コードフローの解説

認可、コールバック、トークン交換にわたる OAuth 認可コードフローを導出します。state、PKCE、クライアント認証、OIDC を明確に分離し、攻撃手法と失敗テストを用いて設計を検証します。

質問と回答を開く
データ難しい

SQL面接:正確なDay-7コホートリテンションの計算

PostgreSQLで、カレンダー日のタイムゾーン、成熟コホートのフィルタリング、ユーザーレベルの重複排除、リターンゼロの保持、本番環境でのチェックを備えた正確なDay-7コホートリテンションクエリを構築します。

質問と回答を開く
コーディング難しい

コーディング面接:エラー回復機能を備えた式パーサーをどのように設計しますか?

1つの構文エラーによってドキュメント全体が無効にならないよう、字句解析、構文解析、同期、診断、および部分ASTを構築します。

質問と回答を開く
システム設計難しい

システム設計面接:Eコマース決済処理システムの設計

決済インテント、オーソリとキャプチャ、冪等なリトライ、非同期Webhook、不変な金銭台帳、返金、および照合から、復元可能なEコマース決済システムを導き出します。

質問と回答を開く
バックエンド難しい

バックエンド面接:SQLインジェクションをどのように防ぎますか?

サーバー側のパラメータ化によってSQLコードとデータを分離し、動的識別子を固定のホワイトリスト経由でマッピングし、テナント認可を維持し、生クエリパス、ストアドプロシージャ、およびセカンドオーダー実行を検証します。

質問と回答を開く
データ難しい

SQL面接対策:各ユーザーの最長連続ログイン日数を取得する

ビジネスデイの粒度を確定し、ROW_NUMBERを用いて安定したグループキーを導出し、同率の最長連続記録を保持し、タイムゾーンや重複イベントのエッジケースをテストすることで、PostgreSQLのGaps and Islands(ギャップとアイランド)面接問題を解決します。

質問と回答を開く
コーディング難しい

コーディング面接:キャンセル可能な優先度付きタスクスケジューラをどのように実装するか?

期限、優先度、重複タスクの置換、およびキャンセルを備えた単一ノードのスケジューラを実装し、古いヒープエントリ、ワーカー制限、シャットダウンの競合状態に対処します。

質問と回答を開く
システム設計普通

システム設計面接:URL短縮サービスの設計

明確なトラフィック前提条件からコード空間、ストレージ、キャッシュ、リダイレクト、冪等性、有効期限、不正利用対策を導き出し、高耐久かつ低レイテンシなURL短縮サービスを設計します。

質問と回答を開く
バックエンド難しい

バックエンド面接:データベース接続プールのサイジングと枯渇の診断方法

データベース全体のバジェット、リクエストの同時実行数、レプリカ数から接続プールの上限を導き出し、アプリケーションのキューとPostgreSQLのセッション情報をもとに、プールのサイズ不足、接続リーク、データベースの過負荷を見分けます。

質問と回答を開く
データ難しい

データエンジニアリング面接:ダッシュボードの数値の誤りをどのようにデバッグするか?

指標のセマンティクスと信頼できる比較対象から始め、リネージをたどって最初の異常な境界を特定し、封じ込め、冪等なバックフィル、照合、データコントラクトを通じて信頼を回復します。

質問と回答を開く
コーディング普通

コーディング面接:キャンセル機能を備えた並行数制限付き非同期 map の実装

固定ワーカー、インデックス管理された結果、明示的なエラーモード、および AbortSignal を使用して非同期スケジューラ問題を解決します。

質問と回答を開く
システム設計難しい

システム設計面接:分散メッセージキューの設計

配信コントラクト、パーティション化されたログ、レプリカの確認応答(Ack)、コンシューマーオフセット、および大容量ペイロード用のオブジェクトストレージパスから、再生可能でスケーラブルなマルチテナントメッセージキューを導出します。

質問と回答を開く
バックエンド難しい

PostgreSQLでダウンタイムゼロのスキーマ移行を実行するにはどうすればよいか?

ローリングデプロイの互換性の確保から始め、PostgreSQLのDDLロック、二重書き込み、制約検証、インデックス、およびフェーズ固有のロールバックを処理する、中断可能なexpand-backfill-cutover-contract(拡張・バックフィル・切り替え・縮小)ワークフローを設計します。

質問と回答を開く
データ難しい

データエンジニアリング面接:トレーニング・サービングスキューのないML特徴量パイプラインをどう設計するか?

リアルタイムの不正検知スコアリングを題材に、セマンティックコントラクト、2つのクロック、オフライン/オンラインストア、バージョン管理されたロールアウト、特徴量ベクトルのリプレイを備えた検証可能なML特徴量パイプラインを設計します。

質問と回答を開く
コーディング難しい

コーディング面接:時間バージョン付き Key-Value ストアの実装

キーごとのバージョン履歴と上限(upper-bound)二分探索を用いた set/get を実装し、順不同のタイムスタンプ、同一タイムスタンプ、境界条件、メモリのトレードオフをカバーします。

質問と回答を開く
システム設計難しい

システムデザイン面接:メトリクス監視およびアラートシステムをどのように設計しますか?

時系列とカーディナリティのバジェット設定から始め、高スループット収集、制限付きクエリ、信頼性の高いアラート、テナント分離、テスト可能なリカバリを備えたメトリクスプラットフォームを設計します。

質問と回答を開く