The short version: a good software engineer cover letter is 250 to 350 words, names one specific project you’ve shipped with a real result attached to it, and skips the line about being “passionate about coding” entirely. Structure beats sincerity here. Write it in four short paragraphs, mirror two or three phrases from the actual job posting, and stop writing the moment you’ve made your point.
What happens to your cover letter after you hit send
Here’s the bit most career advice sites won’t tell you straight: for the majority of software engineer roles, especially at companies with more than 200 people, no human reads your cover letter as a piece of writing. It gets pulled apart by an applicant tracking system looking for keyword matches, and if it clears that, a recruiter glances at it for under ten seconds while spending their attention on your GitHub link and your last job title. I’ve sat on hiring panels for my own consultancy and helped clients build out small dev teams, and I’ve watched recruiters do exactly this: open the CV first, skim the cover letter second, and only slow down if something in it makes them curious.
That doesn’t mean skip the cover letter. It means write it for the ten seconds it will get, not for the imaginary careful reader who’s going to appreciate your turn of phrase. Every sentence has to earn its place or a bored recruiter will stop reading.
The structure that works, paragraph by paragraph
I’ve read hundreds of these over the years, for junior developer roles and senior engineering hires alike, and the ones that got a callback almost always followed the same shape:
- Paragraph one, two sentences: the role you’re applying for and one line that proves you’ve read the job posting, not just the job title.
- Paragraph two, three or four sentences: one specific project, with a number attached. Not “I have experience with React” but “I rebuilt the checkout flow in React and cut page load time from 4.2 seconds to 1.1 seconds.”
- Paragraph three, two or three sentences: why this company, specifically, not any company hiring engineers. Name their product, a recent release, or a technical challenge you noticed from their engineering blog.
- Paragraph four, one or two sentences: a plain, confident close. Not “I would be thrilled to discuss further.” Just: “I’d welcome the chance to talk through how I’d approach this.”
That’s it. 250 to 350 words. If you’re at 500, you’re explaining too much. Recruiters and engineering managers are pattern-matching, not reading a personal essay, and the same discipline I write about in 7 cover letter writing techniques that will get you hired applies just as much to a backend developer role as it does to a marketing job, maybe more, because engineers are trained to be suspicious of padding.
A real one that worked
A few years back I was helping a client fill a junior full-stack role at a small fintech in Bristol. We had 74 applications for one seat. Most cover letters opened with some version of “I have always been passionate about technology since I was young,” which tells a hiring manager absolutely nothing. One candidate, a self-taught developer with no computer science degree, wrote two sentences about a personal project: a Discord bot she’d built for a local gaming community that handled over 3,000 active users and she’d had to rewrite the database layer twice because the first version kept crashing under load. That was the whole story. No fluff around it. She got the interview over candidates with actual degrees because she’d shown, in about 40 words, that she understood scale, failure, and fixing things under pressure, which is the entire job.
The lesson isn’t “build a Discord bot.” It’s that one concrete, slightly messy project story beats a tidy list of technologies you’ve “worked with” every single time. If you don’t have a job to point to yet, point to a side project, a hackathon, an open-source contribution, or a bug you fixed in a piece of software you use daily and then reported upstream.
Cut these lines, every time
These show up in almost every software engineer cover letter I’ve seen, and they do nothing for you:
- “I am a passionate and dedicated software engineer” – every applicant says this, so it’s read as noise, not signal.
- “I believe I would be a great fit for your team” – you believe, but you haven’t shown why, so it reads as filler.
- “I am a fast learner and hard worker” – unverifiable, unmemorable, and every rejected candidate also claimed it.
- “Please find attached my CV for your consideration” – fine in an email, dead weight in a cover letter.
Replace each of those with a fact. Instead of “fast learner,” write “picked up Kubernetes in three weeks to migrate our staging environment off a single EC2 instance.” That single sentence does more work than an entire paragraph of adjectives.
Mirror the job posting, don’t ignore it
Software engineering job postings are often written by the engineering manager who’ll interview you, not just HR, and they tend to be specific about the stack, the problem the team is solving, and sometimes the exact pain point that made them post the role in the first place. If the posting mentions “scaling our event-driven architecture” or “reducing on-call incidents,” use those exact phrases somewhere in your letter if they’re true of your experience. This isn’t keyword stuffing for an ATS, though it does help there too. It shows the manager you read past the job title, which most applicants don’t bother doing.
I’d also say: don’t apologise for gaps. If you’re moving from a bootcamp into your first role, or from a non-technical career into engineering, say so plainly in one sentence and move straight to evidence. “I moved into software development after six years in operations, and I’ve since built three production applications, including a stock management tool now used daily by 40 staff at my previous employer.” That’s a stronger opening than three sentences of hedging about being “new to the industry.”
Using AI to draft it, honestly
I use AI tools most days in my own business, and I’m not precious about people using them to draft a cover letter, because pretending nobody does is a bit daft at this point. The problem isn’t using ChatGPT or Claude to get a first draft moving. The problem is sending out the first draft unedited, because it comes back sounding like every other AI-drafted cover letter: “I am excited about the opportunity to use my skills,” full of the same three adjectives everyone’s tool of choice tends to reach for. Hiring managers who read a lot of applications notice the pattern fast, even if they can’t always prove it’s AI.
So use it for the boring bit: get a draft out, then strip every generic sentence and replace it with a real detail from your own work, in your own voice, including your actual sentence rhythm and the odd imperfection. I’ve written before about the wider ways people fold these tools into daily work in how to use AI in everyday life, and a cover letter draft is one of the more sensible uses, as long as the editing pass is yours and it takes longer than the drafting did.
One paragraph for senior and staff engineer applications
If you’re going for a senior or staff role, the calculus shifts slightly. Nobody is checking whether you can code at that level, your CV and past titles cover that. What they want from the cover letter is evidence of judgement: a decision you made that saved the team time or money, a system you designed that other people still use, or a call you made not to build something. “I recommended we not build a custom auth system and instead adopted an existing identity provider, which saved roughly four months of engineering time” tells a hiring manager more about your seniority than any list of languages ever will.
The two mistakes I see most often
First, applying to 60 roles with one identical letter, changing only the company name. It shows. Recruiters compare notes with colleagues and see the same phrasing recycled across different applicants when people lift templates wholesale from generic advice pages, so at minimum change the middle two paragraphs for every application, even if the opening and closing stay similar.
Second, writing the cover letter before you’ve looked at the company’s actual product or codebase, if it’s open source. Spend fifteen minutes on their engineering blog, their GitHub org, or their app before you write a word. The people who skip this step and the people who do it produce visibly different letters, and hiring managers can tell within a sentence which category you’re in.
Format and delivery, the practical bits
Send it as a PDF unless the application form specifically asks for plain text, since some ATS platforms mangle formatting from Word documents. Keep the file name sensible: “Firstname-Lastname-Cover-Letter.pdf,” not “Document1.pdf.” If there’s no dedicated upload field and you’re pasting text into a box, drop the letterhead formatting and write it as clean paragraphs, because most ATS parsers strip formatting anyway and a mangled version looks worse than no formatting at all.
I have written more around this on the site: 7 Cover Letter Writing Techniques that Will Get You Hired, How to Use AI in Everyday Life, AI News This Week for Small Business, 19 July 2026.
Frequently asked questions
How long should a cover letter be for a software engineer role?
Aim for 250 to 350 words, roughly four short paragraphs. Anything over 400 words usually means you’re explaining rather than demonstrating, and recruiters rarely read past the first ten seconds anyway.
Do I need a cover letter if I already have a strong GitHub profile?
Yes, but keep it short and let it point to the GitHub rather than repeat it. One sentence naming your strongest project and result, then a line on why this company specifically, is enough when your portfolio is doing most of the talking.
Is it fine to use ChatGPT to write my cover letter?
Using AI for a first draft is fine, sending that first draft unedited is not. Strip out generic phrases like “use my skills” and replace them with a real project detail in your own words before you send it.
What should I write about if I have no professional experience yet?
Use a side project, open-source contribution, hackathon entry, or a bug you found and fixed in software you use. One specific, slightly imperfect project story with a real detail beats a list of technologies every time.
Related reading: How to Write a Construction Contract Template That Covers Delays and Costs and Healthcare Innovation: The Critical Role of Software Development.
Want the complete version? Read where I break down productivity.