diff --git a/redfish-core/include/event_service_manager.hpp b/redfish-core/include/event_service_manager.hpp
index 801a7ad..6362112 100644
--- a/redfish-core/include/event_service_manager.hpp
+++ b/redfish-core/include/event_service_manager.hpp
@@ -311,9 +311,9 @@
 
         if ((i + minTokenSize) < result.size())
         {
-            std::string& seperator = result[i + minTokenSize];
+            std::string& separator = result[i + minTokenSize];
             // SSE supports only "or" and "and" in query params.
-            if ((seperator != "or") && (seperator != "and"))
+            if ((separator != "or") && (separator != "and"))
             {
                 BMCWEB_LOG_ERROR
                     << "Invalid group operator in SSE query parameters";
diff --git a/redfish-core/include/utils/fw_utils.hpp b/redfish-core/include/utils/fw_utils.hpp
index 0fd02c7..9aa5674 100644
--- a/redfish-core/include/utils/fw_utils.hpp
+++ b/redfish-core/include/utils/fw_utils.hpp
@@ -308,7 +308,7 @@
  * @brief Updates programmable status of input swId into json response
  *
  * This function checks whether firmware inventory component
- * can be programable or not and fill's the "Updateable"
+ * can be programmable or not and fill's the "Updateable"
  * Property.
  *
  * @param[i,o] asyncResp  Async response object
diff --git a/redfish-core/lib/certificate_service.hpp b/redfish-core/lib/certificate_service.hpp
index 4831617..7a94935 100644
--- a/redfish-core/lib/certificate_service.hpp
+++ b/redfish-core/lib/certificate_service.hpp
@@ -56,7 +56,7 @@
         Node(app, "/redfish/v1/CertificateService/")
     {
         // TODO: Issue#61 No entries are available for Certificate
-        // sevice at https://www.dmtf.org/standards/redfish
+        // service at https://www.dmtf.org/standards/redfish
         // "redfish standard registries". Need to modify after DMTF
         // publish Privilege details for certificate service
         entityPrivileges = {
@@ -500,7 +500,7 @@
 }; // CertificateActionGenerateCSR
 
 /**
- * @brief Parse and update Certficate Issue/Subject property
+ * @brief Parse and update Certificate Issue/Subject property
  *
  * @param[in] asyncResp Shared pointer to the response message
  * @param[in] str  Issuer/Subject value in key=value pairs
diff --git a/redfish-core/lib/chassis.hpp b/redfish-core/lib/chassis.hpp
index d1119cd..4a18028 100644
--- a/redfish-core/lib/chassis.hpp
+++ b/redfish-core/lib/chassis.hpp
@@ -96,7 +96,7 @@
                                   const std::variant<std::string>& value) {
             if (ec)
             {
-                // do not add err msg in redfish response, becaues this is not
+                // do not add err msg in redfish response, because this is not
                 //     mandatory property
                 BMCWEB_LOG_ERROR << "DBUS response error " << ec << "\n";
                 return;
@@ -131,7 +131,7 @@
                 subtree) {
             if (ec)
             {
-                // do not add err msg in redfish response, becaues this is not
+                // do not add err msg in redfish response, because this is not
                 //     mandatory property
                 BMCWEB_LOG_ERROR << "DBUS error: no matched iface " << ec
                                  << "\n";
diff --git a/redfish-core/lib/ethernet.hpp b/redfish-core/lib/ethernet.hpp
index a76b01b..b1a9f69 100644
--- a/redfish-core/lib/ethernet.hpp
+++ b/redfish-core/lib/ethernet.hpp
@@ -880,7 +880,7 @@
         }
     };
     // Passing null for gateway, as per redfish spec IPv6StaticAddresses object
-    // does not have assosiated gateway property
+    // does not have associated gateway property
     crow::connections::systemBus->async_method_call(
         std::move(createIpHandler), "xyz.openbmc_project.Network",
         "/xyz/openbmc_project/network/" + ifaceId,
@@ -936,7 +936,7 @@
             }
 
             extractIPV6Data(ethiface_id, resp, ipv6Data);
-            // Finally make a callback with usefull data
+            // Finally make a callback with useful data
             callback(true, ethData, ipv4Data, ipv6Data);
         },
         "xyz.openbmc_project.Network", "/xyz/openbmc_project/network",
@@ -978,7 +978,7 @@
                     if (interface.first ==
                         "xyz.openbmc_project.Network.EthernetInterface")
                     {
-                        // Cut out everyting until last "/", ...
+                        // Cut out everything until last "/", ...
                         const std::string& iface_id = objpath.first.str;
                         std::size_t last_pos = iface_id.rfind("/");
                         if (last_pos != std::string::npos)
diff --git a/redfish-core/lib/event_service.hpp b/redfish-core/lib/event_service.hpp
index da537bf..b27c6e0 100644
--- a/redfish-core/lib/event_service.hpp
+++ b/redfish-core/lib/event_service.hpp
@@ -246,7 +246,7 @@
         // Format: <protocol>://<host>:<port>/<uri>
         // protocol: http/https
         // host: Exclude ' ', ':', '#', '?'
-        // port: Empty or numeric value with ':' seperator.
+        // port: Empty or numeric value with ':' separator.
         // uri: Start with '/' and Exclude '#', ' '
         //      Can include query params(ex: '/event?test=1')
         // TODO: Need to validate hostname extensively(as per rfc)
diff --git a/redfish-core/lib/log_services.hpp b/redfish-core/lib/log_services.hpp
index 52a51a6..baef92f 100644
--- a/redfish-core/lib/log_services.hpp
+++ b/redfish-core/lib/log_services.hpp
@@ -2729,7 +2729,7 @@
             continue;
         }
 
-        // skip if a sepcific codeIndex is specified and does not match the
+        // skip if a specific codeIndex is specified and does not match the
         // currentIndex
         if ((codeIndex > 0) && (currentCodeIndex != codeIndex))
         {
diff --git a/redfish-core/lib/managers.hpp b/redfish-core/lib/managers.hpp
index 2ff65bf..2056d10 100644
--- a/redfish-core/lib/managers.hpp
+++ b/redfish-core/lib/managers.hpp
@@ -1497,7 +1497,7 @@
 
                 if (createNewObject && it.value() == nullptr)
                 {
-                    // can't delete a non-existant object
+                    // can't delete a non-existent object
                     messages::invalidObject(response->res, name);
                     continue;
                 }
diff --git a/redfish-core/lib/systems.hpp b/redfish-core/lib/systems.hpp
index e9e5280..422b2f7 100644
--- a/redfish-core/lib/systems.hpp
+++ b/redfish-core/lib/systems.hpp
@@ -49,7 +49,7 @@
     }
     BMCWEB_LOG_DEBUG << "Dimm Functional: " << *isDimmFunctional;
 
-    // Set it as Enabled if atleast one DIMM is functional
+    // Set it as Enabled if at least one DIMM is functional
     // Update STATE only if previous State was DISABLED and current Dimm is
     // ENABLED.
     nlohmann::json& prevMemSummary =
@@ -122,7 +122,7 @@
     nlohmann::json& prevProcState =
         aResp->res.jsonValue["ProcessorSummary"]["Status"]["State"];
 
-    // Set it as Enabled if atleast one CPU is functional
+    // Set it as Enabled if at least one CPU is functional
     // Update STATE only if previous State was Non_Functional and current CPU is
     // Functional.
     if (prevProcState == "Disabled")
diff --git a/redfish-core/lib/task.hpp b/redfish-core/lib/task.hpp
index fe1468f..fb2d0be 100644
--- a/redfish-core/lib/task.hpp
+++ b/redfish-core/lib/task.hpp
@@ -174,7 +174,7 @@
             [self = shared_from_this()](boost::system::error_code ec) {
                 if (ec == boost::asio::error::operation_aborted)
                 {
-                    return; // completed succesfully
+                    return; // completed successfully
                 }
                 if (!ec)
                 {
diff --git a/redfish-core/lib/update_service.hpp b/redfish-core/lib/update_service.hpp
index 8dae2fb..0b151d9 100644
--- a/redfish-core/lib/update_service.hpp
+++ b/redfish-core/lib/update_service.hpp
@@ -400,8 +400,8 @@
         BMCWEB_LOG_DEBUG << "Enter UpdateService.SimpleUpdate doPost";
 
         // User can pass in both TransferProtocol and ImageURI parameters or
-        // they can pass in just the ImageURI with the transfer protocl embedded
-        // within it.
+        // they can pass in just the ImageURI with the transfer protocol
+        // embedded within it.
         // 1) TransferProtocol:TFTP ImageURI:1.1.1.1/myfile.bin
         // 2) ImageURI:tftp://1.1.1.1/myfile.bin
 
diff --git a/redfish-core/lib/virtual_media.hpp b/redfish-core/lib/virtual_media.hpp
index 552e255..0b5eb1a 100644
--- a/redfish-core/lib/virtual_media.hpp
+++ b/redfish-core/lib/virtual_media.hpp
@@ -559,7 +559,7 @@
                                 std::optional<bool> writeProtected = true;
                                 std::optional<bool> inserted;
 
-                                // Read obligatory paramters (url of image)
+                                // Read obligatory parameters (url of image)
                                 if (!json_util::readJson(
                                         req, aResp->res, "Image", imageUrl,
                                         "WriteProtected", writeProtected,
