Complete guide: English for programmers
English for Programmers: The Complete Free Guide (2026)
Everything you need to use English confidently as a developer: standups, meetings, pull requests, async communication, technical interviews, and more.
Key Takeaways
- English is the shared language of global software development: GitHub, Stack Overflow, most documentation, error messages, and open-source projects are all in English.
- Developer English is different from tourist English: you need standup phrases, commit conventions, PR vocabulary, and incident communication, not restaurant phrases.
- The six situations where English matters most: meetings, reading and writing code, async communication, pull requests, talking with your team, and technical interviews.
- Accent and perfection are not the goal: being able to participate, contribute, and grow is the goal.
- Repeated exposure to the same professional contexts builds fluency faster than grammar drills.
What is in this guide
- 1. Why English matters for programmers
- 2. English in meetings: standups, reviews, 1-on-1s
- 3. Reading and writing code in English
- 4. Async communication: Slack, Discord, email
- 5. Politeness in pull requests
- 6. Communicating with your manager and team
- 7. Common English mistakes Spanish speakers make
- 8. How to practice: 90-day plan
- 9. Your English level (CEFR)
- 10. Grammar you actually need
- 11. Practice right now
Why English Matters for Programmers
Por qué el inglés importa para los programadores
Ten years ago, you could be a great developer and work entirely in Spanish. Today, that is getting harder. English is not just about reading documentation. It shows up in Slack threads, PR comments, incident postmortems, onboarding calls, architecture discussions, and conference talks. If you work on a team with people from Argentina, Colombia, Spain, Brazil, and India, the shared language is English.
This is not about accent or perfection. It is about being able to participate, contribute, and grow in the global developer ecosystem.
Work opportunities
Remote roles at US and European companies pay significantly more than local-market roles in most Latin American countries. These roles require at least B2 English for written communication and often B2 to C1 for spoken interaction in standups and meetings. FAANG companies, Y Combinator startups, and most companies with remote-first cultures list English as a requirement, not a nice-to-have. Without it, you are competing only in your local market.
Which English level do you need for remote work →Learning opportunities
More than 90% of technical content is published in English first. Documentation, courses, conference talks, blog posts, RFCs, changelogs, Stack Overflow answers, GitHub issues, and research papers. If you wait for translations, you are always months or years behind. Being able to read and learn from primary sources directly is a compounding advantage that grows over your entire career.
English in Meetings
Inglés en reuniones
Meetings are where your spoken English is most visible to the team. Each meeting type has its own vocabulary and structure. The good news: once you learn the patterns for each, they become predictable.
Daily standup: 30 real phrases
The standup is 15 minutes. You answer three questions: what you did yesterday, what you are doing today, and whether you have blockers. Once you know the right phrases for each, the standup becomes manageable.
Reporting yesterday (10 phrases)
- "I finished the login page yesterday."
- "I wrapped up the authentication refactor."
- "I reviewed two pull requests."
- "I spent most of the day on the database migration."
- "I investigated the performance issue we flagged last week."
- "I pair-programmed with Ana on the payment integration."
- "I helped unblock Carlos on the API endpoint."
- "I fixed a flaky test in the CI pipeline."
- "I updated the onboarding documentation."
- "I merged the search feature and attended the planning session."
Reporting today (10 phrases)
- "Today I am working on the payment integration."
- "I am going to start the API documentation."
- "I am picking up the bug we found in the checkout flow."
- "I plan to finish the unit tests for the user service."
- "I am reviewing the open PRs from last week."
- "I am writing integration tests for the new endpoint."
- "I am attending the design review at 2pm and then picking up a ticket."
- "I am investigating the memory leak we saw in production."
- "I am wrapping up the refactor and will open a PR by end of day."
- "I am taking over from Marco on the billing module."
Reporting blockers (10 phrases)
- "I am blocked on the third-party API credentials. I need access from the DevOps team."
- "No blockers on my end."
- "I have a dependency on the backend team finishing the endpoint first."
- "I am waiting for a review on my PR before I can continue."
- "I need clarification on the requirements before I start."
- "I have an environment issue. My local Docker setup is broken."
- "I am blocked on design assets for the new dashboard."
- "I need about 5 minutes with someone from the infrastructure team."
- "The third-party service is down and I am waiting for it to recover."
- "Almost unblocked. I expect to have this resolved by tomorrow."
Practice standup English with interactive exercises
Practice standup English with interactive exercises →Sprint review and retrospective
Sprint reviews and retrospectives have their own vocabulary. In a review, you demo what shipped. In a retro, you reflect on what worked and what to improve.
Sprint review
- "Let me walk you through what we shipped this sprint."
- "We completed 34 out of 40 story points."
- "This feature lets users export their data as a CSV."
- "We did not finish the payment integration. It is moving to next sprint."
- "The main blocker was the third-party API being down for two days."
Retrospective
- "What went well: we shipped on time and all tests passed."
- "What to improve: we underestimated the complexity of the API integration."
- "My action item is to document the deployment process by next Friday."
- "I think we should break down the tickets more granularly next sprint."
Design reviews and architecture discussions
These meetings are less structured. You need to propose, question, raise concerns, and disagree without blocking progress.
- "My proposal is to use a separate service for this."
- "One tradeoff here is latency versus consistency."
- "My concern with this approach is that it will not scale past 10,000 requests per second."
- "Could we explore the alternative of using an event queue here?"
- "I think this would be simpler if we pushed the complexity down to the data layer."
- "I am not sure this is the right abstraction. Could we spend 10 minutes on the whiteboard?"
1-on-1 with your manager
1-on-1s are your space to raise concerns, ask for feedback, and discuss your growth. Most managers expect you to come prepared with topics.
- "I wanted to raise something I have been thinking about."
- "I feel like I am growing in backend work but I would like more exposure to system design."
- "I would appreciate more specific feedback on my code quality."
- "I am finding it hard to estimate tasks accurately. Do you have any advice?"
- "I would like to discuss a salary review at some point this quarter."
- "Is there anything I could be doing differently?"
Reading and Writing Code in English
Leer y escribir código en inglés
Code itself is in English: variable names, function names, comments, error messages. Knowing how to read errors and write meaningful commits makes you a better collaborator.
Error messages and stack traces
Stack traces look intimidating but follow a predictable structure. The first line names the error type and message. The lines below show the call stack, from the most recent call at the top to the origin at the bottom. The key word is 'at': each 'at' line is a function call.
Key words in stack traces
atshows the call stack, one function per linecaused bythe root cause, often deeper in the stackexpected / gotwhat the code wanted vs what it receivedundefined / nullthe variable has no valuecannot read property ofyou are accessing a property on something that is null or undefinedfailed toan operation did not complete
TypeError: Cannot read properties of undefined (reading 'map')You are calling .map() on a variable that does not exist yet. Check if the data has loaded before rendering.
ENOENT: no such file or directoryThe file path is wrong or the file does not exist. Check your path and whether the file was created.
ECONNREFUSED / Connection refusedThe server or service is not running, or the port is wrong. Check that the service is up.
401 UnauthorizedYou are not authenticated. Your token is missing, expired, or invalid.
403 ForbiddenYou are authenticated but do not have permission to do this action.
500 Internal Server ErrorSomething broke on the server. Check the server logs for the actual error.
To Google an error effectively: remove the specific variable names and file paths, keep the pattern. 'Cannot read properties of undefined (reading map)' finds more results than your full stack trace.
Browse common error messages →Commit messages in English
Commit messages are read in git log, PR reviews, git blame, and changelogs. A good commit message tells any developer what changed and why, without reading the diff.
Use the imperative mood: 'Add feature' not 'Added feature'. 'Fix bug' not 'Fixed bug'. Think of the commit as completing the sentence: 'If applied, this commit will...'
The Conventional Commits format is widely used in open-source and professional teams:
type(scope): short descriptionCommit types
featfeat(auth): add Google OAuth loginfixfix(checkout): handle empty cart on submitdocsdocs(readme): update local setup instructionsrefactorrefactor(user): extract validation into separate moduletesttest(api): add coverage for rate limitingchorechore(deps): upgrade React to 19perfperf(search): add index on user email columncici(github): add lint step to PR workflow
Bad vs good
✗ fix stuff✓ fix(auth): handle null token on logout✗ wip✓ feat(search): add debounced input (incomplete)✗ changes✓ refactor(payment): extract card validation logic✗ asdfg✓ chore: remove unused console.log statements
Technical vocabulary hub
Technical English is a specific dialect. The words developers use in code reviews, standups, architecture discussions, and job interviews are not the same words you learn in a generic English course.
- Coding acronyms (LGTM, WIP, AFK, PR, TBD...)The short codes that show up everywhere in developer communication
- Phrasal verbs for developers (set up, roll back, hand off...)The multi-word verbs that native speakers use constantly in tech contexts
- Idioms in tech teams (boil the ocean, low hanging fruit...)Expressions that do not mean what they literally say
- AI vocabulary (LLM, RAG, token, hallucination...)Essential terms for developers working with AI tools and systems
- How to talk about code in EnglishThe verbs and sentence patterns for walkthroughs, reviews, and explanations
- System design vocabulary (load balancer, CAP theorem, sharding...)The concepts that come up in every system design discussion and interview
- Job ad vocabulary (greenfield, IC, OTE, vesting cliff...)What the words on LinkedIn job postings actually mean
- SOLID principles in English (SRP, OCP, LSP...)Design principles you need to know and explain in code reviews and interviews
- Coding terms: Spanish to English glossaryThe most common dev terms explained for Spanish-speaking developers
Async Communication: Slack, Discord, and Email
Comunicación async: Slack, Discord y correo
Most developer communication happens asynchronously: Slack messages, GitHub comments, emails. The tone norms here are different from spoken English. Informal is expected. Short is good. But there are patterns worth learning.
Slack and Discord
Slack and Discord have their own etiquette. Threads keep channels clean. @here notifies only active members. @channel notifies everyone regardless of status. Use @channel sparingly.
"Taking this to a thread so we do not clutter the channel.""Just a heads up: the staging environment will be down for maintenance this afternoon.""FYI: I pushed a fix for the checkout bug. Should be on staging in 10 minutes.""Circling back on this. Did we reach a decision on the database approach?""Let me check and get back to you.""EOD update: finished the refactor, PR is up for review. No blockers for tomorrow.""Update: we identified the root cause. The fix is being tested now. ETA 20 minutes."Professional email
Developers write more emails than they think: access requests, follow-ups, bug reports to stakeholders, escalations. The opening and closing are formulas you learn once and reuse. The body is where clarity matters most.
Access request
Hi Sarah, I am joining the payments team next week and will need access to the production dashboard. Could you add me to the payments-team group in AWS? Thanks, Alex
Following up on a PR
Hi Carlos, Just following up on my PR from last Tuesday (link below). Let me know if you have any questions or if there is anything you would like me to change. Thanks, Alex
Incident report to stakeholders
Hi team, At 14:32 UTC, the checkout service returned 500 errors for approximately 8 minutes. Root cause: a database migration removed a column that the payment processor still referenced. Fix was deployed at 14:40 UTC. No data loss. We are adding a migration validation step to our CI pipeline to prevent this. Full postmortem to follow. Alex
Escalation
Hi Maria, I wanted to flag that the third-party API integration has been blocked for 5 business days waiting on credentials from the vendor. This is delaying the sprint goal. Could you help escalate on your end? Thanks, Alex
Common closers
- "Hope this helps."
- "Let me know if you have any questions."
- "Happy to jump on a call if easier."
- "Let me know if you need anything else."
- "Feel free to reach out if anything is unclear."
Politeness in Pull Requests
Cortesía en pull requests
Pull requests are where a lot of professional English happens in writing. The tone matters as much as the content. One of the most common mistakes is accidentally sounding bossy in review comments.
Writing PR descriptions
A PR description explains what the change does, why it was needed, and any context the reviewer needs. Use present tense for what the code does, past tense for the problem it solves.
Template
What: [one sentence describing the change] Why: [the problem this solves or the reason for the change] Context: [anything the reviewer needs to know, links, screenshots]
Example
What: Adds a rate limiter to the forgot-password endpoint. Why: Without it, an attacker can flood a target inbox with reset emails. Context: Uses the existing Redis client. Rate limit is 3 requests per email per hour.
Tone in review comments
In English, 'Change this' sounds like an order. 'Could you change this?' is a suggestion. Learning to signal severity and soften your tone makes your reviews more effective and more professional.
Severity labels used in real teams:
Blocking: this will throw a null pointer exception if the list is empty.
Nit: I would rename this variable to make it clearer, but feel free to ignore.
Could we extract this into a helper function? It would make it easier to test.
LGTM! Nice refactor. Left one small comment but it is not blocking.
Responding to feedback
Responding to review comments in English is its own skill. You can accept, push back, or ask for clarification without sounding defensive or dismissive.
"Good catch, fixed.""Done, thanks!""I went with X instead because it avoids the extra network call. Happy to discuss if you feel strongly.""Could you clarify what you mean by 'cleaner'? I want to make sure I understand your concern.""You are right, I will fix this before merging."Communicating with Your Manager and Team
Comunicarse con tu manager y tu equipo
Beyond meetings and code, you need English for the softer side of team communication: asking for help, giving feedback, disagreeing professionally, and navigating interviews.
Asking for help without sounding incompetent
The key is to show what you have already tried before asking. This signals that you are stuck, not lazy.
- "I have tried X and Y but I am stuck on Z. Do you have 5 minutes?"
- "I am not sure if this is a stupid question, but..."
- "Before I go down this rabbit hole, do you know if there is a simpler way?"
- "I found two possible solutions. Could I walk you through them quickly?"
- "I think the issue is X, but I am not 100% sure. Does that match what you are seeing?"
Giving and receiving feedback
Feedback in English-speaking teams is usually direct but framed constructively. When giving feedback, lead with the observation before the suggestion.
Giving feedback
- "I noticed that the tests are not covering the error paths. Would it make sense to add a few cases?"
- "This works, but I think we could make it cleaner by extracting the logic into a separate function."
- "Great approach. One thing I would consider is caching this result."
Receiving feedback
- "Thanks for the feedback. I will take a look."
- "That is a good point. I had not considered that edge case."
- "I see what you mean. Let me think about the best way to address it."
- "I respectfully disagree. My reasoning is... but I am open to discussing it."
Disagreeing professionally
- "I see your point, but I think there might be another way to look at this."
- "My concern with that approach is that it introduces a new dependency."
- "Could we explore the alternative of keeping this in one service?"
- "I would push back gently on this. The performance cost might be higher than expected."
- "I will defer to your judgment on this, but I want to flag the risk."
Technical interviews
Technical interviews in English are challenging on two levels: solving the problem and explaining your thinking clearly. Most developers practice the problem-solving part but not the explanation part.
Recruiter screen
- "I have been working as a backend developer for four years, mostly in Python and Go."
- "I am looking for a role where I can work on distributed systems at scale."
- "My most recent project was a real-time notification system handling about two million events per day."
Coding challenge
- "My first thought is to use a hash map here, which would give us O(1) lookup."
- "Let me think through the edge cases before I write the code."
- "I am going to start with a brute-force solution and then optimize."
- "Could I ask a clarifying question? Is the input always sorted?"
System design
- "Before I jump in, could you tell me more about the expected scale?"
- "I would start with a simple architecture and then scale out the bottlenecks."
- "The tradeoff here is between consistency and availability."
- "I would use a message queue here to decouple the services."
Cultural fit
- "I prefer to get feedback early, even on incomplete work, rather than waiting until I think it is perfect."
- "When I disagree with a decision, I usually raise my concern once clearly, and then I commit to the team direction."
- "I learn best by doing. I tend to pick up a new technology by building something small with it."
Common English Mistakes Spanish Speakers Make
Errores típicos de hispanohablantes en inglés técnico
These mistakes are extremely common and easy to fix once you know about them. Most are caused by false friends, literal translations, or grammar rules that differ between Spanish and English.
1. False friends
Avoid
'I will finish this actualmente.' / 'Eventualmente I will fix the bug.'
Use instead
'I will finish this right now.' / 'Eventually, I will fix the bug.'
'Actually' means 'en realidad', not 'actualmente'. 'Eventually' means 'finalmente' or 'con el tiempo', not 'eventualmente' (which sounds like 'possibly').
2. Wrong prepositions
Avoid
'It depends of the requirements.' / 'I am agree with you.'
Use instead
'It depends on the requirements.' / 'I agree with you.'
In Spanish we say 'depende de' but in English it is 'depends on'. 'I agree' has no 'am'.
3. Literal tech translations
Avoid
'I will upload the code.' / 'I made a deploy.'
Use instead
'I will push the code.' / 'I deployed it.' or 'I shipped it.'
'Subir el código' translates as 'push the code' in git contexts, not 'upload'. 'Deploy' is a verb: 'I deployed', not 'I made a deploy'.
4. Tense in standups
Avoid
'Yesterday I was working on the PR.'
Use instead
'Yesterday I worked on the PR.' / 'I finished the PR yesterday.'
Past continuous ('was working') is for interrupted actions. For completed standup updates, use past simple.
5. Over-formal Slack messages
Avoid
'Dear Sir/Madam, I hope this message finds you well.'
Use instead
'Hi Sarah, quick question about the deploy schedule.'
Slack and Discord are informal. 'Hi [name],' or just the person's name is the right opener. 'Dear' is for formal letters.
6. 'Make' vs 'do'
Avoid
'I did a mistake.' / 'I made a refactor.'
Use instead
'I made a mistake.' / 'I did a refactor.' or 'I refactored the module.'
Fixed expressions: 'make a mistake', 'make a decision', 'make a suggestion'. 'Do a refactor', 'do a code review', 'do a deployment'.
7. Present perfect with past time
Avoid
'I have finished the PR yesterday.'
Use instead
'I finished the PR yesterday.'
Present perfect cannot be used with specific past times ('yesterday', 'last week', 'in 2023'). Use past simple instead.
8. 'Library' vs 'bookstore'
Avoid
'I found a great library for this.'
Use instead
'I found a great library for this.' (this is correct!)
This one is a false alarm: 'library' in English does mean a software library. But 'librería' in Spanish also means a bookstore, which in English is 'bookstore'. Context makes it clear.
How to Practice: 90-Day Plan
Cómo practicar: plan de 90 días
Reading this guide is the first step. Fluency comes from deliberate practice in real contexts. Here is a structured 90-day plan built around the situations you will actually face.
Weeks 1 to 4: Surviving the standup
Goal: say your standup clearly without freezing.
Daily: 10 minutes on Lingua-e standup exercises.
Weekly: read 1 PR description on a real open-source project on GitHub.
Weeks 5 to 8: Writing without translating
Goal: write commit messages, PR descriptions, and Slack messages directly in English.
Daily: write 1 commit message in English (on real work or a practice repo).
Weekly: leave 1 review comment on a colleague's PR.
Weeks 9 to 12: Leading conversations
Goal: lead a standup, run a design discussion, handle a coding interview question.
Daily: 15 minutes Lingua-e and read 1 Stack Overflow answer in English.
Weekly: record yourself explaining a technical decision for 2 minutes.
Your English Level (CEFR)
Tu nivel de inglés
Before you practice, it helps to know what level you are at. The CEFR scale (A1 to C2) is the international standard for measuring English proficiency. Most developer jobs at international companies require at least a B2 level.
| CEFR Level | What you can do | Developer context |
|---|---|---|
| A1-A2 | Basic phrases and simple sentences | You can read simple error messages. Standups are very difficult. |
| B1 | Most everyday work situations | You can follow meetings and write basic PR descriptions. |
| B2 | Complex topics, fluent interaction | You can lead discussions and explain your architecture clearly. |
| C1 | Advanced professional texts | You can write documentation and mentor others in English. |
| C2 | Native-level fluency | Almost no developer needs this for work purposes. |
Understand the CEFR scale for developers
Which level you need for remote work, FAANG, and international teams
Understand the CEFR scale for developers →Take the CEFR levels guide
What A1 to C2 means and how each level is tested
Take the CEFR levels guide →Grammar You Actually Need as a Developer
La gramática que realmente necesitas
You do not need to master all of English grammar. Developers use a specific subset of verb tenses and structures in their daily work. If you focus on these, you will cover 90% of what you need.
| Tense | When to use it | Example |
|---|---|---|
| Present simple | Describing how things work | "This function returns the user ID from the token." |
| Present continuous | Reporting current work (standups) | "I am working on the payment integration." |
| Present perfect | Reporting completed work with recent relevance | "I have merged the authentication PR." |
| Past simple | Reporting what you did | "I finished the code review yesterday." |
| Future simple / going to | Announcing upcoming work | "I am going to start the refactor tomorrow." |
| Conditional (would) | Making suggestions politely | "I would extract this into a separate function." |
Related Articles
- Technical English for Programmers: Error Messages, API Docs, Code Comments, and Jargon
- Standup English Survival Guide: What to Say and How to Handle Moments When You Do Not Understand
- 50 English Phrases for Your Daily Standup
- How to Talk to Your Manager in English in 1-on-1s
- Code Review Comments in English
- Coding Interview Questions Every Developer Should Know
- The 10 Most Common Behavioral Interview Questions in English
- CEFR for Developers: Which English Level Do You Need?
- English Verb Tenses for Developers
- Professional Emails for Developers
Ready to practice your English at work?
Lingua-e has interactive exercises built around real developer conversations: standups, code reviews, retrospectives, and more. Practice until it comes naturally.
Try Lingua-e for free
Written by
Roxana LafuenteLingua-e's founder
Roxana Lafuente is a software engineer with 8+ years of experience. At the beginning of her career, even though she had already passed the First Certificate in English, she still froze every time she had to speak up in the daily standup. That was a gap nobody was fixing. After 2,000+ standups, she figured out what actually builds fluency: practice that looks like your real work. She built Lingua-e so other developers wouldn't have to take the long road to feel confident working in an international development environment.