
Email Writing
Write professional emails that get results. Master structure, tone, subject lines, and email etiquette for international software teams.
Professional Email Writing for Developers
Email remains a primary communication channel in professional software development. Writing clear, effective emails ensures your message is understood, acted upon, and reflects well on your professionalism.
Email Structure
The Anatomy of a Good Email
1. Subject Line (5-7 words):
❌ "Question"
❌ "Quick thing"
❌ "Need help with something"
✅ "API authentication failing in production"
✅ "Request: Review by Friday"
✅ "Proposal: Migrate to PostgreSQL"2. Greeting:
Formal: "Dear Dr. Smith,"
Professional: "Hi Sarah," or "Hello team,"
Casual (internal): "Hey folks," or "Hi all,"3. Opening (Context):
"I'm writing to follow up on our discussion about..."
"Following our stand-up, I wanted to clarify..."
"I have a question about the deployment process..."4. Body (Main Message):
- One idea per paragraph
- Short paragraphs (2-4 sentences)
- Bullet points for lists
- Bold for emphasis
5. Call to Action:
"Could you review this by Friday?"
"Please let me know if you have questions."
"I'll wait for your approval before proceeding."6. Closing:
Formal: "Best regards," / "Kind regards,"
Professional: "Thanks," / "Best,"
Casual: "Cheers," / "Thanks!"7. Signature:
John Smith
Senior Software Engineer
Company Name
john.smith@company.comEmail Types and Templates
1. Asking for Help
Structure:
- What you've tried
- Specific question
- What you need
Template:
Subject: Help needed: Docker container won't start
Hi Maria,
I'm having trouble with the development environment setup.
What I've tried:
- Rebuilt the container
- Cleared Docker cache
- Checked the logs (attached)
The error message is: "Port 3000 already in use"
Could you help me understand what might be causing this?
I'm blocked from working on the authentication feature.
Thanks,
John2. Requesting a Review
Template:
Subject: Review request: User authentication PR
Hi team,
I've opened PR #234 for the user authentication feature.
Changes:
- JWT implementation
- Login/logout endpoints
- Unit tests (95% coverage)
Could someone review by Thursday? The QA team is waiting
to start testing on Friday.
Link: https://github.com/company/repo/pull/234
Thanks!
John3. Reporting a Bug
Template:
Subject: Bug: Payment page crashes on Safari
Hi Sarah,
I've found a critical bug on the payment page.
Steps to reproduce:
1. Open Safari 16.0
2. Go to /checkout
3. Click "Pay Now"
Expected: Payment processes
Actual: Page crashes with console error (screenshot attached)
Impact: Affects all Safari users (15% of our traffic)
Priority: High (blocking revenue)
I can investigate this today if you'd like.
Best,
John4. Status Update
Template:
Subject: Status update: Migration project (Week 3)
Hi team,
Quick update on the database migration project:
Completed:
✅ Schema design approved
✅ Migration scripts written
✅ Tested on staging (no issues)
In progress:
🚧 Performance testing
🚧 Rollback plan documentation
Next week:
📋 Production migration (Tuesday 8pm)
📋 Post-migration monitoring
We're on track for the January 15 deadline.
Questions? Let me know.
Best,
John5. Meeting Request
Template:
Subject: Meeting request: API design review (30 min)
Hi Sarah and Mike,
Could we schedule 30 minutes to review the new API design?
Topics:
- Endpoint structure
- Authentication approach
- Rate limiting strategy
I'm flexible this week. Here are some options:
- Tuesday 2-4pm
- Wednesday 10am-12pm
- Thursday 3-5pm
Or share your availability and I'll find a time.
Thanks!
John6. Saying No (Diplomatically)
Template:
Subject: Re: Additional feature request
Hi Mark,
Thanks for the suggestion about adding real-time
notifications.
I understand the value, but I have concerns:
- Current sprint is fully committed
- Requires significant architecture changes
- Adds complexity to our current focus area
Alternative: Could we discuss this in next quarter's
planning? That would allow proper design time and avoid
rushing the implementation.
Would that work for you?
Best,
John7. Apologizing for a Mistake
Template:
Subject: Apology: Production outage caused by my deployment
Hi team,
I'm writing to apologize for the production outage today.
What happened:
My deployment at 2pm included untested database migration
that caused the API to fail.
Impact:
- 45-minute outage
- ~500 users affected
- Support tickets: 23
What I'm doing:
- Rolled back immediately
- Testing migrations more thoroughly
- Created checklist for future deployments
- Scheduled post-mortem for Monday
I take full responsibility and will ensure this doesn't
happen again.
Sorry for the disruption.
John8. Following Up
Template:
Subject: Re: Review request: Authentication PR
Hi Maria,
Following up on my review request from last week.
The PR has been ready since Monday, and we need approval
to proceed with QA testing.
Could you review by end of day? Or should I ask someone
else if you're too busy?
Thanks,
John9. Introducing Yourself
Template:
Subject: Introduction: New developer on the platform team
Hi team,
I'm John Smith, the new senior developer joining the
platform team on Monday.
Background:
- 5 years in Python/Django
- Previous companies: TechCorp, StartupXYZ
- Excited about distributed systems
I'm looking forward to working with you all. Feel free
to reach out if you want to grab virtual coffee!
Best,
John10. Sharing Knowledge
Template:
Subject: Tip: Faster Docker builds with multi-stage
Hi team,
I discovered a way to cut our Docker build times by 60%.
Problem: We were copying all files before installing
dependencies, causing full rebuilds on every code change.
Solution: Multi-stage builds with dependency caching.
I wrote a guide with examples:
https://wiki.company.com/docker-optimization
Worth 5 minutes to read—you'll save hours in the long run.
Cheers,
JohnEmail Best Practices
Subject Lines
Be Specific:
❌ "Update"
✅ "Update: API migration delayed to next week"
❌ "Meeting"
✅ "Meeting request: Q1 planning (60 min)"
❌ "Problem"
✅ "Critical: Database backup failing"Include Action:
- "Action required: Approve deployment"
- "Review needed: Security policy"
- "FYI: Server maintenance tonight"
Use Prefixes:
[Urgent]for time-sensitive[Question]for inquiries[FYI]for informational[Action Required]for tasks
Opening Lines
Get to the Point:
❌ "I hope this email finds you well. I wanted to reach
out to you today because I was wondering if perhaps..."
✅ "Could you review PR #456 by Friday?"Provide Context:
"Following our discussion yesterday, here's the..."
"As requested in the planning meeting, I've..."
"I'm following up on the bug report from last week..."Body Content
One Topic Per Email:
- Don't mix unrelated issues
- Makes it easier to act on
- Easier to search later
Use Lists:
❌ We need to update the dependencies and also fix the
tests and deploy to staging and update the docs.
✅ Before deployment:
- Update dependencies
- Fix failing tests
- Deploy to staging
- Update documentationBe Concise:
❌ I was thinking that maybe we could possibly consider
perhaps looking into the option of potentially using...
✅ Should we use Redis for caching?Use Active Voice:
❌ The bug was fixed by me.
✅ I fixed the bug.
❌ A decision needs to be made about...
✅ We need to decide about...Call to Action
Be Clear:
❌ "Let me know your thoughts."
✅ "Please approve by Friday so we can deploy Monday."
❌ "If you could look at this when you get a chance."
✅ "Could you review this today? I'm blocked without feedback."One Clear Action:
❌ "Review the PR, update the docs, and let me know
what you think about the architecture."
✅ "Could you review PR #234 by tomorrow?"
(Other items in separate emails)Tone and Politeness
Softening Language:
Direct: "This is wrong."
Softer: "I think there might be an issue here."
Direct: "You didn't finish this."
Softer: "Could we prioritise finishing this?"
Direct: "I need this now."
Softer: "Would it be possible to get this today?"Modal Verbs:
- "Could you...?" (polite request)
- "Would you...?" (very polite)
- "Can you...?" (neutral)
- "Will you...?" (expectation)
Thank You:
"Thanks for your help with this."
"I appreciate your quick response."
"Thank you for taking the time to review."Common Mistakes
1. Too Casual
❌ "hey whats up? so i was thinking maybe we could..."
✅ "Hi Sarah, I have a suggestion about the API design..."2. Too Formal
❌ "Dear Sir/Madam, I humbly request your esteemed
consideration regarding the aforementioned matter..."
✅ "Hi John, Could you review the deployment plan?"3. Unclear Subject
❌ Subject: "Quick question"
Body: [Long complex architectural question]
✅ Subject: "Question: Should we use REST or GraphQL?"4. Wall of Text
❌ [Single 500-word paragraph]
✅ [5 short paragraphs with bullet points]5. Missing Context
❌ "The bug is fixed."
(Which bug? What was the cause? What changed?)
✅ "I fixed the login timeout bug. The session cookie
wasn't being set correctly. Deployed to production."6. Reply All Overuse
Use Reply All When:
- Others need the information
- Group decision required
- Transparency is important
Don't Reply All For:
- "Thanks!" (thank person privately)
- Personal side conversations
- Acknowledging receipt
7. No Proofreading
Common Errors:
- "I look forward to here from you" (hear)
- "Please review the attched file" (attached)
- "Their working on it" (They're)
Always Check:
- Spelling
- Grammar
- Tone
- Attachments mentioned are attached
- Correct recipients
Cultural Considerations
Directness Varies
High-Context Cultures (Asia, Middle East):
More indirect: "It might be worth considering..."
Softeners: "Perhaps we could..."
Avoid: "You're wrong"Low-Context Cultures (US, Germany):
More direct: "This approach has issues"
Clear: "Could you change X to Y?"
Acceptable: "I disagree because..."Email Customs
US/UK:
- First name common
- Casual tone acceptable
- Get to point quickly
Japan:
- Titles important (San, Sama)
- Formal greetings
- Indirect communication
Germany:
- Professional but direct
- Formal unless invited to be casual
- Clear, structured
Time Zones
Include Time Zones:
"Let's meet Tuesday at 2pm EST (8pm CET)"Respect Working Hours:
"I'm sending this outside your hours—no rush to respond."Email Efficiency
Inbox Zero Strategy
Immediate Actions:
- 2-minute rule: If takes <2 min, do it now
- Delegate: Forward to right person
- Delete: Not important
- Archive: Done, keep for reference
- Snooze: Come back to later
Folders/Labels:
- Action Required
- Waiting For Response
- FYI/Read Later
- Archive
Email Timing
Best Times to Send:
- Tuesday-Thursday: Highest response rates
- Morning (10am): Good open rates
- Avoid: Late Friday, weekends, holidays
Response Time:
- Urgent: 4 hours
- Important: 24 hours
- Normal: 48 hours
- FYI: No response needed
Templates and Snippets
Create Templates For:
- Weekly status updates
- Bug reports
- Review requests
- Out-of-office replies
Use Tools:
- Gmail: Canned responses
- Outlook: Quick Parts
- Text Expander
Advanced Techniques
Expecting No Response
"FYI, no response needed: The deployment succeeded."Setting Expectations
"This is low priority—respond when you have time."
"Urgent: Need response by 5pm today."Asking Multiple People
"@Sarah and @Mike: Could one of you review this?"
(Avoids diffusion of responsibility)Forwarding Context
"FYI - see below for context"
[Original email]
Not just: "FYI" with forwarded emailTools and Resources
Email Clients
Gmail:
- Smart compose
- Snooze
- Labels
- Filters
Outlook:
- Rules
- Quick Steps
- Categories
- Focused Inbox
Superhuman:
- Keyboard shortcuts
- Snippets
- Send later
- Read receipts
Writing Tools
Grammarly:
- Grammar check
- Tone detection
- Clarity suggestions
Hemingway Editor:
- Readability score
- Simplification suggestions
LanguageTool:
- Multi-language support
- Style checking
Productivity
Boomerang:
- Schedule sending
- Remind if no reply
- Inbox pause
Mixmax:
- Email tracking
- Templates
- Scheduling
Practice Exercises
Exercise 1: Rewrite
Transform this email:
"hey, so i was thinking maybe we could look at that thing
we talked about last week? let me know what you think."Better Version:
Subject: Follow-up: API caching discussion
Hi Sarah,
Following our discussion last week about API performance,
I've researched caching solutions.
Top options:
- Redis (my recommendation)
- Memcached
- CDN-level caching
Could we discuss which to implement? I'm available
Tuesday or Thursday afternoon.
Best,
JohnExercise 2: Subject Lines
Write clear subject lines for:
- Asking for urgent code review
- Reporting production bug
- Sharing weekly progress
- Requesting meeting to discuss architecture
Exercise 3: Tone Adjustment
Make this more professional:
"Your code doesn't work and it's causing problems. Fix it asap."Better:
"I found an issue in the authentication module that's
causing login failures. Could you take a look today?
Happy to pair on debugging if helpful."Next Steps
Improve your communication:
- Practice Technical Writing
- Master Code Review
- Develop Async Communication
- Build Professional Skills
Professional email writing is a skill that improves with practice. Start with templates, adapt to your team's style, and always prioritise clarity and respect in your communication.