diff --git a/src/core/ext/filters/max_age/max_age_filter.cc b/src/core/ext/filters/max_age/max_age_filter.cc
index 431472609eb378db21814931084a42b683856d2f..ec7f4e254aaa248466e2481a698bb4749ed40c1d 100644
--- a/src/core/ext/filters/max_age/max_age_filter.cc
+++ b/src/core/ext/filters/max_age/max_age_filter.cc
@@ -106,7 +106,7 @@ struct channel_data {
      +--------------------------------+----------------+---------+
 
      MAX_IDLE_STATE_INIT: The initial and final state of 'idle_state'. The
-     channel has 1 or 1+ active calls, and the the timer is not set. Note that
+     channel has 1 or 1+ active calls, and the timer is not set. Note that
      we may put a virtual call to hold this state at channel initialization or
      shutdown, so that the channel won't enter other states.
 
diff --git a/summerofcode/2018/naresh.md b/summerofcode/2018/naresh.md
index 0d196bd6001e1add01757a280c4a527576d4734c..d471bff5459bde3cdb51bcc0e8d71a7d70cd61b2 100644
--- a/summerofcode/2018/naresh.md
+++ b/summerofcode/2018/naresh.md
@@ -128,7 +128,7 @@ bazel test --spawn_strategy=standalone --genrule_strategy=standalone //src/pytho
 
 - Use `bazel build` with a `-s` flag to see the logs being printed out to
     standard output while building. 
-- Similarly, use `bazel test` with a `--test_output=streamed` to see the the
+- Similarly, use `bazel test` with a `--test_output=streamed` to see the
     test logs while testing. Something to know while using this flag is that all
     tests will be run locally, without sharding, one at a time.
 
diff --git a/test/cpp/end2end/channelz_service_test.cc b/test/cpp/end2end/channelz_service_test.cc
index 425334d972e06e6caad74a10b6035f1dffd5de13..e7719b5c14e92493f631d3ea1d279e3dae3b0e88 100644
--- a/test/cpp/end2end/channelz_service_test.cc
+++ b/test/cpp/end2end/channelz_service_test.cc
@@ -708,7 +708,7 @@ TEST_F(ChannelzServerTest, GetServerSocketsPaginationTest) {
                                          get_server_sockets_request,
                                          &get_server_sockets_response);
     EXPECT_TRUE(s.ok()) << "s.error_message() = " << s.error_message();
-    // We add one to account the the channelz stub that will end up creating
+    // We add one to account the channelz stub that will end up creating
     // a serversocket.
     EXPECT_EQ(get_server_sockets_response.socket_ref_size(),
               kNumServerSocketsCreated + 1);
diff --git a/test/cpp/util/channel_trace_proto_helper.cc b/test/cpp/util/channel_trace_proto_helper.cc
index ff9d88738581e9e5aae7bf677dc4537eda13dae1..2499edf65409ada7714134952561c20320d78f37 100644
--- a/test/cpp/util/channel_trace_proto_helper.cc
+++ b/test/cpp/util/channel_trace_proto_helper.cc
@@ -56,7 +56,7 @@ void VaidateProtoJsonTranslation(char* json_c_str) {
   EXPECT_EQ(google::protobuf::util::MessageToJsonString(msg, &proto_json_str,
                                                         print_options),
             google::protobuf::util::Status::OK);
-  // uncomment these to compare the the json strings.
+  // uncomment these to compare the json strings.
   // gpr_log(GPR_ERROR, "tracer json: %s", json_str.c_str());
   // gpr_log(GPR_ERROR, "proto  json: %s", proto_json_str.c_str());
   EXPECT_EQ(json_str, proto_json_str);