By Doing and Without Doing
LESSON
Technical English: Gerunds and Infinitives in Engineering Work
By Doing and Without Doing
By the end of this lesson, you will be able to...
Explain a technical method with
by + -ing.State which action or side effect a change avoids with
without + -ing.Separate method, purpose, and avoided action in a short implementation note.
Idea in one sentence:
By doinganswers “How did we achieve this?”, whilewithout doinganswers “What did we avoid or leave unchanged while achieving it?”
Core Insight
A request service has high read latency. The team wants faster responses, but it does not want to change the public API or restart every worker during the incident. A precise update says:
We reduced latency by caching repeated lookups without changing the API contract.
The sentence contains two useful boundaries:
by caching repeated lookupsexplains the method;without changing the API contractexplains what the team achieved without doing.
The action form is -ing after both prepositions. Caching names the method, and changing names the avoided action. The sentence is more informative than:
We reduced latency.
It tells the reader how the result was produced and which constraint the team preserved.
The Small Situation
The service receives repeated requests for the same configuration. A direct database lookup happens for every request. The team considers three approaches:
- cache the configuration for a short time;
- rewrite the request API;
- restart all workers during the traffic peak.
The implementation note should explain the chosen method and the avoided disruption:
We reduced repeated database reads by caching configuration for thirty seconds.
We improved the read path without changing the request API.
The first sentence answers how the team reduced the work. The second says what remained stable. These patterns are useful in a pull request because a reviewer often needs to know both the mechanism and the boundary of the change.
The naive translations are:
We reduced latency by cache the result.
We improved the read path without to change the API.
After by and without, the action works as a noun-like activity, so use caching and changing:
We reduced latency by caching the result.
We improved the read path without changing the API.
The Moving Parts
By doing: name the method
Use by + -ing when you want to explain the way an outcome was produced:
We reduced latency by caching the result.
The worker limits duplicate jobs by checking the request ID first.
The team lowered memory use by batching the migration.
The phrase answers a “how” question:
How did we reduce latency?
By caching the result.
The subject of the -ing activity is normally understood from the main clause. In We reduced latency by caching the result, the team performed the caching. The method phrase does not primarily state the goal; it states the mechanism that connected the action to the outcome.
Without doing: name an avoided action or absent side effect
Use without + -ing when the main action happened and another action did not happen alongside it:
We improved the read path without changing the API.
The team migrated the table without stopping the service.
The worker handled the backlog without creating duplicate jobs.
The phrase answers a “what did we avoid or leave unchanged?” question:
What did we avoid while improving the read path?
Changing the API.
The avoided action can be a risk, a disruption, or simply a boundary that matters to the reader. Without changing the API does not say that changing it would have been impossible. It says that the current result was achieved while the API remained unchanged.
Both patterns can appear in one sentence:
We reduced database load by caching repeated lookups without changing the API contract.
The method and the constraint are different pieces of information. Do not replace one with the other.
The Mechanism Step by Step
Think of the sentence as a small trace:
problem -> method -> outcome -> preserved boundary
Step 1: state the problem
Start with the visible symptom:
Repeated requests create too many database reads.
This identifies the pressure, but not the implementation.
Step 2: choose the method
The team decides to reuse recent configuration values:
We reduced database reads by caching configuration for thirty seconds.
By caching identifies the mechanism. It does not mean “at some time.” It means “using this method.”
Step 3: state the result or decision
The measured outcome may be:
The cache reduced p95 read latency from 210 ms to 140 ms.
Now the reader has evidence that the method changed the system.
Step 4: state what remained unchanged
The team preserved the client contract:
We achieved the improvement without changing the request API.
The result is now bounded. The team did not claim that no part of the system changed; it made one specific boundary visible.
Step 5: connect method and purpose when needed
Purpose and method answer different questions:
We added a cache to reduce latency by avoiding repeated database reads without changing the API contract.
To reduce latency gives the purpose. By avoiding repeated database reads gives the method. Without changing the API contract gives the preserved boundary. A shorter version may be clearer:
We reduced latency by caching repeated lookups without changing the API contract.
Choose the version that gives the reader enough information without hiding the main action.
A Worked Performance Trace
Let us trace one change from symptom to implementation note. The input is a slow request path with a stable API contract.
| Stage | System state | Natural sentence | What the phrase shows |
|---|---|---|---|
| Input | Every request reads the same configuration from the database. | The request path performs repeated configuration reads. |
The pressure or symptom. |
| Transition | The team adds a short-lived cache. | We reduced database reads by caching configuration for thirty seconds. |
The method. |
| Intermediate state | Clients continue using the same endpoint. | We improved the read path without changing the request API. |
The preserved boundary. |
| Output | Load testing measures lower latency. | The cache reduced p95 latency from 210 ms to 140 ms. |
Evidence of the result. |
| Naive failure contrast | A literal translation uses infinitives after prepositions. | We reduced latency by cache the result without to change the API. |
Repair both activities to caching and changing. |
The full implementation note can say:
We reduced database reads by caching configuration for thirty seconds. We improved the read path without changing the request API, and staging p95 latency fell from 210 ms to 140 ms.
The method is not the same as the result. Caching is what the team did; lower p95 latency is what the measurement showed. The preserved API is a constraint, not a promise that every side effect disappeared.
What This Changes in Engineering Communication
These patterns make implementation notes easier to review. Compare:
We improved the worker.
with:
We reduced duplicate jobs by checking the request ID before retrying.
We improved the worker without changing the retry API.
The second version answers two reviewer questions immediately: how did the change work, and what interface did it preserve?
The method phrase can also explain a safe operational action:
We expanded the canary by increasing traffic in small steps.
We expanded the canary without exposing all users at once.
The first sentence describes the rollout method. The second describes the avoided exposure. Together they connect the implementation to the release boundary from lesson 013.
Do not use by doing merely to add detail. The method should explain a meaningful mechanism:
We fixed the alert by changing something.
This is grammatically possible but technically weak. Name the change:
We reduced alert noise by grouping related events before paging the on-call engineer.
Common Confusions
Confusion: by + base verb
After by, use a noun or -ing activity:
We reduced cost by batching requests.
Do not write by batch requests in this method pattern. If you want a direct purpose, change the marker:
We batched requests to reduce cost.
The first explains how. The second explains why.
Confusion: without + to + verb
After without, use a noun or -ing activity:
We deployed without restarting the service.
Do not write without to restart the service. If the action is a plan, use without planning to restart only when that meaning is intended; do not use it as a replacement for the direct activity pattern.
Confusion: by always introduces a method
By has other meanings:
Finish the migration by Friday.
The request was sent by the worker.
We reduced latency by caching the result.
The first gives a deadline, the second identifies an agent, and the third gives a method. Look at what follows by: a time, an agent, or an -ing activity.
Confusion: without doing means the main action failed
It does not. The main action can succeed while the avoided action does not occur:
We migrated the table without stopping the service.
The sentence says the service stayed running during the migration. Add evidence if the operational result matters.
Check Your Understanding
Check: The team made requests faster by reusing recent responses. Which sentence names the method?
Think first, then reveal.
Answer: The team reduced latency by caching recent responses. By + -ing explains how the outcome was produced.
Check: The team improved the service while keeping the public endpoint unchanged. Which sentence expresses the preserved boundary?
Think first, then reveal.
Answer: The team improved the service without changing the public endpoint. Without + -ing names the action that did not happen.
Check: Which sentence expresses purpose rather than method?
Think first, then reveal.
Answer: We added a cache to reduce latency. To reduce latency gives the goal. We added a cache by changing the request path would give a method.
Check: The team wants to say that a migration happened while the service stayed available. Which sentence is precise?
Think first, then reveal.
Answer: We migrated the table without stopping the service. The sentence identifies the avoided disruption without claiming that the migration had no other risks.
Practice
Rewrite each sentence for the meaning in parentheses.
- The team lowered memory use using smaller batches. (method)
- The team deployed the parser while keeping the old API unchanged. (avoided action)
- The team changed the worker because it wanted to reduce duplicate jobs. (purpose and method in one sentence)
- The team achieved the result using a cache, but it did not restart the workers. (method and preserved boundary)
Model answers:
The team lowered memory use by using smaller batches.The team deployed the parser without changing the old API.The team changed the worker to reduce duplicate jobs by checking the request ID before retrying.The team reduced read latency by caching results without restarting the workers.
For the third answer, the purpose is to reduce duplicate jobs and the method is by checking the request ID. If that sentence feels crowded, split it:
The team changed the worker to reduce duplicate jobs. It did this by checking the request ID before retrying.
Now write a three-sentence implementation note for a service, worker, queue, cache, or migration. Include:
- one
by + -ingphrase that names the method; - one
without + -ingphrase that names a preserved boundary; - one measurement or signal that shows what happened.
Use this rubric:
| Question | Yes or revise |
|---|---|
Does by doing answer how the result was achieved? |
|
Does without doing identify a real avoided action or side effect? |
|
| Is the purpose separate from the method? | |
| Is the result supported by a signal, measurement, or observed behavior? | |
| Is the technical object visible? |
Daily Practice Lines
Repeat these during the day. The third line revisits the release-threshold pattern from lesson 013.
We reduced latency by caching the result.We changed the worker without changing the API.The canary is stable enough to expand.
Change one technical object when the lines feel easy: result, worker, API, queue, migration, or alert. Keep by and without followed by a noun or -ing activity.
Cost, Limits, and Signals
These patterns buy mechanism-level clarity. They let a reviewer see how a change worked and which disruption the team avoided. The trade-off is that a detailed method can make a sentence longer, and without doing can sound like a broad safety claim if the writer does not name the boundary precisely.
The grammar does not prove that the method caused the result. Caching may correlate with lower latency while another change produced the improvement. It also does not prove that the avoided action was the only risk:
We reduced latency by caching results without changing the API, but memory use increased by 12%.
That sentence is stronger because it keeps the method, preserved contract, and new cost visible. Use logs, measurements, and review signals to support the technical claim.
Resources
- [ARTICLE] Cambridge Dictionary: By - Compare
by + -ingfor method with other meanings ofby, such as deadlines and agents. - [ARTICLE] Cambridge Dictionary: Without - Review
without + nounandwithout + -ingwhen an action or condition is absent. - [ARTICLE] Microsoft Writing Style Guide - Make implementation methods and preserved boundaries concrete so reviewers can inspect the change and its limits.
Key Takeaways
- Use
by + -ingto explain method:We reduced latency by caching the result. - Use
without + -ingto name an avoided action or preserved boundary:We changed the worker without changing the API. To + verbusually explains purpose;by + -ingexplains method.- After
byandwithoutin these patterns, use a noun or-ing, not the base verb orto + verb. - A clear method is not proof of causation or safety. Pair it with evidence and name the new costs.
← Back to Technical English: Gerunds and Infinitives in Engineering Work