求職信範例

軟體工程師的英文求職信怎麼寫

更新於 2026-09-03

螢幕上的程式碼編輯器,開著一個 React 元件檔案

軟體工程師的求職信只做一件事:把履歷上最強的兩個數字,接到對方職缺描述裡最痛的那個問題上。履歷是清單,信是論證。讀信的人(通常是用人主管,不是 HR)要在三段之內看到你懂他的系統、而且已經解過類似的題。

多數工程師的信壞在第一句。「I am writing to apply for…」是浪費掉的一行——對方知道你在申請。把第一句拿來說職缺要什麼、你做過什麼,兩件事對上,信就成立了一半。

工程職缺還有一個別的行業沒有的前提:真正決定錄取的是後面那幾輪面試。信不負責證明你會寫程式,它只做兩件較小的事——把你送進那幾輪,以及先替面試官挑好題目。你在信裡寫下哪兩個系統,行為面試和系統設計就會從那兩個系統開始問。所以挑成果的標準不是哪一件最漂亮,是哪一件被追問四十分鐘還站得住。

下面這封是虛構人物的範例,人物與履歷頁上的範例是同一位,所以信裡每一個宣稱都能在履歷上找到來源。數字一律留 [N];旁邊的「信件檢查」是產品的量測引擎現算的:字數、段數、空格數、陳腔濫調。

這個職位的英文求職信,寫完長這樣

下面是虛構人物的完整範例,和履歷頁上的是同一位,所以信裡每個宣稱都能在履歷上找到來源。旁邊的信件檢查由產品的量測引擎現算:字數、段數、空格數、陳腔濫調——不是我們打上去的。

信件檢查267字、4段。還有 9 個空格沒填。填完之前這封不能寄。

Wei-Ting Lin
weiting-lin@example.com · Taipei, Taiwan
September 1, 2026
Application for Senior Backend Engineer — Wei-Ting Lin
Dear Hiring Manager,

Your posting for a Senior Backend Engineer asks for someone who has run payment traffic at scale and kept it correct under load. For the past [N] years at a Series B logistics SaaS I have owned the order-routing path that handles [N] million requests a day, and the idempotency layer I designed for payment webhooks removed the [N] duplicate charges a month that support had been refunding by hand. That is the problem your team describes, and it is one I have already solved once.

Two results from that work bear directly on your stack. I cut p95 latency on the routing API from [N] ms to [N] ms by replacing synchronous fan-out with a queue-backed worker pool, which is the same shape as the settlement pipeline your engineering blog describes. I also migrated [N] services from a single Postgres instance to sharded clusters across [N] cutovers with zero recorded downtime; the runbooks from that migration are still the ones the team uses.

I would bring the habit that made those numbers possible: I instrument before I optimise, and I delete alerts that never precede an incident, which halved on-call pages in my current role. I read your API documentation before applying. The versioning approach in it is one I would be glad to build on, and I have [N] questions about it that I would rather ask in a conversation than guess at here.

I can start in [N] weeks and am available for a technical conversation at any time that suits your team. My resume is attached, with the figure each claim rests on.

Sincerely,
Wei-Ting Lin

一封工程師求職信的結構

四段,每段一個任務。超過四段的信,讀的人會先看最後一段,然後決定要不要回頭。主旨行、信頭的連結、以及貼進表單那一格的純文字版也一樣在被讀,所以一起拆在下面。

  1. 1
    主旨行:職缺名稱+你的名字

    用職缺公告上的原字串,一字不改,後面接你的名字;公告有 req 編號就一起帶上。工程團隊常常同時開好幾個相近的缺——後端、平台、資料——主旨模糊的信會被歸到錯的那一個資料夾,然後沒有人再打開它。

  2. 2
    第一段:職缺 × 你

    第一句引用職缺要求,第二句給對應的成果與數字,第三句點明「這就是你們的問題」。不自我介紹,不講興趣。

  3. 3
    第二段:兩個技術成果

    從履歷挑兩條和對方系統最像的,各給一個數字。點名對方公開的技術文章或文件,證明你讀過。

  4. 4
    第三段:工作習慣

    一個具體的習慣(先量測再優化、刪掉沒用的 alert),而不是形容詞。順便留一個真的問題,讓對方有理由回信。

  5. 5
    第四段:何時、如何

    能上工的時間、方便面談的方式、履歷附上。兩句結束,不再感謝第三次。

  6. 6
    信頭:一個連結、一個城市、一個時區

    姓名、email、城市與時區,加上一個會真的被點開的連結——GitHub 或作品站,二選一,不要放三個。不放照片、不放完整住址、不放生日。連結打開的第一畫面就是對方對你程式碼的第一印象,而且它發生在第三段之前。

  7. 7
    純文字版:貼進表單那一格的

    一半的工程職缺不收附檔,只給你一個純文字方塊。先寫一份沒有粗體、沒有項目符號、沒有 markdown 反引號的版本,段落之間空一行。程式碼不要貼進去——沒有人會在表單欄位裡讀程式;要給就給連結,並在信裡指出要看哪一段。

這封信每一段在做什麼

逐段拆開看:哪一句在承擔什麼任務,哪一句故意沒寫。

  1. 1
    Your posting for a Senior Backend Engineer asks for someone who has run payment traffic at scale and kept it correct under load. For the past [N] years at a Series B logistics SaaS I have owned the order-routing path that handles [N] million requests a day, and the idempotency layer I designed for payment webhooks removed the [N] duplicate charges a month that support had been refunding by hand. That is the problem your team describes, and it is one I have already solved once.

    第一句直接複述職缺的要求(規模、正確性),第二句給兩個履歷上的成果並附 [N],第三句把兩者對上。沒有「我很有興趣」,沒有「貴公司」。

  2. 2
    Two results from that work bear directly on your stack. I cut p95 latency on the routing API from [N] ms to [N] ms by replacing synchronous fan-out with a queue-backed worker pool, which is the same shape as the settlement pipeline your engineering blog describes. I also migrated [N] services from a single Postgres instance to sharded clusters across [N] cutovers with zero recorded downtime; the runbooks from that migration are still the ones the team uses.

    兩個成果各一個數字,而且都對到對方系統的形狀(結算管線、資料庫拆分)。「your engineering blog」那句是做功課的證據,比任何形容詞都有力。

  3. 3
    I would bring the habit that made those numbers possible: I instrument before I optimise, and I delete alerts that never precede an incident, which halved on-call pages in my current role. I read your API documentation before applying. The versioning approach in it is one I would be glad to build on, and I have [N] questions about it that I would rather ask in a conversation than guess at here.

    習慣寫成動作,不是特質:「先 instrument 再 optimise」「刪掉從沒預告過事故的 alert」。結尾留一個真的問題,這是讀信的人回信最常見的理由。

  4. 4
    I can start in [N] weeks and am available for a technical conversation at any time that suits your team. My resume is attached, with the figure each claim rests on.

    只講兩件事:何時能開始、怎麼談。「My resume is attached, with the figure each claim rests on」把讀者送回履歷,也重申了這封信不編數字。

第一句可以怎麼寫

第一句決定對方讀不讀第二句。七種寫法,都不以「I am writing」開頭。

  • Your posting asks for someone who has kept a payments system correct at [N] million requests a day; for the past [N] years that has been my job.

    職缺要求 → 你的工作,一句對上。適合職缺描述具體的公司。

  • The settlement pipeline described on your engineering blog has the same shape as the routing path I rebuilt last year, so I will be direct about what I did to it.

    從對方公開的技術內容切入,證明做過功課。適合有工程部落格的公司。

  • I have migrated [N] services off a single Postgres instance with zero recorded downtime, which is the migration your team is hiring for.

    單一成果 → 對方正在招的原因。適合職缺只圍繞一個技術題的情況。

  • [Name] on your platform team suggested I write to you directly about the on-call load this role is meant to reduce, so I will start with what I did to ours.

    內推專用:先給內推人的名字,立刻接到職缺想解決的問題。這一句寫成可以整段貼進內部推薦表單的樣子。

  • I spent [N] years as the person paged when the ingestion pipeline broke, which is how I ended up writing the service that replaced it.

    從「你為什麼會做這件事」切入。適合轉職或路線不直線的人:一句話同時交代動機和產出,不用寫一段自白。

  • We have been running your open-source client in production for [N] months, and the two issues I filed against it are what sent me to your careers page.

    你已經是對方技術的使用者時,最強的開頭。不是稱讚,是可查證的使用紀錄,而且對方查得到那兩個 issue。

  • Your posting does not say which part of the platform this team owns, so here are the two systems I have run, and you can place me.

    職缺描述空泛時用。不假裝讀懂,把判斷交回去,同時還是先擺了兩個具體系統在桌上。

這封信會被誰打開,他在確認什麼

工程職缺的求職信不是寫給「公司」的。從送出去到面試排定,它會經過四到五種人,每個人花不到一分鐘,而且找的東西完全不同。知道是誰在讀,才知道哪一句不能省。

  1. 1
    技術招募:第一關

    他確認的是你能不能往下送:工作許可、所在時區、這個缺開在哪個職級、你的技術棧和職缺重不重疊。這些答案如果只藏在履歷第二頁,他會寄一封信來問,一來一回就是一週。信的最後一段把時間和地點交代完,就是在省掉那封信。

  2. 2
    用人主管:真的逐字讀的人

    他在測面試流程測不到的一件事——你能不能用普通句子講清楚一個技術決定。不是你會不會寫程式,那有 [N] 輪面試可以測;是你會不會說「尖峰時我們的 p95 被最慢的下游綁住,所以把同步 fan-out 換成 queue」。用一串名詞堆出來的句子,通常在設計面試裡也是同一副樣子。

  3. 3
    同組的資深工程師:履歷輪值

    大一點的團隊會把履歷輪流發給工程師篩。他讀的是範圍:那個系統是你設計的,還是你在旁邊改 ticket。「我負責的訂單路由」和「我參與的訂單路由專案」在他眼裡差一個職級。動詞要挑你敢被追問的那個。

  4. 4
    內推你的人

    內推的信常常整段被貼進內部推薦表單,或加兩行就轉寄給主管。所以第一段要寫成可以直接被轉貼的:不要寫你對這家公司多有興趣,要寫你做過什麼、跟這個缺對在哪裡。你留給他的功課越少,他越可能真的按下送出。

  5. 5
    之後的面試官

    很多公司把履歷和信一起附進面試安排信裡。你在信裡寫下的那兩個成果,會變成行為面試的開場題和系統設計的框。所以標準只有一個:這兩件事你能不能撐四十分鐘,包括講出當時做錯的取捨。撐不住的成果寫進去,是自己出題考自己。

  6. 6
    點開連結的那個人

    工程職缺有一個別的行業沒有的環節:讀信的人會順手點開你信頭的 GitHub 或作品連結,而且通常發生在讀第三段之前。他花不到三十秒——最上面幾個 repo 有沒有 README、最近一次 commit 是什麼時候、程式碼的樣子跟信裡的句子像不像。送出去之前,自己先點一次。

什麼時候它就不是同一封信了

同一份履歷可以投十家,同一封信不行。工程職缺至少有六個地方會讓這封信整段重寫——不是換掉公司名字,是換掉論點本身。

  • 新創 vs 大公司:講廣度,還是講半徑

    早期團隊沒有平台組,他要的是你在沒有基礎設施的情況下把東西送上線過:CI 是你接的、migration 是你寫的、pager 是你自己揹的。規模大的工程組織要的是相反的證據——你在一個有人依賴的系統上動手而沒有把它弄壞:分批上線、真的用過的 rollback、三個相依團隊怎麼協調。同一段經歷兩種寫法,第二段挑的成果通常也不同。

  • 產品工程 vs 平台/基礎設施

    產品組的主管要看使用者那一端的結果,以及你砍掉了什麼需求才讓它準時上線。平台組沒有使用者,他的使用者是別的工程師,所以他看的是採用和淘汰:你做的東西有幾個團隊真的接了、舊的那套你怎麼讓人搬走的。「我做了一個內部框架」和「我讓 [N] 個團隊把舊框架換掉」是兩種宣稱,只有後者回答得了平台缺。

  • 內推 vs 冷投

    內推的信是寫給「被轉寄」用的:第一句給名字,第二句給你們共事過的那件事,整段保持可以貼進推薦表單的樣子。冷投沒有這個施力點,補的方法只有一個——證明你讀過他們公開的東西:API 文件裡的版本策略、他們寫過的事故報告、他們維護的 repo 裡你回報過的 issue。

  • 跨國應徵:許可、通知期、重疊時數

    從台灣投美國、歐洲或新加坡的缺,有三件行政事實決定招募能不能往下送。為它寫一整段是浪費,藏起來則要換一輪來回信。最後一段一句話講完:目前的工作許可狀態、離職通知期幾週、每天能和對方核心工時重疊幾小時。這一句不扣分,它只是把問題從收件匣移回信裡。

  • 從隔壁的職位轉進來

    QA、資料分析、韌體、技術支援,或自學轉職,共同的關卡從來不是熱情,而是「有沒有別人在跑你寫的程式」。信裡要指得出一個具體的東西:團隊每天在用的內部工具、你接手維護還活著的 pipeline、被 merge 的 PR。上過的課和刷過的題是履歷教育欄的事,不是信的事。

  • 接案/系統整合商 vs 自家產品

    接案背景寫出來的信最常見的樣子,是六個客戶專案列成一張清單。把清單換成一個:挑一個現在還在線上跑的系統,說它做什麼、哪一段是你的、上線後你維護了多久。自家產品的團隊想知道的是你會不會照顧自己寫的東西,而不是你交付過幾次。

  • Senior 和 Staff 不是同一封信

    Senior 的信論證深度:一個系統、兩個數字、一次你做過而且辯護得了的設計取捨。Staff 以上的信要論證你的影響力離開自己的鍵盤之後還在——被別的團隊採用的設計文件、由別人執行的遷移、兩個組最後同意共用的那套介面。用 senior 的寫法投 staff,對方會直接把你排到低一級的面試。

工程師求職信最常見的錯

  • 把履歷再講一遍

    信不是履歷的散文版。挑兩條、講清楚它和對方系統的關係,其餘留在履歷。

  • 技術名詞堆疊

    列出 Kubernetes、Kafka、gRPC 不是論證。讀信的人要看的是你用它們解了什麼、數字動了多少。

  • 對公司的讚美

    「貴公司是業界領導者」對方自己知道。用一句話證明你讀過他們的文件或部落格,效果強十倍。

  • 沒有數字,或編數字

    沒有數字的成果會被當成普通;編出來的數字面試時會被追問。缺的留 [N],回去查。

  • 結尾感謝三次

    一次就夠。多餘的感謝把信的重心從你做過什麼移到你有多客氣。

  • 把面試的題材寫光

    第二段把整個系統設計交代完,讀信的人就沒有理由找你聊了。給結果、給一個數字,把「怎麼做到的」留著。信不是用來說服他你是對的,是用來讓他想問你。

  • 用 side project 冒充工作成果

    side project 可以寫,但要說清楚誰在跑:部署在哪、有沒有第二個人在用、最後一次 commit 是什麼時候。沒有使用者的專案讀起來像作業,放進第二段會把整段的可信度一起拉低。

  • 把只用過一次的技術寫成專長

    「有 Kafka 的生產環境經驗」如果實際上是照著教學跑過一次,電話面試前十分鐘就會露出來,而且從那一刻起,信裡其他每一句都會被重讀一次。只寫你願意被追問「當時 partition 怎麼分的」那幾項。

  • 整封信裡沒有出現對方的任何一個系統

    一封投十家的信,破綻不在語氣,在它從頭到尾只講自己。只要有一句提到他們公開過的東西——文件、部落格、開源 repo、事故報告——這封信就不可能是群發的。少了那一句,寫得再誠懇也像群發。

  • 只有實作細節,或只有結果

    整段在講你套了什麼 pattern、換掉哪個 library,卻沒說系統因此變成什麼樣,讀起來像技術筆記。反過來只寫「改善了使用者體驗」而不寫你動了什麼,讀起來像別人的產品經理代筆。兩件事要在同一句裡:你改了什麼,它變成多少。

常見問題

外商軟體職缺,求職信真的有人讀嗎?
大公司的第一輪常常不讀。但用人主管收到內推、或候選人進到第二輪時會讀,而且讀得很仔細。信寫給那個人,不寫給 ATS。
所以信要短、要有數字、要對上他的系統。
要不要在信裡放 GitHub 連結?
放在信頭的聯絡資訊,不要在正文裡。正文一句「the runbooks from that migration are still the ones the team uses」比一個連結更能說明你的工程品質。
轉職或年資淺,第二段沒有兩個大成果怎麼辦?
一個成果加一個 side project 也可以,只要 project 有可查證的東西(開源、部署上線、有人在用)。數字照樣留 [N],不要用「大幅提升」帶過。
信的長度?
三到四段、200 到 300 個英文字。這一頁的範例是 [N] 字,旁邊的信件檢查會顯示實際字數。超過 320 字,引擎會提醒。
需要簽證贊助,要寫在信裡嗎?
要,一句話,放最後一段。招募第一關本來就在確認這件事;你不寫,他要嘛寄信問,要嘛猜錯。寫成事實而不是道歉:「I would need visa sponsorship for this role and can start [N] weeks after an offer.」
不要寫的是一整段簽證史。那是 HR 表單和面試的內容,不是信的內容。
遠端職缺,要不要講時區?
講重疊時數,不要只講你人在哪。「I can overlap [N] hours a day with your core hours」直接回答了對方正在算的那件事;「I am based in [City]」是把計算丟回去給讀信的人。
如果你願意配合對方的會議時段調整作息,同一句裡講完。這是遠端團隊最常卡住的錄取條件。
應徵表單只有一個純文字方塊,格式怎麼辦?
先寫純文字版:不加粗、不用項目符號、不貼 markdown,段落之間空一行。很多表單會把格式吃掉,貼進去才發現整封信黏成一團的人不少。
長度不變,還是三到四段。純文字版定稿之後再存一份 PDF,兩邊內容一致。
沒有 CS 學位,要在信裡解釋嗎?
不要解釋,要換掉。一句話指到別人在跑的程式碼——線上的服務、被 merge 的 PR、團隊每天依賴的內部工具——比任何關於你怎麼學的說明都有效。
如果職缺把學位寫成硬條件,那是招募規則,信改不了;把那一小時投到沒有這條的職缺上。

同一位的英文履歷

信只引用履歷上的事實。先看履歷,信才讀得懂在說什麼。

軟體工程師的英文履歷怎麼寫

同一個產業的其他求職信範例:科技

相關指南

用你自己的履歷生成這封信

編輯室的求職信是從你已經生成的英文履歷寫出來的:履歷是它唯一的事實來源,缺的數字留 [N],陳腔濫調由引擎計數。

開啟編輯室

所有履歷範例 · 求職信範例