diff --git a/.clang-tidy b/.clang-tidy
new file mode 100644
index 0000000..1165a4e
--- /dev/null
+++ b/.clang-tidy
@@ -0,0 +1,245 @@
+Checks: ' -*,
+bugprone-argument-comment,
+bugprone-assert-side-effect,
+bugprone-bad-signal-to-kill-thread,
+bugprone-bool-pointer-implicit-conversion,
+bugprone-branch-clone,
+bugprone-copy-constructor-init,
+bugprone-dangling-handle,
+bugprone-dynamic-static-initializers,
+bugprone-fold-init-type,
+bugprone-forward-declaration-namespace,
+bugprone-forwarding-reference-overload,
+bugprone-implicit-widening-of-multiplication-result,
+bugprone-inaccurate-erase,
+bugprone-incorrect-roundings,
+bugprone-infinite-loop,
+bugprone-integer-division,
+bugprone-lambda-function-name,
+bugprone-macro-parentheses,
+bugprone-macro-repeated-side-effects,
+bugprone-misplaced-operator-in-strlen-in-alloc,
+bugprone-misplaced-pointer-arithmetic-in-alloc,
+bugprone-misplaced-widening-cast,
+bugprone-move-forwarding-reference,
+bugprone-multiple-statement-macro,
+bugprone-narrowing-conversions,
+bugprone-no-escape,
+bugprone-not-null-terminated-result,
+bugprone-parent-virtual-call,
+bugprone-posix-return,
+bugprone-redundant-branch-condition,
+bugprone-signal-handler,
+bugprone-signed-char-misuse,
+bugprone-sizeof-container,
+bugprone-sizeof-expression,
+bugprone-spuriously-wake-up-functions,
+bugprone-string-constructor,
+bugprone-string-integer-assignment,
+bugprone-string-literal-with-embedded-nul,
+bugprone-suspicious-enum-usage,
+bugprone-suspicious-include,
+bugprone-suspicious-memset-usage,
+bugprone-suspicious-missing-comma,
+bugprone-suspicious-semicolon,
+bugprone-suspicious-string-compare,
+bugprone-swapped-arguments,
+bugprone-terminating-continue,
+bugprone-throw-keyword-missing,
+bugprone-too-small-loop-variable,
+bugprone-undefined-memory-manipulation,
+bugprone-undelegated-constructor,
+bugprone-unhandled-exception-at-new,
+bugprone-unhandled-self-assignment,
+bugprone-unused-raii,
+bugprone-unused-return-value,
+bugprone-use-after-move,
+bugprone-virtual-near-miss,
+cert-con36-c,
+cert-con54-cpp,
+cert-dcl03-c,
+cert-dcl16-c,
+cert-dcl21-cpp,
+cert-dcl50-cpp,
+cert-dcl54-cpp,
+cert-dcl58-cpp,
+cert-dcl59-cpp,
+cert-env33-c,
+cert-err09-cpp,
+cert-err34-c,
+cert-err52-cpp,
+cert-err60-cpp,
+cert-err61-cpp,
+cert-fio38-c,
+cert-flp30-c,
+cert-mem57-cpp,
+cert-msc30-c,
+cert-msc32-c,
+cert-msc50-cpp,
+cert-msc51-cpp,
+cert-oop11-cpp,
+cert-oop54-cpp,
+cert-oop57-cpp,
+cert-oop58-cpp,
+cert-pos44-c,
+cert-pos47-c,
+cert-sig30-c,
+cert-str34-c,
+clang-analyzer-apiModeling.StdCLibraryFunctions,
+clang-analyzer-apiModeling.TrustNonnull,
+clang-analyzer-apiModeling.google.GTest,
+clang-analyzer-apiModeling.llvm.CastValue,
+clang-analyzer-apiModeling.llvm.ReturnValue,
+clang-analyzer-core.CallAndMessage,
+clang-analyzer-core.CallAndMessageModeling,
+clang-analyzer-core.DivideZero,
+clang-analyzer-core.DynamicTypePropagation,
+clang-analyzer-core.NonNullParamChecker,
+clang-analyzer-core.NonnilStringConstants,
+clang-analyzer-core.NullDereference,
+clang-analyzer-core.StackAddrEscapeBase,
+clang-analyzer-core.StackAddressEscape,
+clang-analyzer-core.UndefinedBinaryOperatorResult,
+clang-analyzer-core.VLASize,
+clang-analyzer-core.builtin.BuiltinFunctions,
+clang-analyzer-core.builtin.NoReturnFunctions,
+clang-analyzer-core.uninitialized.ArraySubscript,
+clang-analyzer-core.uninitialized.Assign,
+clang-analyzer-core.uninitialized.Branch,
+clang-analyzer-core.uninitialized.CapturedBlockVariable,
+clang-analyzer-core.uninitialized.UndefReturn,
+clang-analyzer-cplusplus.InnerPointer,
+clang-analyzer-cplusplus.Move,
+clang-analyzer-cplusplus.NewDelete,
+clang-analyzer-cplusplus.NewDeleteLeaks,
+clang-analyzer-cplusplus.PlacementNew,
+clang-analyzer-cplusplus.PureVirtualCall,
+clang-analyzer-cplusplus.SelfAssignment,
+clang-analyzer-cplusplus.SmartPtrModeling,
+clang-analyzer-cplusplus.VirtualCallModeling,
+clang-analyzer-deadcode.DeadStores,
+clang-analyzer-fuchsia.HandleChecker,
+clang-analyzer-nullability.NullPassedToNonnull,
+clang-analyzer-nullability.NullReturnedFromNonnull,
+clang-analyzer-nullability.NullabilityBase,
+clang-analyzer-nullability.NullableDereferenced,
+clang-analyzer-nullability.NullablePassedToNonnull,
+clang-analyzer-nullability.NullableReturnedFromNonnull,
+clang-analyzer-optin.cplusplus.UninitializedObject,
+clang-analyzer-optin.cplusplus.VirtualCall,
+clang-analyzer-optin.mpi.MPI-Checker,
+clang-analyzer-optin.osx.OSObjectCStyleCast,
+clang-analyzer-optin.osx.cocoa.localizability.EmptyLocalizationContextChecker,
+clang-analyzer-optin.osx.cocoa.localizability.NonLocalizedStringChecker,
+clang-analyzer-optin.performance.GCDAntipattern,
+clang-analyzer-optin.performance.Padding,
+clang-analyzer-optin.portability.UnixAPI,
+clang-analyzer-osx.API,
+clang-analyzer-osx.MIG,
+clang-analyzer-osx.NSOrCFErrorDerefChecker,
+clang-analyzer-osx.NumberObjectConversion,
+clang-analyzer-osx.OSObjectRetainCount,
+clang-analyzer-osx.ObjCProperty,
+clang-analyzer-osx.SecKeychainAPI,
+clang-analyzer-osx.cocoa.AtSync,
+clang-analyzer-osx.cocoa.AutoreleaseWrite,
+clang-analyzer-osx.cocoa.ClassRelease,
+clang-analyzer-osx.cocoa.Dealloc,
+clang-analyzer-osx.cocoa.IncompatibleMethodTypes,
+clang-analyzer-osx.cocoa.Loops,
+clang-analyzer-osx.cocoa.MissingSuperCall,
+clang-analyzer-osx.cocoa.NSAutoreleasePool,
+clang-analyzer-osx.cocoa.NSError,
+clang-analyzer-osx.cocoa.NilArg,
+clang-analyzer-osx.cocoa.NonNilReturnValue,
+clang-analyzer-osx.cocoa.ObjCGenerics,
+clang-analyzer-osx.cocoa.RetainCount,
+clang-analyzer-osx.cocoa.RetainCountBase,
+clang-analyzer-osx.cocoa.RunLoopAutoreleaseLeak,
+clang-analyzer-osx.cocoa.SelfInit,
+clang-analyzer-osx.cocoa.SuperDealloc,
+clang-analyzer-osx.cocoa.UnusedIvars,
+clang-analyzer-osx.cocoa.VariadicMethodTypes,
+clang-analyzer-osx.coreFoundation.CFError,
+clang-analyzer-osx.coreFoundation.CFNumber,
+clang-analyzer-osx.coreFoundation.CFRetainRelease,
+clang-analyzer-osx.coreFoundation.containers.OutOfBounds,
+clang-analyzer-osx.coreFoundation.containers.PointerSizedValues,
+clang-analyzer-security.FloatLoopCounter,
+clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling,
+clang-analyzer-security.insecureAPI.SecuritySyntaxChecker,
+clang-analyzer-security.insecureAPI.UncheckedReturn,
+clang-analyzer-security.insecureAPI.bcmp,
+clang-analyzer-security.insecureAPI.bcopy,
+clang-analyzer-security.insecureAPI.bzero,
+clang-analyzer-security.insecureAPI.decodeValueOfObjCType,
+clang-analyzer-security.insecureAPI.getpw,
+clang-analyzer-security.insecureAPI.gets,
+clang-analyzer-security.insecureAPI.mkstemp,
+clang-analyzer-security.insecureAPI.mktemp,
+clang-analyzer-security.insecureAPI.rand,
+clang-analyzer-security.insecureAPI.strcpy,
+clang-analyzer-security.insecureAPI.vfork,
+clang-analyzer-unix.API,
+clang-analyzer-unix.DynamicMemoryModeling,
+clang-analyzer-unix.Malloc,
+clang-analyzer-unix.MallocSizeof,
+clang-analyzer-unix.MismatchedDeallocator,
+clang-analyzer-unix.Vfork,
+clang-analyzer-unix.cstring.BadSizeArg,
+clang-analyzer-unix.cstring.CStringModeling,
+clang-analyzer-unix.cstring.NullArg,
+clang-analyzer-valist.CopyToSelf,
+clang-analyzer-valist.Uninitialized,
+clang-analyzer-valist.Unterminated,
+clang-analyzer-valist.ValistBase,
+clang-analyzer-webkit.NoUncountedMemberChecker,
+clang-analyzer-webkit.RefCntblBaseVirtualDtor,
+readability-avoid-const-params-in-decls,
+readability-braces-around-statements,
+readability-const-return-type,
+readability-container-size-empty,
+readability-convert-member-functions-to-static,
+readability-delete-null-pointer,
+readability-deleted-default,
+readability-else-after-return,
+readability-function-size,
+readability-identifier-naming,
+readability-implicit-bool-conversion,
+readability-inconsistent-declaration-parameter-name,
+readability-isolate-declaration,
+readability-make-member-function-const,
+readability-misleading-indentation,
+readability-misplaced-array-index,
+readability-named-parameter,
+readability-non-const-parameter,
+readability-qualified-auto,
+readability-redundant-access-specifiers,
+readability-redundant-control-flow,
+readability-redundant-declaration,
+readability-redundant-function-ptr-dereference,
+readability-redundant-member-init,
+readability-redundant-preprocessor,
+readability-redundant-smartptr-get,
+readability-redundant-string-cstr,
+readability-redundant-string-init,
+readability-simplify-boolean-expr,
+readability-simplify-subscript-expr,
+readability-static-accessed-through-instance,
+readability-static-definition-in-anonymous-namespace,
+readability-string-compare,
+readability-suspicious-call-argument,
+readability-uniqueptr-delete-release,
+readability-uppercase-literal-suffix'
+
+WarningsAsErrors: '*'
+HeaderFilterRegex: '.*'
+
+CheckOptions:
+  - { key: readability-identifier-naming.ClassCase,     value: CamelCase  }
+  - { key: readability-identifier-naming.VariableCase,  value: camelBack }
+  - { key: readability-identifier-naming.FunctionCase,  value: camelBack }
+  - { key: readability-identifier-naming.ParameterCase, value: camelBack }
+  - { key: readability-identifier-naming.NamespaceCase, value: lower_case }
+  - { key: readability-identifier-naming.StructCase,    value: CamelCase  }
+  - { key: readability-implicit-bool-conversion.AllowPointerConditions,  value: 1 }
diff --git a/bmc_epoch.cpp b/bmc_epoch.cpp
index aa05060..ad65777 100644
--- a/bmc_epoch.cpp
+++ b/bmc_epoch.cpp
@@ -26,10 +26,10 @@
 {
 namespace // anonymous
 {
-constexpr auto SYSTEMD_TIME_SERVICE = "org.freedesktop.timedate1";
-constexpr auto SYSTEMD_TIME_PATH = "/org/freedesktop/timedate1";
-constexpr auto SYSTEMD_TIME_INTERFACE = "org.freedesktop.timedate1";
-constexpr auto METHOD_SET_TIME = "SetTime";
+constexpr auto systemdTimeService = "org.freedesktop.timedate1";
+constexpr auto systemdTimePath = "/org/freedesktop/timedate1";
+constexpr auto systemdTimeInterface = "org.freedesktop.timedate1";
+constexpr auto methodSetTime = "SetTime";
 } // namespace
 
 PHOSPHOR_LOG2_USING;
@@ -109,7 +109,9 @@
     // We are not interested in the data here.
     // So read until there is no new data here in the FD
     while (read(fd, time.data(), time.max_size()) > 0)
+    {
         ;
+    }
 
     return 0;
 }
@@ -121,8 +123,8 @@
 
 bool BmcEpoch::setTime(const microseconds& usec)
 {
-    auto method = bus.new_method_call(SYSTEMD_TIME_SERVICE, SYSTEMD_TIME_PATH,
-                                      SYSTEMD_TIME_INTERFACE, METHOD_SET_TIME);
+    auto method = bus.new_method_call(systemdTimeService, systemdTimePath,
+                                      systemdTimeInterface, methodSetTime);
     method.append(static_cast<int64_t>(usec.count()),
                   false,  // relative
                   false); // user_interaction
@@ -140,7 +142,7 @@
     return true;
 }
 
-microseconds BmcEpoch::getTime() const
+microseconds BmcEpoch::getTime()
 {
     auto now = system_clock::now();
     return duration_cast<microseconds>(now.time_since_epoch());
diff --git a/bmc_epoch.hpp b/bmc_epoch.hpp
index 2c5d501..fd5e3f4 100644
--- a/bmc_epoch.hpp
+++ b/bmc_epoch.hpp
@@ -74,7 +74,7 @@
      *
      * @return Microseconds since UTC
      */
-    std::chrono::microseconds getTime() const;
+    static std::chrono::microseconds getTime();
 
   private:
     /** @brief The fd for time change event */
diff --git a/main.cpp b/main.cpp
index 82111b6..a773304 100644
--- a/main.cpp
+++ b/main.cpp
@@ -22,12 +22,12 @@
     bus.attach_event(sdEvent.get(), SD_EVENT_PRIORITY_NORMAL);
 
     // Add sdbusplus ObjectManager
-    sdbusplus::server::manager_t bmcEpochObjManager(bus, OBJPATH_BMC);
+    sdbusplus::server::manager_t bmcEpochObjManager(bus, objpathBmc);
 
     phosphor::time::Manager manager(bus);
-    phosphor::time::BmcEpoch bmc(bus, OBJPATH_BMC, manager);
+    phosphor::time::BmcEpoch bmc(bus, objpathBmc, manager);
 
-    bus.request_name(BUSNAME);
+    bus.request_name(busname);
 
     // Start event loop for all sd-bus events and timer event
     sd_event_loop(bus.get_event());
diff --git a/manager.cpp b/manager.cpp
index 169fb30..36285ff 100644
--- a/manager.cpp
+++ b/manager.cpp
@@ -11,10 +11,10 @@
 namespace // anonymous
 {
 
-constexpr auto SYSTEMD_TIME_SERVICE = "org.freedesktop.timedate1";
-constexpr auto SYSTEMD_TIME_PATH = "/org/freedesktop/timedate1";
-constexpr auto SYSTEMD_TIME_INTERFACE = "org.freedesktop.timedate1";
-constexpr auto METHOD_SET_NTP = "SetNTP";
+constexpr auto systemdTimeService = "org.freedesktop.timedate1";
+constexpr auto systemdTimePath = "/org/freedesktop/timedate1";
+constexpr auto systemdTimeInterface = "org.freedesktop.timedate1";
+constexpr auto methodSetNtp = "SetNTP";
 } // namespace
 
 namespace phosphor
@@ -33,15 +33,15 @@
 
     // Check the settings daemon to process the new settings
     auto mode = getSetting(settings.timeSyncMethod.c_str(),
-                           settings::timeSyncIntf, PROPERTY_TIME_MODE);
+                           settings::timeSyncIntf, propertyTimeMode);
 
-    onPropertyChanged(PROPERTY_TIME_MODE, mode);
+    onPropertyChanged(propertyTimeMode, mode);
 }
 
 void Manager::onPropertyChanged(const std::string& key,
                                 const std::string& value)
 {
-    assert(key == PROPERTY_TIME_MODE);
+    assert(key == propertyTimeMode);
 
     // Notify listeners
     setCurrentTimeMode(value);
@@ -74,9 +74,8 @@
     {
         bool isNtp =
             (value == "xyz.openbmc_project.Time.Synchronization.Method.NTP");
-        auto method =
-            bus.new_method_call(SYSTEMD_TIME_SERVICE, SYSTEMD_TIME_PATH,
-                                SYSTEMD_TIME_INTERFACE, METHOD_SET_NTP);
+        auto method = bus.new_method_call(systemdTimeService, systemdTimePath,
+                                          systemdTimeInterface, methodSetNtp);
         method.append(isNtp, false); // isNtp: 'true/false' means Enable/Disable
                                      // 'false' meaning no policy-kit
 
diff --git a/manager.hpp b/manager.hpp
index 02dd253..e8c28e9 100644
--- a/manager.hpp
+++ b/manager.hpp
@@ -116,7 +116,7 @@
                                  sd_bus_error* retError);
 
     /** @brief The string of time mode property */
-    static constexpr auto PROPERTY_TIME_MODE = "TimeSyncMethod";
+    static constexpr auto propertyTimeMode = "TimeSyncMethod";
 };
 
 } // namespace time
diff --git a/settings.cpp b/settings.cpp
index d0d5026..b662628 100644
--- a/settings.cpp
+++ b/settings.cpp
@@ -13,11 +13,7 @@
 using namespace phosphor::logging;
 using namespace sdbusplus::xyz::openbmc_project::Common::Error;
 
-constexpr auto mapperService = "xyz.openbmc_project.ObjectMapper";
-constexpr auto mapperPath = "/xyz/openbmc_project/object_mapper";
-constexpr auto mapperIntf = "xyz.openbmc_project.ObjectMapper";
-
-Objects::Objects(sdbusplus::bus_t& bus) : bus(bus)
+Objects::Objects(sdbusplus::bus_t& bus)
 {
     Interfaces settingsIntfs = {timeSyncIntf};
     MapperResponse result;
@@ -39,9 +35,9 @@
     for (const auto& iter : result)
     {
         const Path& path = iter.first;
-        for (const auto& service_iter : iter.second)
+        for (const auto& serviceIter : iter.second)
         {
-            for (const Interface& interface : service_iter.second)
+            for (const Interface& interface : serviceIter.second)
             {
                 if (timeSyncIntf == interface)
                 {
diff --git a/settings.hpp b/settings.hpp
index f45c910..b7e18bf 100644
--- a/settings.hpp
+++ b/settings.hpp
@@ -24,19 +24,16 @@
      *
      * @param[in] bus - The D-bus bus object
      */
+    explicit Objects(sdbusplus::bus_t& /*bus*/);
     Objects() = delete;
-    explicit Objects(sdbusplus::bus_t&);
     Objects(const Objects&) = delete;
     Objects& operator=(const Objects&) = delete;
     Objects(Objects&&) = default;
-    Objects& operator=(Objects&&) = default;
+    Objects& operator=(Objects&&) = delete;
     ~Objects() = default;
 
     /** @brief time sync method settings object */
     Path timeSyncMethod;
-
-  private:
-    sdbusplus::bus_t& bus;
 };
 
 } // namespace settings
diff --git a/test/TestBmcEpoch.cpp b/test/TestBmcEpoch.cpp
index aee19f9..8556d72 100644
--- a/test/TestBmcEpoch.cpp
+++ b/test/TestBmcEpoch.cpp
@@ -26,7 +26,7 @@
         // BmcEpoch requires sd_event to init
         sd_event_default(&event);
         bus.attach_event(event, SD_EVENT_PRIORITY_NORMAL);
-        bmcEpoch = std::make_unique<BmcEpoch>(bus, OBJPATH_BMC, manager);
+        bmcEpoch = std::make_unique<BmcEpoch>(bus, objpathBmc, manager);
     }
 
     ~TestBmcEpoch()
diff --git a/types.hpp b/types.hpp
index f490823..7871a5d 100644
--- a/types.hpp
+++ b/types.hpp
@@ -2,13 +2,8 @@
 
 #include <xyz/openbmc_project/Time/Synchronization/server.hpp>
 
-namespace // anonymous
-{
-
-constexpr auto OBJPATH_BMC = "/xyz/openbmc_project/time/bmc";
-constexpr auto BUSNAME = "xyz.openbmc_project.Time.Manager";
-
-} // namespace
+static constexpr auto objpathBmc = "/xyz/openbmc_project/time/bmc";
+static constexpr auto busname = "xyz.openbmc_project.Time.Manager";
 
 namespace phosphor
 {
diff --git a/utils.cpp b/utils.cpp
index f0b8704..f925bdb 100644
--- a/utils.cpp
+++ b/utils.cpp
@@ -7,9 +7,9 @@
 
 namespace // anonymous
 {
-constexpr auto MAPPER_BUSNAME = "xyz.openbmc_project.ObjectMapper";
-constexpr auto MAPPER_PATH = "/xyz/openbmc_project/object_mapper";
-constexpr auto MAPPER_INTERFACE = "xyz.openbmc_project.ObjectMapper";
+constexpr auto mapperBusname = "xyz.openbmc_project.ObjectMapper";
+constexpr auto mapperPath = "/xyz/openbmc_project/object_mapper";
+constexpr auto mapperInterface = "xyz.openbmc_project.ObjectMapper";
 } // namespace
 
 namespace utils
@@ -20,8 +20,8 @@
 std::string getService(sdbusplus::bus_t& bus, const char* path,
                        const char* interface)
 {
-    auto mapper = bus.new_method_call(MAPPER_BUSNAME, MAPPER_PATH,
-                                      MAPPER_INTERFACE, "GetObject");
+    auto mapper = bus.new_method_call(mapperBusname, mapperPath,
+                                      mapperInterface, "GetObject");
 
     mapper.append(path, std::vector<std::string>({interface}));
     try
@@ -51,8 +51,8 @@
 MapperResponse getSubTree(sdbusplus::bus_t& bus, const std::string& root,
                           const Interfaces& interfaces, int32_t depth)
 {
-    auto mapperCall = bus.new_method_call(MAPPER_BUSNAME, MAPPER_PATH,
-                                          MAPPER_INTERFACE, "GetSubTree");
+    auto mapperCall = bus.new_method_call(mapperBusname, mapperPath,
+                                          mapperInterface, "GetSubTree");
     mapperCall.append(root);
     mapperCall.append(depth);
     mapperCall.append(interfaces);
