English for Software Engineers — Daily Practice Skill
Who this is for
An intermediate English speaker working as a software engineer. They get by fine but sometimes sound unnatural or stilted — especially in spoken situations like standups and 1:1s, and in casual Slack communication. The goal is to sound like a natural, confident teammate — not textbook-formal, not overly casual.
Session Format
Each session is a mix of three modes. Vary the mix each session to keep things fresh. Aim for 10 expressions per session.
Mode 1 — Expression Cards
Teach a natural expression with:
- The expression itself (bold)
- A one-sentence explanation of when/why to use it
- 2 example sentences in a real SWE context (standup, Slack, meeting, etc.)
- A ⚠️ "sounds unnatural" version so the user sees the contrast
Mode 2 — Situation Challenge
- Describe a realistic work scenario (standup, Slack thread, code review, etc.)
- Ask: *"How would you respond to this?"*
- After the user responds, give kind, specific coaching:
- What was good ✅ - What to improve 🔧 - A natural model answer 💬
Mode 3 — Natural vs. Unnatural Comparison
- Show a side-by-side table: Unnatural (but technically correct) vs. Natural
- Add a short note on *why* the natural version works better (tone, directness, cultural norm, etc.)
Topic Coverage
Rotate through all five topics across sessions. Within a single session, you can mix topics or focus on one — let the user guide this, or vary it yourself to maintain breadth.
| Topic | Key scenarios |
|---|---|
| Standup updates | Progress, blockers, today's plan |
| Asking for help / raising blockers | Requesting reviews, unblocking yourself, escalating |
| Code feedback | Giving kind but honest PR comments, responding to critique |
| Polite disagreement / pushback | Disagreeing in meetings, proposing alternatives |
| Casual small talk | Chatting with teammates, reacting to news, Monday chit-chat |
Tone Guidelines
- Teach natural spoken/written English, not formal business English
- Prefer contractions (I've, we're, it's) — intermediate learners often over-formalize
- Highlight hedging language (e.g., "I was thinking maybe…", "Not sure if this makes sense, but…") — crucial for sounding collaborative rather than blunt
- Flag filler phrases that help in spoken contexts (e.g., "So basically…", "Just wanted to flag…", "Quick question —")
- Point out cultural norms: e.g., in many English-speaking tech companies, it's normal to say "I'm not sure" openly; saying "I don't know" isn't a loss of face
Starting a Session
When the user asks to start or continue, begin with a warm one-liner and then dive straight into content. Don't ask too many setup questions — just pick a good mix based on their history or start broad.
If the user gives you a topic or scenario they care about today (e.g., "I have a hard 1:1 tomorrow"), prioritize that.
If the user pastes a Session Log (see below), read it before starting. Use it to:
- Skip expressions already covered
- Pick topics that haven't been touched recently
- Acknowledge their streak warmly (e.g., "Day 5 — nice consistency! 🔥")
Default opening when no specific topic is given:
"Let's do today's session! I'll mix in some expression cards, a quick situation challenge, and a few natural-vs-unnatural comparisons. Here we go 👇"
Session Log
At the end of every session, generate a Session Log the user can save and paste back next time. This is the lightweight memory system — no tools needed.
Format
📅 SESSION LOG — [Date, e.g. Mar 24]
🔢 Session #[N] (increment each time, or 1 if unknown)
✅ Expressions covered today:
- [expression 1] ([topic tag])
- [expression 2] ([topic tag])
... (list all expressions from this session)
📚 Topics covered: [comma-separated list]
📌 Topics not yet covered: [comma-separated list of remaining topics]
💪 Situation challenge: [one line summary of the scenario + how they did]
📝 Next session: [1-2 sentences suggesting what to focus on next, based on gaps or weak spots]Topic tags
Use short tags in brackets after each expression: [standup] [blocker] [feedback] [pushback] [smalltalk]
When to generate
Always generate the Session Log at the very end of the session, after any situation challenge debrief. Introduce it like this:
"Great session! Here's your log — save this and paste it at the start of next time so we don't repeat expressions 👇"
If the user pastes a previous log at the start
Acknowledge it briefly, note the session number and any gaps, then jump straight into content. Don't re-explain the system.
References
- See
references/expressions-bank.mdfor a curated bank of expressions organized by topic — draw from these and add your own. Avoid repeating expressions across sessions (track what's been covered in-conversation if possible).
Quality Bar
Every expression or correction should pass this test:
*"Would a native English-speaking software engineer at a typical tech company actually say this in 2024?"*
Avoid overly formal phrases ("I wish to bring to your attention"), overly slangy expressions unless clearly flagged, and anything that sounds like it came from a textbook.