<!DOCTYPE html><html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="icon" type="image/x-icon" href="https://www.techrepublic.com/favicon.ico"><link rel="icon" type="image/png" sizes="16x16" href="https://www.techrepublic.com/favicon-16x16.png"><link rel="icon" type="image/png" sizes="32x32" href="https://www.techrepublic.com/favicon-32x32.png"><link rel="icon" type="image/png" sizes="96x96" href="https://www.techrepublic.com/favicon-96x96.png"><link rel="icon" type="image/png" sizes="192x192" href="https://www.techrepublic.com/favicon-192x192.png"><link rel="preconnect" href="https://capi.connatix.com" crossorigin=""><link rel="preconnect" href="https://cd.connatix.com" crossorigin=""><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin=""><link rel="preconnect" href="https://www.techrepublic.com" crossorigin=""><link rel="preconnect" href="https://epsilon.6sense.com" crossorigin=""><link rel="preload" as="image" fetchpriority="high" href="https://www.techrepublic.com/astrostatic/0afa3479/_image/?href=%2F_astro%2Ftechrepublic.BQceyIVv.png&w=500&h=119&f=webp"><link rel="preload" href="https://cmp.inmobi.com/choice/vPn77x7pBG57Y/www.techrepublic.com/choice.js?tag_version=V3" as="script"><link rel="preload" href="https://securepubads.g.doubleclick.net/tag/js/gpt.js" as="script"><link rel="preload" href="https://7K2PtPeYG9QYuDfTo.ay.delivery/manager/7K2PtPeYG9QYuDfTo" as="script"> <script>(function(){const domain = "techrepublic.com";
const targeting = {"env":"prod","stage":"prod","url":"www.techrepublic.com/meet-the-team/us/jason-hiner/","hostname":"www.techrepublic.com","cid":"jason-hiner","path":"sites,techrepublic.com,meet-the-team,us,jason-hiner","news":"no"};

            window._vars = {
                ...(window?._vars ?? {}),
                domain,
                targeting,
            }

            window.ayManagerEnv = window.ayManagerEnv || { cmd: [] }

            window.ayManagerEnv.cmd.push(() =>
                window.requestAnimationFrame(() => {
                    const ay = window.ayManagerEnv
                    const placements = ay.settings.placements
                    const enabled = ay.tools.getEnabledPlacements()
                    for (const entry of placements) {
                        if (
                            // only placements that are contained within wrappers
                            !["afterbegin", "beforeend"].includes(
                                entry.position,
                            ) ||
                            // and are not enabled
                            enabled.find(({ _id }) => _id === entry._id)
                        )
                            continue

                        // hide disabled placement wrappers
                        for (const el of document.querySelectorAll(
                            entry.placement,
                        )) {
                            // except if the wrapper _is_ the page
                            if (
                                ["body", "html"].includes(
                                    el.tagName.toLowerCase(),
                                )
                            )
                                return
                            el.style.display = "none"
                        }
                    }
                }),
            )
        })();</script> <script src="https://7K2PtPeYG9QYuDfTo.ay.delivery/manager/7K2PtPeYG9QYuDfTo" type="text/javascript" referrerpolicy="no-referrer-when-downgrade" async>
                </script><script>(function(){const targeting = {"env":"prod","stage":"prod","url":"www.techrepublic.com/meet-the-team/us/jason-hiner/","hostname":"www.techrepublic.com","cid":"jason-hiner","path":"sites,techrepublic.com,meet-the-team,us,jason-hiner","news":"no"};
const debug = false;

            window.googletag = window.googletag || { cmd: [] };

            document.addEventListener('ay-ads-disabled', () => {
                const allAdElements = Array.from(
                    document.querySelectorAll('[data-ad-slot]')
                );
                
                allAdElements.forEach(element => {
                    element.setAttribute('data-empty', '');
                });
                
                if (debug) {
                    console.log('[AY] ay-ads-disabled event: Marked ads as empty', {
                        count: allAdElements.length,
                        elements: allAdElements.map(el => ({
                            selector: `[data-ad-slot="${el.getAttribute('data-ad-slot')}"]`,
                            element: el
                        }))
                    });
                }
            });
            
            googletag.cmd.push(() => {
                // Initialize googletag for targeting API (AY uses GPT API for targeting)
                Object.entries(targeting).forEach(([key, value]) => {
                    window.googletag.pubads().setTargeting(key, value);
                });

                // Global slotRenderEnded listener:
                // All ad wrappers (AdSlot, SkyboxAd, CurtainAd) use `data-ad-slot` attribute.
                // AY/GPT fires slotRenderEnded with slotElementId pointing at an AY-generated inner div.
                // We walk up to our wrapper and mark it loaded or empty.
                window.googletag
                    .pubads()
                    .addEventListener("slotRenderEnded", (event) => {
                        const slotElementId = event.slot.getSlotElementId();
                        const ayDiv = document.getElementById(slotElementId);
                        if (!ayDiv) return;

                        const wrapper = ayDiv.closest("[data-ad-slot]");
                        if (!wrapper) return;

                        if (event.isEmpty) {
                            wrapper.style.display = "none";
                            wrapper.setAttribute("data-empty", "");
                            wrapper.removeAttribute("data-loaded");
                        } else {
                            wrapper.style.display = "";
                            wrapper.setAttribute("data-loaded", "");
                            wrapper.removeAttribute("data-empty");
                        }

                        if (debug) {
                            console.log("[AY] slotRenderEnded", {
                                slotElementId,
                                adSlot: wrapper.getAttribute("data-ad-slot"),
                                isEmpty: event.isEmpty,
                            });
                        }
                    });
            });
        })();</script><style is:global="">
            @media (max-width: 767px) {
                .cnx-pinned-wrapper {
                    margin-top: 10px;
                }
            }

            @media (min-width: 768px) {
                .cnx-float.cnx-float-position-bottom {
                    transform: translate(0, -100px) !important;
                }
            }

            .cnx-main-container.cnx-in-desktop {
                max-width: 640px;
                max-height: 360px;
            }
        </style> <script>
    ;(function () {
        let visitorId = ""
        try {
            const dl = window.dataLayer || []
            for (let i = dl.length - 1; i >= 0; i--) {
                if (
                    dl[i] &&
                    dl[i].TaVisitorId &&
                    dl[i].TaVisitorId.visitor_id
                ) {
                    visitorId = dl[i].TaVisitorId.visitor_id
                    break
                }
            }
        } catch (_) {
            // ignore
        }
        const s = document.createElement("script")
        s.async = true
        s.src = "https://ob.forseasky.com/i/b65d7d7005337f7bd4bd291d1d48ebb9.js"
        s.setAttribute("data-ch", "cheq4ppc")
        s.className = "ct_clicktrue_60866"
        s.setAttribute("data-jsonp", "onCheqResponse")
        if (visitorId) s.setAttribute("data-uvid", visitorId)
        document.head.appendChild(s)
    })()
</script> <script>
    (() => {
        window.ngt = window.ngt || { cmd:[] };
        window.ngt.cmd.push(function(){
            window.googletag.cmd.push(() => {
                window.googletag
                    .pubads()
                    .setTargeting(
                        "user_agent",
                        navigator?.userAgent ?? "Unknown User Agent",
                    )
                    .setTargeting(
                        "ngt_company_size",
                        (window.ngt.me.company?.company_size_range ?? "").replaceAll(
                            ",",
                            "",
                        ),
                    );
    
                const tags =
                    window.ngt.me?.body?.me.tags?.map((tag) =>
                        tag.toLowerCase().replaceAll("site.", ""),
                    ) ?? [];
    
                [
                    ["is_datacenter", ["is-datacenter"]],
                    ["is_suspected_bot", ["suspected-bad-bot", "bad-bot"]],
                    ["is_ta_user", ["ta-user-ip"]],
                    ["is_crawler", ["user-agent-blocked"]],
                    ["is_ad_blocked", ["ad-blocked-ip"]],
                ]
                    .filter(([tag, flags]) =>
                        flags.some((flag) => tags.includes(flag)),
                    )
                    .reduce((acc, [tag, flags]) => [...acc, tag], [])
                    .forEach((tag) =>
                        window.googletag.pubads().setTargeting(tag, "true"),
                    );
            })
        })
    })();
</script><script async type="text/javascript" src="https://cmp.inmobi.com/choice/vPn77x7pBG57Y/www.techrepublic.com/choice.js?tag_version=V3"></script><script>(function(){const url = "https://cmp.inmobi.com/choice/vPn77x7pBG57Y/www.techrepublic.com/choice.js?tag_version=V3";
const iabVendorsUrl = "https://cmp.inmobi.com/GVL-v3/vendor-list.json";
const googleAtpUrl = "https://cmp.inmobi.com/tcfv2/google-atp-list.json";

(function() {
  var uspTries = 0;
  var uspTriesLimit = 3;
  
  function makeStub() {
    var TCF_LOCATOR_NAME = '__tcfapiLocator';
    var queue = [];
    var win = window;
    var cmpFrame;

    function addFrame() {
      var doc = win.document;
      var otherCMP = !!(win.frames[TCF_LOCATOR_NAME]);

      if (!otherCMP) {
        if (doc.body) {
          var iframe = doc.createElement('iframe');

          iframe.style.cssText = 'display:none';
          iframe.name = TCF_LOCATOR_NAME;
          doc.body.appendChild(iframe);
        } else {
          setTimeout(addFrame, 5);
        }
      }
      return !otherCMP;
    }

    function tcfAPIHandler() {
      var gdprApplies;
      var args = arguments;

      if (!args.length) {
        return queue;
      } else if (args[0] === 'setGdprApplies') {
        if (
          args.length > 3 &&
          args[2] === 2 &&
          typeof args[3] === 'boolean'
        ) {
          gdprApplies = args[3];
          if (typeof args[2] === 'function') {
            args[2]('set', true);
          }
        }
      } else if (args[0] === 'ping') {
        var retr = {
          gdprApplies: gdprApplies,
          cmpLoaded: false,
          cmpStatus: 'stub'
        };

        if (typeof args[2] === 'function') {
          args[2](retr);
        }
      } else {
        if(args[0] === 'init' && typeof args[3] === 'object') {
          args[3] = Object.assign(args[3], { tag_version: 'V3' });
        }
        queue.push(args);
      }
    }

    function postMessageEventHandler(event) {
      var msgIsString = typeof event.data === 'string';
      var json = {};

      try {
        if (msgIsString) {
          json = JSON.parse(event.data);
        } else {
          json = event.data;
        }
      } catch (ignore) {}

      var payload = json.__tcfapiCall;

      if (payload) {
        window.__tcfapi(
          payload.command,
          payload.version,
          function(retValue, success) {
            var returnMsg = {
              __tcfapiReturn: {
                returnValue: retValue,
                success: success,
                callId: payload.callId
              }
            };
            if (msgIsString) {
              returnMsg = JSON.stringify(returnMsg);
            }
            if (event && event.source && event.source.postMessage) {
              event.source.postMessage(returnMsg, '*');
            }
          },
          payload.parameter
        );
      }
    }

    while (win) {
      try {
        if (win.frames[TCF_LOCATOR_NAME]) {
          cmpFrame = win;
          break;
        }
      } catch (ignore) {}

      if (win === window.top) {
        break;
      }
      win = win.parent;
    }
    if (!cmpFrame) {
      addFrame();
      win.__tcfapi = tcfAPIHandler;
      win.addEventListener('message', postMessageEventHandler, false);
    }
  };

  makeStub();

  function makeGppStub() {
    const CMP_ID = 10;
    const SUPPORTED_APIS = [
      '2:tcfeuv2',
      '6:uspv1',
      '7:usnatv1',
      '8:usca',
      '9:usvav1',
      '10:uscov1',
      '11:usutv1',
      '12:usctv1'
    ];

    window.__gpp_addFrame = function (n) {
      if (!window.frames[n]) {
        if (document.body) {
          var i = document.createElement("iframe");
          i.style.cssText = "display:none";
          i.name = n;
          document.body.appendChild(i);
        } else {
          window.setTimeout(window.__gpp_addFrame, 10, n);
        }
      }
    };
    window.__gpp_stub = function () {
      var b = arguments;
      __gpp.queue = __gpp.queue || [];
      __gpp.events = __gpp.events || [];

      if (!b.length || (b.length == 1 && b[0] == "queue")) {
        return __gpp.queue;
      }

      if (b.length == 1 && b[0] == "events") {
        return __gpp.events;
      }

      var cmd = b[0];
      var clb = b.length > 1 ? b[1] : null;
      var par = b.length > 2 ? b[2] : null;
      if (cmd === "ping") {
        clb(
          {
            gppVersion: "1.1", // must be “Version.Subversion”, current: “1.1”
            cmpStatus: "stub", // possible values: stub, loading, loaded, error
            cmpDisplayStatus: "hidden", // possible values: hidden, visible, disabled
            signalStatus: "not ready", // possible values: not ready, ready
            supportedAPIs: SUPPORTED_APIS, // list of supported APIs
            cmpId: CMP_ID, // IAB assigned CMP ID, may be 0 during stub/loading
            sectionList: [],
            applicableSections: [-1],
            gppString: "",
            parsedSections: {},
          },
          true
        );
      } else if (cmd === "addEventListener") {
        if (!("lastId" in __gpp)) {
          __gpp.lastId = 0;
        }
        __gpp.lastId++;
        var lnr = __gpp.lastId;
        __gpp.events.push({
          id: lnr,
          callback: clb,
          parameter: par,
        });
        clb(
          {
            eventName: "listenerRegistered",
            listenerId: lnr, // Registered ID of the listener
            data: true, // positive signal
            pingData: {
              gppVersion: "1.1", // must be “Version.Subversion”, current: “1.1”
              cmpStatus: "stub", // possible values: stub, loading, loaded, error
              cmpDisplayStatus: "hidden", // possible values: hidden, visible, disabled
              signalStatus: "not ready", // possible values: not ready, ready
              supportedAPIs: SUPPORTED_APIS, // list of supported APIs
              cmpId: CMP_ID, // list of supported APIs
              sectionList: [],
              applicableSections: [-1],
              gppString: "",
              parsedSections: {},
            },
          },
          true
        );
      } else if (cmd === "removeEventListener") {
        var success = false;
        for (var i = 0; i < __gpp.events.length; i++) {
          if (__gpp.events[i].id == par) {
            __gpp.events.splice(i, 1);
            success = true;
            break;
          }
        }
        clb(
          {
            eventName: "listenerRemoved",
            listenerId: par, // Registered ID of the listener
            data: success, // status info
            pingData: {
              gppVersion: "1.1", // must be “Version.Subversion”, current: “1.1”
              cmpStatus: "stub", // possible values: stub, loading, loaded, error
              cmpDisplayStatus: "hidden", // possible values: hidden, visible, disabled
              signalStatus: "not ready", // possible values: not ready, ready
              supportedAPIs: SUPPORTED_APIS, // list of supported APIs
              cmpId: CMP_ID, // CMP ID
              sectionList: [],
              applicableSections: [-1],
              gppString: "",
              parsedSections: {},
            },
          },
          true
        );
      } else if (cmd === "hasSection") {
        clb(false, true);
      } else if (cmd === "getSection" || cmd === "getField") {
        clb(null, true);
      }
      //queue all other commands
      else {
        __gpp.queue.push([].slice.apply(b));
      }
    };
    window.__gpp_msghandler = function (event) {
      var msgIsString = typeof event.data === "string";
      try {
        var json = msgIsString ? JSON.parse(event.data) : event.data;
      } catch (e) {
        var json = null;
      }
      if (typeof json === "object" && json !== null && "__gppCall" in json) {
        var i = json.__gppCall;
        window.__gpp(
          i.command,
          function (retValue, success) {
            var returnMsg = {
              __gppReturn: {
                returnValue: retValue,
                success: success,
                callId: i.callId,
              },
            };
            event.source.postMessage(msgIsString ? JSON.stringify(returnMsg) : returnMsg, "*");
          },
          "parameter" in i ? i.parameter : null,
          "version" in i ? i.version : "1.1"
        );
      }
    };
    if (!("__gpp" in window) || typeof window.__gpp !== "function") {
      window.__gpp = window.__gpp_stub;
      window.addEventListener("message", window.__gpp_msghandler, false);
      window.__gpp_addFrame("__gppLocator");
    }
  };

  makeGppStub();

  var uspStubFunction = function() {
    var arg = arguments;
    if (typeof window.__uspapi !== uspStubFunction) {
      setTimeout(function() {
        if (typeof window.__uspapi !== 'undefined') {
          window.__uspapi.apply(window.__uspapi, arg);
        }
      }, 500);
    }
  };

  var checkIfUspIsReady = function() {
    uspTries++;
    if (window.__uspapi === uspStubFunction && uspTries < uspTriesLimit) {
      console.warn('USP is not accessible');
    } else {
      clearInterval(uspInterval);
    }
  };

  if (typeof window.__uspapi === 'undefined') {
    window.__uspapi = uspStubFunction;
    var uspInterval = setInterval(checkIfUspIsReady, 6000);
  }

  /**
   * DataLayer Push & CCPA Support
   *
   * Version 2.0.7
   */
  (async function () {
    //URLs need to be externalized based on environments, during build update.
    var get_iab_vendors_url = iabVendorsUrl;
    var get_google_atp_url = googleAtpUrl;
    var iab_vendors, iab_vendor_ids, iab_vendor_names;
    var google_vendors, google_vendor_ids, google_vendor_names;
    var google_vendors_arr = [],
        google_vendor_ids_arr = [],
        google_vendor_names_arr = [];
    var iab_vendors_arr = [],
        iab_vendor_ids_arr = [],
        iab_vendor_names_arr = [];
    var non_iab_vendors, non_iab_vendor_ids, non_iab_vendor_names;
    var non_iab_vendors_arr = [],
        non_iab_vendor_ids_arr = [],
        non_iab_vendor_names_arr = [];
    var publisher_consents, publisher_legitimate_interests;
    var purpose_consents, purpose_legitimate_interests;

    function resultToList(a) {
      var b = ",";
      if (a && typeof a === 'object') {
        for (var i in a) {
          if (a[i]) {
            b += i + ",";
          }
        }
      }
      return b;
    }

    /**
     * Get a full list of Non-IAB Vendors, specific to the Quantcast Universal Tag ID, using tcfapi
     */
    function vendors_getNonIABVendorList() {
      window.__tcfapi("getConfig", 2, function (retObj) {
        if (retObj && retObj.hasOwnProperty("nonIabVendorsInfo")) {
          if (
            retObj.nonIabVendorsInfo && retObj.nonIabVendorsInfo.hasOwnProperty(
              "nonIabVendorList",
            )
          ) {
            non_iab_vendors =
              retObj.nonIabVendorsInfo.nonIabVendorList;
            // Dont assume array key = vendor id, set key as vendor id with iab_vendors[i].id
            Object.keys(non_iab_vendors).forEach(function (i) {
              non_iab_vendors_arr[non_iab_vendors[i].vendorId] =
                non_iab_vendors[i].name;
            });
          }
        }
      });
    }

    /**
     * Get a full list of IAB Vendors.
     */
    function vendors_getIABVendorList() {
      var xhttp = new XMLHttpRequest();
      xhttp.onreadystatechange = function () {
        if (this.readyState == 4 && this.status == 200) {
          var res = JSON.parse(this.responseText);
          if (res && res.hasOwnProperty("vendors")) {
            iab_vendors = res.vendors;

            // Dont assume array key = vendor id, set key as vendor id with iab_vendors[i].id
            Object.keys(iab_vendors).forEach(function (i) {
              iab_vendors_arr[iab_vendors[i].id] =
                iab_vendors[i].name;
            });
          }
        }
      };
      xhttp.open("GET", get_iab_vendors_url, true);
      xhttp.send();
    }

    /**
     * Get a full list of google atp list
     */
    function vendors_getGoogleVendorList() {
      var xhttp = new XMLHttpRequest();
      xhttp.onreadystatechange = function () {
        if (this.readyState == 4 && this.status == 200) {
          google_vendors = JSON.parse(this.responseText);
          google_vendors.forEach(function (vendor) {
            google_vendors_arr[vendor.provider_id] =
              vendor.provider_name;
          });
        }
      };
      xhttp.open("GET", get_google_atp_url, true);
      xhttp.send();
    }

    /**
     * CMP Loaded.
     *
     * Push __cmpLoaded event to the data layer.
     */
    function dlSend_tcLoaded(tcData) {
      window.dataLayer = window.dataLayer || [];
      window.dataLayer.push({
        event: "__cmpLoaded",
        __cmpLoaded: true,
        gdpr: tcData ? tcData.gdprApplies : false,
      });
    }

    /**
     * IAB Vendors.
     *
     * Push __cmpIABConsents event to the datalayer, along with iab vendor consent ids.
     */
    function dlSend_consentData(tcData) {
      window.dataLayer = window.dataLayer || [];
      iab_vendor_names_arr = [];
      iab_vendor_ids_arr = [];
      non_iab_vendor_names_arr = [];
      non_iab_vendor_ids_arr = [];
      google_vendor_names_arr = [];
      google_vendor_ids_arr = [];

      if (tcData && tcData.hasOwnProperty("publisher")) {
        if (tcData.publisher && tcData.publisher.hasOwnProperty("consents")) {
          publisher_consents = resultToList(
            tcData.publisher ? tcData.publisher.consents : null,
          );
        }
        publisher_legitimate_interests = resultToList(
          tcData.publisher ? tcData.publisher.legitimateInterests : null,
        );
      }

      if (tcData && tcData.hasOwnProperty("purpose")) {
        if (tcData.purpose && tcData.purpose.hasOwnProperty("consents")) {
          purpose_consents = resultToList(tcData.purpose ? tcData.purpose.consents : null);
        }
        purpose_legitimate_interests = resultToList(
          tcData.purpose ? tcData.purpose.legitimateInterests : null,
        );
      }

      // Run this in an interval (every 0.1s) just in case we are still waiting
      // on the return with our iab_vendors list calls, bail after 10 seconds
      var cnt = 0;
      var interval = setInterval(function () {
        cnt += 1;

        if (cnt === 100) {
          clearInterval(interval);
        }

        if (iab_vendors) {
          clearInterval(interval);

          if (tcData ? tcData.gdprApplies : false) {
            // Create name & id arrays of iab vendors with consent.
            if (tcData && tcData.hasOwnProperty("vendor") && tcData.vendor && tcData.vendor.consents) {
              Object.keys(tcData.vendor.consents).forEach(
                function (vendorId) {
                  if (
                    (tcData.vendor && tcData.vendor.consents ? tcData.vendor.consents[vendorId] : false) ||
                    !tcData.gdprApplies
                  ) {
                    iab_vendor_names_arr[vendorId] =
                      iab_vendors_arr[vendorId];
                    iab_vendor_ids_arr[vendorId] = vendorId;
                  }
                },
              );
            }
          } else {
            // GDPR does not apply, add all vendor names/ids
            iab_vendor_names_arr = iab_vendors_arr;
            iab_vendors_arr.forEach(
              function (vendorName, vendorId) {
                iab_vendor_ids_arr[vendorId] = vendorId;
              },
            );
          }

          if (tcData && tcData.addtlConsent && google_vendors_arr) {
            // Create name and id arrays of google vendors with consent.
            // addtlConsent: "1~39.43.46.55.61.
            // 1~ is the version and the rest are the decoded ids
            var addtlConsentParts = (tcData.addtlConsent || "").split("1~");
            if (addtlConsentParts.length > 1) {
              google_vendor_ids_arr = addtlConsentParts[1].split(".");
            }
            google_vendor_ids_arr &&
              google_vendor_ids_arr.forEach(function (google_id) {
                google_vendor_names_arr.push(
                  google_vendors_arr[google_id],
                );
              });
          }

          // Non IAB Vendors
          window.__tcfapi(
            "getNonIABVendorConsents",
            2,
            function (nonIabConsent, nonIabSuccess) {
              if (nonIabSuccess) {
                if (nonIabConsent.gdprApplies) {
                  // Create name & id arrays of non iab vendors with consent.
                  nonIabConsent.nonIabVendorConsents &&
                    Object.keys(
                      nonIabConsent.nonIabVendorConsents,
                    ).forEach(function (vendorId) {
                      if (
                        nonIabConsent
                          .nonIabVendorConsents[
                          vendorId
                        ] ||
                        !nonIabConsent.gdprApplies
                      ) {
                        non_iab_vendor_names_arr[
                          vendorId
                        ] =
                          non_iab_vendors_arr[
                            vendorId
                          ];
                        non_iab_vendor_ids_arr[
                          vendorId
                        ] = vendorId;
                      }
                    });
                } else {
                  // GDPR does not apply, add all non iab vendor names/ids
                  non_iab_vendor_names_arr =
                    non_iab_vendors_arr;
                  non_iab_vendors_arr.forEach(
                    function (vendorName, vendorId) {
                      non_iab_vendor_ids_arr[vendorId] =
                        vendorId;
                    },
                  );
                }
              }

              // Join our array values, skipping empty items and joing them with a delimiter
              iab_vendor_names = iab_vendor_names_arr
                .filter(Boolean)
                .join("|");
              iab_vendor_ids = iab_vendor_ids_arr
                .filter(Boolean)
                .join(",");
              google_vendor_names = google_vendor_names_arr
                .filter(Boolean)
                .join("|");
              google_vendor_ids = google_vendor_ids_arr
                .filter(Boolean)
                .join("|");
              non_iab_vendor_names = non_iab_vendor_names_arr
                .filter(Boolean)
                .join("|");
              non_iab_vendor_ids = non_iab_vendor_ids_arr
                .filter(Boolean)
                .join(",");

              // Push __cmpIABConsents signals to the data layer.
              window.dataLayer.push({
                event: "__cmpConsents",
                __cmpConsents: {
                  iabVendorConsentIds: iab_vendor_ids,
                  iabVendorsWithConsent: iab_vendor_names,
                  nonIABVendorConsentIds: non_iab_vendor_ids,
                  nonIABVendorsWithConsent:
                    non_iab_vendor_names,
                  googleVendorConsentIds: google_vendor_ids,
                  googleVendorsWithConsent:
                    google_vendor_names,
                  gdpr: tcData ? tcData.gdprApplies : false,
                  publisherConsents: publisher_consents,
                  publisherLegitimateInterests:
                    publisher_legitimate_interests,
                  purposeConsents: purpose_consents,
                  purposeLegitimateInterests:
                    purpose_legitimate_interests,
                },
              });
            },
          );
        }
      }, 100);
    }

    /**
     * CCPA footer message.
     */
    function ccpa_footerMsg(tcData) {
      window.__uspapi("uspPing", 1, function (obj, status) {
        var footer_msg = document.getElementById("choice-footer-msg"); // get the footer container for our CCPA message

        if (status && obj.mode.includes("USP") && footer_msg !== null) {
          footer_msg.innerHTML =
            footer_msg.innerHTML +
            "We use cookies" +
            " and other data collection technologies" +
            " to provide the best experience for our customers. You may request" +
            " that your data not be shared with third parties here: " +
            '<a href="#" onclick="window.__uspapi(\'displayUspUi\');"' +
            ">Do Not Sell My Data</a>" +
            ".";

          // Add the 'ccpa-msg-added' class to the container for post message add styling.
          footer_msg.classList.add("ccpa-msg-added");

          window.__uspapi("setUspDftData", 1, function (obj, status) {
            if (!status) {
              console.log("Error: USP string not updated!");
            }
          });
        }
      });
    }

    // Only get the IAB and Non-IAB vendor lists if the the Data layer push functionality
    // is enabled, otherwise we do not need the vendor lists.
    window.__tcfapi(
      "addEventListener",
      2,
      function (getConfig, listenerSuccess) {
        vendors_getIABVendorList(); // Get global IAB vendor list
        vendors_getGoogleVendorList(); // Get google vendor list
        vendors_getNonIABVendorList(); // Get UTID specific Non-IAB vendors
      },
    );

    // CCPA
    ccpa_footerMsg();

    // Add our main listener.
    window.__tcfapi(
      "addEventListener",
      2,
      function (tcData, listenerSuccess) {
        if (listenerSuccess) {
          /**
           * User Visits:
           * 1st visit/no cookie = 'cmpuishown' called and then 'useractioncomplete' after user make their selection
           * Repeat visit/has cookie = only 'tcloaded' is called as the UI does not show unless the user clicks to show
           */

          switch (tcData ? tcData.eventStatus : null) {
            case "cmpuishown":
              // Data Layer
              dlSend_tcLoaded(tcData);
              break;

            case "tcloaded":
              // Data Layer
              if (tcData ? tcData.gdprApplies : false) {
                dlSend_tcLoaded(tcData);
                dlSend_consentData(tcData);
              }
              break;

            case "useractioncomplete":
              // Data Layer
              dlSend_consentData(tcData);
              break;
          }
        }
      },
    );
  })();
})();
})();</script><noscript> <img src="https://obs.forseasky.com/ns/b65d7d7005337f7bd4bd291d1d48ebb9.html?ch=cheq4ppc" style="display:none" alt=""> </noscript>    <link rel="apple-touch-icon" sizes="180x180" href="https://www.techrepublic.com/apple-touch-icon.png">     <link rel="manifest" href="https://www.techrepublic.com/site.webmanifest">       <link rel="alternate" type="application/rss+xml" title="TechRepublic » Feed" href="https://www.techrepublic.com/feed/"><link rel="alternate" type="application/rss+xml" title="TechRepublic » Comments Feed" href="https://www.techrepublic.com/comments/feed/"><style>:root {
    --theme-primary: #086bdb;
    --theme-secondary: #044997;
    --theme-tertiary: #f54d16;
    --theme-quaternary: #ffffff;
    --theme-primary-foreground: #ffffff;
    --theme-secondary-foreground: #ffffff;
    --theme-tertiary-foreground: #ffffff;
    --theme-quaternary-foreground: #044997;
    --theme-foreground: black;
}</style> <script>window.__authProviders={"facebook":false,"linkedin":false}</script> <script>(function(){const targeting = {"env":"prod","stage":"prod","url":"www.techrepublic.com/meet-the-team/us/jason-hiner/","hostname":"www.techrepublic.com","cid":"jason-hiner","path":"sites,techrepublic.com,meet-the-team,us,jason-hiner","news":"no"};

    window.dataLayer = window.dataLayer || []
    window.dataLayer.push(
        Object.fromEntries(
            Object.entries(targeting).map(([k, v]) => [`ad_${k}`, v]),
        ),
    )
})();</script><title>Jason Hiner, Author at TechRepublic</title><meta name="title" content="Jason Hiner, Author at TechRepublic"><meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><meta property="og:locale" content="en_US"><meta property="og:type" content="profile"><meta property="og:title" content="Jason Hiner, Author at TechRepublic"><meta property="og:url" content="https://www.techrepublic.com/meet-the-team/us/jason-hiner/"><meta property="og:site_name" content="TechRepublic"><meta property="og:image" content="https://secure.gravatar.com/avatar/30e1c25316c4b054b8520908c7eea842?s=500&d=mm&r=g"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Jason Hiner, Author at TechRepublic"><meta name="twitter:image" content="https://secure.gravatar.com/avatar/30e1c25316c4b054b8520908c7eea842?s=500&d=mm&r=g"><meta name="twitter:site" content="https://twitter.com/techrepublic"><link rel="canonical" href="https://www.techrepublic.com/meet-the-team/us/jason-hiner/"><link rel="next" href="https://www.techrepublic.com/meet-the-team/us/jason-hiner/page/2/"><script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"ProfilePage","@id":"https://www.techrepublic.com/meet-the-team/us/jason-hiner/","url":"https://www.techrepublic.com/meet-the-team/us/jason-hiner/","name":"Jason Hiner, Author at TechRepublic","isPartOf":{"@id":"https://www.techrepublic.com/#website"},"breadcrumb":{"@id":"https://www.techrepublic.com/meet-the-team/us/jason-hiner/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://www.techrepublic.com/meet-the-team/us/jason-hiner/"]}]},{"@type":"BreadcrumbList","@id":"https://www.techrepublic.com/meet-the-team/us/jason-hiner/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.techrepublic.com/"},{"@type":"ListItem","position":2,"name":"Archives for Jason Hiner"}]},{"@type":"WebSite","@id":"https://www.techrepublic.com/#website","url":"https://www.techrepublic.com/","name":"TechRepublic","description":"News, Tips, and Advice for Technology Professionals","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://www.techrepublic.com/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https://www.techrepublic.com/#/schema/person/7bbdef9bba2434372937f2ba1f460ddc","name":"Jason Hiner","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://www.techrepublic.com/#/schema/person/image/","url":"https://secure.gravatar.com/avatar/30e1c25316c4b054b8520908c7eea842?s=96&d=mm&r=g","contentUrl":"https://secure.gravatar.com/avatar/30e1c25316c4b054b8520908c7eea842?s=96&d=mm&r=g","caption":"Jason Hiner"},"description":"Jason Hiner is Editorial Director of CNET and former Editor in Chief of TechRepublic. He's co-author of the book, Follow the Geeks.","mainEntityOfPage":{"@id":"https://www.techrepublic.com/meet-the-team/us/jason-hiner/"}}]}</script><link rel="alternate" type="application/rss+xml" title="TechRepublic » Posts by Jason Hiner Feed" href="https://www.techrepublic.com/author/jason-hiner/feed/"> <link rel="stylesheet" href="https://www.techrepublic.com/astrostatic/0afa3479/_astro/index.BVhbYr2I.css">
<link rel="stylesheet" href="https://www.techrepublic.com/astrostatic/0afa3479/_astro/article.DjhDarn5.css">
<link rel="stylesheet" href="https://www.techrepublic.com/astrostatic/0afa3479/_astro/_article_.DS_B9sn7.css">
<style>.slide-right-enter-active[data-v-a115ff3f],.slide-right-leave-active[data-v-a115ff3f]{transition:all .3s}.slide-right-enter-from[data-v-a115ff3f],.slide-right-leave-to[data-v-a115ff3f]{transform:translate(-100vw);opacity:0}.slide-left-enter-active[data-v-a115ff3f],.slide-left-leave-active[data-v-a115ff3f]{transition:all .3s}.slide-left-enter-from[data-v-a115ff3f],.slide-left-leave-to[data-v-a115ff3f]{transform:translate(100vw);opacity:0}.submenu-content [data-submenu][data-v-a115ff3f]{display:none}.submenu-content [data-submenu].active[data-v-a115ff3f]{display:block}#site-navigation:not([data-nav-computed]){visibility:hidden;animation:nav-fallback 0s 1.5s forwards}@keyframes nav-fallback{to{visibility:visible}}.slide-enter-active[data-v-a7e2d2f8],.slide-leave-active[data-v-a7e2d2f8]{transition:all .3s}.slide-enter-from[data-v-a7e2d2f8],.slide-leave-to[data-v-a7e2d2f8]{transform:translateY(20px);opacity:0}#main-navigation[data-astro-cid-sj5ssvhz]{transition:transform .3s ease-in-out,background-color .3s ease-in-out}[data-astro-cid-sj5ssvhz][data-rac-overlay] [data-astro-cid-sj5ssvhz]::-webkit-scrollbar{width:6px}[data-astro-cid-sj5ssvhz][data-rac-overlay] [data-astro-cid-sj5ssvhz]::-webkit-scrollbar-track{background:transparent}[data-astro-cid-sj5ssvhz][data-rac-overlay] [data-astro-cid-sj5ssvhz]::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}[data-astro-cid-sj5ssvhz][data-rac-overlay] [data-astro-cid-sj5ssvhz]::-webkit-scrollbar-thumb:hover{background:#fff6}[data-astro-cid-sj5ssvhz][data-rac-overlay]{scrollbar-color:rgba(255,255,255,.2) transparent;scrollbar-width:thin}
#choice-footer-msg a{color:#fff}#choice-footer-msg a:hover{text-decoration:underline}
</style>
<link rel="stylesheet" href="https://www.techrepublic.com/astrostatic/0afa3479/_astro/article.C6sEzHdr.css">
<style>/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial}}}.tabs .tab{cursor:pointer;border-top-style:var(--tw-border-style);padding-block:calc(var(--spacing,.25rem) * 2);--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);border-color:#0000;border-top-width:4px;margin-top:-3px}.tabs .tab--active{border-top-style:var(--tw-border-style);color:var(--color-primary);border-top-width:4px;border-color:var(--color-primary)}.tabs .tab:hover{color:var(--color-primary)}@media(hover:hover){[data-tab=about] a:hover{text-decoration-line:underline}}[data-tab=about] a{color:var(--color-primary)}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}
.ticker-text[data-v-34ac2891]{transition:transform .2s ease}.ticker-text.ticker-scrolling[data-v-34ac2891]{animation:ticker-scroll-34ac2891 .4s ease-in-out;animation-fill-mode:forwards}@keyframes ticker-scroll-34ac2891{0%{transform:translate(0)}to{transform:translate(var(--scroll-distance, 0))}}
.animate-ping-once[data-v-374d5e4b]{animation:ping-once-374d5e4b .35s ease-out forwards}@keyframes ping-once-374d5e4b{0%{transform:scale(1)}40%{transform:scale(1.2)}70%{transform:scale(.95)}to{transform:scale(1)}}
.slide-enter-active[data-v-a7e2d2f8],.slide-leave-active[data-v-a7e2d2f8]{transition:all .3s}.slide-enter-from[data-v-a7e2d2f8],.slide-leave-to[data-v-a7e2d2f8]{transform:translateY(20px);opacity:0}.slide-right-enter-active[data-v-a115ff3f],.slide-right-leave-active[data-v-a115ff3f]{transition:all .3s}.slide-right-enter-from[data-v-a115ff3f],.slide-right-leave-to[data-v-a115ff3f]{transform:translate(-100vw);opacity:0}.slide-left-enter-active[data-v-a115ff3f],.slide-left-leave-active[data-v-a115ff3f]{transition:all .3s}.slide-left-enter-from[data-v-a115ff3f],.slide-left-leave-to[data-v-a115ff3f]{transform:translate(100vw);opacity:0}.submenu-content [data-submenu][data-v-a115ff3f]{display:none}.submenu-content [data-submenu].active[data-v-a115ff3f]{display:block}
.debug-bar[data-v-f58ff98e] ::-webkit-scrollbar{width:4px}.debug-bar[data-v-f58ff98e] ::-webkit-scrollbar-track{background:#374151}.debug-bar[data-v-f58ff98e] ::-webkit-scrollbar-thumb{background:#6b7280;border-radius:2px}.debug-bar[data-v-f58ff98e] ::-webkit-scrollbar-thumb:hover{background:#9ca3af}
</style><style>astro-island,astro-slot,astro-static-slot{display:contents}</style><style type="text/css">.inline-top:not([data-loaded]) { min-width: 300px; max-width: 320px; min-height: 50px; max-height: 50px; }
@media screen and (min-width: 768px) { .inline-top:not([data-loaded]) { min-width: 728px; max-width: 728px; min-height: 90px; max-height: 90px; } }
@media screen and (min-width: 1240px) { .inline-top:not([data-loaded]) { min-width: 728px; max-width: 1000px; min-height: 90px; max-height: 250px; } }</style><style type="text/css">.right-rail:not([data-loaded]) { min-width: 300px; max-width: 320px; min-height: 50px; max-height: 250px; }
@media screen and (min-width: 768px) { .right-rail:not([data-loaded]) { min-width: 160px; max-width: 300px; min-height: 250px; max-height: 600px; } }</style><style type="text/css">.inline-bottom:not([data-loaded]) { min-width: 300px; max-width: 320px; min-height: 50px; max-height: 50px; }
@media screen and (min-width: 768px) { .inline-bottom:not([data-loaded]) { min-width: 728px; max-width: 728px; min-height: 90px; max-height: 90px; } }
@media screen and (min-width: 1240px) { .inline-bottom:not([data-loaded]) { min-width: 728px; max-width: 1000px; min-height: 90px; max-height: 250px; } }</style><style type="text/css">.sticky-footer:not([data-loaded]) { min-width: 300px; max-width: 320px; min-height: 50px; max-height: 50px; }
@media screen and (min-width: 768px) { .sticky-footer:not([data-loaded]) { min-width: 728px; max-width: 728px; min-height: 90px; max-height: 90px; } }
@media screen and (min-width: 1240px) { .sticky-footer:not([data-loaded]) { min-width: 728px; max-width: 1000px; min-height: 90px; max-height: 90px; } }</style></head> <body class="skybox-auto-collapse">  <script type="module">window.googletag=window.googletag||{cmd:[]},window.googletag?.cmd.push(()=>{let i=!1,l=null;const a=o=>{const e=document.getElementById("main-navigation");e&&(e.style.top=`${o}px`)},r=o=>{if(i)return;i=!0;const e=o.closest("[data-ad-slot='skybox']");if(!e)return;e.setAttribute("data-loaded",""),a(e.offsetHeight),document.dispatchEvent(new CustomEvent("skybox-ad-ready",{detail:{height:e.offsetHeight}})),window.ResizeObserver&&(l=new ResizeObserver(t=>{for(const d of t){const s=d.contentRect.height;a(s),document.dispatchEvent(new CustomEvent("skybox-ad-height-changed",{detail:{height:s}}))}}),l.observe(e));const n=window.googletag.pubads().getSlots().find(t=>{const d=t.getSlotElementId(),s=document.getElementById(d);return s?s.closest(".inline-top")!==null:!1});if(n){const t=document.querySelector(".inline-top");t&&(t.classList.add("hidden"),t.style.setProperty("display","none")),window.googletag?.destroySlots([n]),window.requestAnimationFrame(()=>{t?.remove()})}};window.googletag.pubads().addEventListener("slotRenderEnded",o=>{if(o.isEmpty)return;const e=o.slot.getSlotElementId(),n=document.getElementById(e);!n||!n.closest("[data-ad-slot='skybox']")||r(n)})});</script><script type="module">function o(e){e.dataset.imageLoaded===void 0&&(e.dataset.imageLoaded="",window.requestAnimationFrame(()=>{e.style.opacity="1";const a=e.closest("[data-lazyimage]")?.querySelector("[data-blur]");a&&(a.style.opacity="0")}))}function t(e){if(e.dataset.imageLoaded!==void 0)return;(typeof e.decode=="function"?e.decode().catch(()=>{}):Promise.resolve()).finally(()=>o(e))}function d(e){!(e instanceof HTMLImageElement)||!e.matches("[data-image]")||t(e)}document.addEventListener("load",e=>d(e.target),!0);document.addEventListener("error",e=>d(e.target),!0);document.querySelectorAll("[data-lazyimage] [data-image]").forEach(e=>{e.complete&&t(e)});</script><script>(()=>{var l=(n,t)=>{let i=async()=>{await(await n())()},e=typeof t.value=="object"?t.value:void 0,s={timeout:e==null?void 0:e.timeout};"requestIdleCallback"in window?window.requestIdleCallback(i,s):setTimeout(i,s.timeout||200)};(self.Astro||(self.Astro={})).idle=l;window.dispatchEvent(new Event("astro:idle"));})();</script><script>(()=>{var A=Object.defineProperty;var g=(i,o,a)=>o in i?A(i,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[o]=a;var d=(i,o,a)=>g(i,typeof o!="symbol"?o+"":o,a);{let i={0:t=>m(t),1:t=>a(t),2:t=>new RegExp(t),3:t=>new Date(t),4:t=>new Map(a(t)),5:t=>new Set(a(t)),6:t=>BigInt(t),7:t=>new URL(t),8:t=>new Uint8Array(t),9:t=>new Uint16Array(t),10:t=>new Uint32Array(t),11:t=>1/0*t},o=t=>{let[l,e]=t;return l in i?i[l](e):void 0},a=t=>t.map(o),m=t=>typeof t!="object"||t===null?t:Object.fromEntries(Object.entries(t).map(([l,e])=>[l,o(e)]));class y extends HTMLElement{constructor(){super(...arguments);d(this,"Component");d(this,"hydrator");d(this,"hydrate",async()=>{var b;if(!this.hydrator||!this.isConnected)return;let e=(b=this.parentElement)==null?void 0:b.closest("astro-island[ssr]");if(e){e.addEventListener("astro:hydrate",this.hydrate,{once:!0});return}let c=this.querySelectorAll("astro-slot"),n={},h=this.querySelectorAll("template[data-astro-template]");for(let r of h){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute("data-astro-template")||"default"]=r.innerHTML,r.remove())}for(let r of c){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute("name")||"default"]=r.innerHTML)}let p;try{p=this.hasAttribute("props")?m(JSON.parse(this.getAttribute("props"))):{}}catch(r){let s=this.getAttribute("component-url")||"<unknown>",v=this.getAttribute("component-export");throw v&&(s+=` (export ${v})`),console.error(`[hydrate] Error parsing props for component ${s}`,this.getAttribute("props"),r),r}let u;await this.hydrator(this)(this.Component,p,n,{client:this.getAttribute("client")}),this.removeAttribute("ssr"),this.dispatchEvent(new CustomEvent("astro:hydrate"))});d(this,"unmount",()=>{this.isConnected||this.dispatchEvent(new CustomEvent("astro:unmount"))})}disconnectedCallback(){document.removeEventListener("astro:after-swap",this.unmount),document.addEventListener("astro:after-swap",this.unmount,{once:!0})}connectedCallback(){if(!this.hasAttribute("await-children")||document.readyState==="interactive"||document.readyState==="complete")this.childrenConnectedCallback();else{let e=()=>{document.removeEventListener("DOMContentLoaded",e),c.disconnect(),this.childrenConnectedCallback()},c=new MutationObserver(()=>{var n;((n=this.lastChild)==null?void 0:n.nodeType)===Node.COMMENT_NODE&&this.lastChild.nodeValue==="astro:end"&&(this.lastChild.remove(),e())});c.observe(this,{childList:!0}),document.addEventListener("DOMContentLoaded",e)}}async childrenConnectedCallback(){let e=this.getAttribute("before-hydration-url");e&&await import(e),this.start()}async start(){let e=JSON.parse(this.getAttribute("opts")),c=this.getAttribute("client");if(Astro[c]===void 0){window.addEventListener(`astro:${c}`,()=>this.start(),{once:!0});return}try{await Astro[c](async()=>{let n=this.getAttribute("renderer-url"),[h,{default:p}]=await Promise.all([import(this.getAttribute("component-url")),n?import(n):()=>()=>{}]),u=this.getAttribute("component-export")||"default";if(!u.includes("."))this.Component=h[u];else{this.Component=h;for(let f of u.split("."))this.Component=this.Component[f]}return this.hydrator=p,this.hydrate},e,this)}catch(n){console.error(`[astro-island] Error hydrating ${this.getAttribute("component-url")}`,n)}}attributeChangedCallback(){this.hydrate()}}d(y,"observedAttributes",["props"]),customElements.get("astro-island")||customElements.define("astro-island",y)}})();</script><script>(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).load=e;window.dispatchEvent(new Event("astro:load"));})();</script><script type="module" src="https://www.techrepublic.com/astrostatic/0afa3479/_astro/TechRepublicHeader.astro_astro_type_script_index_0_lang.B_Cu2EfM.js"></script><script type="module">document.body.clientWidth<1480||(window.googletag=window.googletag||{cmd:[]},window.googletag?.cmd.push(()=>{let i=!1;const l=()=>{if(i)return;i=!0;const t=document.createElement("div"),e=document.createElement("div"),n=`
                        position: fixed;
                        top: 0;
                        bottom: 0;
                        width: calc((100vw - 1200px) / 2);
                        background: transparent;
                        cursor: pointer;
                    `;t.style.cssText=n+"left: 0;",e.style.cssText=n+"right: 0;",t.id="left-gutter",e.id="right-gutter";const d=()=>{const o=document.body?.dataset?.src;o&&(window.location.href=o)};t.addEventListener("click",d),e.addEventListener("click",d);const s=()=>{const o=window.innerWidth,r=1200;if(o>r){t.style.display="block",e.style.display="block";const c=(o-r)/2;t.style.width=`${c}px`,e.style.width=`${c}px`}else t.style.display="none",e.style.display="none"};document.body.appendChild(t),document.body.appendChild(e),s(),window.addEventListener("resize",s)};window.googletag.pubads().addEventListener("slotRenderEnded",t=>{if(t.isEmpty)return;const e=t.slot.getSlotElementId(),n=document.getElementById(e);!n||!n.closest("[data-ad-slot='curtain']")||l()})}));</script><script type="module">document.querySelectorAll('[href="#advertising-disclaimer"]').forEach(p=>{const n=p,e=document.createElement("div");e.className="advertising-disclaimer-tooltip",e.innerHTML="We are able to offer our services for free because some vendors may pay us for web traffic or other sales opportunities. Our mission is to help technology buyers make better purchasing decisions, so we provide you with information for all vendors — even those that don't pay us.",n.style.position="relative",n.appendChild(e),p.addEventListener("mouseenter",()=>{e.classList.add("show")}),p.addEventListener("mouseleave",()=>{e.classList.remove("show")})});document.addEventListener("DOMContentLoaded",()=>{document.querySelectorAll(".wp-block-ta-gazelle-blocks-comp-table").forEach(n=>{const e=n,t=e.querySelector(".is-layout-flex:first-child");if(!t)return;const i=t.children,o=i.length,l=[];e.style.setProperty("--cols",o.toString()),o<=2&&e.classList.add("two-column-table");const h=o<=2?0:1;for(let a=h;a<o;a++){const d=i[a],m=d?.querySelector("img"),s=d?.textContent?.trim()||"";l.push({img:m?.src,text:s})}e.querySelectorAll(".is-layout-flex:not(:first-child)").forEach(a=>{const d=a.children,m=o<=2?0:1;for(let s=m;s<d.length&&s-m<l.length;s++){const f=d[s],r=l[s-m];if(r.img||r.text){const c=document.createElement("div");if(c.className="mobile-product-pill",r.img){const u=document.createElement("img");u.src=r.img,c.appendChild(u),c.classList.add("with-logo")}if(r.text){const u=document.createElement("span");u.textContent=r.text,c.appendChild(u),r.img||c.classList.add("text-only")}f.style.position="relative",f.appendChild(c)}}}),t&&l.length>0&&t.classList.add("hide-on-mobile")}),document.querySelectorAll(".prose .table-wrapper table").forEach(n=>{const e=(t,i)=>{const o=i.getBoundingClientRect(),l={el:i,bottom:o.bottom,left:o.left};return!t||l.bottom>t.bottom+1||l.left<t.left-1?l:t};[...n.querySelectorAll("td")].reduce(e,null)?.el.classList.add("bottom-left-cell")})});</script><script type="module">const c=e=>{document.querySelectorAll("[data-tab-trigger]").forEach(t=>{t.dataset.tabTrigger===e?t.classList.add("tab--active"):t.classList.remove("tab--active")}),document.querySelectorAll("[data-tab]").forEach(t=>{t.style.display=t.dataset.tab===e?"block":"none"})};new URL(window.location.href).hash==="#related-articles"&&c("related-articles");const r=document.querySelector(".tabs");r&&r.querySelectorAll("[data-tab-trigger]").forEach(e=>{e.addEventListener("click",function(t){t.preventDefault();const a=this.dataset.tabTrigger;a&&c(a)})});</script><script type="module">class s extends HTMLElement{resizeObserver=null;connectedCallback(){this.updateHeightVar(),this.resizeObserver=new ResizeObserver(()=>{this.hasAttribute("data-collapsed")||this.updateHeightVar()}),this.resizeObserver.observe(this),this.querySelector("button")?.addEventListener("click",()=>{const e=this.toggleAttribute("data-collapsed");this.classList.toggle("translate-y-full",e);const t=this.querySelector(".chevron");t&&t.classList.toggle("rotate-180",e),e?document.documentElement.style.setProperty("--sticky-ad-height","0px"):this.updateHeightVar()})}disconnectedCallback(){this.resizeObserver?.disconnect(),document.documentElement.style.removeProperty("--sticky-ad-height")}updateHeightVar(){document.documentElement.style.setProperty("--sticky-ad-height",`${this.offsetHeight}px`)}}customElements.define("sticky-footer-ad",s);</script>     <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-57GHMWX" height="0" width="0" style="display:none;visibility:hidden" title="Google tag manageer noscript tag"></iframe></noscript><script>(function(){const gtmId = "GTM-57GHMWX";

    ;(function (w, d, s, l, i) {
        w[l] = w[l] || []
        w[l].push({
            "gtm.start": new Date().getTime(),
            event: "gtm.js",
        })
        const f = d.getElementsByTagName(s)[0],
            j = d.createElement(s),
            dl = l != "dataLayer" ? "&l=" + l : ""
        j.async = true
        j.src = "https://www.googletagmanager.com/gtm.js?id=" + i + dl
        f.parentNode.insertBefore(j, f)
    })(window, document, "script", "dataLayer", gtmId)
})();</script><div data-ad-slot="skybox" data-unit-base="/5055/aw-techrepublic" data-category="author" class="static top-0 left-0 right-0 w-screen z-200 skybox skybox-closeBtn skybox-collapseBtn data-empty:hidden print:hidden"></div><script>(function(){const defaultLocale = "en";
const supportedShorts = ["en","de","fr"];
const siteDomain = "techrepublic.com";

    ;(function () {
        try {
            const pathname = window.location.pathname
            const sitePrefix = "/sites/" + siteDomain + "/"
            let base, afterBase
            if (pathname.startsWith(sitePrefix)) {
                base = sitePrefix
                afterBase = pathname.slice(sitePrefix.length)
            } else {
                base = "/"
                afterBase = pathname.slice(1)
            }
            const parts = afterBase.split("/")
            const currentLocale = supportedShorts.includes(parts[0])
                ? parts[0]
                : defaultLocale
            const pref = localStorage.getItem("preferred-locale")
            if (!pref || !supportedShorts.includes(pref)) {
                localStorage.setItem("preferred-locale", currentLocale)
                return
            }
            if (currentLocale !== defaultLocale) return
            if (currentLocale === pref) return
            const target =
                base +
                pref +
                "/" +
                afterBase +
                window.location.search +
                window.location.hash
            window.location.replace(target)
        } catch (err) {
            console.error("Failed to redirect to preferred locale", err)
        }
    })()
})();</script><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin=""><link href="https://fonts.googleapis.com/css2?family=Mulish:wght@400;500;600;700;800&display=swap" rel="stylesheet"><tr-header> <header class="sticky top-0 z-1000 bg-white antialiased print:static font-[Mulish,sans-serif] border-b border-[#efefef]" id="main-navigation"> <div class="flex items-center justify-between max-w-[1200px] mx-auto px-4 h-[70px] gap-3"> <!-- Logo --> <a href="/" class="shrink-0 flex items-center"> <div class="h-[40px] w-auto relative">  <img src="https://www.techrepublic.com/astrostatic/0afa3479/_image/?href=%2F_astro%2Ftechrepublic.BQceyIVv.png&w=500&h=119&f=webp" alt="TechRepublic" loading="eager" fetchpriority="high" showPlaceholder="false" data-image="true" style="opacity:1" decoding="async" width="500" height="119" class="h-[40px] w-auto transition-opacity duration-300"> </div>  </a> <!-- Desktop primary nav --> <nav class="hidden lg:flex items-center text-[16px] text-[#000e2a] font-bold gap-2" aria-label="Primary navigation"> <a href="/topic/top-products/" class="px-3 py-2 text-[#000e2a] no-underline whitespace-nowrap hover:text-[#086bdb] transition-colors duration-150"> Top Products </a><a href="/topic/artificial-intelligence/" class="px-3 py-2 text-[#000e2a] no-underline whitespace-nowrap hover:text-[#086bdb] transition-colors duration-150"> AI </a><a href="/topic/developer/" class="px-3 py-2 text-[#000e2a] no-underline whitespace-nowrap hover:text-[#086bdb] transition-colors duration-150"> Developer </a><a href="/topic/payroll/" class="px-3 py-2 text-[#000e2a] no-underline whitespace-nowrap hover:text-[#086bdb] transition-colors duration-150"> Payroll </a><a href="/topic/security/" class="px-3 py-2 text-[#000e2a] no-underline whitespace-nowrap hover:text-[#086bdb] transition-colors duration-150"> Security </a><a href="/events/" class="px-3 py-2 text-[#000e2a] no-underline whitespace-nowrap hover:text-[#086bdb] transition-colors duration-150"> Events </a> <!-- More dropdown --> <div class="relative" data-tr-more-wrapper=""> <button class="flex items-center gap-1 px-3 py-2 text-[#000e2a] bg-transparent border-0 cursor-pointer text-[16px] font-bold whitespace-nowrap hover:text-[#086bdb] transition-colors duration-150" aria-expanded="false" data-tr-more-btn=""> <span>More</span> <svg class="w-3 h-3 transition-transform duration-300" viewBox="0 0 12 12" fill="none" aria-hidden="true"> <path d="M2 4l4 4 4-4" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> </svg> </button> <div class="absolute top-full right-0 bg-white rounded-lg shadow-[0_4px_24px_rgba(0,0,0,0.12)] py-2 min-w-[220px] invisible opacity-0 transition-all duration-150 z-50 border border-gray-100" data-tr-more-dropdown=""> <!-- Popular Topics --> <div class="px-4 py-1.5 text-[10px] font-bold uppercase tracking-wider text-gray-400"> Popular Topics </div> <a href="/topic/project-management/" class="block px-4 py-1.5 text-[#000e2a] no-underline text-[13px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> Project Management </a><a href="/topic/accounting/" class="block px-4 py-1.5 text-[#000e2a] no-underline text-[13px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> Accounting </a><a href="/topic/big-data/crm/" class="block px-4 py-1.5 text-[#000e2a] no-underline text-[13px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> CRM </a><a href="https://academy.techrepublic.com/" class="block px-4 py-1.5 text-[#000e2a] no-underline text-[13px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> Academy </a> <div class="border-t border-gray-100 my-1.5"></div> <!-- Resources --> <div class="px-4 py-1.5 text-[10px] font-bold uppercase tracking-wider text-gray-400"> Resources </div> <a href="/premium/" class="block px-4 py-1.5 text-[#000e2a] no-underline text-[13px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> TechRepublic Premium </a><a href="https://academy.techrepublic.com/" class="block px-4 py-1.5 text-[#000e2a] no-underline text-[13px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> TechRepublic Academy </a><a href="/newsletters/" class="block px-4 py-1.5 text-[#000e2a] no-underline text-[13px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> Newsletters </a><a href="/resource-library/" class="block px-4 py-1.5 text-[#000e2a] no-underline text-[13px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> Resource Library </a><a href="/forums/" class="block px-4 py-1.5 text-[#000e2a] no-underline text-[13px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> Forums </a><a href="/sponsored/" class="block px-4 py-1.5 text-[#000e2a] no-underline text-[13px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> Sponsored </a> <div class="border-t border-gray-100 my-1.5"></div> <!-- More Topics --> <a href="/topic/cloud/" class="block px-4 py-1.5 text-[#000e2a] no-underline text-[13px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> Cloud </a><a href="/topic/innovation/" class="block px-4 py-1.5 text-[#000e2a] no-underline text-[13px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> Innovation </a><a href="/topic/smart-persons-guides/" class="block px-4 py-1.5 text-[#000e2a] no-underline text-[13px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> Cheat Sheets </a><a href="/topic/big-data/" class="block px-4 py-1.5 text-[#000e2a] no-underline text-[13px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> Big Data </a> <a href="/topic/" class="block px-4 py-1.5 text-[#086bdb] no-underline text-[13px] font-bold hover:bg-gray-50 transition-colors duration-150"> View All Topics </a> </div> </div> </nav> <!-- Right side actions --> <div class="flex items-center gap-3 ml-auto lg:ml-0"> <div class="hidden md:block"> <astro-island uid="Z1ssWf6" prefix="s22" component-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/LocaleDropdown.9yaQ8q2K.js" component-export="default" renderer-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/client.DJt-xfn4.js" props="{&quot;currentLocale&quot;:[0,&quot;en&quot;],&quot;defaultLocale&quot;:[0,&quot;en&quot;],&quot;supportedLocales&quot;:[1,[[0,&quot;en-US&quot;],[0,&quot;de&quot;],[0,&quot;fr&quot;]]],&quot;siteDomain&quot;:[0,&quot;techrepublic.com&quot;]}" ssr="" client="idle" opts="{&quot;name&quot;:&quot;LocaleDropdown&quot;,&quot;value&quot;:true}" await-children=""><div class="relative"><button class="text-secondary hover:bg-primary hover:text-primary-foreground flex items-center gap-1.5 font-medium transition p-2 cursor-pointer text-mono text-[14px]/[24px] tracking-[0.7px] uppercase group" aria-label="Language: English" aria-haspopup="dialog" aria-expanded="false"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 15" aria-hidden="true" class="w-5"><!--[--><rect width="20" height="15" fill="#B22234" /><rect y="1.15" width="20" height="1.15" fill="#fff" /><rect y="3.46" width="20" height="1.15" fill="#fff" /><rect y="5.77" width="20" height="1.15" fill="#fff" /><rect y="8.08" width="20" height="1.15" fill="#fff" /><rect y="10.38" width="20" height="1.15" fill="#fff" /><rect y="12.69" width="20" height="1.15" fill="#fff" /><rect width="8" height="8.08" fill="#3C3B6E" /><!--]--></svg><span>EN</span></button><div class="absolute right-0 mt-0 w-40 border border-t-4 border-t-primary bg-white shadow-md z-50" style="display:none;"><div role="radiogroup" aria-label="Select language"><!--[--><label class="font-bold text-primary flex items-center gap-2.5 px-4 py-2 text-sm hover:bg-primary/10 hover:text-primary transition cursor-pointer"><input type="radio" name="locale" value="en" checked class="sr-only"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 15" aria-hidden="true" class="w-5 flex-shrink-0"><!--[--><rect width="20" height="15" fill="#B22234" /><rect y="1.15" width="20" height="1.15" fill="#fff" /><rect y="3.46" width="20" height="1.15" fill="#fff" /><rect y="5.77" width="20" height="1.15" fill="#fff" /><rect y="8.08" width="20" height="1.15" fill="#fff" /><rect y="10.38" width="20" height="1.15" fill="#fff" /><rect y="12.69" width="20" height="1.15" fill="#fff" /><rect width="8" height="8.08" fill="#3C3B6E" /><!--]--></svg> English</label><label class="flex items-center gap-2.5 px-4 py-2 text-sm hover:bg-primary/10 hover:text-primary transition cursor-pointer"><input type="radio" name="locale" value="de" class="sr-only"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 15" aria-hidden="true" class="w-5 flex-shrink-0"><!--[--><rect width="20" height="5" fill="#000" /><rect y="5" width="20" height="5" fill="#D00" /><rect y="10" width="20" height="5" fill="#FFCE00" /><!--]--></svg> Deutsch</label><label class="flex items-center gap-2.5 px-4 py-2 text-sm hover:bg-primary/10 hover:text-primary transition cursor-pointer"><input type="radio" name="locale" value="fr" class="sr-only"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 15" aria-hidden="true" class="w-5 flex-shrink-0"><!--[--><rect width="20" height="15" fill="#ED2939" /><rect width="13.33" height="15" fill="#fff" /><rect width="6.67" height="15" fill="#002395" /><!--]--></svg> Français</label><!--]--></div></div></div><!--astro:end--></astro-island> </div> <astro-island uid="169fLL" prefix="s23" component-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/UserMenu.DCiEXjc9.js" component-export="default" renderer-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/client.DJt-xfn4.js" props="{}" ssr="" client="load" opts="{&quot;name&quot;:&quot;UserMenu&quot;,&quot;value&quot;:true}" await-children=""><div class="relative font-[Mulish,sans-serif]"><button disabled class="inline-flex items-center justify-center size-9 p-0 text-[0px] bg-transparent border-[1.5px] border-gray-300 rounded-full cursor-pointer overflow-hidden transition-all duration-150 hover:bg-gray-100 hover:border-gray-400 pointer-events-none opacity-0"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide text-gray-500 lucide-user-icon lucide-user" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2" /><circle cx="12" cy="7" r="4" /></svg><span class="sr-only">Sign In</span></button><!----><!--teleport start--><!--teleport end--></div><!--astro:end--></astro-island> <!-- Search toggle / close --> <button class="flex items-center justify-center w-9 h-9 rounded-full text-[#000e2a] bg-transparent border-0 cursor-pointer hover:bg-gray-100 transition-colors duration-150" aria-label="Search" data-tr-search-toggle=""> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide size-6 lucide-search-icon lucide-search" aria-hidden="true"><path d="m21 21-4.34-4.34" /><circle cx="11" cy="11" r="8" /></svg> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide size-6 hidden lucide-x-icon lucide-x" aria-hidden="true"><path d="M18 6 6 18" /><path d="m6 6 12 12" /></svg> </button> <!-- Go Premium CTA --> <a href="/premium/" class="hidden md:inline-flex items-center px-5 py-2 bg-[#d44216] text-white text-[16px] font-bold! rounded-full no-underline whitespace-nowrap hover:bg-[#b83812] transition-colors duration-150"> Go Premium </a> <!-- Mobile menu toggle --> <button class="flex items-center justify-center w-9 h-9 bg-transparent border-0 text-[#000e2a] cursor-pointer lg:hidden" aria-label="Open menu" data-tr-toggle=""> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true"> <path d="M3 6h18M3 12h18M3 18h18" stroke="currentColor" stroke-width="2" stroke-linecap="round" /> </svg> </button> </div> </div> <!-- Search dropdown panel --> <div class="hidden absolute left-0 right-0 top-full bg-white z-50 font-[Mulish,sans-serif]" data-tr-search-panel=""> <div class="max-w-[700px] mx-auto px-4 py-5"> <form role="search" method="get" action="/" data-tr-search-form=""> <div class="relative border-2 border-[#086bdb] rounded-full"> <input type="search" name="s" placeholder="What are you looking for?" required class="w-full h-12 pl-6 pr-12 border-0 rounded-full bg-white text-[#000e2a] text-base placeholder:text-gray-400 focus:outline-none font-[Mulish,sans-serif]" data-tr-search-input=""> <button type="submit" aria-label="Search" class="absolute right-3 top-1/2 -translate-y-1/2 bg-transparent border-0 text-gray-400 cursor-pointer hover:text-[#086bdb] transition-colors duration-150 p-1"> <svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"> <circle cx="11" cy="11" r="7" /> <path d="M21 21l-4.35-4.35" /> </svg> </button> </div> </form> </div> </div> </header> <!-- Mobile overlay --> <div class="hidden fixed inset-0 z-100000 flex-col font-[Mulish,sans-serif]" data-tr-overlay=""> <!-- Mobile header bar --> <div class="flex items-center justify-between px-4 h-[60px] bg-white border-b border-gray-200"> <a href="/" class="shrink-0 flex items-center"> <div class="h-[26px] w-auto relative">  <img src="https://www.techrepublic.com/astrostatic/0afa3479/_image/?href=%2F_astro%2Ftechrepublic.BQceyIVv.png&w=500&h=119&f=webp" alt="TechRepublic" loading="eager" showPlaceholder="false" data-image="true" style="opacity:1" decoding="async" fetchpriority="auto" width="500" height="119" class="h-[26px] w-auto transition-opacity duration-300"> </div>  </a> <button class="flex items-center justify-center w-9 h-9 bg-transparent border-0 text-[#000e2a] cursor-pointer" aria-label="Close menu" data-tr-close=""> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true"> <path d="M18 6L6 18M6 6l12 12" stroke="currentColor" stroke-width="2" stroke-linecap="round" /> </svg> </button> </div> <!-- Mobile navigation body --> <div class="flex-1 overflow-y-auto bg-white"> <!-- Mobile search --> <form class="px-4 py-3 border-b border-gray-200" role="search" method="get" action="/" data-tr-search-form=""> <div class="relative"> <input type="search" name="s" placeholder="Search TechRepublic" required class="w-full h-10 pl-4 pr-10 border border-gray-300 rounded-full bg-white text-sm text-[#000e2a] placeholder:text-gray-400 focus:outline-none focus:border-[#086bdb]"> <button type="submit" aria-label="Search" class="absolute right-1 top-1 w-8 h-8 rounded-full bg-[#086bdb] text-white border-0 cursor-pointer flex items-center justify-center hover:bg-[#044997]"> <svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"> <circle cx="11" cy="11" r="7" /> <path d="M21 21l-4.35-4.35" /> </svg> </button> </div> </form> <!-- Go Premium mobile CTA --> <a href="https://www.techrepublic.com/premium/" class="flex items-center justify-center mx-4 mt-3 mb-1 px-4 py-2.5 bg-[#d44216] text-white text-sm font-bold rounded-full no-underline hover:bg-[#b83812]">
Go Premium
</a> <!-- Mobile nav links --> <div class="py-2"> <div class="px-4 py-2 text-[10px] font-bold uppercase tracking-wider text-gray-400">
Popular Topics
</div> <a href="/topic/top-products/" class="block px-4 py-2.5 text-[#000e2a] no-underline text-[15px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> Top Products </a><a href="/topic/artificial-intelligence/" class="block px-4 py-2.5 text-[#000e2a] no-underline text-[15px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> AI </a><a href="/topic/developer/" class="block px-4 py-2.5 text-[#000e2a] no-underline text-[15px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> Developer </a><a href="/topic/payroll/" class="block px-4 py-2.5 text-[#000e2a] no-underline text-[15px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> Payroll </a><a href="/topic/security/" class="block px-4 py-2.5 text-[#000e2a] no-underline text-[15px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> Security </a><a href="/events/" class="block px-4 py-2.5 text-[#000e2a] no-underline text-[15px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> Events </a><a href="/topic/project-management/" class="block px-4 py-2.5 text-[#000e2a] no-underline text-[15px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> Project Management </a><a href="/topic/accounting/" class="block px-4 py-2.5 text-[#000e2a] no-underline text-[15px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> Accounting </a><a href="/topic/big-data/crm/" class="block px-4 py-2.5 text-[#000e2a] no-underline text-[15px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> CRM </a><a href="https://academy.techrepublic.com/" class="block px-4 py-2.5 text-[#000e2a] no-underline text-[15px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> Academy </a><a href="/topic/cloud/" class="block px-4 py-2.5 text-[#000e2a] no-underline text-[15px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> Cloud </a><a href="/topic/innovation/" class="block px-4 py-2.5 text-[#000e2a] no-underline text-[15px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> Innovation </a><a href="/topic/smart-persons-guides/" class="block px-4 py-2.5 text-[#000e2a] no-underline text-[15px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> Cheat Sheets </a><a href="/topic/big-data/" class="block px-4 py-2.5 text-[#000e2a] no-underline text-[15px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> Big Data </a> <a href="https://www.techrepublic.com/topic/" class="block px-4 py-2.5 text-[#086bdb] no-underline text-[15px] font-bold hover:bg-gray-50">
View All Topics
</a> <div class="border-t border-gray-200 my-2"></div> <div class="px-4 py-2 text-[10px] font-bold uppercase tracking-wider text-gray-400">
Resources
</div> <a href="/premium/" class="block px-4 py-2.5 text-[#000e2a] no-underline text-[15px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> TechRepublic Premium </a><a href="https://academy.techrepublic.com/" class="block px-4 py-2.5 text-[#000e2a] no-underline text-[15px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> TechRepublic Academy </a><a href="/newsletters/" class="block px-4 py-2.5 text-[#000e2a] no-underline text-[15px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> Newsletters </a><a href="/resource-library/" class="block px-4 py-2.5 text-[#000e2a] no-underline text-[15px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> Resource Library </a><a href="/forums/" class="block px-4 py-2.5 text-[#000e2a] no-underline text-[15px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> Forums </a><a href="/sponsored/" class="block px-4 py-2.5 text-[#000e2a] no-underline text-[15px] hover:bg-gray-50 hover:text-[#086bdb] transition-colors duration-150"> Sponsored </a> </div> </div> </div> </tr-header> <astro-island uid="Zai9cf" prefix="s15" component-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/AudienceSurveyCta.BGpl7uo_.js" component-export="default" renderer-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/client.DJt-xfn4.js" props="{&quot;survey&quot;:[0,{&quot;url&quot;:[0,&quot;https://survey.alchemer.com/s3/8822709/Tech-Republic-Survey&quot;],&quot;startDate&quot;:[0,&quot;2026-05-04&quot;],&quot;endDate&quot;:[0,&quot;2026-05-29&quot;],&quot;title&quot;:[0,&quot;Welcome to the TechRepublic Audience Survey&quot;],&quot;body&quot;:[0,&quot;We're gathering insights from IT professionals, developers, and technology leaders to better understand our audience and improve our coverage. Takes less than 5 minutes.&quot;],&quot;bannerText&quot;:[0,&quot;Help shape TechRepublic's coverage — take our 5-minute audience survey.&quot;],&quot;ctaLabel&quot;:[0,&quot;Take the Survey&quot;]}],&quot;storageKey&quot;:[0,&quot;techrepublic_audience_survey_2026&quot;]}" ssr="" client="idle" opts="{&quot;name&quot;:&quot;AudienceSurveyCtaVue&quot;,&quot;value&quot;:true}" await-children=""><!--[--><!----><!----><!--]--><!--astro:end--></astro-island><div data-ad-slot="curtain" class="curtain data-empty:hidden print:hidden" data-unit-base="/5055/aw-techrepublic" data-category="author"></div> <div class="wrapper flex flex-col b techrepublic-com pt-5"> <div class="flex items-center justify-center min-h-[90px]! md:min-h-[130px]! print:hidden inline-top data-empty:hidden" data-ad-slot="inline-top">  </div>    <div class="text-[12px]/[13px] tracking-[1.2px] flex items-center space-x-2 font-mono text-gray-500"> <div class="py-1.5 uppercase font-semibold bg-primary text-primary-foreground hover:text-white hover:bg-primary/90 px-2"> Authors </div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="lucide w-4 text-primary lucide-chevron-right-icon lucide-chevron-right"><path d="m9 18 6-6-6-6" /></svg><div class="py-1.5 uppercase font-semibold"> Posts by Jason Hiner </div> </div> <div class="flex items-center flex-col md:flex-row gap-2 md:gap-8"> <div class="h-auto overflow-hidden rounded-full w-[77px] relative" data-lazyimage="">  <img alt="" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD//gA7Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcgSlBFRyB2NjIpLCBxdWFsaXR5ID0gOTAK/9sAQwADAgIDAgIDAwMDBAMDBAUIBQUEBAUKBwcGCAwKDAwLCgsLDQ4SEA0OEQ4LCxAWEBETFBUVFQwPFxgWFBgSFBUU/9sAQwEDBAQFBAUJBQUJFA0LDRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU/8AAEQgAUABQAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A8QsNRuPLt18qMIrk4x83416/qF9bRW9teRmJZpYUR5d20KCOAT2zzjpzj0rh7KK4srUrFbJPLPnyrt1w2O4HvWbqnhu/s3+029yyTBAktvcf6mcjJ2segOMY+tAHrfhOW017T3S1WSS6iA/dnC9zwo6dK1o9LW3lByHmUjam/cOfbp2ryrwp4xEF2kmq2ZtriIgb1kxKQvTg8SgYxjhumfU+hP8AFTwgUS5udThgnKk+QAyvkZzlADj8TQB6hpa3ItN6tHBuAySeQe2cc9qhlv7a0d47y4WSKVeQgGc/5z/k15npXxj0zWpWi0TS9T1u44A8qNtgPHPGRjr1I6fSl1zUfiDJBuTTtD8NqRkf2jexowyP7o3H1oA6jXtDglkSeFLhDIA0crwEEkHoSB836n61SsryPUoJdKvULbsI8cvzKwHXHv6Hsa8m1A+M41aabx74ZjkOQY31GVFP48CqE3jfx34Stftd5o9j4psVGftWk3i3CRjnk7Pm655zQAeONFj8MX9wlyN8mRtcDAI7HFYVjcHVYbm71S8LNGgS3iBwfbj0Fb+ua5qHjGxsr2/sk02w2B1hjYSFFJyAW7nn9awptAGpaxFZ2Jht5cEtPPIBH0z19aAOo0e4ltliEkjy7FO2MjOM9SPetrxv8O4vFuj2mr6TLcQParm6t/MO6VGXO9DnAPBVlOfukjvVOLTlxZ3ly7Kowksqxt5ayZ7n0r0nw5CRZz6elw7rGyXCyW/3njXJdR69d2PYjvQBxmifs82XxA8NWU81/fI5TJaK4OCPTB9K19O+APw++HwWfVpEu5U5I1C5wq+5HP8ASvYvg+Ybd7nSJXTENy8aMvAKn5lI/BhWl8Ufhz4uv7e4g8LjSbNZImxdXNos0hfHA+ZSoHuQfoaAON8Jav4S8QmTTNE8Q2VukQ+e20xTEoGcYL4yfzrtW8D6Fa6bJJcW8ToqlmZgPmHrmuP8AfBfxHo9tZNqEkb3ojb7fJDFHGjybiVKbY0wNu0Y7nJ9BXsPinwpBrHgZbIBkcsqSSLxj/PFAHxP8UL9/FmvPo+h6ZpWmWYGGu9WvY4c+6oW3H2wDmrVv4N1Pwl4O0nT7mOFbuFXdTbMSVBdirKevPX8a+hPB/7H+haVqN/PcQefLfReTcOSSsseVOCp46opyOePc5+af22viFrPw5+L1toGhvbxWEWkwN5ZhBKNvkGARyOAvFAGVMZPt1yuoYmaVPmDsd2f8axGvHtJStym6FhmONxtC9skV5Tc/G3XZHWSe1sZJlOfMMbZP/j1eg+H/H2l/EdN0NrJa6nFEouLdnDj03oe4/UUAey2M02nafeWbaqj2B2vJEPmDH1ArY8GeKF0QDUzDmO2LmS4kbYhQgjGT04rhfE3jjRvh5D/AGhqF4tr5nS3Ch5JsdVRM9Pc8D1r5z+KPx31b4ixNpVjG2i+HR1s4ny03vI3uf4Rx9cZoA+4/hr8QLLxj4mk1vSGddPuWjkiYnIYKWjJB75MbV9neFL1dRsY8hWBXkt1B/zmvzQ/Zcg1FPgla+J4V8y20fWLrTJY05JgKQzE49VabI9t9fcPw18cw3Wl201vKskTKNpVshhigD03xNd22j2hZuXchVUdyTgVm6NBNqum38GzYrZAB7EV5X4h+P2my6xe6V5IM6Zj8yYYBYDge3JBxxxk9sV53afE3xvZa6z6Rq1m1ncO3nW9zdRzSRAHA8tVbcSf91u1AH1NpurNbW6QzqFYDAfscV+Sn7cniZdd/aV8SmJi0VmlvaqfXESsf/HnI/CvrDxD8SfE/ha80zXPEmoLp2jRCVmcuQ8oUbn3J74OOnUcev5x+PPF8/jvxjrWvz5EupXclyVJ+4GYkL9AMD8KAM2abelN8P8AiOfwv4jtL+A/6tvnTs6d1P1GagLYhbFZM7ZdCPX+lAGzq+r33iLUZtQ1O6kvL2ZtzySHk/TsB6AcCqgYBTz1NIW2r7UyIhgc+tAH6A/8EtvEFh4rsPiH8MNSdVkvI4ta08t2dP3Ux9+Gh49A1ek+K/ht4r+C3iG5bSDINLLmWTTEzwSfvRHup67Rz1x6D8+f2e/i5c/Az4z+FvGVuziGwu1F3GnPmWz/ACTLjvlGbHvg9q/ea90vQ/iP4ftpZo4tQsLmNZ4JlP8ACwyGVhyMgjpQB8XfDDxja6vd62krQRXV3MHMhGdj42kFecAkD35x7107Q+PINSaDTdO0G10+QkHU2RmOM9sNnkV3XjP9jWz1e+lvtI1aS0uWGFZxtcen7xeuPdTWba/DnSfhrHcv8RfFGuy6VZQC4neyile3jXI/18kURYfQHpuJxxkA8F/ag+EOv+PvgZ4v8RafeTTW3hcxtKir8t2uVMxXgYWNCGOOMcdjX5rrEVJB7V/RdZeFfD154IuPDtnZRJoN5avbtbIhCvFIpDZzySwY5J5Oea/n6+KXgu4+HXxE8R+GLo759Iv57JnH8XluVDfiAD+NAHMFswsKyZG6+1abZ/SsqZcu2TgA0AW3kLHGaeNyDIGR1zUS4zUxIJ256dqAIpX8xvQV+z3/AATR+LyfFD9nmw0i6kP9r+F5P7Kl3H/WQqA0Df8AfBCf9sya/GBxhjX2B/wTG+K0ngb4+jwzPceTp3iy3NpgnCi6jBkgb6n94g95RQB+x+p6hFoWnzXlw7eTEu4qqlmb2AHU18u/Ezxj4hWz1vyYbLxdpurXLG4t/s4K2kYwBG6EkkqqBeQRkEsBnFfS19EdRtvnb50XGD0z618EaxrXifwxeeLviU+tw6XpzPMl1pMigG4QMQjR+jYGFJ5PHYYIB97eBLyDUfBeiXlvgRT2UMiqMHAKDj8OlfkJ/wAFL/hV/wAIF+0BNrMEeyz8RwC+BA4MwOyX/wBlP/Aq+8f2JfjYfFngXSfCeq209hrkVhLq1rbXLbpBp7XTrDvbAywVoxnHOa8r/wCCuHg9NQ+EnhbxKkYM+mao1szY5Ec0ZP8A6FGv50AflQ2Cayp4zJO+CAAen4VeafC5P5VWeFtpclQX5OTigD//2Q==" decoding="async" aria-hidden="true" class="aspect-square object-cover object-center h-auto overflow-hidden rounded-full w-[77px] absolute inset-0" style="z-index: -1"> <div data-blur="" class="absolute inset-0 transition-opacity duration-300" style="backdrop-filter: blur(20px); z-index: 1;"></div>  <img src="https://secure.gravatar.com/avatar/30e1c25316c4b054b8520908c7eea842?d=mm&r=g" srcset="https://secure.gravatar.com/avatar/30e1c25316c4b054b8520908c7eea842?d=mm&r=g 128w, https://secure.gravatar.com/avatar/30e1c25316c4b054b8520908c7eea842?d=mm&r=g 256w" alt="Jason Hiner" loading="lazy" fetchpriority="low" decoding="async" data-image="true" style="opacity:0" width="96" height="96" class="aspect-square object-cover object-center h-auto overflow-hidden rounded-full w-[77px] transition-opacity duration-300"> </div>  <div class="flex flex-col flex-wrap gap-2"> <h1 class="h1">Jason Hiner</h1>  <div class="hidden has-[a]:flex has-[button]:flex flex-row gap-2 mt-[10px] justify-center md:justify-start"> <astro-island uid="Z2hIDdr" prefix="s0" component-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/CopyFeedButton.CzCNpw2a.js" component-export="default" renderer-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/client.DJt-xfn4.js" props="{&quot;url&quot;:[0,&quot;https://www.techrepublic.com/author/jason-hiner/feed/&quot;]}" ssr="" client="idle" opts="{&quot;name&quot;:&quot;CopyFeedButton&quot;,&quot;value&quot;:true}" await-children=""><!--[--><!----><span class="sr-only" aria-live="polite" data-v-374d5e4b=""></span><!--]--><!--astro:end--></astro-island>       </div> </div> </div> <div class="grid md:grid-cols-12 gap-8"> <div class="md:col-span-8"> <div class="tabs" role="tablist"> <div class="border-t-2 border-secondary text-[20px]/[40px] flex"> <button class="tab text-secondary font-mono uppercase px-4 tab--active" role="tab" aria-label="Button" data-tab-trigger="about"><!----><!--[-->
About
<!--]--></button> <button class="tab text-secondary font-mono uppercase px-4" role="tab" aria-label="Button" data-tab-trigger="related-articles"><!----><!--[-->Jason's Articles
<!--]--></button> </div> <div class="py-10 styled-lists"> <div data-tab="about" class="font-sans" role="tabpanel"> <div class="prose">  <div>Jason Hiner is Editorial Director of CNET and former Editor in Chief of TechRepublic. He's co-author of the book, Follow the Geeks.</div>  </div>        </div> <div data-tab="related-articles" class="hidden" role="tabpanel">  <div> <div class="flex flex-col gap-7"> <div class="flex items-start justify-between gap-4"> <div class="text-[20px]/[28px] pt-[12px] tracking-[1.4px] font-bold uppercase grow text-secondary">  </div> <div class="hidden md:block">  </div> </div> <div> <div class="grid grid-cols-1 gap-6 md:grid-cols-3"><div class="space-y-[17px]"><div class="flex flex-col w-full"><a class="block group w-full overflow-hidden relative" href="/article/samsung-galaxy-s9-a-cheat-sheet/">  <div class="relative w-full aspect-video"> <div class="w-full h-full relative" data-lazyimage="">  <img alt="" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAUFBQUFBQUGBgUICAcICAsKCQkKCxEMDQwNDBEaEBMQEBMQGhcbFhUWGxcpIBwcICkvJyUnLzkzMzlHREddXX0BBQUFBQUFBQYGBQgIBwgICwoJCQoLEQwNDA0MERoQExAQExAaFxsWFRYbFykgHBwgKS8nJScvOTMzOUdER11dff/AABEIAAkAEAMBIgACEQEDEQH/xABhAAEBAQAAAAAAAAAAAAAAAAAGAwUQAAIBAwMFAAAAAAAAAAAAAAECAwAEBREhMhITM3KCAQEAAAAAAAAAAAAAAAAAAAAFEQEAAQQDAAAAAAAAAAAAAAABAgADERIhIjH/2gAMAwEAAhEDEQA/AAmOyNgLGJkcB+h2YDY6rxWsDPZmVMtaWkUwaHthpNQG1JBOxo7iuMXuajlPKn1R+0Ho2o5xw0tNm6zLiBg1PK//2Q==" decoding="async" aria-hidden="true" class="w-full h-full object-cover aspect-video absolute inset-0" style="z-index: -1"> <div data-blur="" class="absolute inset-0 transition-opacity duration-300" style="backdrop-filter: blur(20px); z-index: 1;"></div>  <img src="https://assets.techrepublic.com/uploads/2018/02/samsung-galaxy-s9-2400-5995.jpg?w=1024" srcset="https://assets.techrepublic.com/uploads/2018/02/samsung-galaxy-s9-2400-5995.jpg?w=128 128w, https://assets.techrepublic.com/uploads/2018/02/samsung-galaxy-s9-2400-5995.jpg?w=256 256w, https://assets.techrepublic.com/uploads/2018/02/samsung-galaxy-s9-2400-5995.jpg?w=512 512w" alt="Samsung Galaxy S9: A cheat sheet" loading="lazy" fetchpriority="auto" decoding="async" data-image="true" style="opacity:0" width="1024" height="527" class="w-full h-full object-cover aspect-video transition-opacity duration-300"> </div>   </div>  </a><a class="bg-primary overflow-hidden text-primary-foreground inline-block uppercase text-[12px] leading-[16px] font-mono font-semibold hover:bg-primary/90 self-start tracking-widest text-nowrap max-w-full text-ellipsis" href="/topic/mobility/"> <astro-island uid="Z1PAiVY" prefix="s1" component-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/Ticker.B5HV3EPZ.js" component-export="default" renderer-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/client.DJt-xfn4.js" props="{&quot;text&quot;:[0,&quot;Mobility&quot;]}" ssr="" client="idle" opts="{&quot;name&quot;:&quot;Ticker&quot;,&quot;value&quot;:true}" await-children=""><div class="ticker-container px-[8px] py-[6px] flex" style="--scroll-distance:-0px;" data-v-34ac2891=""><span class="w-full truncate ticker-text" data-v-34ac2891="">Mobility</span></div><!--astro:end--></astro-island> </a></div><a class="font-semibold text-secondary hover:text-primary line-clamp-3 text-ellipsis md:text-[18px]/[22px] text-[18px]/[22px]" href="/article/samsung-galaxy-s9-a-cheat-sheet/"> Samsung Galaxy S9: A cheat sheet </a><div class="md:block hidden"><div class="font-light text-zinc-800 line-clamp-3 text-ellipsis text-[14px]"><p></p><p>The 2018 version of Samsung’s flagship smartphones, the Galaxy S9 and S9 Plus, are here. And, they sport several new features to appeal to professionals and the enterprise.</p>
<p></p></div></div><div class="gap-x-7 mt-2 uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500 flex flex-col"><div class="text-secondary font-semibold"></div><div class="uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500">Feb 25, 2018</div></div></div><div class="space-y-[17px]"><div class="flex flex-col w-full"><a class="block group w-full overflow-hidden relative" href="/article/how-the-nfl-and-amazon-unleashed-next-gen-stats-to-grok-football-games/">  <div class="relative w-full aspect-video"> <div class="w-full h-full relative" data-lazyimage="">  <img alt="" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAUFBQUFBQUGBgUICAcICAsKCQkKCxEMDQwNDBEaEBMQEBMQGhcbFhUWGxcpIBwcICkvJyUnLzkzMzlHREddXX0BBQUFBQUFBQYGBQgIBwgICwoJCQoLEQwNDA0MERoQExAQExAaFxsWFRYbFykgHBwgKS8nJScvOTMzOUdER11dff/AABEIAAwAEAMBIgACEQEDEQH/xABeAAADAQAAAAAAAAAAAAAAAAADBQYIEAACAgICAgMBAAAAAAAAAAACAwEEBQYAEQcSEzFRYQEBAAAAAAAAAAAAAAAAAAAAAhEBAAMBAAAAAAAAAAAAAAAAAQACERL/2gAMAwEAAhEDEQA/AJvalVbXlHZlznQrxOTtiyLEdgHrESXUfnrwumsCPJOpVLuZGGhbrtVKoGAd8k+wD0v9ieaKveLNAy2TyWSyGtps3Ljya9pmzsjL+QXGWF8YaJiLqLuO19VWxXcDVmtjY6MPqZiS4u7BnTE3cwCf/9k=" decoding="async" aria-hidden="true" class="w-full h-full object-cover aspect-video absolute inset-0" style="z-index: -1"> <div data-blur="" class="absolute inset-0 transition-opacity duration-300" style="backdrop-filter: blur(20px); z-index: 1;"></div>  <img src="https://assets.techrepublic.com/uploads/2018/02/next-gen-stats-1.jpg?w=1024" srcset="https://assets.techrepublic.com/uploads/2018/02/next-gen-stats-1.jpg?w=128 128w, https://assets.techrepublic.com/uploads/2018/02/next-gen-stats-1.jpg?w=256 256w, https://assets.techrepublic.com/uploads/2018/02/next-gen-stats-1.jpg?w=512 512w" alt="How the NFL and Amazon unleashed ‘Next Gen Stats’ to grok football games" loading="lazy" fetchpriority="auto" decoding="async" data-image="true" style="opacity:0" width="1024" height="773" class="w-full h-full object-cover aspect-video transition-opacity duration-300"> </div>   </div>  </a><a class="bg-primary overflow-hidden text-primary-foreground inline-block uppercase text-[12px] leading-[16px] font-mono font-semibold hover:bg-primary/90 self-start tracking-widest text-nowrap max-w-full text-ellipsis" href="/topic/big-data/"> <astro-island uid="ZYhayM" prefix="s2" component-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/Ticker.B5HV3EPZ.js" component-export="default" renderer-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/client.DJt-xfn4.js" props="{&quot;text&quot;:[0,&quot;Big Data&quot;]}" ssr="" client="idle" opts="{&quot;name&quot;:&quot;Ticker&quot;,&quot;value&quot;:true}" await-children=""><div class="ticker-container px-[8px] py-[6px] flex" style="--scroll-distance:-0px;" data-v-34ac2891=""><span class="w-full truncate ticker-text" data-v-34ac2891="">Big Data</span></div><!--astro:end--></astro-island> </a></div><a class="font-semibold text-secondary hover:text-primary line-clamp-3 text-ellipsis md:text-[18px]/[22px] text-[18px]/[22px]" href="/article/how-the-nfl-and-amazon-unleashed-next-gen-stats-to-grok-football-games/"> How the NFL and Amazon unleashed ‘Next Gen Stats’ to grok football games </a><div class="md:block hidden"><div class="font-light text-zinc-800 line-clamp-3 text-ellipsis text-[14px]"><p></p><p>Amazon Web Services’ combination of cloud, data science, and machine learning has provided a whole new lens to understand football. Here’s the inside story of the NFL’s big data experiment.</p>
<p></p></div></div><div class="gap-x-7 mt-2 uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500 flex flex-col"><div class="text-secondary font-semibold"></div><div class="uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500">Feb 2, 2018</div></div></div><div class="space-y-[17px]"><div class="flex flex-col w-full"><a class="block group w-full overflow-hidden relative" href="/article/4-secrets-how-to-take-professional-photos-with-your-smartphone/">  <div class="relative w-full aspect-video"> <div class="w-full h-full relative" data-lazyimage="">  <img alt="" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAUFBQUFBQUGBgUICAcICAsKCQkKCxEMDQwNDBEaEBMQEBMQGhcbFhUWGxcpIBwcICkvJyUnLzkzMzlHREddXX0BBQUFBQUFBQYGBQgIBwgICwoJCQoLEQwNDA0MERoQExAQExAaFxsWFRYbFykgHBwgKS8nJScvOTMzOUdER11dff/AABEIAAwAEAMBIgACEQEDEQH/xABiAAEBAAAAAAAAAAAAAAAAAAAGBxAAAQQBBQADAAAAAAAAAAAAAQIDBBESAAUGEyEUIlEBAQEAAAAAAAAAAAAAAAAAAAAEEQABBAIDAAAAAAAAAAAAAAABAAIEEQMSISJB/9oADAMBAAIRAxEAPwBRyPm8Xf2ZZYipbjdBQnsPa4PfcVfp1NNgbRuMl+MMrWk4pqrUPRWkWxbBBmy/ivl1UePF7EtZ0FK8P2qjpG1AgQ3y9FgsMukY5oRSqIoi9TxoT5HcvFXyfUfnGIgakml//9k=" decoding="async" aria-hidden="true" class="w-full h-full object-cover aspect-video absolute inset-0" style="z-index: -1"> <div data-blur="" class="absolute inset-0 transition-opacity duration-300" style="backdrop-filter: blur(20px); z-index: 1;"></div>  <img src="https://assets.techrepublic.com/uploads/2017/08/00-smartphone-photo-tips.jpg?w=1024" srcset="https://assets.techrepublic.com/uploads/2017/08/00-smartphone-photo-tips.jpg?w=128 128w, https://assets.techrepublic.com/uploads/2017/08/00-smartphone-photo-tips.jpg?w=256 256w, https://assets.techrepublic.com/uploads/2017/08/00-smartphone-photo-tips.jpg?w=512 512w" alt="4 secrets: How to take professional photos with your smartphone" loading="lazy" fetchpriority="auto" decoding="async" data-image="true" style="opacity:0" width="1024" height="768" class="w-full h-full object-cover aspect-video transition-opacity duration-300"> </div>   </div>  </a><a class="bg-primary overflow-hidden text-primary-foreground inline-block uppercase text-[12px] leading-[16px] font-mono font-semibold hover:bg-primary/90 self-start tracking-widest text-nowrap max-w-full text-ellipsis" href="/topic/mobility/"> <astro-island uid="Z1PAiVY" prefix="s3" component-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/Ticker.B5HV3EPZ.js" component-export="default" renderer-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/client.DJt-xfn4.js" props="{&quot;text&quot;:[0,&quot;Mobility&quot;]}" ssr="" client="idle" opts="{&quot;name&quot;:&quot;Ticker&quot;,&quot;value&quot;:true}" await-children=""><div class="ticker-container px-[8px] py-[6px] flex" style="--scroll-distance:-0px;" data-v-34ac2891=""><span class="w-full truncate ticker-text" data-v-34ac2891="">Mobility</span></div><!--astro:end--></astro-island> </a></div><a class="font-semibold text-secondary hover:text-primary line-clamp-3 text-ellipsis md:text-[18px]/[22px] text-[18px]/[22px]" href="/article/4-secrets-how-to-take-professional-photos-with-your-smartphone/"> 4 secrets: How to take professional photos with your smartphone </a><div class="md:block hidden"><div class="font-light text-zinc-800 line-clamp-3 text-ellipsis text-[14px]"><p></p><p>Smartphone cameras get better each year, and we’ve put together a series of photography tips on how to use your phone to take professional photos that your business can use for marketing and more.</p>
<p></p></div></div><div class="gap-x-7 mt-2 uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500 flex flex-col"><div class="text-secondary font-semibold"></div><div class="uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500">Aug 11, 2017</div></div></div><div class="space-y-[17px]"><div class="flex flex-col w-full"><a class="block group w-full overflow-hidden relative" href="/article/10-years-of-iphone-innovation-the-top-features-apple-launched-with-each-new-iphone/">  <div class="relative w-full aspect-video"> <div class="w-full h-full relative" data-lazyimage="">  <img alt="" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAUFBQUFBQUGBgUICAcICAsKCQkKCxEMDQwNDBEaEBMQEBMQGhcbFhUWGxcpIBwcICkvJyUnLzkzMzlHREddXX0BBQUFBQUFBQYGBQgIBwgICwoJCQoLEQwNDA0MERoQExAQExAaFxsWFRYbFykgHBwgKS8nJScvOTMzOUdER11dff/AABEIAAwAEAMBIgACEQEDEQH/xABhAAEBAQAAAAAAAAAAAAAAAAAFAQYQAAICAgMAAwEAAAAAAAAAAAECAwQFEQAGEhQVIVIBAQEAAAAAAAAAAAAAAAAAAAQFEQABBAMBAAAAAAAAAAAAAAABAgMRIQAEMSP/2gAMAwEAAhEDEQA/AM/17PdgTOTfbWbT3om+NYW35aUBdOrKH2B55e4w5SBbE81xXoxkgxMpJLSEsF0miyjZI4Z2i/NFl6+S0j24alV1kdfWyP6B/G492W3avVoa1uYyxTVUkIKqmiu2HnwFAHAP+KgxNqcpQiYNQcp6zAdDmwDSWzKST3sjP//Z" decoding="async" aria-hidden="true" class="w-full h-full object-cover aspect-video absolute inset-0" style="z-index: -1"> <div data-blur="" class="absolute inset-0 transition-opacity duration-300" style="backdrop-filter: blur(20px); z-index: 1;"></div>  <img src="https://assets.techrepublic.com/uploads/2017/06/cnet-sarah-tew-iphone-6s.jpg?w=1024" srcset="https://assets.techrepublic.com/uploads/2017/06/cnet-sarah-tew-iphone-6s.jpg?w=128 128w, https://assets.techrepublic.com/uploads/2017/06/cnet-sarah-tew-iphone-6s.jpg?w=256 256w, https://assets.techrepublic.com/uploads/2017/06/cnet-sarah-tew-iphone-6s.jpg?w=512 512w" alt="10 years of iPhone innovation: The top features Apple launched with each new iPhone" loading="lazy" fetchpriority="auto" decoding="async" data-image="true" style="opacity:0" width="1024" height="728" class="w-full h-full object-cover aspect-video transition-opacity duration-300"> </div>   </div>  </a><a class="bg-primary overflow-hidden text-primary-foreground inline-block uppercase text-[12px] leading-[16px] font-mono font-semibold hover:bg-primary/90 self-start tracking-widest text-nowrap max-w-full text-ellipsis" href="/topic/mobility/"> <astro-island uid="Z1PAiVY" prefix="s4" component-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/Ticker.B5HV3EPZ.js" component-export="default" renderer-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/client.DJt-xfn4.js" props="{&quot;text&quot;:[0,&quot;Mobility&quot;]}" ssr="" client="idle" opts="{&quot;name&quot;:&quot;Ticker&quot;,&quot;value&quot;:true}" await-children=""><div class="ticker-container px-[8px] py-[6px] flex" style="--scroll-distance:-0px;" data-v-34ac2891=""><span class="w-full truncate ticker-text" data-v-34ac2891="">Mobility</span></div><!--astro:end--></astro-island> </a></div><a class="font-semibold text-secondary hover:text-primary line-clamp-3 text-ellipsis md:text-[18px]/[22px] text-[18px]/[22px]" href="/article/10-years-of-iphone-innovation-the-top-features-apple-launched-with-each-new-iphone/"> 10 years of iPhone innovation: The top features Apple launched with each new iPhone </a><div class="md:block hidden"><div class="font-light text-zinc-800 line-clamp-3 text-ellipsis text-[14px]"><p></p><p>At times the iPhone led the smartphone market, other times it followed. But, the new features that accompanied each new iPhone release steadily made these devices more intrinsic in our daily lives.</p>
<p></p></div></div><div class="gap-x-7 mt-2 uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500 flex flex-col"><div class="text-secondary font-semibold"></div><div class="uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500">Jun 28, 2017</div></div></div><div class="space-y-[17px]"><div class="flex flex-col w-full"><a class="block group w-full overflow-hidden relative" href="/article/samsung-galaxy-s8-and-s8-plus-the-smart-persons-guide/">  <div class="relative w-full aspect-video"> <div class="w-full h-full relative" data-lazyimage="">  <img alt="" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAUFBQUFBQUGBgUICAcICAsKCQkKCxEMDQwNDBEaEBMQEBMQGhcbFhUWGxcpIBwcICkvJyUnLzkzMzlHREddXX0BBQUFBQUFBQYGBQgIBwgICwoJCQoLEQwNDA0MERoQExAQExAaFxsWFRYbFykgHBwgKS8nJScvOTMzOUdER11dff/AABEIAAoAEAMBIgACEQEDEQH/xABmAAEBAQAAAAAAAAAAAAAAAAAGAAQQAAIBBAIBBQAAAAAAAAAAAAECAwUGERIABAcTFBUhQQEBAQAAAAAAAAAAAAAAAAAAAwQRAAIBBAIDAAAAAAAAAAAAAAECAwAEElEFERNhcf/aAAwDAQACEQMRAD8AM2hX+p3r1o1PaFJY/dazCZQ0empyTnIwOZPJtNimu+qfET9cSFoyKeNEYDQZ9LQlDk/evAdmANcdWDDIMGDn9BblQ0R6h3XdAzCWQhiMkHJ4U/IXHkkCtiVUHsa1VENrEEikYZZkr89iv//Z" decoding="async" aria-hidden="true" class="w-full h-full object-cover aspect-video absolute inset-0" style="z-index: -1"> <div data-blur="" class="absolute inset-0 transition-opacity duration-300" style="backdrop-filter: blur(20px); z-index: 1;"></div>  <img src="https://assets.techrepublic.com/uploads/2017/03/01-galaxy-s8-display.jpg?w=1024" srcset="https://assets.techrepublic.com/uploads/2017/03/01-galaxy-s8-display.jpg?w=128 128w, https://assets.techrepublic.com/uploads/2017/03/01-galaxy-s8-display.jpg?w=256 256w, https://assets.techrepublic.com/uploads/2017/03/01-galaxy-s8-display.jpg?w=512 512w" alt="Samsung Galaxy S8 and S8 Plus: The smart person’s guide" loading="lazy" fetchpriority="auto" decoding="async" data-image="true" style="opacity:0" width="1024" height="684" class="w-full h-full object-cover aspect-video transition-opacity duration-300"> </div>   </div>  </a><a class="bg-primary overflow-hidden text-primary-foreground inline-block uppercase text-[12px] leading-[16px] font-mono font-semibold hover:bg-primary/90 self-start tracking-widest text-nowrap max-w-full text-ellipsis" href="/topic/hardware/"> <astro-island uid="2pVRNB" prefix="s5" component-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/Ticker.B5HV3EPZ.js" component-export="default" renderer-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/client.DJt-xfn4.js" props="{&quot;text&quot;:[0,&quot;Hardware&quot;]}" ssr="" client="idle" opts="{&quot;name&quot;:&quot;Ticker&quot;,&quot;value&quot;:true}" await-children=""><div class="ticker-container px-[8px] py-[6px] flex" style="--scroll-distance:-0px;" data-v-34ac2891=""><span class="w-full truncate ticker-text" data-v-34ac2891="">Hardware</span></div><!--astro:end--></astro-island> </a></div><a class="font-semibold text-secondary hover:text-primary line-clamp-3 text-ellipsis md:text-[18px]/[22px] text-[18px]/[22px]" href="/article/samsung-galaxy-s8-and-s8-plus-the-smart-persons-guide/"> Samsung Galaxy S8 and S8 Plus: The smart person’s guide </a><div class="md:block hidden"><div class="font-light text-zinc-800 line-clamp-3 text-ellipsis text-[14px]"><p></p><p>In revealing its latest flagship device, Samsung has broken new ground in several ways with the Galaxy S8. We analyze the details and the implications for the enterprise.</p>
<p></p></div></div><div class="gap-x-7 mt-2 uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500 flex flex-col"><div class="text-secondary font-semibold"></div><div class="uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500">Apr 18, 2017</div></div></div><div class="space-y-[17px]"><div class="flex flex-col w-full"><a class="block group w-full overflow-hidden relative" href="/article/the-future-of-ai-10-scenarios-ibm-is-already-working-on/">  <div class="relative w-full aspect-video"> <div class="w-full h-full relative" data-lazyimage="">  <img alt="" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAUFBQUFBQUGBgUICAcICAsKCQkKCxEMDQwNDBEaEBMQEBMQGhcbFhUWGxcpIBwcICkvJyUnLzkzMzlHREddXX0BBQUFBQUFBQYGBQgIBwgICwoJCQoLEQwNDA0MERoQExAQExAaFxsWFRYbFykgHBwgKS8nJScvOTMzOUdER11dff/AABEIAAoAEAMBIgACEQEDEQH/xABbAAEBAQAAAAAAAAAAAAAAAAAGBQgQAAEDAwUBAQAAAAAAAAAAAAIBAwQABREGBxIiMRNRAQEBAAAAAAAAAAAAAAAAAAAAAREBAQAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAhEDEQA/AKcEbNtpbo13kRldmOG2AR3Or5Ivh8P1Fx1WnFt3e03qUQh3ewD88i8jD4CY5b8IULKKQ1kjcWZLK4wyKU6pcFXKmvq0ER51EYP6nz5j2yufcVZB/9k=" decoding="async" aria-hidden="true" class="w-full h-full object-cover aspect-video absolute inset-0" style="z-index: -1"> <div data-blur="" class="absolute inset-0 transition-opacity duration-300" style="backdrop-filter: blur(20px); z-index: 1;"></div>  <img src="https://assets.techrepublic.com/uploads/2017/03/ibm-watson-munich.jpg?w=1024" srcset="https://assets.techrepublic.com/uploads/2017/03/ibm-watson-munich.jpg?w=128 128w, https://assets.techrepublic.com/uploads/2017/03/ibm-watson-munich.jpg?w=256 256w, https://assets.techrepublic.com/uploads/2017/03/ibm-watson-munich.jpg?w=512 512w" alt="The future of AI: 10 scenarios IBM is already working on" loading="lazy" fetchpriority="auto" decoding="async" data-image="true" style="opacity:0" width="1024" height="683" class="w-full h-full object-cover aspect-video transition-opacity duration-300"> </div>   </div>  </a><a class="bg-primary overflow-hidden text-primary-foreground inline-block uppercase text-[12px] leading-[16px] font-mono font-semibold hover:bg-primary/90 self-start tracking-widest text-nowrap max-w-full text-ellipsis" href="/topic/innovation/"> <astro-island uid="Z1aFiTG" prefix="s6" component-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/Ticker.B5HV3EPZ.js" component-export="default" renderer-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/client.DJt-xfn4.js" props="{&quot;text&quot;:[0,&quot;Innovation&quot;]}" ssr="" client="idle" opts="{&quot;name&quot;:&quot;Ticker&quot;,&quot;value&quot;:true}" await-children=""><div class="ticker-container px-[8px] py-[6px] flex" style="--scroll-distance:-0px;" data-v-34ac2891=""><span class="w-full truncate ticker-text" data-v-34ac2891="">Innovation</span></div><!--astro:end--></astro-island> </a></div><a class="font-semibold text-secondary hover:text-primary line-clamp-3 text-ellipsis md:text-[18px]/[22px] text-[18px]/[22px]" href="/article/the-future-of-ai-10-scenarios-ibm-is-already-working-on/"> The future of AI: 10 scenarios IBM is already working on </a><div class="md:block hidden"><div class="font-light text-zinc-800 line-clamp-3 text-ellipsis text-[14px]"><p></p><p>While there’s fear about artificial intelligence taking jobs or wiping out humanity, IBM sees the future in far more practical terms. It’s using AI to assist human problem-solving.</p>
<p></p></div></div><div class="gap-x-7 mt-2 uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500 flex flex-col"><div class="text-secondary font-semibold"></div><div class="uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500">Mar 23, 2017</div></div></div><div class="space-y-[17px]"><div class="flex flex-col w-full"><a class="block group w-full overflow-hidden relative" href="/article/apples-first-employee-the-remarkable-odyssey-of-bill-fernandez/">  <div class="relative w-full aspect-video"> <div class="w-full h-full relative" data-lazyimage="">  <img alt="" src="data:image/avif;base64,AAAAGGZ0eXBhdmlmAAAAAG1pZjFtaWFmAAAA0m1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAHBpY3QAAAAAAAAAAAAAAAAAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAAA8gAAALcAAAAjaWluZgAAAAAAAQAAABVpbmZlAgAAAAABAABhdjAxAAAAAFZpcHJwAAAAOGlwY28AAAAUaXNwZQAAAAAAAAAQAAAAFAAAAAxhdjFDgT9AAAAAABBwaXhpAAAAAAMKCgoAAAAWaXBtYQAAAAAAAAABAAEDAYIDAAAAv21kYXQSAAoIP80+ZGAhoNoyqAFlmjNDJxX8/mAgYBBAAAAAAAABJJJIAOywlN541pNaQcZ5WFsbr1l43m5QhSHiCX7zQs+49gpI6fQAWfaRkPiqhlPETJ3YOd6Dih2oz51sls8Cl+Uz9767pSifVUj9kfrp/cy30/5lwGbvrrhulxpmUkppLVWmjmgQ+j5VjuEul3ckPJth6wf+kCX/qEXLxLmtltCEGAtsNnPgTYFLG/gjZIVkPaxzMFg=" decoding="async" aria-hidden="true" class="w-full h-full object-cover aspect-video absolute inset-0" style="z-index: -1"> <div data-blur="" class="absolute inset-0 transition-opacity duration-300" style="backdrop-filter: blur(20px); z-index: 1;"></div>  <img src="https://assets.techrepublic.com/uploads/2014/12/fernandez-pdf-cover.jpg?w=512" srcset="https://assets.techrepublic.com/uploads/2014/12/fernandez-pdf-cover.jpg?w=128 128w, https://assets.techrepublic.com/uploads/2014/12/fernandez-pdf-cover.jpg?w=256 256w, https://assets.techrepublic.com/uploads/2014/12/fernandez-pdf-cover.jpg?w=512 512w" alt="Apple’s first employee: The remarkable odyssey of Bill Fernandez" loading="lazy" fetchpriority="auto" decoding="async" data-image="true" style="opacity:0" width="512" height="662" class="w-full h-full object-cover aspect-video transition-opacity duration-300"> </div>   </div>  </a><a class="bg-primary overflow-hidden text-primary-foreground inline-block uppercase text-[12px] leading-[16px] font-mono font-semibold hover:bg-primary/90 self-start tracking-widest text-nowrap max-w-full text-ellipsis" href="/topic/hardware/"> <astro-island uid="2pVRNB" prefix="s7" component-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/Ticker.B5HV3EPZ.js" component-export="default" renderer-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/client.DJt-xfn4.js" props="{&quot;text&quot;:[0,&quot;Hardware&quot;]}" ssr="" client="idle" opts="{&quot;name&quot;:&quot;Ticker&quot;,&quot;value&quot;:true}" await-children=""><div class="ticker-container px-[8px] py-[6px] flex" style="--scroll-distance:-0px;" data-v-34ac2891=""><span class="w-full truncate ticker-text" data-v-34ac2891="">Hardware</span></div><!--astro:end--></astro-island> </a></div><a class="font-semibold text-secondary hover:text-primary line-clamp-3 text-ellipsis md:text-[18px]/[22px] text-[18px]/[22px]" href="/article/apples-first-employee-the-remarkable-odyssey-of-bill-fernandez/"> Apple’s first employee: The remarkable odyssey of Bill Fernandez </a><div class="md:block hidden"><div class="font-light text-zinc-800 line-clamp-3 text-ellipsis text-[14px]"><p></p><p>Perhaps best known as the guy who introduced Steve Jobs and Steve Wozniak, Bill Fernandez speaks out on Apple’s founding magic, how love built the first Mac, and the interface of the future.</p>
<p></p></div></div><div class="gap-x-7 mt-2 uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500 flex flex-col"><div class="text-secondary font-semibold"></div><div class="uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500">Dec 5, 2014</div></div></div><div class="space-y-[17px]"><div class="flex flex-col w-full"><a class="block group w-full overflow-hidden relative" href="/article/aaron-levie-the-most-refreshing-voice-in-the-enterprise/">  <div class="relative w-full aspect-video"> <div class="w-full h-full relative">  <img src="https://assets.techrepublic.com/uploads/2013/12/aaron-levie-ceo-box-615x344.jpg" alt="Aaron Levie: The most refreshing voice in the enterprise" data-image="" class="transition-opacity duration-300" style="opacity:1"> </div>   </div>  </a><a class="bg-primary overflow-hidden text-primary-foreground inline-block uppercase text-[12px] leading-[16px] font-mono font-semibold hover:bg-primary/90 self-start tracking-widest text-nowrap max-w-full text-ellipsis" href="/topic/cxo/"> <astro-island uid="1UAoeo" prefix="s8" component-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/Ticker.B5HV3EPZ.js" component-export="default" renderer-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/client.DJt-xfn4.js" props="{&quot;text&quot;:[0,&quot;CXO&quot;]}" ssr="" client="idle" opts="{&quot;name&quot;:&quot;Ticker&quot;,&quot;value&quot;:true}" await-children=""><div class="ticker-container px-[8px] py-[6px] flex" style="--scroll-distance:-0px;" data-v-34ac2891=""><span class="w-full truncate ticker-text" data-v-34ac2891="">CXO</span></div><!--astro:end--></astro-island> </a></div><a class="font-semibold text-secondary hover:text-primary line-clamp-3 text-ellipsis md:text-[18px]/[22px] text-[18px]/[22px]" href="/article/aaron-levie-the-most-refreshing-voice-in-the-enterprise/"> Aaron Levie: The most refreshing voice in the enterprise </a><div class="md:block hidden"><div class="font-light text-zinc-800 line-clamp-3 text-ellipsis text-[14px]"><p></p><p>Box CEO Aaron Levie sees creative disruption happening in today’s enterprise IT. Hear what one of the enterprise’s boldest thinkers has to say about the future.</p>
<p></p></div></div><div class="gap-x-7 mt-2 uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500 flex flex-col"><div class="text-secondary font-semibold"></div><div class="uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500">Dec 27, 2013</div></div></div><div class="space-y-[17px]"><div class="flex flex-col w-full"><a class="block group w-full overflow-hidden relative" href="/article/the-internet-of-things-what-you-need-to-know/">  <div class="relative w-full aspect-video"> <div class="w-full h-full relative" data-lazyimage="">  <img alt="" src="data:image/avif;base64,AAAAGGZ0eXBhdmlmAAAAAG1pZjFtaWFmAAAA0m1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAHBpY3QAAAAAAAAAAAAAAAAAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAAA8gAAAP8AAAAjaWluZgAAAAAAAQAAABVpbmZlAgAAAAABAABhdjAxAAAAAFZpcHJwAAAAOGlwY28AAAAUaXNwZQAAAAAAAAAQAAAAEgAAAAxhdjFDgT9AAAAAABBwaXhpAAAAAAMKCgoAAAAWaXBtYQAAAAAAAAABAAEDAYIDAAABB21kYXQSAAoIP80+JGAhoNoy8AFlqjdDJRX6/6AgABAYAAAAAAABRRRQALe+6C3BPEvjhu4pNnwxu1W4sGrq2g8RsJ488i5aiy0W7lqSaiEbLYC8f2lmAQxUrSYuJ9GKoC1/1UhJdLOjI87eOiuhNNO5h6nFE0JzGgNrc/HA8vmcph4YlRtvmO70hJlqrbbrQt5PcASyHeuvFwuwGc8seBxl54ELpo4e9ghkDoGF5q01SVzBpuL0weCseei/P94V1cnTOKLA8oAJUR+B1ZeldEIsJQ455M6oTAx37hlC/gjBf+5J8NJxvkf8ZmUWEj+hubJsv+1gpd0NHMjLaTsVxXq2irA=" decoding="async" aria-hidden="true" class="w-full h-full object-cover aspect-video absolute inset-0" style="z-index: -1"> <div data-blur="" class="absolute inset-0 transition-opacity duration-300" style="backdrop-filter: blur(20px); z-index: 1;"></div>  <img src="https://assets.techrepublic.com/uploads/2013/07/2-zdnet-m2m-special-feature-201301.jpg?w=512" srcset="https://assets.techrepublic.com/uploads/2013/07/2-zdnet-m2m-special-feature-201301.jpg?w=128 128w, https://assets.techrepublic.com/uploads/2013/07/2-zdnet-m2m-special-feature-201301.jpg?w=256 256w, https://assets.techrepublic.com/uploads/2013/07/2-zdnet-m2m-special-feature-201301.jpg?w=512 512w" alt="The Internet of Things: What you need to know" loading="lazy" fetchpriority="auto" decoding="async" data-image="true" style="opacity:0" width="512" height="661" class="w-full h-full object-cover aspect-video transition-opacity duration-300"> </div>   </div>  </a><a class="bg-primary overflow-hidden text-primary-foreground inline-block uppercase text-[12px] leading-[16px] font-mono font-semibold hover:bg-primary/90 self-start tracking-widest text-nowrap max-w-full text-ellipsis" href="/topic/internet-of-things/"> <astro-island uid="Z1JPXgj" prefix="s9" component-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/Ticker.B5HV3EPZ.js" component-export="default" renderer-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/client.DJt-xfn4.js" props="{&quot;text&quot;:[0,&quot;Internet of Things&quot;]}" ssr="" client="idle" opts="{&quot;name&quot;:&quot;Ticker&quot;,&quot;value&quot;:true}" await-children=""><div class="ticker-container px-[8px] py-[6px] flex" style="--scroll-distance:-0px;" data-v-34ac2891=""><span class="w-full truncate ticker-text" data-v-34ac2891="">Internet of Things</span></div><!--astro:end--></astro-island> </a></div><a class="font-semibold text-secondary hover:text-primary line-clamp-3 text-ellipsis md:text-[18px]/[22px] text-[18px]/[22px]" href="/article/the-internet-of-things-what-you-need-to-know/"> The Internet of Things: What you need to know </a><div class="md:block hidden"><div class="font-light text-zinc-800 line-clamp-3 text-ellipsis text-[14px]"><p></p><p>The Internet of Things has emerged as one of IT’s hottest trends of 2013. We have a great set of resources to help you figure out how it can help your business.</p>
<p></p></div></div><div class="gap-x-7 mt-2 uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500 flex flex-col"><div class="text-secondary font-semibold"></div><div class="uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500">May 23, 2013</div></div></div><div class="space-y-[17px]"><div class="flex flex-col w-full"><a class="block group w-full overflow-hidden relative" href="/article/how-to-use-pin-tab-to-organize-your-work-in-google-chrome/">  <div class="relative w-full aspect-video"> <div class="h-full w-full bg-primary/10 flex items-center justify-center aspect-video"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide w-12 h-12 text-primary/40 lucide-image-icon lucide-image" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2" ry="2" /><circle cx="9" cy="9" r="2" /><path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21" /></svg></div>  </div>  </a><a class="bg-primary overflow-hidden text-primary-foreground inline-block uppercase text-[12px] leading-[16px] font-mono font-semibold hover:bg-primary/90 self-start tracking-widest text-nowrap max-w-full text-ellipsis" href="/topic/innovation/"> <astro-island uid="Z1aFiTG" prefix="s10" component-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/Ticker.B5HV3EPZ.js" component-export="default" renderer-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/client.DJt-xfn4.js" props="{&quot;text&quot;:[0,&quot;Innovation&quot;]}" ssr="" client="idle" opts="{&quot;name&quot;:&quot;Ticker&quot;,&quot;value&quot;:true}" await-children=""><div class="ticker-container px-[8px] py-[6px] flex" style="--scroll-distance:-0px;" data-v-34ac2891=""><span class="w-full truncate ticker-text" data-v-34ac2891="">Innovation</span></div><!--astro:end--></astro-island> </a></div><a class="font-semibold text-secondary hover:text-primary line-clamp-3 text-ellipsis md:text-[18px]/[22px] text-[18px]/[22px]" href="/article/how-to-use-pin-tab-to-organize-your-work-in-google-chrome/"> How to use ‘Pin Tab’ to organize your work in Google Chrome </a><div class="md:block hidden"><div class="font-light text-zinc-800 line-clamp-3 text-ellipsis text-[14px]"><p></p><p>Google Chrome’s “Pin Tab” feature is an often-overlooked option that can help power users organize their work in the browser and manage tab creep.</p>
<p></p></div></div><div class="gap-x-7 mt-2 uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500 flex flex-col"><div class="text-secondary font-semibold"></div><div class="uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500">Feb 20, 2013</div></div></div><div class="space-y-[17px]"><div class="flex flex-col w-full"><a class="block group w-full overflow-hidden relative" href="/article/will-ftc-derail-larry-pages-supersized-ambitions-for-google/">  <div class="relative w-full aspect-video"> <div class="h-full w-full bg-primary/10 flex items-center justify-center aspect-video"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide w-12 h-12 text-primary/40 lucide-image-icon lucide-image" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2" ry="2" /><circle cx="9" cy="9" r="2" /><path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21" /></svg></div>  </div>  </a><a class="bg-primary overflow-hidden text-primary-foreground inline-block uppercase text-[12px] leading-[16px] font-mono font-semibold hover:bg-primary/90 self-start tracking-widest text-nowrap max-w-full text-ellipsis" href="/topic/collaboration/"> <astro-island uid="Zzmqtd" prefix="s11" component-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/Ticker.B5HV3EPZ.js" component-export="default" renderer-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/client.DJt-xfn4.js" props="{&quot;text&quot;:[0,&quot;Collaboration&quot;]}" ssr="" client="idle" opts="{&quot;name&quot;:&quot;Ticker&quot;,&quot;value&quot;:true}" await-children=""><div class="ticker-container px-[8px] py-[6px] flex" style="--scroll-distance:-0px;" data-v-34ac2891=""><span class="w-full truncate ticker-text" data-v-34ac2891="">Collaboration</span></div><!--astro:end--></astro-island> </a></div><a class="font-semibold text-secondary hover:text-primary line-clamp-3 text-ellipsis md:text-[18px]/[22px] text-[18px]/[22px]" href="/article/will-ftc-derail-larry-pages-supersized-ambitions-for-google/"> Will FTC derail Larry Page’s supersized ambitions for Google? </a><div class="md:block hidden"><div class="font-light text-zinc-800 line-clamp-3 text-ellipsis text-[14px]"><p></p><p>The FTC is about to launch a probe into Google’s business practices. Learn how the inevitable government scrutiny could inadvertently assist new CEO Larry Page.</p>
<p></p></div></div><div class="gap-x-7 mt-2 uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500 flex flex-col"><div class="text-secondary font-semibold"></div><div class="uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500">Jun 26, 2011</div></div></div><div class="space-y-[17px]"><div class="flex flex-col w-full"><a class="block group w-full overflow-hidden relative" href="/article/blackberry-playbook-first-impressions-four-pleasant-surprises/">  <div class="relative w-full aspect-video"> <div class="h-full w-full bg-primary/10 flex items-center justify-center aspect-video"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide w-12 h-12 text-primary/40 lucide-image-icon lucide-image" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2" ry="2" /><circle cx="9" cy="9" r="2" /><path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21" /></svg></div>  </div>  </a><a class="bg-primary overflow-hidden text-primary-foreground inline-block uppercase text-[12px] leading-[16px] font-mono font-semibold hover:bg-primary/90 self-start tracking-widest text-nowrap max-w-full text-ellipsis" href="/topic/mobility/"> <astro-island uid="Z1PAiVY" prefix="s12" component-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/Ticker.B5HV3EPZ.js" component-export="default" renderer-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/client.DJt-xfn4.js" props="{&quot;text&quot;:[0,&quot;Mobility&quot;]}" ssr="" client="idle" opts="{&quot;name&quot;:&quot;Ticker&quot;,&quot;value&quot;:true}" await-children=""><div class="ticker-container px-[8px] py-[6px] flex" style="--scroll-distance:-0px;" data-v-34ac2891=""><span class="w-full truncate ticker-text" data-v-34ac2891="">Mobility</span></div><!--astro:end--></astro-island> </a></div><a class="font-semibold text-secondary hover:text-primary line-clamp-3 text-ellipsis md:text-[18px]/[22px] text-[18px]/[22px]" href="/article/blackberry-playbook-first-impressions-four-pleasant-surprises/"> BlackBerry PlayBook first impressions: Four pleasant surprises </a><div class="md:block hidden"><div class="font-light text-zinc-800 line-clamp-3 text-ellipsis text-[14px]"><p></p><p>Most of the technology world has already written off the PlayBook before it’s even available to the public. Here are four reasons why that’s probably a mistake.</p>
<p></p></div></div><div class="gap-x-7 mt-2 uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500 flex flex-col"><div class="text-secondary font-semibold"></div><div class="uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500">Apr 15, 2011</div></div></div></div> </div> <div class="justify-center md:hidden flex">  </div> </div> </div> <div class="flex flex-wrap justify-center items-center mt-14 text-sm text-gray-500"> <div class="flex items-center mt-4 gap-2">  <a class="min-w-8 h-8 px-2.5 py-1.25 border flex items-center justify-center rounded-full bg-primary text-primary-foreground hover:text-primary-foreground" href="/meet-the-team/us/jason-hiner/#related-articles"> 1 </a><a class="min-w-8 h-8 px-2.5 py-1.25 border flex items-center justify-center rounded-full bg-white hover:bg-primary/80 hover:text-primary-foreground text-secondary" href="/meet-the-team/us/jason-hiner/page/2/#related-articles"> 2 </a><a class="min-w-8 h-8 px-2.5 py-1.25 border flex items-center justify-center rounded-full bg-white hover:bg-primary/80 hover:text-primary-foreground text-secondary" href="/meet-the-team/us/jason-hiner/page/3/#related-articles"> 3 </a> <a class="w-8 h-8 rounded-full flex items-center justify-center bg-white hover:bg-primary/80 hover:text-primary-foreground text-secondary" href="/meet-the-team/us/jason-hiner/page/2/#related-articles" aria-label="Next Page">  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide w-4 h-4 lucide-chevron-right-icon lucide-chevron-right" aria-hidden="true"><path d="m9 18 6-6-6-6" /></svg>  </a> </div> </div>  </div> </div>  </div> </div> <aside class="md:flex hidden md:col-span-4 space-y-8"> <div> <div class="flex flex-col gap-7"> <div class="flex items-start justify-between gap-4"> <div class="text-[20px]/[28px] pt-[12px] tracking-[1.4px] font-bold uppercase grow text-secondary border-t-2 border-secondary"> <h2>Latest Articles</h2> </div> <div class="hidden md:block">  </div> </div> <div>   <div class="space-y-5 mb-10"> <div class="flex justify-between border-t border-zinc-200"><div class="grow h-full space-y-[11px] pr-4"><a class="text-secondary hover:text-primary my-2 font-semibold line-clamp-3 text-ellipsis overflow-hidden text-[14px]/[18px]" href="/article/news-vibe-coding-cheat-sheet/"> Vibe Coding Cheat Sheet: Tools, Prompts, Security Tips, and More </a><a class="font-mono uppercase font-bold text-xs line-clamp-2 text-ellipsis overflow-hidden tracking-[1px]" href="/topic/artificial-intelligence/"> Artificial Intelligence </a></div><a href="/article/news-vibe-coding-cheat-sheet/"> <div class="aspect-square relative max-w-[85px] min-w-[85px]"><div class="h-full group relative" data-lazyimage="">  <img alt="" src="data:image/webp;base64,UklGRpwAAABXRUJQVlA4IJAAAACwAgCdASoQAAgAAQAaJQBOiP1bIiIh8rfovbs+awAA/vNm7x/5Wv0NVnvmf/rkl3talh+LUbGj0h8p6/oqbDzRyaKddX/rwakovbK0b2I69Nnuv93bDbi/z9T6PdBrJk1cfhKerv+i/e/QovSHeZ6TpscLsov+8JBYRsEi83f72t0kfrcTYErv7XRclKPkAAA=" decoding="async" aria-hidden="true" class="object-cover h-full group absolute inset-0" style="z-index: -1"> <div data-blur="" class="absolute inset-0 transition-opacity duration-300" style="backdrop-filter: blur(20px); z-index: 1;"></div>  <img src="https://assets.techrepublic.com/uploads/2026/05/vibe-coding-cheat-sheet.png?w=1024" srcset="https://assets.techrepublic.com/uploads/2026/05/vibe-coding-cheat-sheet.png?w=128 128w, https://assets.techrepublic.com/uploads/2026/05/vibe-coding-cheat-sheet.png?w=256 256w, https://assets.techrepublic.com/uploads/2026/05/vibe-coding-cheat-sheet.png?w=512 512w" alt="Vibe Coding Cheat Sheet: Tools, Prompts, Security Tips, and More" loading="lazy" fetchpriority="auto" decoding="async" data-image="true" style="opacity:0" width="1024" height="545" class="object-cover h-full group transition-opacity duration-300"> </div> </div> </a></div><div class="flex justify-between border-t border-zinc-200"><div class="grow h-full space-y-[11px] pr-4"><a class="text-secondary hover:text-primary my-2 font-semibold line-clamp-3 text-ellipsis overflow-hidden text-[14px]/[18px]" href="/article/news-chromeos-flex-kit-alternatives-old-windows-10-pcs/"> ChromeOS Flex Kit Is Sold Out: 5 Alternatives for Old Windows 10 PCs </a><a class="font-mono uppercase font-bold text-xs line-clamp-2 text-ellipsis overflow-hidden tracking-[1px]" href="/topic/google/"> Google </a></div><a href="/article/news-chromeos-flex-kit-alternatives-old-windows-10-pcs/"> <div class="aspect-square relative max-w-[85px] min-w-[85px]"><div class="h-full group relative" data-lazyimage="">  <img alt="" src="data:image/webp;base64,UklGRrwAAABXRUJQVlA4ILAAAACQAgCdASoQAAkAAQAaJZACdH8D2NiILKr026DupAD947//E33JrS3vwKXjnoLT/EjX76wRW7Jf4JcvPtfCLvjLr1f4/Fr/m4+6PggjJ/5CSy4q90a26MPTHmLOrchP7gWl69+O1Y5WE+e/STLX05/mipazTWf2Gve3mLy5zDIR/9jvNwn64s3QD5iRn8frARcf3NBNl0+V8QNRgVpgX6fgYMsy726A2Gx9MMb90NAAAA==" decoding="async" aria-hidden="true" class="object-cover h-full group absolute inset-0" style="z-index: -1"> <div data-blur="" class="absolute inset-0 transition-opacity duration-300" style="backdrop-filter: blur(20px); z-index: 1;"></div>  <img src="https://assets.techrepublic.com/uploads/2026/05/chrome-os-flex-kit.png?w=1024" srcset="https://assets.techrepublic.com/uploads/2026/05/chrome-os-flex-kit.png?w=128 128w, https://assets.techrepublic.com/uploads/2026/05/chrome-os-flex-kit.png?w=256 256w, https://assets.techrepublic.com/uploads/2026/05/chrome-os-flex-kit.png?w=512 512w" alt="ChromeOS Flex Kit Is Sold Out: 5 Alternatives for Old Windows 10 PCs" loading="lazy" fetchpriority="auto" decoding="async" data-image="true" style="opacity:0" width="1024" height="577" class="object-cover h-full group transition-opacity duration-300"> </div> </div> </a></div><div class="flex justify-between border-t border-zinc-200"><div class="grow h-full space-y-[11px] pr-4"><a class="text-secondary hover:text-primary my-2 font-semibold line-clamp-3 text-ellipsis overflow-hidden text-[14px]/[18px]" href="/article/news-nvidia-h200-ai-chip-sales-china-stalled/"> US Approves Nvidia H200 Sales to China, But Shipments Remain Stalled </a><a class="font-mono uppercase font-bold text-xs line-clamp-2 text-ellipsis overflow-hidden tracking-[1px]" href="/topic/artificial-intelligence/"> Artificial Intelligence </a></div><a href="/article/news-nvidia-h200-ai-chip-sales-china-stalled/"> <div class="aspect-square relative max-w-[85px] min-w-[85px]"><div class="h-full group relative" data-lazyimage="">  <img alt="" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAUFBQUFBQUGBgUICAcICAsKCQkKCxEMDQwNDBEaEBMQEBMQGhcbFhUWGxcpIBwcICkvJyUnLzkzMzlHREddXX0BBQUFBQUFBQYGBQgIBwgICwoJCQoLEQwNDA0MERoQExAQExAaFxsWFRYbFykgHBwgKS8nJScvOTMzOUdER11dff/AABEIAAkAEAMBIgACEQEDEQH/xABbAAADAQAAAAAAAAAAAAAAAAADBAYIEAACAQQBBQAAAAAAAAAAAAABAgMABAURMRITIkOBAQEAAAAAAAAAAAAAAAAAAAABEQEBAQAAAAAAAAAAAAAAAAABEQD/2gAMAwEAAhEDEQA/AMnwYG8uIIJlZAJT4gspPG+ASaey2MigsnnSW2QicK1uoPcUgaJ2dnpPOqlaL6/lGaRJv//Z" decoding="async" aria-hidden="true" class="object-cover h-full group absolute inset-0" style="z-index: -1"> <div data-blur="" class="absolute inset-0 transition-opacity duration-300" style="backdrop-filter: blur(20px); z-index: 1;"></div>  <img src="https://assets.techrepublic.com/uploads/2026/03/jensen-microchip.png?w=1024" srcset="https://assets.techrepublic.com/uploads/2026/03/jensen-microchip.png?w=128 128w, https://assets.techrepublic.com/uploads/2026/03/jensen-microchip.png?w=256 256w, https://assets.techrepublic.com/uploads/2026/03/jensen-microchip.png?w=512 512w" alt="US Approves Nvidia H200 Sales to China, But Shipments Remain Stalled" loading="lazy" fetchpriority="auto" decoding="async" data-image="true" style="opacity:0" width="1024" height="900" class="object-cover h-full group transition-opacity duration-300"> </div> </div> </a></div> </div> <div class="flex justify-center md:justify-start right-rail data-empty:hidden" data-ad-slot="right-rail">  </div>   </div> <div class="justify-center md:hidden flex">  </div> </div> </div> </aside> </div>  <div class="flex items-center justify-center min-h-[90px]! md:min-h-[130px]! print:hidden inline-bottom data-empty:hidden" data-ad-slot="inline-bottom">  </div>  </div> <footer class="site-footer bg-[#000e2a] text-white antialiased"> <div class="max-w-[1200px] mx-auto px-4 pt-12 pb-8"> <div class="grid grid-cols-1 md:grid-cols-[1fr_auto_auto] gap-x-16 gap-y-8"> <!-- Left column: Logo + socials + cookie notice --> <div> <!-- Logo --> <a href="/" class="inline-flex items-center gap-2 mb-6"> <div class="h-[40px] w-auto relative">  <img src="https://www.techrepublic.com/astrostatic/0afa3479/_image/?href=%2F_astro%2Ftechrepublic-white.B5d-svv5.png&w=512&h=119&f=webp" alt="TechRepublic Logo" data-image="true" style="opacity:1" loading="lazy" decoding="async" fetchpriority="auto" width="512" height="119" class="h-[40px] w-auto transition-opacity duration-300"> </div>  </a> <!-- Social icons --> <div class="mb-6"> <div class="flex gap-2 flex-wrap md:flex-nowrap"> <div> <a href="https://www.facebook.com/TechRepublic" target="_blank" rel="noopener noreferrer" class="p-4 border text-white border-white rounded-lg block" aria-label="facebook"> <svg role="img" viewBox="0 0 24 24" class="fill-current" width="24" height="24" aria-hidden="true"><title>Facebook</title><path d="M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978.401 0 .955.042 1.468.103a8.68 8.68 0 0 1 1.141.195v3.325a8.623 8.623 0 0 0-.653-.036 26.805 26.805 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309a1.686 1.686 0 0 0-.679.622c-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647Z" /></svg> <div class="sr-only">facebook</div> </a> </div><div> <a href="https://twitter.com/techrepublic" target="_blank" rel="noopener noreferrer" class="p-4 border text-white border-white rounded-lg block" aria-label="x"> <svg role="img" viewBox="0 0 24 24" class="fill-current" width="24" height="24" aria-hidden="true"><title>X</title><path d="M14.234 10.162 22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299-.929-1.329L3.076 1.56h3.182l5.965 8.532.929 1.329 7.754 11.09h-3.182z" /></svg> <div class="sr-only">x</div> </a> </div><div> <a href="https://www.linkedin.com/company/techrepublic" target="_blank" rel="noopener noreferrer" class="p-4 border text-white border-white rounded-lg block" aria-label="linkedin"> <svg class="fill-current" viewBox="0 0 24 25" fill="none" width="24" height="24" aria-hidden="true">
    <path d="M6.20062 21.2143H1.84688V7.194H6.20062V21.2143ZM4.02141 5.2815C2.62922 5.2815 1.5 4.12838 1.5 2.73619C1.5 2.06747 1.76565 1.42614 2.2385 0.953285C2.71136 0.48043 3.35269 0.214783 4.02141 0.214783C4.69012 0.214783 5.33145 0.48043 5.80431 0.953285C6.27716 1.42614 6.54281 2.06747 6.54281 2.73619C6.54281 4.12838 5.413 5.2815 4.02141 5.2815ZM22.4953 21.2143H18.1509V14.3893C18.1509 12.7628 18.1181 10.6768 15.8873 10.6768C13.6237 10.6768 13.2769 12.444 13.2769 14.2721V21.2143H8.92781V7.194H13.1034V9.1065H13.1644C13.7456 8.00494 15.1655 6.84244 17.2838 6.84244C21.69 6.84244 22.5 9.744 22.5 13.5128V21.2143H22.4953Z" fill="currentColor" />
</svg> <div class="sr-only">linkedin</div> </a> </div><div> <a href="https://www.youtube.com/techrepublic" target="_blank" rel="noopener noreferrer" class="p-4 border text-white border-white rounded-lg block" aria-label="youtube"> <svg role="img" viewBox="0 0 24 24" class="fill-current" width="24" height="24" aria-hidden="true"><title>YouTube</title><path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z" /></svg> <div class="sr-only">youtube</div> </a> </div><div> <a href="https://www.pinterest.com/techrepublic/" target="_blank" rel="noopener noreferrer" class="p-4 border text-white border-white rounded-lg block" aria-label="pinterest"> <svg role="img" viewBox="0 0 24 24" class="fill-current" width="24" height="24" aria-hidden="true"><title>Pinterest</title><path d="M12.017 0C5.396 0 .029 5.367.029 11.987c0 5.079 3.158 9.417 7.618 11.162-.105-.949-.199-2.403.041-3.439.219-.937 1.406-5.957 1.406-5.957s-.359-.72-.359-1.781c0-1.663.967-2.911 2.168-2.911 1.024 0 1.518.769 1.518 1.688 0 1.029-.653 2.567-.992 3.992-.285 1.193.6 2.165 1.775 2.165 2.128 0 3.768-2.245 3.768-5.487 0-2.861-2.063-4.869-5.008-4.869-3.41 0-5.409 2.562-5.409 5.199 0 1.033.394 2.143.889 2.741.099.12.112.225.085.345-.09.375-.293 1.199-.334 1.363-.053.225-.172.271-.401.165-1.495-.69-2.433-2.878-2.433-4.646 0-3.776 2.748-7.252 7.92-7.252 4.158 0 7.392 2.967 7.392 6.923 0 4.135-2.607 7.462-6.233 7.462-1.214 0-2.354-.629-2.758-1.379l-.749 2.848c-.269 1.045-1.004 2.352-1.498 3.146 1.123.345 2.306.535 3.55.535 6.607 0 11.985-5.365 11.985-11.987C23.97 5.39 18.592.026 11.985.026L12.017 0z" /></svg> <div class="sr-only">pinterest</div> </a> </div><div> <a href="/rssfeeds/" target="_blank" rel="noopener noreferrer" class="p-4 border text-white border-white rounded-lg block" aria-label="rss"> <svg role="img" viewBox="0 0 24 24" class="fill-current" width="24" height="24" aria-hidden="true"><title>RSS</title><path d="M19.199 24C19.199 13.467 10.533 4.8 0 4.8V0c13.165 0 24 10.835 24 24h-4.801zM3.291 17.415c1.814 0 3.293 1.479 3.293 3.295 0 1.813-1.485 3.29-3.301 3.29C1.47 24 0 22.526 0 20.71s1.475-3.294 3.291-3.295zM15.909 24h-4.665c0-6.169-5.075-11.245-11.244-11.245V8.09c8.727 0 15.909 7.184 15.909 15.91z" /></svg> <div class="sr-only">rss</div> </a> </div> </div> </div> <!-- Cookie notice --> <p class="text-[13px] text-white leading-relaxed max-w-md">
We use cookies and other data collection technologies to
                    provide the best experience for our customers. You may
                    request that your data not be shared with third parties
                    here: <a href="https://technologyadvice.com/privacy-policy/ccpa-opt-out/" target="_blank" rel="noreferrer noopener" class="underline hover:underline text-white">Do Not Sell My Data</a>.
</p> </div> <!-- Services column --> <div> <h4 class="text-[15px] font-bold text-white mb-4 mt-0"> Services </h4> <nav aria-label="Footer - Services"> <ul class="list-none m-0 p-0 space-y-2"> <li> <a href="/about/" class="text-[14px] no-underline hover:underline text-white transition-colors duration-150"> About Us </a> </li><li> <a href="/newsletters/" class="text-[14px] no-underline hover:underline text-white transition-colors duration-150"> Newsletters </a> </li><li> <a href="/rssfeeds/" class="text-[14px] no-underline hover:underline text-white transition-colors duration-150"> RSS Feeds </a> </li><li> <a href="/site-map/" class="text-[14px] no-underline hover:underline text-white transition-colors duration-150"> Site Map </a> </li><li> <a href="https://support.techrepublic.com/" class="text-[14px] no-underline hover:underline text-white transition-colors duration-150"> Site Help &amp; Feedback </a> </li><li> <a href="/forums/faq/" class="text-[14px] no-underline hover:underline text-white transition-colors duration-150"> FAQ </a> </li><li> <a href="https://solutions.technologyadvice.com/advertise-on-techrepublic/?utm_source=techrepublic&utm_medium=portfolio_footer&utm_campaign=advertise_contact-us" target="_blank" rel="noreferrer noopener" class="text-[14px] no-underline hover:underline text-white transition-colors duration-150"> Advertise </a> </li><li> <a href="https://technologyadvice.com/privacy-policy/ccpa-opt-out/" target="_blank" rel="noreferrer noopener" class="text-[14px] no-underline hover:underline text-white transition-colors duration-150"> Do Not Sell My Information </a> </li><li> <a href="https://technologyadvice.com/careers/" target="_blank" rel="noreferrer noopener" class="text-[14px] no-underline hover:underline text-white transition-colors duration-150"> Careers </a> </li> </ul> </nav> </div> <!-- Explore column --> <div> <h4 class="text-[15px] font-bold text-white mb-4 mt-0"> Explore </h4> <nav aria-label="Footer - Explore"> <ul class="list-none m-0 p-0 space-y-2"> <li> <a href="/resource-library/content-type/downloads/" class="text-[14px] no-underline hover:underline text-white transition-colors duration-150"> Downloads </a> </li><li> <a href="/forums/" class="text-[14px] no-underline hover:underline text-white transition-colors duration-150"> TechRepublic Forums </a> </li><li> <a href="https://academy.techrepublic.com/" class="text-[14px] no-underline hover:underline text-white transition-colors duration-150"> TechRepublic Academy </a> </li><li> <a href="/premium/" class="text-[14px] no-underline hover:underline text-white transition-colors duration-150"> TechRepublic Premium </a> </li><li> <a href="/resource-library/" class="text-[14px] no-underline hover:underline text-white transition-colors duration-150"> Resource Library </a> </li><li> <a href="/pictures/" class="text-[14px] no-underline hover:underline text-white transition-colors duration-150"> Photos </a> </li><li> <a href="/videos/" class="text-[14px] no-underline hover:underline text-white transition-colors duration-150"> Videos </a> </li><li> <a href="/editorial-policy/" class="text-[14px] no-underline hover:underline text-white transition-colors duration-150"> Editorial Policy </a> </li> </ul> </nav> </div> </div> </div> <!-- Bottom bar --> <div class="pb-18"> <div class="max-w-[1200px] mx-auto px-4 py-5 flex flex-col md:flex-row items-center justify-between gap-3"> <div class="flex items-center gap-4"> <a href="/terms-conditions/" class="text-[13px] no-underline hover:underline text-white transition-colors duration-150"> Legal Terms </a> <a href="/privacy-policy/" class="text-[13px] no-underline hover:underline text-white transition-colors duration-150"> Privacy Policy </a> </div> <p class="text-[13px] text-white m-0">
© 2026 TechnologyAdvice. All rights reserved.
</p> </div> <div id="choice-footer-msg" class="max-w-[1200px] mx-auto px-4 text-[12px] text-white/40"></div> </div> </footer><astro-island uid="Z20qDl8" prefix="s13" component-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/BackToTop.CLxJ77yf.js" component-export="default" renderer-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/client.DJt-xfn4.js" props="{}" ssr="" client="idle" opts="{&quot;name&quot;:&quot;BackToTop&quot;,&quot;value&quot;:true}" await-children=""><button id="back-to-top" class="fixed right-4 z-1001 cursor-pointer transition-all duration-500 ease-in-out rounded-full hover:shadow-[0px_0px_3px_#71717a] hover:scale-105 bg-primary text-primary-foreground border-none p-0 opacity-0 translate-y-[70px]" style="bottom:calc(var(--sticky-ad-height, 0px) + 16px);" aria-label="Back to top"><svg width="48" height="48" viewBox="0 0 48 48" class="block" aria-hidden="true"><circle cx="24" cy="24" r="21" fill="none" stroke="currentColor" stroke-width="3" opacity="0.2" /><circle cx="24" cy="24" r="21" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-dasharray="131.94689145077132" stroke-dashoffset="131.94689145077132" transform="rotate(-90 24 24)" style="transition:stroke-dashoffset 150ms ease;" /></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" class="lucide absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 lucide-chevron-up-icon lucide-chevron-up" aria-hidden="true"><path d="m18 15-6-6-6 6" /></svg></button><!--astro:end--></astro-island> <sticky-footer-ad class="group hide-on-empty fixed w-full bottom-0 bg-white flex justify-center items-center border-gray-200 border-t transition-transform duration-500 ease-in-out z-1000 has-[div[data-empty]]:hidden print:hidden" style="height: min-content"> <button class="absolute left-8 -top-[25px] cursor-pointer bg-white px-2 border-gray-200 border-t border-r border-l rounded-t-lg" aria-label="Toggle collapse"><!----><!--[--> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide chevron transition-transform duration-500 lucide-chevron-down-icon lucide-chevron-down" aria-hidden="true"><path d="m6 9 6 6 6-6" /></svg> <!--]--></button> <div class="sticky-footer data-empty:hidden" data-ad-slot="sticky-footer">  </div>  </sticky-footer-ad> <astro-island uid="4kij5" prefix="s14" component-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/LoginModal.BOMoywb8.js" component-export="default" renderer-url="https://www.techrepublic.com/astrostatic/0afa3479/_astro/client.DJt-xfn4.js" props="{}" ssr="" client="idle" opts="{&quot;name&quot;:&quot;LoginModal&quot;,&quot;value&quot;:true}" await-children=""><!----><!--astro:end--></astro-island> <script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'9fca29f4e95a4656',t:'MTc3ODkzMjIxNw=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body></html>