I've seen this come up a few times now in the CS subreddits. Some idea that a cover letter is a waste of time. That they aren't read, that they do more harm than good.
I've written one cover letter and it's because the company (a AAA game company) explicitly wanted one after I had already spoken to their recruiters. I normally don't believe in cover letters or a lot of the traditional career guidance/resume song and dance that people in other fields and from 30 years ago would expect. I believe my feelings are the norm in this industry.
Stop wasting your time [with cover letters]. It doesn’t make a difference.
Like most things, it's not black and white. If you write a garbage cover letter, then it's a waste of time. If you aren't qualified for the position, then an exceptional cover letter will unlikely affect the balance. But if you're a smart and genuine person who is convinced they that they're a good fit for the job, make it easy for the interviewer to know that you ought to be considered!
Bad cover letters
My least favourite are cover letters that start of with "Hi my name is [name] and I'm applying for the role of [role] at [your company]. This is silly, and there is little chance for you. With the first sentence, you have only demonstrated that you do not value my time or your own. Not a good start. More than anything else, don't waste people's time. We know which company we are, which roles we're hiring for, and who you are.
Similarly, cover letters which contain the same content as the CV. The CV is designed to be easy to parse. By taking the same content and placing it in a cover letter, you are making it harder to read. If this is what you do with text, what will you do with code? Please, take every opportunity to demonstrate skill in critical thinking. Optimize your content for readability.
Cover letters with no clear intention. Perhaps you believe the only purpose of a cover letter is to exist. But this is silly. Please go deeper. Without a clear understanding of what the purpose of the cover letter truly is, a generic template structure will emerge: three paragraphs stating some variant on how you are hard working, passionate, detail-oriented, a team player, and excited about the opportunity.
Good cover letters
Be action-oriented. A cover letter should convey that you are the active participant in your life. It should demonstrate that you aren't just hoping for a junior position, or hoping that someone will take a chance on you, but that you are already working towards your goals, with or without us. This isn't about being cocky – it's demonstrating confidence and follow-through; that you can set a plan and stick with it.
Be real! It should affirm that you are a real person who is convinced that you know where you want to be working and why. If you find it hard to sound convincing, more research into whether or not this job is a good fit is likely the answer. And if you're still stuck – use your imagination. Creativity is hugely powerful, and effective software development is much more creative than many people give it credit for.
Know your audience! Forget what they told you in high-school. We're working in tech where the emphasis is on smart, effective, and friendly collaboration. Write in your own voice, and direct your writing to the person you want to be working with. There's a real person at the other end. The importance of this can't be understated.
Show, don't tell! Demonstrate your values. Write simply, clearly and directly, and without sounding like a lifeless robot. I can't say enough how valuable this is when evaluating employees for remote teams. If you value clear and friendly communication, don't just say so in your CV. Demonstrate it. Keep it short, friendly, and to the point. It doesn't need to be two-pages if two paragraphs will do.
Don't just present the data – connect the dots! Summarize key points of experience and how it relates to the current opportunity. A personal narrative is powerful, and because it's a story, it can be easily adapted to different job opportunities. Everyone has a story, and it's almost tragic how few people realize how unique and compelling their own story can be.
If the CV is about hitting the "functional requirements" of a job opportunity, the cover letter ought to speak to the desired "quality attributes" of an opportunity. Research if the employer has posted company values. Speak to how those resonate to you personally. If the CV contains the "what" and "when", use the cover letter to communicate the "why" you want to work there and "how" you will approach the job.
There are increasing numbers of talented and hard-working engineers entering the field every year. Do everything you can to separate yourself from the crowd. Practice leveraging what makes you unique, and leaning into opportunities.