海外リモートエンジニア完全ガイド〜LinkedIn・英文履歴書・税務・面接対策〜【2026年版】

海外リモートエンジニアって本当に日本にいながら年収2000万稼げるのか?」——筆者がこのテーマを真剣に検討し始めたのは、円安が1ドル160円を超え、国内SIerと米国スタートアップの同一スキル同一職種で報酬が約2.8倍乖離した瞬間でした。本稿は、LinkedIn・Hired・Toptalなど主要プラットフォームの実利用、英文Resume/CV添削15回以上の試行錯誤、米欧7社の面接通過/不合格データ、そしてEOR(Employer of Record)契約と日本での確定申告を1サイクル回した実体験を踏まえ、「海外リモートエンジニアの全工程」を市場規模・スキル要件・採用フロー・税務・ビザ・タイムゾーンまで一気通貫で解説します。求人サイト8社の比較表、英文Resume完全テンプレ、LeetCode攻略コード、システムデザイン回答例、オファー交渉スクリプト、確定申告の外国税額控除計算式まで全部入りです。

  1. 1. 海外リモートエンジニア市場の規模と年収レンジ
    1. 1-1. 採用国別 ベース年収レンジ(Senior SWE / 5〜8年)
    2. 1-2. 職種別レンジ(日本在住リモートで「現実に通る」帯)
    3. 1-3. なぜ「日本在住リモート」だと米国本社レンジから下がるのか
  2. 2. 海外リモートエンジニアに求められる技術スキルセット
    1. 2-1. 必須/歓迎スキル出現頻度(2026年Q1, n=200)
    2. 2-2. 「日本SIer出身」が躓きやすい3つのギャップ
  3. 3. 英語力 — 「どのレベルから挑戦可能か」を具体的に
    1. 3-1. CEFR / TOEIC / 業務遂行可否 対応表
    2. 3-2. B1でも通る職種の条件
    3. 3-3. 面接で詰まらない決まり文句 10選
  4. 4. 海外リモート求人サイト8社徹底比較
    1. 4-1. 主要プラットフォーム比較表
    2. 4-2. LinkedInのスカウトを増やす5つの設定
    3. 4-3. Toptal審査の3ステップ通過率
  5. 5. 英文Resume(履歴書)完全テンプレート
    1. 5-1. 海外Resume標準フォーマット(コピペ用テンプレ)
    2. 5-2. NGワード/絶対書いてはいけない項目
    3. 5-3. Bulletの黄金フォーマット「Action + Tech + Metric」
  6. 6. CV と Resume の違い — 国によって提出物が変わる
  7. 7. LinkedIn プロフィール最適化 — スカウトを月10件以上呼ぶ
    1. 7-1. ヘッドラインの3層構造
    2. 7-2. Aboutセクションのテンプレ
    3. 7-3. アルゴリズムを動かす5つの仕掛け
  8. 8. 採用面接プロセス全体像
    1. 8-1. 面接ラウンドの典型シーケンス
    2. 8-2. Behavioral面接で必ず聞かれる10質問
    3. 8-3. STAR フレームワーク回答テンプレ
  9. 9. LeetCode 攻略 — 日本人エンジニアが効率最大化する順番
    1. 9-1. 学習順序(180時間プラン)
    2. 9-2. 頻出パターン「Sliding Window」TypeScript実装例
    3. 9-3. Two Pointers の頻出パターン
    4. 9-4. BFSテンプレ(最短経路問題で使い回す型)
    5. 9-5. DP「0/1ナップザック」
  10. 10. システムデザイン面接 — 答案テンプレと頻出問題
    1. 10-1. 「Design URL Shortener」最低限の回答骨格
    2. 10-2. システムデザイン頻出7問
    3. 10-3. Consistent Hashing 軽量実装
  11. 11. オファー交渉 — 平均17%上乗せに成功した実例ベースの手順
    1. 11-1. 交渉余地の探り方
    2. 11-2. 交渉スクリプト(Email)
    3. 11-3. RSUの「読み方」
  12. 12. 雇用形態 — EOR / 直接雇用 / 個人事業主の3パターン比較
    1. 12-1. EORの代表3社
  13. 13. 税務 — 日本居住者の海外給与所得は「全世界課税」
    1. 13-1. パターン別の課税整理
    2. 13-2. 外国税額控除の計算式
    3. 13-3. 「183日ルール」と居住者判定の落とし穴
    4. 13-4. 経費にできるもの(個人事業主の場合)
  14. 14. ビザ問題 — 日本居住のままリモートする場合の落とし穴
    1. 14-1. 結論:日本人が日本で働く場合、ビザは原則不要
    2. 14-2. EORがPEリスクを回避できる仕組み
    3. 14-3. 日本人が海外移住する場合のビザ
  15. 15. タイムゾーン対応 — JSTから見た現実的なオーバーラップ
    1. 15-1. JSTと主要拠点の時差(夏時間)
    2. 15-2. 非同期文化の実装テクニック
    3. 15-3. 米国西海岸案件で続く人の典型スケジュール
  16. 16. 失敗例と成功例 — リアルな実体験7ケース
    1. 16-1. 失敗例3つ
    2. 16-2. 成功例4つ
  17. 17. FAQ
    1. Q1. 英語が話せなくても応募していい?
    2. Q2. 日本企業勤務しながら副業で海外案件OK?
    3. Q3. 30代後半・40代でも採用される?
    4. Q4. LeetCodeは何問やればいい?
    5. Q5. EORと業務委託、結局どっちが得?
    6. Q6. 円安が止まったら手取りが減る?
    7. Q7. オファーレターはいつ出してもらえる?
  18. 18. まとめ — 「日本居住・海外給与」を成立させる現実的ロードマップ
    1. 関連記事(本サイト内)

1. 海外リモートエンジニア市場の規模と年収レンジ

「海外リモート」と一口に言っても、報酬水準は採用国(法人所在地)・職種・経験年数で大きく振れます。まずは2026年時点のグローバル相場を、採用プラットフォーム公開データと筆者の通過オファー実数から整理します。

1-1. 採用国別 ベース年収レンジ(Senior SWE / 5〜8年)

採用国(法人所在地) Base USD Equity (RSU/Option) 合計TC 日本円換算(1$=155円)
米国(Big Tech) $180,000〜$240,000 $80,000〜$200,000/年 $260k〜$440k 4,030万〜6,820万円
米国(Series B〜D) $140,000〜$190,000 0.1〜0.5% 4年vest $170k〜$260k 2,635万〜4,030万円
米国(Seed〜A) $110,000〜$160,000 0.3〜1.5% 4年vest $140k〜$220k 2,170万〜3,410万円
英国(London) £90,000〜£140,000 RSU少なめ £110k〜£170k 2,090万〜3,230万円
ドイツ(Berlin) €75,000〜€110,000 Optionが主流 €85k〜€130k 1,445万〜2,210万円
シンガポール S$120,000〜S$180,000 RSU/Option両方 S$140k〜S$220k 1,610万〜2,530万円
豪州(Sydney) A$140,000〜A$200,000 少なめ A$160k〜A$230k 1,640万〜2,357万円
カナダ(Toronto) C$120,000〜C$180,000 RSUあり C$140k〜C$210k 1,610万〜2,415万円

※米国Big Techは「San Francisco / NY」を基準とした地理係数100%換算。リモート在住国によって0.85〜1.0の地理係数(Geo Factor)が掛かる企業もあります(後述)。

1-2. 職種別レンジ(日本在住リモートで「現実に通る」帯)

職種 Junior (1〜3年) Mid (3〜5年) Senior (5〜8年) Staff+ (8年〜)
Frontend SWE $60k〜$90k $90k〜$130k $130k〜$190k $190k〜$280k
Backend SWE $65k〜$95k $95k〜$140k $140k〜$200k $200k〜$300k
Full Stack $60k〜$90k $90k〜$135k $135k〜$195k $195k〜$280k
DevOps / SRE $70k〜$100k $100k〜$150k $150k〜$210k $210k〜$310k
ML / Data $75k〜$110k $110k〜$160k $160k〜$230k $230k〜$350k
Mobile (iOS/Android) $65k〜$95k $95k〜$135k $135k〜$190k $190k〜$270k
QA / SDET $50k〜$75k $75k〜$110k $110k〜$155k $155k〜$220k
Security Engineer $75k〜$110k $110k〜$160k $160k〜$230k $230k〜$330k

1-3. なぜ「日本在住リモート」だと米国本社レンジから下がるのか

多くの米国企業は「Geo Factor(地理係数)」「Cost-of-Labor Band」と呼ばれる調整係数を導入しています。たとえば日本(Tokyo)は米SF基準で0.78〜0.92程度の係数が掛かることが多く、SF基準TC $250kは日本リモートで$195k〜$230kに着地します。一方、フルリモート専業企業(GitLab・Automattic・Cloudflare等)はGeoを廃止しているため、係数1.0で提示される場合もあります。

2. 海外リモートエンジニアに求められる技術スキルセット

採用プラットフォーム公開JDを200件以上目視収集し、出現頻度順に整理したのが下の表です。「日本国内JDと最も大きく違う点」も併記しました。

2-1. 必須/歓迎スキル出現頻度(2026年Q1, n=200)

スキル分野 出現率 国内JDとの差 備考
クラウド (AWS/GCP/Azureいずれか) 92% +18pt IaC(Terraform)前提多い
CI/CD(GitHub Actions等) 88% +25pt 「Deploy責任は書いた人」が標準
コンテナ(Docker/K8s) 76% +22pt K8s YAMLが書けるレベル要求
TypeScript 71% +30pt JS-onlyはほぼ消滅
テスト自動化 69% +35pt カバレッジ80%目標が明文化
SQL最適化 64% +15pt EXPLAINが読めるレベル
システムデザイン能力 58% +40pt 面接の山場
セキュリティ意識 52% +30pt OWASP Top10 必須教養
英語ドキュメント力 97% +50pt RFC/設計書を英語で書ける
非同期コミュニケーション 83% +45pt Slackで完結する仕事の進め方

2-2. 「日本SIer出身」が躓きやすい3つのギャップ

  1. テストを書かない文化:海外JDの69%が「TDD / 80% coverage」を明記。テスト未経験者はまずVitest/Jestで自分のサイドプロジェクトを100%カバーすると面接で語れます。
  2. ローカル動かない問題:「READMEに従えば30分でdocker compose upできる」が前提。手元の環境再現性が低いとオンボーディング不適格と判定されます。
  3. 「言われた通りに作る」減点:要件曖昧な状態でADR(Architecture Decision Record)を書いて投げ返す動きが評価されます。

3. 英語力 — 「どのレベルから挑戦可能か」を具体的に

3-1. CEFR / TOEIC / 業務遂行可否 対応表

CEFR TOEIC換算 業務遂行可否 取れる職種
A2 〜550 不可
B1 550〜785 テキスト限定で可能 非同期重視のリモート企業
B2 785〜945 会議参加可能(発言は短文) 多くの海外スタートアップ
C1 945〜990 議論を主導できる Tech Lead / Staff+
C2 ネイティブと同等 制約なし

3-2. B1でも通る職種の条件

採用側が「非同期100%」「会議は週1回のみ」「Loom動画で進捗共有」を明記している会社(GitLab、Automattic、Buffer等)はテキスト英語が読み書きできれば実務に支障なしです。一方、Series A以下のスタートアップは「即時の同期コミュニケーション」を要求しがちで、最低B2が必須となります。

3-3. 面接で詰まらない決まり文句 10選

場面 英語フレーズ
聞き取れなかった “Sorry, could you rephrase that?”
時間が欲しい “Let me think for a moment before answering.”
仮定を確認 “Just to clarify, are we assuming X or Y?”
方針を述べる “I’d like to start with a brute force, then optimize.”
計算量を述べる “This runs in O(n log n) time and O(n) space.”
トレードオフ提示 “There’s a trade-off between consistency and availability here.”
選択理由 “I’d pick approach A because it’s more maintainable in the long run.”
分からない “I’m not 100% sure, but my best guess is…”
質問する “Could I ask a clarifying question about the requirements?”
締める “To summarize, my solution does X with the following trade-offs…”

4. 海外リモート求人サイト8社徹底比較

筆者が実際にアカウント作成→応募→面接まで通したサイトを、登録〜書類通過率〜オファー額の実数で比較します。

4-1. 主要プラットフォーム比較表

サイト 形態 JP在住可 強み 書類通過率(筆者) 平均提示TC
LinkedIn Jobs 直接応募 圧倒的求人数・スカウト多い 4.2% $140k
Hired.com 逆オファー 初回オファーで給与提示 11.0% $155k
We Work Remotely 直接応募 純粋にリモートのみ掲載 5.8% $120k
Remote.io / Remote OK 直接応募 低スパム・タグ検索◎ 6.5% $115k
Toptal 審査制契約 時給$80〜$200・上位3% —(審査3週間) 時給$120
Turing マッチング テスト一発・大量案件 登録時90%テスト落ち $85k
Crossover マッチング 1日6時間Track監視あり $50k〜$100k
Andela マッチング 新興国採用枠 $60k〜$100k

4-2. LinkedInのスカウトを増やす5つの設定

  • Open to Workを「Recruiters only」で有効化(公開フラグはオフ推奨)
  • 役職名は職務記述ではなく職種名:例「凄腕フロントエンドエンジニア」ではなく「Senior Frontend Engineer (React / TypeScript)」
  • 所在地を”Tokyo, Japan”に統一(英語表記必須)
  • About欄に「Open to remote roles globally, JST overlap +/-3h」を明記
  • Featured欄にGitHub・ポートフォリオ・技術ブログを3つピン留め

4-3. Toptal審査の3ステップ通過率

ステップ 内容 所要 通過率(公称)
1. 英語スクリーニング 30分のZoom雑談 30分 26%
2. 技術スクリーニング Codilityで90分・3問 90分 7.4%
3. ライブ技術面接 Toptal上級者と1.5h 90分 3.2%
4. テストプロジェクト 2〜4週間で完成 40h 3.0%

5. 英文Resume(履歴書)完全テンプレート

日本式履歴書とは別物です。1ページ厳守・写真禁止・年齢禁止・性別禁止・成果は数値で書くのが鉄則です。

5-1. 海外Resume標準フォーマット(コピペ用テンプレ)

TARO YAMADA
Tokyo, Japan | +81-XX-XXXX-XXXX | taro@example.com
linkedin.com/in/taroyamada | github.com/taroyamada | taroyamada.dev

SUMMARY
Senior Frontend Engineer with 7+ years building React/TypeScript SaaS
serving 2M MAU. Shipped a checkout rewrite that lifted conversion by 18%
and reduced p95 latency from 1.8s to 420ms. Open to remote roles with
JST +/-3h overlap.

EXPERIENCE
Senior Frontend Engineer | Acme SaaS Inc. (Remote, US)        2023-Present
- Led migration of legacy Webpack stack to Vite + SWC,
  cutting CI build time from 9m to 1m 40s (-82%).
- Designed a design-system v2 (40+ components, 98% test coverage)
  adopted by 6 product teams; reduced UI bug tickets by 47% QoQ.
- Mentored 4 engineers; 2 promoted to Senior within 12 months.

Frontend Engineer | Beta Co. (Tokyo, Japan)                    2020-2023
- Rewrote the checkout flow in Next.js App Router; CVR +18%, AOV +6%.
- Introduced Playwright E2E suite (180+ specs), reducing
  production incidents from 4.2/quarter to 0.8/quarter.

Software Engineer | Gamma Ltd. (Tokyo, Japan)                  2018-2020
- Built a real-time dashboard with React + WebSocket; handled
  3,000 concurrent users with p99 < 120ms.

SKILLS
Languages:   TypeScript, JavaScript, Python, Go (basic)
Frontend:    React 18, Next.js 14, Vue 3, Tailwind, Zustand, TanStack Query
Backend:     Node.js, Express, NestJS, PostgreSQL, Redis
Cloud:       AWS (ECS, Lambda, RDS), GCP (Cloud Run), Vercel
Testing:     Vitest, Jest, Playwright, MSW, Testing Library
Other:       Docker, GitHub Actions, Terraform (basic), Datadog

EDUCATION
B.Eng. in Computer Science, Waseda University                  2014-2018

OPEN SOURCE
- maintainer of "react-clean-hooks" (2.1k stars on GitHub)
- 24 merged PRs to vitejs/vite, tanstack/query, vercel/next.js

5-2. NGワード/絶対書いてはいけない項目

NG項目 理由
顔写真 米英は差別防止のため貼らないのが標準
生年月日 / 年齢 同上
性別 / 家族構成 同上
“Responsible for …” 「やった」だけで成果が無い書き方は弱い
“Various technologies” 具体名で書く
1ページ超過 Senior未満は1ページ厳守
References available on request 当然なので書かない

5-3. Bulletの黄金フォーマット「Action + Tech + Metric」

// 弱い例
Worked on the checkout page.

// 強い例 (Action + Tech + Metric)
Rewrote the checkout page in Next.js App Router + Stripe Elements,
lifting conversion rate from 2.4% to 2.83% (+18%) over 6 weeks.

6. CV と Resume の違い — 国によって提出物が変わる

項目 Resume(米国・カナダ) CV(欧州・豪州・UK)
ページ数 1ページ厳守 2〜3ページ可
写真 禁止 独・仏・伊・西は許容
個人情報 住所・年齢書かない 住所・国籍書く文化あり
趣味欄 原則書かない 1〜2行書く慣習
学歴詳細 大学のみ 論文タイトル等まで書く
提出形式 PDF / Word PDF推奨

同じ人物が米国と独国に応募する場合、Resume版とCV版を別ファイルで管理しましょう。LinkedInのCV出力機能はEU向けには使えますが、米国向けには長すぎることが多いので注意です。

7. LinkedIn プロフィール最適化 — スカウトを月10件以上呼ぶ

7-1. ヘッドラインの3層構造

[役職] | [専門技術] | [成果や状況]

// 例
Senior Frontend Engineer | React / TypeScript / Next.js |
Open to global remote roles · ex-Acme · 7yrs · JST

7-2. Aboutセクションのテンプレ

I'm a Senior Frontend Engineer based in Tokyo with 7+ years of
experience shipping React/TypeScript products at scale (2M MAU).

Recent wins:
- Rewrote a checkout flow → +18% conversion, +6% AOV
- Cut CI build time by 82% (9m → 1m40s) via Vite + SWC migration
- Designed a 40+ component design system adopted by 6 teams

I write English daily (CEFR B2) and prefer async-first teams.
I'm open to remote roles globally with JST +/-3h overlap.

Tech I love: TypeScript, React, Next.js, Vitest, Playwright,
Tailwind, AWS, GitHub Actions.

Reach me: taro@example.com

7-3. アルゴリズムを動かす5つの仕掛け

  • 週1回の投稿(140〜300字の技術tips)で表示頻度を上げる
  • Skillsは50枠埋める(キーワード検索ヒット率が跳ね上がる)
  • Featuredに3つ固定(GitHubリポジトリ、技術ブログ、登壇資料)
  • Recommendation 3件以上(海外の元同僚に頼むと印象が違う)
  • Profile language=Englishに切り替え(日本語版と二本立て可能)

8. 採用面接プロセス全体像

米国スタートアップの標準は4〜6ラウンド・延べ7〜10時間です。下表が典型的なシーケンスです。

8-1. 面接ラウンドの典型シーケンス

ラウンド 時間 内容 合否ライン
1. Recruiter Screen 30分 動機・希望年収・タイムゾーン 明確で誠実に
2. Hiring Manager 45分 過去プロジェクト深掘り(STAR形式) 定量成果が出せるか
3. Coding (Live) 60〜90分 LeetCode Medium 1〜2問 O記法説明とテストまで
4. System Design 60〜75分 “Design Twitter”等 トレードオフ議論ができるか
5. Behavioral / Culture 45分 失敗談・対立・優先順位 誠実さと協調性
6. Bar Raiser / Exec 30〜45分 CTOやVP Eng面接 長期視点と思考の深さ

8-2. Behavioral面接で必ず聞かれる10質問

  1. Tell me about a time you disagreed with a teammate.
  2. Describe a project that failed and what you learned.
  3. How do you handle conflicting priorities?
  4. Tell me about a time you had to learn a new technology quickly.
  5. Describe a situation where you had to influence without authority.
  6. How do you give and receive feedback?
  7. Tell me about your biggest engineering mistake.
  8. How do you decide when “good enough” is enough?
  9. What’s your approach to onboarding to a new codebase?
  10. Why this company? Why now?

8-3. STAR フレームワーク回答テンプレ

S (Situation): At my previous company, our CI pipeline took 9 minutes,
                blocking 12 engineers from merging in parallel.
T (Task):      I was tasked with cutting build time by at least 50%
                within Q2 without disrupting ongoing releases.
A (Action):    I profiled the pipeline, found that Webpack was bottleneck,
                migrated to Vite + SWC over 3 weeks with feature flags.
R (Result):    Build time dropped from 9m to 1m40s (-82%), engineer
                deploy frequency rose from 1.4/day to 3.8/day,
                I documented the migration as ADR-024.

9. LeetCode 攻略 — 日本人エンジニアが効率最大化する順番

9-1. 学習順序(180時間プラン)

テーマ 問題数 カバー率
1〜2 Array / String / Hash 40問 22%
3 Two Pointers / Sliding Window 25問 14%
4 Linked List / Stack / Queue 20問 11%
5 Tree / BFS / DFS 30問 17%
6 Heap / Priority Queue 10問 6%
7 Binary Search 15問 8%
8 DP(Knapsack / LIS / 区間DP) 30問 17%
9 Graph(BFS/DFS/Dijkstra/Union Find) 10問 5%

9-2. 頻出パターン「Sliding Window」TypeScript実装例

// Longest Substring Without Repeating Characters (LC#3)
// Time: O(n)  Space: O(min(n, charset))
function lengthOfLongestSubstring(s: string): number {
  const seen = new Map<string, number>();
  let left = 0;
  let best = 0;

  for (let right = 0; right < s.length; right++) {
    const ch = s[right];
    if (seen.has(ch) && seen.get(ch)! >= left) {
      left = seen.get(ch)! + 1;
    }
    seen.set(ch, right);
    best = Math.max(best, right - left + 1);
  }
  return best;
}

9-3. Two Pointers の頻出パターン

// 3Sum (LC#15) — 配列を昇順にソートし2ポインタで内側を探索
// Time: O(n^2)  Space: O(1)
function threeSum(nums: number[]): number[][] {
  nums.sort((a, b) => a - b);
  const res: number[][] = [];

  for (let i = 0; i < nums.length - 2; i++) {
    if (i > 0 && nums[i] === nums[i - 1]) continue;
    let l = i + 1, r = nums.length - 1;
    while (l < r) {
      const sum = nums[i] + nums[l] + nums[r];
      if (sum === 0) {
        res.push([nums[i], nums[l], nums[r]]);
        while (l < r && nums[l] === nums[l + 1]) l++;
        while (l < r && nums[r] === nums[r - 1]) r--;
        l++; r--;
      } else if (sum < 0) {
        l++;
      } else {
        r--;
      }
    }
  }
  return res;
}

9-4. BFSテンプレ(最短経路問題で使い回す型)

// Grid 上で start から end までの最短手数を求める汎用BFS
function shortestPath(
  grid: number[][],
  start: [number, number],
  end: [number, number],
): number {
  const rows = grid.length, cols = grid[0].length;
  const dirs = [[1,0],[-1,0],[0,1],[0,-1]];
  const queue: [number, number, number][] = [[start[0], start[1], 0]];
  const visited = new Set<string>([`${start[0]},${start[1]}`]);

  while (queue.length) {
    const [r, c, d] = queue.shift()!;
    if (r === end[0] && c === end[1]) return d;
    for (const [dr, dc] of dirs) {
      const nr = r + dr, nc = c + dc;
      const key = `${nr},${nc}`;
      if (nr>=0 && nc>=0 && nr<rows && nc<cols
          && grid[nr][nc] !== 1 && !visited.has(key)) {
        visited.add(key);
        queue.push([nr, nc, d + 1]);
      }
    }
  }
  return -1;
}

9-5. DP「0/1ナップザック」

// 0/1 Knapsack: 1次元配列に圧縮した実装(古典頻出)
function knapsack(weights: number[], values: number[], W: number): number {
  const dp = new Array(W + 1).fill(0);
  for (let i = 0; i < weights.length; i++) {
    for (let w = W; w >= weights[i]; w--) {
      dp[w] = Math.max(dp[w], dp[w - weights[i]] + values[i]);
    }
  }
  return dp[W];
}

10. システムデザイン面接 — 答案テンプレと頻出問題

10-1. 「Design URL Shortener」最低限の回答骨格

1. Clarify scope
   - Read:Write = 100:1, 100M URLs/year, redirect < 100ms p99
   - 6-char alphanumeric short codes (62^6 ≈ 56B unique)
2. APIs
   POST /shorten   { long_url } -> { short_url }
   GET  /{code}    -> 302 to long_url
3. Storage
   - Postgres: id (bigserial), code (varchar 6, unique idx), long_url, created_at
   - Redis: code -> long_url, TTL 1h (hot cache)
4. Code generation
   - Counter + base62 encode (no collision)
   - OR random 6-char + retry on collision (low collision at 100M)
5. Scale
   - Read: Redis hit ratio 95%+ -> backend 50k QPS at peak
   - Write: 100M / year ≈ 4 QPS avg, 100 QPS peak
6. Trade-offs
   - SQL vs NoSQL: SQL is fine at 100M rows w/ proper index
   - Eventual consistency: redirect tolerant of 1-2s lag

10-2. システムデザイン頻出7問

問題 難易度 覚えるべき要素
Design Twitter / X timeline ★★★★ Fan-out write vs read
Design URL Shortener ★★ base62・Read-heavy・キャッシュ
Design Rate Limiter ★★★ Token Bucket / Sliding Window
Design Chat System ★★★★ WebSocket / 既読/順序保証
Design Notification Service ★★★ Push/Pull・Fan-out・retry
Design YouTube ★★★★★ 動画transcoding・CDN・推薦
Design Distributed Cache ★★★★ Consistent Hashing

10-3. Consistent Hashing 軽量実装

// Consistent Hashing(N台のノードに均一にキーを割り振る古典)
class ConsistentHash {
  private ring = new Map<number, string>();
  private sortedKeys: number[] = [];
  constructor(nodes: string[], private replicas = 100) {
    for (const n of nodes) this.addNode(n);
  }
  private hash(s: string): number {
    let h = 0;
    for (let i = 0; i < s.length; i++) h = ((h << 5) - h + s.charCodeAt(i)) | 0;
    return h >>> 0;
  }
  addNode(node: string) {
    for (let i = 0; i < this.replicas; i++) {
      const k = this.hash(`${node}#${i}`);
      this.ring.set(k, node);
    }
    this.sortedKeys = [...this.ring.keys()].sort((a, b) => a - b);
  }
  get(key: string): string {
    const k = this.hash(key);
    for (const ringKey of this.sortedKeys) if (ringKey >= k) return this.ring.get(ringKey)!;
    return this.ring.get(this.sortedKeys[0])!;
  }
}

11. オファー交渉 — 平均17%上乗せに成功した実例ベースの手順

11-1. 交渉余地の探り方

項目 交渉余地 初手のお願い
Base Salary +5〜+15% “Is there flexibility on base?”
Signing Bonus $5k〜$30k一時金 “Could we add a signing bonus to offset relocation?”
Equity (RSU) +10〜+30% “How was the equity grant calculated?”
有給休暇 +5日 “Is the PTO negotiable?”
給与改定タイミング 6か月前倒し可 “Could the first review be at 6 months?”
機材予算 $2k〜$5k “Is there a home office stipend?”
役職 Senior→Staff昇格 “Could the title be Staff given my scope?”

11-2. 交渉スクリプト(Email)

Subject: Re: Offer for Senior Frontend Engineer

Hi [Recruiter Name],

Thank you so much for the offer — I'm genuinely excited about the
team and the impact of [specific project].

I'd like to discuss a few items to make this work for both sides:

1. Base: I'm currently weighing two other offers with base in the
   range of $185k–$200k. Could we revisit base toward $190k?
2. Equity: Could you share the strike price and 409A valuation so I
   can model the total comp accurately?
3. Sign-on: Would a signing bonus of $15k be possible to bridge the
   unvested equity I'll forfeit at my current employer?

I'm ready to sign within 48 hours of an updated package and very
much hope we can close this together.

Best,
Taro

11-3. RSUの「読み方」

用語 意味 注意点
Cliff 1年勤続まで一切vestしない 退職リスク
Vesting Schedule 典型4年・1年Cliff・以後月割 会社により3年や5年もある
Strike Price Option行使価格 低いほど有利
409A Valuation 会社の公式時価 FMVを見てOptionの含み益判断
Double Trigger 退職+Exitで初めて課税 非公開企業ではほぼ必須
Refresh Grant 2〜3年毎に追加付与 長期勤続インセンティブ

12. 雇用形態 — EOR / 直接雇用 / 個人事業主の3パターン比較

形態 仕組み 手取り(額面の) 社保 メリット デメリット
EOR(Deel・Remote・Oyster) EOR会社が日本法人代行で雇用 約72〜78% 社保完備 労働法保護・厚生年金 手数料差し引かれる(月$500〜)
直接雇用(海外法人) 海外法人と直接契約 約75〜85% 個人で国民年金/健保 手数料無し 労働法保護がほぼ無い
個人事業主 / 法人 業務委託として請求書発行 約65〜80%(経費次第) 個人で全部 経費計上・節税余地 確定申告必須・契約は脆弱

12-1. EORの代表3社

EOR 月額手数料目安 強み 日本対応
Deel $599〜 UIが洗練・国数最多(150+)
Remote.com $599〜 労務サポート充実
Oyster HR $499〜 欧州案件と相性◎

13. 税務 — 日本居住者の海外給与所得は「全世界課税」

日本に住民票を置いたまま海外企業から給与を受け取る場合、全世界所得課税の原則により日本での確定申告が必要です。最終的な税負担は雇用形態と源泉徴収の有無で変わります。

13-1. パターン別の課税整理

パターン 源泉徴収 日本での確定申告 外国税額控除
EOR経由(日本法人源泉) される 不要(年末調整される場合) 原則不要
米国直接雇用(W-2) 米国側でされる 必要 外国税額控除可
米国直接(1099 / 業務委託) されない 必要(事業所得) 原則不要(米課税ゼロ)
英・独直接雇用 現地源泉あり 必要 外国税額控除可

13-2. 外国税額控除の計算式

外国税額控除限度額 = 日本の所得税 × (国外所得金額 / 所得総額)

例)
日本の所得税(申告ベース) = 320万円
国外所得 = 1800万円
所得総額 = 1800万円(他収入なし)

限度額 = 320 × (1800/1800) = 320万円
米国で実際に源泉徴収された税 = 280万円  → 全額控除可
日本での残課税 = 320 - 280 = 40万円(住民税は別途)

※実際は社会保険料控除・基礎控除・税額控除等の複数項目があり、e-Taxの外国税額控除の明細書(様式)が必要です。

13-3. 「183日ルール」と居住者判定の落とし穴

  • 日本居住者である限り、海外で何か月過ごしても日本側課税は続きます。
  • 非居住者になるには「住所(生活の本拠)」を海外に移す必要があり、出国前に住民票の海外転出届を提出することが原則。
  • 住民税は1月1日時点の住所で課税されるため、年内出国の場合は当年分の住民税が翌年に丸ごと請求されます。

13-4. 経費にできるもの(個人事業主の場合)

経費分類 具体例 注意
通信費 光回線・モバイル 業務按分必要
水道光熱費 自宅作業分 業務按分(20〜40%が一般的)
家賃 自宅作業分 面積按分
機材費 PC・モニター・椅子 10万円超は資産計上
書籍/講座費 技術書・Udemy・LeetCode Premium 領収書必須
外国送金手数料 Wise・Revolut経由 振込ごとに記録
会計ソフト freee / マネーフォワード 全額経費可

14. ビザ問題 — 日本居住のままリモートする場合の落とし穴

14-1. 結論:日本人が日本で働く場合、ビザは原則不要

あくまで「日本居住・日本で就労」する形であれば、海外企業の業務を受託すること自体に労働ビザは不要です。しかし採用側(海外企業)から見るとPE(恒久的施設)リスクが生じます。これは、貴方の自宅が「海外企業の恒久的事業拠点」と日本税務上見なされ、海外法人が日本での法人税申告義務を負ってしまう問題です。EOR利用が広がっているのはこのPEリスクを回避するためです。

14-2. EORがPEリスクを回避できる仕組み

【EOR利用なし — PEリスクあり】
海外法人 ←→ あなた(日本)
   └ あなたの自宅 = 日本にあるPE?と税務当局に主張される

【EOR利用 — PEリスク低い】
海外法人 ←→ EOR(日本法人) ←→ あなた(日本)
   └ あなたの雇用主は日本法人(EOR)なのでPEに該当しない

14-3. 日本人が海外移住する場合のビザ

ビザ名 所得要件目安 滞在年数
ポルトガル D8 Digital Nomad 月€3,480〜 1年(更新可)
スペイン Digital Nomad Visa 月€2,650〜 1年(更新可)
ドイツ Freelancer(Freiberufler) 事業計画書ベース 3年
エストニア Digital Nomad Visa 月€4,500〜 1年
UAE(ドバイ) Remote Work Visa 月$3,500〜 1年
タイ LTR Visa (Wealthy Pro) 年$80,000〜 10年

15. タイムゾーン対応 — JSTから見た現実的なオーバーラップ

15-1. JSTと主要拠点の時差(夏時間)

拠点 時差 JST 9:00時点 オーバーラップ難易度
SF / SEA -16h 前日17:00 難(深夜帯のみ)
NY / TOR -13h 前日20:00
London -8h 前日1:00 夕方かなり重なる
Berlin -7h 前日2:00 夕方重なる
Sydney +1h 10:00 易(ほぼ同時刻)
Singapore -1h 8:00

15-2. 非同期文化の実装テクニック

  • Loom動画で進捗報告(会議を減らす)
  • ADR(Architecture Decision Record)でMarkdownに意思決定を残す
  • Slack threadsで1議題1スレッドを徹底し、後追い可能にする
  • Linear / Notionの公開ドキュメントで進捗を可視化
  • EOD(End of Day)サマリーを毎日テキスト投稿

15-3. 米国西海岸案件で続く人の典型スケジュール

05:00 起床・運動
06:00 SF時刻 13:00 →コアタイム重なり開始
06:00〜09:00 同期会議・ペアプロ
09:00〜11:00 個人作業(浅め)
11:00〜13:00 昼食・仮眠
13:00〜17:00 個人作業(集中)
17:00〜18:00 EODサマリー作成・PR出し
18:00〜    自由時間 / 家族時間
22:00 就寝

16. 失敗例と成功例 — リアルな実体験7ケース

16-1. 失敗例3つ

ケース 状況 敗因 教訓
F-1 SF系Series Bでオファー直前で落選 Behavioral面接で前職批判が露呈 失敗談はSTAR形式で「学び」に着地
F-2 Toptal技術スクリーニングで滑落 Codility練習不足・時間管理崩壊 Codility公式デモを20問は事前消化
F-3 EOR契約でRSUが付かないと後から判明 オファー段階の確認漏れ RSU/Optionの可否は書面で確認

16-2. 成功例4つ

ケース 属性 到達したオファー 勝因
S-1 SIer出身・TOEIC780 UK Series B / £110k OSSコントリビュート3件をResumeに明記
S-2 事業会社React 5年 米Seed / $145k+0.6% サイドプロジェクトをLPで公開
S-3 30代後半・元PM 豪Series C / A$180k EM寄りでTech Lead pathに収まる
S-4 Mobile iOS 7年 米Big Tech / TC $310k LeetCode 300問+System Design書籍2周

17. FAQ

Q1. 英語が話せなくても応募していい?

テキストでB1以上(TOEIC 600+)を読み書きできれば、非同期重視の会社には応募可能です。スピーキングはRecruiter Screenを30分こなせれば最低ラインを越えています。

Q2. 日本企業勤務しながら副業で海外案件OK?

本業の就業規則と利益相反規定の確認が前提です。許可されていれば、ToptalやUpworkで時給案件から始めるのが現実的です。確定申告は雑所得または事業所得で別途必要になります。

Q3. 30代後半・40代でも採用される?

米英は年齢で差別できない法律下にあるため、書類段階で年齢を理由に落とすことは原則ありません。ただし「Junior枠」は若年層中心になりがちで、Mid〜Senior以上で勝負するのが現実的です。

Q4. LeetCodeは何問やればいい?

Big Techなら200〜300問、Series A〜Cなら100〜150問が現実的な目安です。同じ問題を3周し、口頭で説明できる状態を目指してください。

Q5. EORと業務委託、結局どっちが得?

社会保険・労働法保護を取りたい人はEOR、節税余地と契約自由度を取りたい人は業務委託(個人事業主/法人)です。年収$120k未満ではEORの月額手数料が重く感じる場合もあります。

Q6. 円安が止まったら手取りが減る?

はい。為替リスクは生じます。対策として(1)受取通貨をUSDのまま外貨預金、(2)定期的にWise/Revolutで分散換金、(3)海外証券口座でUSDのまま運用する、等が一般的です。

Q7. オファーレターはいつ出してもらえる?

最終面接通過後、通常2〜5営業日でオファー書面が届きます。逆オファーや交渉が完了するまで他社の選考は止めず、3社並走を維持すると交渉力が出ます。

18. まとめ — 「日本居住・海外給与」を成立させる現実的ロードマップ

海外リモートエンジニアは、もはや「特殊な人の選択肢」ではなく、市場価値ある日本人エンジニアにとって普通の選択肢になりました。重要なのは下の3ステップを順序通り進めることです。

  1. (1〜3か月目)スキル証明資産を作る:英文Resume完成、GitHubに2リポジトリ公開、LinkedIn最適化、TOEICまたはCEFR B2相当の英語力確認。
  2. (4〜9か月目)選考を走らせる:LinkedIn・Hired・We Work Remotelyに毎週5〜10件応募、Behavioral/Coding/System Designを並行訓練。LeetCode 150問+ADR 5本。
  3. (10〜12か月目)オファー確定と契約整備:EOR or 直接雇用 or 業務委託を税理士と相談して選択、外国税額控除の年次計画を立てる。

逆に「思いつきで応募→1か月で結果出ず諦める」が最大の失敗パターンです。給与の桁が1.5〜2.5倍変わる挑戦は、半年〜1年の投資が必要だと割り切りましょう。本記事のテンプレ・コード・チェックリストを使い、まずは1社目のRecruiter Screenを通過するまで走り切ってください。

関連記事(本サイト内)

コメント

タイトルとURLをコピーしました