diff --git a/dev/bots/README.md b/dev/bots/README.md
index b5eba04..dca908b 100644
--- a/dev/bots/README.md
+++ b/dev/bots/README.md
@@ -4,9 +4,9 @@
 
 The results of such builds are viewable at:
 * https://cirrus-ci.com/github/flutter/flutter/master
-  - Testing done on PRs and submitted changes on GitHub.
+  - Testing is done on PRs and submitted changes on GitHub.
 * https://ci.chromium.org/p/flutter/
-  - Additional testing and processing done after changes are submitted.
+  - Additional testing and processing are done after changes are submitted.
 
 The LUCI infra requires permissions to retrigger or schedule builds. Contact
 @kf6gpe or another Google member of the Flutter team if you need to do that.
@@ -29,7 +29,7 @@
 another Google member of the Flutter team if you suspect changes are needed
 there. Both of these technologies are highly specific to the [LUCI](https://github.com/luci)
 project, which is the successor to Chromium's infra. We're just borrowing some
-of their infrastructure.
+of their infrastructures.
 
 ### Prerequisites
 
@@ -39,17 +39,17 @@
 - Python package installer: `sudo apt-get install python-pip`
 - Python coverage package (only needed for `training_simulation`): `sudo pip install coverage`
 
-To run prepare_package.dart locally:
+To run `prepare_package.dart` locally:
 
-- Make sure the depot_tools is in your PATH. If you're on Windows, you also need
-  an environment variable called DEPOT_TOOLS with the path to depot_tools as value.
+- Make sure the `depot_tools` is in your `PATH`. If you're on Windows, you also need
+  an environment variable called `DEPOT_TOOLS` with the path to `depot_tools` as value.
 - Run `gsutil.py config` (or `python %DEPOT_TOOLS%\gsutil.py` on Windows) to
   authenticate with your auth token.
 - Create a local temp directory. `cd` into it.
 - Run `dart [path to your normal Flutter repo]/dev/bots/prepare_package.dart
   --temp_dir=. --revision=[revision to package] --branch=[branch to deploy to]
   --publish`.
-- If you're running into gsutil permission issues, check with @Hixie to make sure
+- If you're running into `gsutil` permission issues, check with @Hixie to make sure
   you have the right push permissions.
 
 ### Getting the code
@@ -81,22 +81,22 @@
 
 Recipes are just Python with some limitations on what can be imported. They are
 [documented](https://github.com/luci/recipes-py/blob/master/doc/user_guide.md)
-by the [luci/recipes-py github project](https://github.com/luci/recipes-py).
+by the [luci/recipes-py GitHub project](https://github.com/luci/recipes-py).
 
 The typical cycle for editing a recipe is:
 
-1. Checkout the recipes project using `git clone https://flutter.googlesource.com/recipes`.
+1. Check out the recipes project using `git clone https://flutter.googlesource.com/recipes`.
 2. Make your edits (probably to files in
    `//recipes/recipes`).
 3. Update the tests. Run `recipes.py test train` to update
-   existing expected output to match the new output. Verify completely new test
+   the existing expected output to match the new output. Verify completely new test
    cases by altering the `GenTests` method of the recipe. The recipe is required
    to have 100% test coverage.
 4. Run `led get-builder 'luci.flutter.prod:BUILDER_NAME' | led edit -p 'revision="GIT_HASH"' | led edit-recipe-bundle | led launch`, where `BUILDER_NAME` is the builder name (e.g. `Linux Engine`), and
    `GIT_HASH` is the hash to build (which is important for the engine but not
    for the framework).
 5. To submit a CL, you need a local branch first (`git checkout -b [some branch name]`).
-6. Upload the patch (`git commit`, `git cl upload`) and send it to someone in
+6. Upload the patch (`git commit`, `git cl upload`), and send it to someone in
    the `OWNERS` file for review.
 
 ### The infra config repository
@@ -112,7 +112,7 @@
 
 ### Future Directions
 
-We would like to host our own recipes instead of storing them in
+We would like to host our recipes instead of storing them in
 [build](https://chromium.googlesource.com/chromium/tools/build.git/+/master/scripts/slave/recipes/flutter).
 Support for [cross-repository
 recipes](https://github.com/luci/recipes-py/blob/master/doc/cross_repo.md) is
@@ -123,7 +123,7 @@
 ### Android Tools
 
 The Android SDK and NDK used by Flutter's Chrome infra bots are stored in Google
-Cloud. During the build a bot runs the `download_android_tools.py` script that
+Cloud. During the build, a bot runs the `download_android_tools.py` script that
 downloads the required version of the Android SDK into `dev/bots/android_tools`.
 
 To check which components are currently installed, download the current SDK
@@ -216,8 +216,8 @@
 $ dart ./unpublish_package.dart --confirm --temp_dir=/tmp/foo --revision d444a455de87a2e40b7f576dc12ffd9ab82fd491
 ```
 
-and it will actually perform the actions. You will of course need to have access
-to the cloud storage server and have gsutil installed in order to perform this
+and it will perform the actions. You will of course need to have access
+to the cloud storage server and have `gsutil` installed to perform this
 operation. Only runs on Linux or macOS systems.
 
 See `dart ./unpublish_package.dart --help` for more details.
