PageSourceSearch

https://www.signifytechnology.com/_next/static/chunks/pages/_app-599d87b625a1cb26.js

js signifytechnology.com collected 2026-09-25 19:53:00 UTC 840,057 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2888],{59773:function(e,n,t){var i,a=Object.create,o=Object.defineProperty,s=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,l=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty,d=(e,n)=>function(){return n||(0,e[r(e)[0]])((n={exports:{}}).exports,n),n.exports},p=(e,n,t,i)=>{if(n&&"object"===typeof n||"function"===typeof n)for(let a of r(n))c.call(e,a)||a===t||o(e,a,{get:()=>n[a],enumerable:!(i=s(n,a))||i.enumerable});return e},u=(e,n,t)=>(t=null!=e?a(l(e)):{},p(!n&&e&&e.__esModule?t:o(t,"default",{value:e,enumerable:!0}),e)),g=d({"node_modules/react-is/cjs/react-is.development.js"(e){"use strict";(function(){var n="function"===typeof Symbol&&Symbol.for,t=n?Symbol.for("react.element"):60103,i=n?Symbol.for("react.portal"):60106,a=n?Symbol.for("react.fragment"):60107,o=n?Symbol.for("react.strict_mode"):60108,s=n?Symbol.for("react.profiler"):60114,r=n?Symbol.for("react.provider"):60109,l=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,u=n?Symbol.for("react.suspense"):60113,g=n?Symbol.for("react.suspense_list"):60120,m=n?Symbol.for("react.memo"):60115,h=n?Symbol.for("react.lazy"):60116,y=n?Symbol.for("react.block"):60121,f=n?Symbol.for("react.fundamental"):60117,w=n?Symbol.for("react.responder"):60118,b=n?Symbol.for("react.scope"):60119;function v(e){if("object"===typeof e&&null!==e){var n=e.$$typeof;switch(n){case t:var g=e.type;switch(g){case c:case d:case a:case s:case o:case u:return g;default:var y=g&&g.$$typeof;switch(y){case l:case p:case h:case m:case r:return y;default:return n}}case i:return n}}}var S=c,A=d,k=l,x=r,T=t,N=p,E=a,C=h,B=m,L=i,R=s,M=o,P=u,I=!1;function O(e){return v(e)===d}e.AsyncMode=S,e.ConcurrentMode=A,e.ContextConsumer=k,e.ContextProvider=x,e.Element=T,e.ForwardRef=N,e.Fragment=E,e.Lazy=C,e.Memo=B,e.Portal=L,e.Profiler=R,e.StrictMode=M,e.Suspense=P,e.isAsyncMode=function(e){return I||(I=!0,console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),O(e)||v(e)===c},e.isConcurrentMode=O,e.isContextConsumer=function(e){return v(e)===l},e.isContextProvider=function(e){return v(e)===r},e.isElement=function(e){return"object"===typeof e&&null!==e&&e.$$typeof===t},e.isForwardRef=function(e){return v(e)===p},e.isFragment=function(e){return v(e)===a},e.isLazy=function(e){return v(e)===h},e.isMemo=function(e){return v(e)===m},e.isPortal=function(e){return v(e)===i},e.isProfiler=function(e){return v(e)===s},e.isStrictMode=function(e){return v(e)===o},e.isSuspense=function(e){return v(e)===u},e.isValidElementType=function(e){return"string"===typeof e||"function"===typeof e||e===a||e===d||e===s||e===o||e===u||e===g||"object"===typeof e&&null!==e&&(e.$$typeof===h||e.$$typeof===m||e.$$typeof===r||e.$$typeof===l||e.$$typeof===p||e.$$typeof===f||e.$$typeof===w||e.$$typeof===b||e.$$typeof===y)},e.typeOf=v})()}}),m=d({"node_modules/react-is/index.js"(e,n){"use strict";n.exports=g()}}),h=d({"node_modules/object-assign/index.js"(e,n){"use strict";var t=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;function o(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}n.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var n={},t=0;t<10;t++)n["_"+String.fromCharCode(t)]=t;if("0123456789"!==Object.getOwnPropertyNames(n).map((function(e){return n[e]})).join(""))return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach((function(e){i[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},i)).join("")}catch(a){return!1}}()?Object.assign:function(e,n){for(var s,r,l=o(e),c=1;c<arguments.length;c++){for(var d in s=Object(arguments[c]))i.call(s,d)&&(l[d]=s[d]);if(t){r=t(s);for(var p=0;p<r.length;p++)a.call(s,r[p])&&(l[r[p]]=s[r[p]])}}return l}}}),y=d({"node_modules/prop-types/lib/ReactPropTypesSecret.js"(e,n){"use strict";n.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"}}),f=d({"node_modules/prop-types/lib/has.js"(e,n){n.exports=Function.call.bind(Object.prototype.hasOwnProperty)}}),w=d({"node_modules/prop-types/checkPropTypes.js"(e,n){"use strict";var t,i,a,o=function(){};function s(e,n,s,r,l){for(var c in e)if(a(e,c)){var d;try{if("function"!==typeof e[c]){var p=Error((r||"React class")+": "+s+" type `"+c+"` is invali
1d; it must be a function, usually from the `prop-types` package, but received `"+typeof e[c]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw p.name="Invariant Violation",p}d=e[c](n,c,r,s,null,t)}catch(g){d=g}if(!d||d instanceof Error||o((r||"React class")+": type specification of "+s+" `"+c+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof d+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),d instanceof Error&&!(d.message in i)){i[d.message]=!0;var u=l?l():"";o("Failed "+s+" type: "+d.message+(null!=u?u:""))}}}t=y(),i={},a=f(),o=function(e){var n="Warning: "+e;"undefined"!==typeof console&&console.error(n);try{throw new Error(n)}catch(t){}},s.resetWarningCache=function(){i={}},n.exports=s}}),b=d({"node_modules/prop-types/factoryWithTypeCheckers.js"(e,n){"use strict";var t=m(),i=h(),a=y(),o=f(),s=w(),r=function(){};function l(){return null}r=function(e){var n="Warning: "+e;"undefined"!==typeof console&&console.error(n);try{throw new Error(n)}catch(t){}},n.exports=function(e,n){var c="function"===typeof Symbol&&Symbol.iterator;var d="<<anonymous>>",p={array:h("array"),bigint:h("bigint"),bool:h("boolean"),func:h("function"),number:h("number"),object:h("object"),string:h("string"),symbol:h("symbol"),any:m(l),arrayOf:function(e){return m((function(n,t,i,o,s){if("function"!==typeof e)return new g("Property `"+s+"` of component `"+i+"` has invalid PropType notation inside arrayOf.");var r=n[t];if(!Array.isArray(r))return new g("Invalid "+o+" `"+s+"` of type `"+w(r)+"` supplied to `"+i+"`, expected an array.");for(var l=0;l<r.length;l++){var c=e(r,l,i,o,s+"["+l+"]",a);if(c instanceof Error)return c}return null}))},element:m((function(n,t,i,a,o){var s=n[t];return e(s)?null:new g("Invalid "+a+" `"+o+"` of type `"+w(s)+"` supplied to `"+i+"`, expected a single ReactElement.")})),elementType:m((function(e,n,i,a,o){var s=e[n];return t.isValidElementType(s)?null:new g("Invalid "+a+" `"+o+"` of type `"+w(s)+"` supplied to `"+i+"`, expected a single ReactElement type.")})),instanceOf:function(e){return m((function(n,t,i,a,o){if(!(n[t]instanceof e)){var s=e.name||d;return new g("Invalid "+a+" `"+o+"` of type `"+(((r=n[t]).constructor&&r.constructor.name?r.constructor.name:d)+"` supplied to `")+i+"`, expected instance of `"+s+"`.")}var r;return null}))},node:m((function(e,n,t,i,a){return f(e[n])?null:new g("Invalid "+i+" `"+a+"` supplied to `"+t+"`, expected a ReactNode.")})),objectOf:function(e){return m((function(n,t,i,s,r){if("function"!==typeof e)return new g("Property `"+r+"` of component `"+i+"` has invalid PropType notation inside objectOf.");var l=n[t],c=w(l);if("object"!==c)return new g("Invalid "+s+" `"+r+"` of type `"+c+"` supplied to `"+i+"`, expected an object.");for(var d in l)if(o(l,d)){var p=e(l,d,i,s,r+"."+d,a);if(p instanceof Error)return p}return null}))},oneOf:function(e){if(!Array.isArray(e))return r(arguments.length>1?"Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).":"Invalid argument supplied to oneOf, expected an array."),l;function n(n,t,i,a,o){for(var s=n[t],r=0;r<e.length;r++)if(u(s,e[r]))return null;var l=JSON.stringify(e,(function(e,n){return"symbol"===b(n)?String(n):n}));return new g("Invalid "+a+" `"+o+"` of value `"+String(s)+"` supplied to `"+i+"`, expected one of "+l+".")}return m(n)},oneOfType:function(e){if(!Array.isArray(e))return r("Invalid argument supplied to oneOfType, expected an instance of array."),l;for(var n=0;n<e.length;n++){var t=e[n];if("function"!==typeof t)return r("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+v(t)+" at index "+n+"."),l}return m((function(n,t,i,s,r){for(var l=[],c=0;c<e.length;c++){var d=(0,e[c])(n,t,i,s,r,a);if(null==d)return null;d.data&&o(d.data,"expectedType")&&l.push(d.data.expectedType)}return new g("Invalid "+s+" `"+r+"` supplied to `"+i+"`"+(l.length>0?", expected one of type ["+l.join(", ")+"]":"")+".")}))},shape:function(e){return m((function(n,t,i,o,s){var r=n[t],l=w(r);if("object"!==l)return new g("Invalid "+o+" `"+s+"` of type `"+l+"` supplied to `"+i+"`, expected `object`.");for(var c in e){var d=e[c];if("function"!==typeof d)return y(i,o,s,c,b(d));var p=d(r,c,i,o,s+"."+c,a);if(p)return p}return null}))},exact:function(e){return m((function(n,t,s,r,l){var c=n[t],d=w(c);if("object"!==d)return new g("Invalid "+r+" `"+l+"` of type `"+d+"` supplied to `"+s+"`, expected `object`.");var p=i({},n[t],e);for(var u in p){var m=e[u];if(o(e,u)&&"function"!==typeof m)return y(s,r,l,u,b(m));if(!m)return new g("Invalid "+r+" `"+l+"` key `"+u+"` supplied to `"+s+"`.\nBad object: "+JSON.stringify(n[t],null,"  ")+"\nValid keys: "+JSON.stringify(Object.keys(e),null,"  "));var h=m(c,u,s,r,l+"."+u,a);if(h)return h}return null}))}};function u(e,n){return e===n?0!==e||1/e===1/n:e!==e&&n!==n}function g(e,n){this.message=e,this.data=n&&"object"===typeof n?n:{},this.stack=""}function m(e){var t={},i=0;function o(o,s,l,c,p,u,m){if(c=c||d,u=u||l,m!==a){if(n){var h=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw h.name="Invariant Violation",h}if("undefined"!==typeof console){var y=c+":"+l;!t[y]&&i<3&&(r("You are manually calling a React.PropTypes validation function for the `"+u+"` prop on `"+c+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),t[y]=!0,i++)}}return null==s[l]?o?null===s[l]?new g("The "+p+" `"+u+"` is marked as required in `"+c+"`, but its value is `null`."):new g("The "+p+" `"+u+"` is marked as required in `"+c+"`, but its value is `undefined`."):null:e(s,l,c,p,u)}var s=o.bind(null,!1);return s.isRequired=o.bind(null,!0),s}function h(e){return m((function(n,t,i,a,o,s){var r=n[t];return w(r)!==e?new g("Invalid "+a+" `"+o+"` of type `"+b(r)+"` supplied to `"+i+"`, expected `"+e+"`.",{expectedType:e}):null}))}function y(e,n,t,i,a){return new g((e||"React class")+": "+n+" type `"+t+"."+i+"` is invali
1d; it must be a function, usually from the `prop-types` package, but received `"+a+"`.")}function f(n){switch(typeof n){case"number":case"string":case"undefined":return!0;case"boolean":return!n;case"object":if(Array.isArray(n))return n.every(f);if(null===n||e(n))return!0;var t=function(e){var n=e&&(c&&e[c]||e["@@iterator"]);if("function"===typeof n)return n}(n);if(!t)return!1;var i,a=t.call(n);if(t!==n.entries){for(;!(i=a.next()).done;)if(!f(i.value))return!1}else for(;!(i=a.next()).done;){var o=i.value;if(o&&!f(o[1]))return!1}return!0;default:return!1}}function w(e){var n=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":function(e,n){return"symbol"===e||!!n&&("Symbol"===n["@@toStringTag"]||"function"===typeof Symbol&&n instanceof Symbol)}(n,e)?"symbol":n}function b(e){if("undefined"===typeof e||null===e)return""+e;var n=w(e);if("object"===n){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return n}function v(e){var n=b(e);switch(n){case"array":case"object":return"an "+n;case"boolean":case"date":case"regexp":return"a "+n;default:return n}}return g.prototype=Error.prototype,p.checkPropTypes=s,p.resetWarningCache=s.resetWarningCache,p.PropTypes=p,p}}}),v=d({"node_modules/prop-types/index.js"(e,n){var t;t=m(),n.exports=b()(t.isElement,true)}}),S={};((e,n)=>{for(var t in n)o(e,t,{get:n[t],enumerable:!0})})(S,{SourceFlowHead:()=>z,SourceFlowHeadDefault:()=>K,default:()=>Y,useAdditionalMetaTags:()=>U,usePageMeta:()=>F,usePageMetaValue:()=>$,usePathname:()=>G}),e.exports=(i=S,p(o({},"__esModule",{value:!0}),i));var A=u(t(67294)),k=u(t(67294)),x=u(t(9008));function T(){return T=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])}return e},T.apply(this,arguments)}function N(e,n){if(null==e)return{};var t,i,a={},o=Object.keys(e);for(i=0;i<o.length;i++)t=o[i],n.indexOf(t)>=0||(a[t]=e[t]);return a}var E=["keyOverride"],C=["crossOrigin"],B={templateTitle:"",noindex:!1,nofollow:!1,norobots:!1,defaultOpenGraphImageWidth:0,defaultOpenGraphImageHeight:0,defaultOpenGraphVideoWidth:0,defaultOpenGraphVideoHeight:0},L=function(e,n,t){void 0===n&&(n=[]);var i=void 0===t?{}:t,a=i.defaultWidth,o=i.defaultHeight;return n.reduce((function(n,t,i){return n.push(k.default.createElement("meta",{key:"og:"+e+":0"+i,property:"og:"+e,content:t.url})),t.alt&&n.push(k.default.createElement("meta",{key:"og:"+e+":alt0"+i,property:"og:"+e+":alt",content:t.alt})),t.secureUrl&&n.push(k.default.createElement("meta",{key:"og:"+e+":secure_url0"+i,property:"og:"+e+":secure_url",content:t.secureUrl.toString()})),t.type&&n.push(k.default.createElement("meta",{key:"og:"+e+":type0"+i,property:"og:"+e+":type",content:t.type.toString()})),t.width?n.push(k.default.createElement("meta",{key:"og:"+e+":width0"+i,property:"og:"+e+":width",content:t.width.toString()})):a&&n.push(k.default.createElement("meta",{key:"og:"+e+":width0"+i,property:"og:"+e+":width",content:a.toString()})),t.height?n.push(k.default.createElement("meta",{key:"og:"+e+":height"+i,property:"og:"+e+":height",content:t.height.toString()})):o&&n.push(k.default.createElement("meta",{key:"og:"+e+":height"+i,property:"og:"+e+":height",content:o.toString()})),n}),[])},R=function(e){return k.default.createElement(x.default,null,function(e){var n,t,i,a=[];e.titleTemplate&&(B.templateTitle=e.titleTemplate);var o="";e.title?(o=e.title,B.templateTitle&&(o=B.templateTitle.replace(/%s/g,(function(){return o})))):e.defaultTitle&&(o=e.defaultTitle),o&&a.push(k.default.createElement("title",{key:"title"},o));var s,r,l=void 0===e.noindex?B.noindex||e.dangerouslySetAllPagesToNoIndex:e.noindex,c=void 0===e.nofollow?B.nofollow||e.dangerouslySetAllPagesToNoFollow:e.nofollow,d=e.norobots||B.norobots,p="";if(e.robotsProps){var u=e.robotsProps,g=u.nosnippet,m=u.maxSnippet,h=u.maxImagePreview,y=u.maxVideoPreview,f=u.noarchive,w=u.noimageindex,b=u.notranslate,v=u.unavailableAfter;p=(g?",nosnippet":"")+(m?",max-snippet:"+m:"")+(h?",max-image-preview:"+h:"")+(f?",noarchive":"")+(v?",unavailable_after:"+v:"")+(w?",noimageindex":"")+(y?",max-video-preview:"+y:"")+(b?",notranslate":"")}if(e.norobots&&(B.norobots=!0),l||c?(e.dangerouslySetAllPagesToNoIndex&&(B.noindex=!0),e.dangerouslySetAllPagesToNoFollow&&(B.nofollow=!0),a.push(k.default.createElement("meta",{key:"robots",name:"robots",content:(l?"noindex":"index")+","+(c?"nofollow":"follow")+p}))):d&&!p||a.push(k.default.createElement("meta",{key:"robots",name:"robots",content:"index,follow"+p})),e.description&&a.push(k.default.createElement("meta",{key:"description",name:"description",content:e.description})),e.themeColor&&a.push(k.default.createElement("meta",{key:"theme-color",name:"theme-color",content:e.themeColor})),e.mobileAlternate&&a.push(k.default.createElement("link",{rel:"alternate",key:"mobileAlternate",media:e.mobileAlternate.media,href:e.mobileAlternate.href})),e.languageAlternates&&e.languageAlternates.length>
10&&e.languageAlternates.forEach((function(e){a.push(k.default.createElement("link",{rel:"alternate",key:"languageAlternate-"+e.hrefLang,hrefLang:e.hrefLang,href:e.href}))})),e.twitter&&(e.twitter.cardType&&a.push(k.default.createElement("meta",{key:"twitter:card",name:"twitter:card",content:e.twitter.cardType})),e.twitter.site&&a.push(k.default.createElement("meta",{key:"twitter:site",name:"twitter:site",content:e.twitter.site})),e.twitter.handle&&a.push(k.default.createElement("meta",{key:"twitter:creator",name:"twitter:creator",content:e.twitter.handle}))),e.facebook&&e.facebook.appId&&a.push(k.default.createElement("meta",{key:"fb:app_id",property:"fb:app_id",content:e.facebook.appId})),(null!=(n=e.openGraph)&&n.title||o)&&a.push(k.default.createElement("meta",{key:"og:title",property:"og:title",content:(null==(s=e.openGraph)?void 0:s.title)||o})),(null!=(t=e.openGraph)&&t.description||e.description)&&a.push(k.default.createElement("meta",{key:"og:description",property:"og:description",content:(null==(r=e.openGraph)?void 0:r.description)||e.description})),e.openGraph){if((e.openGraph.url||e.canonical)&&a.push(k.default.createElement("meta",{key:"og:url",property:"og:url",content:e.openGraph.url||e.canonical})),e.openGraph.type){var S=e.openGraph.type.toLowerCase();a.push(k.default.createElement("meta",{key:"og:type",property:"og:type",content:S})),"profile"===S&&e.openGraph.profile?(e.openGraph.profile.firstName&&a.push(k.default.createElement("meta",{key:"profile:first_name",property:"profile:first_name",content:e.openGraph.profile.firstName})),e.openGraph.profile.lastName&&a.push(k.default.createElement("meta",{key:"profile:last_name",property:"profile:last_name",content:e.openGraph.profile.lastName})),e.openGraph.profile.username&&a.push(k.default.createElement("meta",{key:"profile:username",property:"profile:username",content:e.openGraph.profile.username})),e.openGraph.profile.gender&&a.push(k.default.createElement("meta",{key:"profile:gender",property:"profile:gender",content:e.openGraph.profile.gender}))):"book"===S&&e.openGraph.book?(e.openGraph.book.authors&&e.openGraph.book.authors.length&&e.openGraph.book.authors.forEach((function(e,n){a.push(k.default.createElement("meta",{key:"book:author:0"+n,property:"book:author",content:e}))})),e.openGraph.book.isbn&&a.push(k.default.createElement("meta",{key:"book:isbn",property:"book:isbn",content:e.openGraph.book.isbn})),e.openGraph.book.releaseDate&&a.push(k.default.createElement("meta",{key:"book:release_date",property:"book:release_date",content:e.openGraph.book.releaseDate})),e.openGraph.book.tags&&e.openGraph.book.tags.length&&e.openGraph.book.tags.forEac
1h((function(e,n){a.push(k.default.createElement("meta",{key:"book:tag:0"+n,property:"book:tag",content:e}))}))):"article"===S&&e.openGraph.article?(e.openGraph.article.publishedTime&&a.push(k.default.createElement("meta",{key:"article:published_time",property:"article:published_time",content:e.openGraph.article.publishedTime})),e.openGraph.article.modifiedTime&&a.push(k.default.createElement("meta",{key:"article:modified_time",property:"article:modified_time",content:e.openGraph.article.modifiedTime})),e.openGraph.article.expirationTime&&a.push(k.default.createElement("meta",{key:"article:expiration_time",property:"article:expiration_time",content:e.openGraph.article.expirationTime})),e.openGraph.article.authors&&e.openGraph.article.authors.length&&e.openGraph.article.authors.forEach((function(e,n){a.push(k.default.createElement("meta",{key:"article:author:0"+n,property:"article:author",content:e}))})),e.openGraph.article.section&&a.push(k.default.createElement("meta",{key:"article:section",property:"article:section",content:e.openGraph.article.section})),e.openGraph.article.tags&&e.openGraph.article.tags.length&&e.openGraph.article.tags.forEach((function(e,n){a.push(k.default.createElement("meta",{key:"article:tag:0"+n,property:"article:tag",content:e}))}))):"video.movie"!==S&&"video.episode"!==S&&"video.tv_show"!==S&&"video.other"!==S||!e.openGraph.video||(e.openGraph.video.actors&&e.openGraph.video.actors.length&&e.openGraph.video.actors.forEach((function(e,n){e.profile&&a.push(k.default.createElement("meta",{key:"video:actor:0"+n,property:"video:actor",content:e.profile})),e.role&&a.push(k.default.createElement("meta",{key:"video:actor:role:0"+n,property:"video:actor:role",content:e.role}))})),e.openGraph.video.directors&&e.openGraph.video.directors.length&&e.openGraph.video.directors.forEach((function(e,n){a.push(k.default.createElement("meta",{key:"video:director:0"+n,property:"video:director",content:e}))})),e.openGraph.video.writers&&e.openGraph.video.writers.length&&e.openGraph.video.writers.forEach((function(e,n){a.push(k.default.createElement("meta",{key:"video:writer:0"+n,property:"video:writer",content:e}))})),e.openGraph.video.duration&&a.push(k.default.createElement("meta",{key:"video:duration",property:"video:duration",content:e.openGraph.video.duration.toString()})),e.openGraph.video.releaseDate&&a.push(k.default.createElement("meta",{key:"video:release_date",property:"video:release_date",content:e.openGraph.video.releaseDate})),e.openGraph.video.tags&&e.openGraph.video.tags.length&&e.openGraph.video.tags.forEac
1h((function(e,n){a.push(k.default.createElement("meta",{key:"video:tag:0"+n,property:"video:tag",content:e}))})),e.openGraph.video.series&&a.push(k.default.createElement("meta",{key:"video:series",property:"video:series",content:e.openGraph.video.series})))}e.defaultOpenGraphImageWidth&&(B.defaultOpenGraphImageWidth=e.defaultOpenGraphImageWidth),e.defaultOpenGraphImageHeight&&(B.defaultOpenGraphImageHeight=e.defaultOpenGraphImageHeight),e.openGraph.images&&e.openGraph.images.length&&a.push.apply(a,L("image",e.openGraph.images,{defaultWidth:B.defaultOpenGraphImageWidth,defaultHeight:B.defaultOpenGraphImageHeight})),e.defaultOpenGraphVideoWidth&&(B.defaultOpenGraphVideoWidth=e.defaultOpenGraphVideoWidth),e.defaultOpenGraphVideoHeight&&(B.defaultOpenGraphVideoHeight=e.defaultOpenGraphVideoHeight),e.openGraph.videos&&e.openGraph.videos.length&&a.push.apply(a,L("video",e.openGraph.videos,{defaultWidth:B.defaultOpenGraphVideoWidth,defaultHeight:B.defaultOpenGraphVideoHeight})),e.openGraph.audio&&a.push.apply(a,L("audio",e.openGraph.audio)),e.openGraph.locale&&a.push(k.default.createElement("meta",{key:"og:locale",property:"og:locale",content:e.openGraph.locale})),(e.openGraph.siteName||e.openGraph.site_name)&&a.push(k.default.createElement("meta",{key:"og:site_name",property:"og:site_name",content:e.openGraph.siteName||e.openGraph.site_name}))}return e.canonical&&a.push(k.default.createElement("link",{rel:"canonical",href:e.canonical,key:"canonical"})),e.additionalMetaTags&&e.additionalMetaTags.length>0&&e.additionalMetaTags.forEach((function(e){var n,t,i=e.keyOverride,o=N(e,E);a.push(k.default.createElement("meta",T({key:"meta:"+(null!=(n=null!=(t=null!=i?i:o.name)?t:o.property)?n:o.httpEquiv)},o)))})),null!=(i=e.additionalLinkTags)&&i.length&&e.additionalLinkTags.forEach((function(e){var n,t=e.crossOrigin,i=N(e,C),o="anonymous"===t||"use-credentials"===t||""===t?t:void 0;a.push(k.default.createElement("link",T({key:"link"+(null!=(n=i.keyOverride)?n:i.href)+i.rel},i,{crossOrigin:o})))})),a}(e))},M=function(e){var n=e.title,t=e.titleTemplate,i=e.defaultTitle,a=e.themeColor,o=e.dangerouslySetAllPagesToNoIndex,s=void 0!==o&&o,r=e.dangerouslySetAllPagesToNoFollow,l=void 0!==r&&r,c=e.description,d=e.canonical,p=e.facebook,u=e.openGraph,g=e.additionalMetaTags,m=e.twitter,h=e.defaultOpenGraphImageWidth,y=e.defaultOpenGraphImageHeight,f=e.defaultOpenGraphVideoWidth,w=e.defaultOpenGraphVideoHeight,b=e.mobileAlternate,v=e.languageAlternates,S=e.additionalLinkTags,A=e.robotsProps,x=e.norobots;return k.default.createElement(R,{title:n,titleTemplate:t,defaultTitle:i,themeColor:a,dangerouslySetAllPagesToNoIndex:s,dangerouslySetAllPagesToNoFollow:l,description:c,canonical:d,facebook:p,openGraph:u,additionalMetaTags:g,twitter:m,defaultOpenGraphImageWidth:h,defaultOpenGraphImageHeight:y,defaultOpenGraphVideoWidth:f,defaultOpenGraphVideoHeight:w,mobileAlternate:b,languageAlternates:v,additionalLinkTags:S,robotsProps:A,norobots:x})},P=function(e){var n=e.title,t=e.themeColor,i=e.noindex,a=e.nofollow,o=e.robotsProps,s=e.description,r=e.canonical,l=e.openGraph,c=e.facebook,d=e.twitter,p=e.additionalMetaTags,u=e.titleTemplate,g=e.defaultTitle,m=e.mobileAlternate,h=e.languageAlternates,y=e.additionalLinkTags;return k.default.createElement(k.default.Fragment,null,k.default.createElement(R,{title:n,themeColor:t,noindex:i,nofollow:a,robotsProps:o,description:s,canonical:r,facebook:c,openGraph:l,additionalMetaTags:p,twitter:d,titleTemplate:u,defaultTitle:g,mobileAlternate:m,languageAlternates:h,additionalLinkTags:y}))},I=Object.freeze({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&apos;"}),O=(new RegExp("["+Object.keys(I).join("")+"]","g"),u(t(67294))),j=u(v()),H=t(11163),G=()=>{let{asPath:e}=(0,H.useRouter)(),n=e;return n.includes("?")&&(n=n.split("?")[0]),"/"!==n.charAt(n.length-1)&&(n+="/"),n},D=G,F=(e={})=>e[D()],$=(e={})=>(n,t=null)=>{const i=F(e)?.find((e=>e.id===n));return i?!0===i.hasBody?i.body:"content"in i.attributes?i.attributes.content:"href"in i.attributes?i.attributes.href:t:t},U=(e,n)=>{const t=$(e);let i=[];const a=t("keywords");a&&i.push({name:"keywords",content:a});const o=t("subject");o&&i.push({name:"subject",content:o});const s=t("copyright");s&&i.push({name:"copyright",content:s});const r=t("url");return r&&i.push({name:"url",content:r}),[...i,...n]},W=u(t(90953));function _({siteName:e,locale:n,images:t,title:i,titleTemplate:a,description:o,canonical:s,robots:r,additionalMetaTags:l,languageAlternates:c,twitter:d,metaObject:p,Component:u=M,addTracker:g,cookieExpiryTime:m,...h}){const y=$(p),f=y("title",a&&!a.includes(i)?a.replace("%s",i):i),w=y("description",o),b=y("robots",r),v=y("canonical",s),S=y("jsonSchema"),A=U(p,l);return(0,O.useEffect)((()=>{!0===g&&console.warn("@deprecated addTracker prop: \r\n SourceFlowTracker is now its own separate component. Please install @sourceflow-uk/sourceflow-tracker and render <SourceFlowTracker/> within <CookieConsent />.")}),[g]),O.default.createElement(O.default.Fragment,null,O.default.createElement(u,{title:f,description:w,noindex:b?.includes("noindex"),nofollow:b?.includes("nofollow"),canonical:v,additionalMetaTags:A,languageAlternates:c,openGraph:{type:"website",locale:n,url:v,siteName:e,images:t},twitter:d,...h}),S&&O.default.createElement("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:S}}),g&&O.default.createElement(W.default,{cookieExpiryTime:m}))}_.defaultProps={locale:"en",titleTemplate:"",twitter:{cardType:"summary_large_image"},images:[],additionalMetaTags:[],languageAlternates:[],addTracker:!1,cookieExpiryTime:108e5},_.propTypes={siteName:j.default.string,title:j.default.string,titleTemplate:j.default.string,description:j.default.string,locale:j.default.string,keywords:j.default.string,canonical:j.default.string,robots:j.default.string,additionalMetaTags:j.default.array,twitter:j.default.shape({handle:j.default.string,site:j.default.string,cardType:j.default.oneOf(["summary","summary_large_image"])}),languageAlternates:j.default.arrayOf(j.default.shape({hrefLang:j.default.string,href:j.default.string})),images:j.default.arrayOf(j.default.shape({url:j.default.string,width:j.default.number,height:j.default.number,alt:j.default.string,type:j.default.oneOf(["image/jpeg","image/png","image/webp"])})),metaObject:j.default.object.isRequired,Component:j.default.oneOf([M,P]),addTracker:j.default.bool,cookieExpiryTime:j.default.number};var Q=_,z=e=>A.default.createElement(Q,{...e,Component:P});
1z.defaultProps=Q.defaultProps,z.propTypes=Q.propTypes;var q=u(t(67294)),K=e=>q.default.createElement(Q,{...e,Component:M});K.defaultProps=Q.defaultProps,K.propTypes=Q.propTypes;var Y=z},90953:function(e,n,t){var i,a=Object.create,o=Object.defineProperty,s=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,l=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty,d=(e,n)=>function(){return n||(0,e[r(e)[0]])((n={exports:{}}).exports,n),n.exports},p=(e,n,t,i)=>{if(n&&"object"===typeof n||"function"===typeof n)for(let a of r(n))c.call(e,a)||a===t||o(e,a,{get:()=>n[a],enumerable:!(i=s(n,a))||i.enumerable});return e},u=(e,n,t)=>(t=null!=e?a(l(e)):{},p(!n&&e&&e.__esModule?t:o(t,"default",{value:e,enumerable:!0}),e)),g=d({"node_modules/react-is/cjs/react-is.development.js"(e){"use strict";(function(){var n="function"===typeof Symbol&&Symbol.for,t=n?Symbol.for("react.element"):60103,i=n?Symbol.for("react.portal"):60106,a=n?Symbol.for("react.fragment"):60107,o=n?Symbol.for("react.strict_mode"):60108,s=n?Symbol.for("react.profiler"):60114,r=n?Symbol.for("react.provider"):60109,l=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,u=n?Symbol.for("react.suspense"):60113,g=n?Symbol.for("react.suspense_list"):60120,m=n?Symbol.for("react.memo"):60115,h=n?Symbol.for("react.lazy"):60116,y=n?Symbol.for("react.block"):60121,f=n?Symbol.for("react.fundamental"):60117,w=n?Symbol.for("react.responder"):60118,b=n?Symbol.for("react.scope"):60119;function v(e){if("object"===typeof e&&null!==e){var n=e.$$typeof;switch(n){case t:var g=e.type;switch(g){case c:case d:case a:case s:case o:case u:return g;default:var y=g&&g.$$typeof;switch(y){case l:case p:case h:case m:case r:return y;default:return n}}case i:return n}}}var S=c,A=d,k=l,x=r,T=t,N=p,E=a,C=h,B=m,L=i,R=s,M=o,P=u,I=!1;function O(e){return v(e)===d}e.AsyncMode=S,e.ConcurrentMode=A,e.ContextConsumer=k,e.ContextProvider=x,e.Element=T,e.ForwardRef=N,e.Fragment=E,e.Lazy=C,e.Memo=B,e.Portal=L,e.Profiler=R,e.StrictMode=M,e.Suspense=P,e.isAsyncMode=function(e){return I||(I=!0,console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),O(e)||v(e)===c},e.isConcurrentMode=O,e.isContextConsumer=function(e){return v(e)===l},e.isContextProvider=function(e){return v(e)===r},e.isElement=function(e){return"object"===typeof e&&null!==e&&e.$$typeof===t},e.isForwardRef=function(e){return v(e)===p},e.isFragment=function(e){return v(e)===a},e.isLazy=function(e){return v(e)===h},e.isMemo=function(e){return v(e)===m},e.isPortal=function(e){return v(e)===i},e.isProfiler=function(e){return v(e)===s},e.isStrictMode=function(e){return v(e)===o},e.isSuspense=function(e){return v(e)===u},e.isValidElementType=function(e){return"string"===typeof e||"function"===typeof e||e===a||e===d||e===s||e===o||e===u||e===g||"object"===typeof e&&null!==e&&(e.$$typeof===h||e.$$typeof===m||e.$$typeof===r||e.$$typeof===l||e.$$typeof===p||e.$$typeof===f||e.$$typeof===w||e.$$typeof===b||e.$$typeof===y)},e.typeOf=v})()}}),m=d({"node_modules/react-is/index.js"(e,n){"use strict";n.exports=g()}}),h=d({"node_modules/object-assign/index.js"(e,n){"use strict";var t=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;function o(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}n.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var n={},t=0;t<10;t++)n["_"+String.fromCharCode(t)]=t;if("0123456789"!==Object.getOwnPropertyNames(n).map((function(e){return n[e]})).join(""))return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach((function(e){i[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},i)).join("")}catch(a){return!1}}()?Object.assign:function(e,n){for(var s,r,l=o(e),c=1;c<arguments.length;c++){for(var d in s=Object(arguments[c]))i.call(s,d)&&(l[d]=s[d]);if(t){r=t(s);for(var p=0;p<r.length;p++)a.call(s,r[p])&&(l[r[p]]=s[r[p]])}}return l}}}),y=d({"node_modules/prop-types/lib/ReactPropTypesSecret.js"(e,n){"use strict";n.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"}}),f=d({"node_modules/prop-types/lib/has.js"(e,n){n.exports=Function.call.bind(Object.prototype.hasOwnProperty)}}),w=d({"node_modules/prop-types/checkPropTypes.js"(e,n){"use strict";var t,i,a,o=function(){};function s(e,n,s,r,l){for(var c in e)if(a(e,c)){var d;try{if("function"!==typeof e[c]){var p=Error((r||"React class")+": "+s+" type `"+c+"` is invali
1d; it must be a function, usually from the `prop-types` package, but received `"+typeof e[c]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw p.name="Invariant Violation",p}d=e[c](n,c,r,s,null,t)}catch(g){d=g}if(!d||d instanceof Error||o((r||"React class")+": type specification of "+s+" `"+c+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof d+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),d instanceof Error&&!(d.message in i)){i[d.message]=!0;var u=l?l():"";o("Failed "+s+" type: "+d.message+(null!=u?u:""))}}}t=y(),i={},a=f(),o=function(e){var n="Warning: "+e;"undefined"!==typeof console&&console.error(n);try{throw new Error(n)}catch(t){}},s.resetWarningCache=function(){i={}},n.exports=s}}),b=d({"node_modules/prop-types/factoryWithTypeCheckers.js"(e,n){"use strict";var t=m(),i=h(),a=y(),o=f(),s=w(),r=function(){};function l(){return null}r=function(e){var n="Warning: "+e;"undefined"!==typeof console&&console.error(n);try{throw new Error(n)}catch(t){}},n.exports=function(e,n){var c="function"===typeof Symbol&&Symbol.iterator;var d="<<anonymous>>",p={array:h("array"),bigint:h("bigint"),bool:h("boolean"),func:h("function"),number:h("number"),object:h("object"),string:h("string"),symbol:h("symbol"),any:m(l),arrayOf:function(e){return m((function(n,t,i,o,s){if("function"!==typeof e)return new g("Property `"+s+"` of component `"+i+"` has invalid PropType notation inside arrayOf.");var r=n[t];if(!Array.isArray(r))return new g("Invalid "+o+" `"+s+"` of type `"+w(r)+"` supplied to `"+i+"`, expected an array.");for(var l=0;l<r.length;l++){var c=e(r,l,i,o,s+"["+l+"]",a);if(c instanceof Error)return c}return null}))},element:m((function(n,t,i,a,o){var s=n[t];return e(s)?null:new g("Invalid "+a+" `"+o+"` of type `"+w(s)+"` supplied to `"+i+"`, expected a single ReactElement.")})),elementType:m((function(e,n,i,a,o){var s=e[n];return t.isValidElementType(s)?null:new g("Invalid "+a+" `"+o+"` of type `"+w(s)+"` supplied to `"+i+"`, expected a single ReactElement type.")})),instanceOf:function(e){return m((function(n,t,i,a,o){if(!(n[t]instanceof e)){var s=e.name||d;return new g("Invalid "+a+" `"+o+"` of type `"+(((r=n[t]).constructor&&r.constructor.name?r.constructor.name:d)+"` supplied to `")+i+"`, expected instance of `"+s+"`.")}var r;return null}))},node:m((function(e,n,t,i,a){return f(e[n])?null:new g("Invalid "+i+" `"+a+"` supplied to `"+t+"`, expected a ReactNode.")})),objectOf:function(e){return m((function(n,t,i,s,r){if("function"!==typeof e)return new g("Property `"+r+"` of component `"+i+"` has invalid PropType notation inside objectOf.");var l=n[t],c=w(l);if("object"!==c)return new g("Invalid "+s+" `"+r+"` of type `"+c+"` supplied to `"+i+"`, expected an object.");for(var d in l)if(o(l,d)){var p=e(l,d,i,s,r+"."+d,a);if(p instanceof Error)return p}return null}))},oneOf:function(e){if(!Array.isArray(e))return r(arguments.length>1?"Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).":"Invalid argument supplied to oneOf, expected an array."),l;function n(n,t,i,a,o){for(var s=n[t],r=0;r<e.length;r++)if(u(s,e[r]))return null;var l=JSON.stringify(e,(function(e,n){return"symbol"===b(n)?String(n):n}));return new g("Invalid "+a+" `"+o+"` of value `"+String(s)+"` supplied to `"+i+"`, expected one of "+l+".")}return m(n)},oneOfType:function(e){if(!Array.isArray(e))return r("Invalid argument supplied to oneOfType, expected an instance of array."),l;for(var n=0;n<e.length;n++){var t=e[n];if("function"!==typeof t)return r("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+v(t)+" at index "+n+"."),l}return m((function(n,t,i,s,r){for(var l=[],c=0;c<e.length;c++){var d=(0,e[c])(n,t,i,s,r,a);if(null==d)return null;d.data&&o(d.data,"expectedType")&&l.push(d.data.expectedType)}return new g("Invalid "+s+" `"+r+"` supplied to `"+i+"`"+(l.length>0?", expected one of type ["+l.join(", ")+"]":"")+".")}))},shape:function(e){return m((function(n,t,i,o,s){var r=n[t],l=w(r);if("object"!==l)return new g("Invalid "+o+" `"+s+"` of type `"+l+"` supplied to `"+i+"`, expected `object`.");for(var c in e){var d=e[c];if("function"!==typeof d)return y(i,o,s,c,b(d));var p=d(r,c,i,o,s+"."+c,a);if(p)return p}return null}))},exact:function(e){return m((function(n,t,s,r,l){var c=n[t],d=w(c);if("object"!==d)return new g("Invalid "+r+" `"+l+"` of type `"+d+"` supplied to `"+s+"`, expected `object`.");var p=i({},n[t],e);for(var u in p){var m=e[u];if(o(e,u)&&"function"!==typeof m)return y(s,r,l,u,b(m));if(!m)return new g("Invalid "+r+" `"+l+"` key `"+u+"` supplied to `"+s+"`.\nBad object: "+JSON.stringify(n[t],null,"  ")+"\nValid keys: "+JSON.stringify(Object.keys(e),null,"  "));var h=m(c,u,s,r,l+"."+u,a);if(h)return h}return null}))}};function u(e,n){return e===n?0!==e||1/e===1/n:e!==e&&n!==n}function g(e,n){this.message=e,this.data=n&&"object"===typeof n?n:{},this.stack=""}function m(e){var t={},i=0;function o(o,s,l,c,p,u,m){if(c=c||d,u=u||l,m!==a){if(n){var h=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw h.name="Invariant Violation",h}if("undefined"!==typeof console){var y=c+":"+l;!t[y]&&i<3&&(r("You are manually calling a React.PropTypes validation function for the `"+u+"` prop on `"+c+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),t[y]=!0,i++)}}return null==s[l]?o?null===s[l]?new g("The "+p+" `"+u+"` is marked as required in `"+c+"`, but its value is `null`."):new g("The "+p+" `"+u+"` is marked as required in `"+c+"`, but its value is `undefined`."):null:e(s,l,c,p,u)}var s=o.bind(null,!1);return s.isRequired=o.bind(null,!0),s}function h(e){return m((function(n,t,i,a,o,s){var r=n[t];return w(r)!==e?new g("Invalid "+a+" `"+o+"` of type `"+b(r)+"` supplied to `"+i+"`, expected `"+e+"`.",{expectedType:e}):null}))}function y(e,n,t,i,a){return new g((e||"React class")+": "+n+" type `"+t+"."+i+"` is invali
1d; it must be a function, usually from the `prop-types` package, but received `"+a+"`.")}function f(n){switch(typeof n){case"number":case"string":case"undefined":return!0;case"boolean":return!n;case"object":if(Array.isArray(n))return n.every(f);if(null===n||e(n))return!0;var t=function(e){var n=e&&(c&&e[c]||e["@@iterator"]);if("function"===typeof n)return n}(n);if(!t)return!1;var i,a=t.call(n);if(t!==n.entries){for(;!(i=a.next()).done;)if(!f(i.value))return!1}else for(;!(i=a.next()).done;){var o=i.value;if(o&&!f(o[1]))return!1}return!0;default:return!1}}function w(e){var n=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":function(e,n){return"symbol"===e||!!n&&("Symbol"===n["@@toStringTag"]||"function"===typeof Symbol&&n instanceof Symbol)}(n,e)?"symbol":n}function b(e){if("undefined"===typeof e||null===e)return""+e;var n=w(e);if("object"===n){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return n}function v(e){var n=b(e);switch(n){case"array":case"object":return"an "+n;case"boolean":case"date":case"regexp":return"a "+n;default:return n}}return g.prototype=Error.prototype,p.checkPropTypes=s,p.resetWarningCache=s.resetWarningCache,p.PropTypes=p,p}}}),v=d({"node_modules/prop-types/index.js"(e,n){var t;t=m(),n.exports=b()(t.isElement,true)}}),S={};((e,n)=>{for(var t in n)o(e,t,{get:n[t],enumerable:!0})})(S,{default:()=>R}),e.exports=(i=S,p(o({},"__esModule",{value:!0}),i));var A=u(t(67294)),k=t(11163);function x(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var i in t)e[i]=t[i]}return e}var T=function e(n,t){function i(e,i,a){if("undefined"!==typeof document){"number"===typeof(a=x({},t,a)).expires&&(a.expires=new Date(Date.now()+864e5*a.expires)),a.expires&&(a.expires=a.expires.toUTCString()),e=encodeURIComponent(e).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var o="";for(var s in a)a[s]&&(o+="; "+s,!0!==a[s]&&(o+="="+a[s].split(";")[0]));return document.cookie=e+"="+n.write(i,e)+o}}return Object.create({set:i,get:function(e){if("undefined"!==typeof document&&(!arguments.length||e)){for(var t=document.cookie?document.cookie.split("; "):[],i={},a=0;a<t.length;a++){var o=t[a].split("="),s=o.slice(1).join("=");try{var r=decodeURIComponent(o[0]);if(i[r]=n.read(s,r),e===r)break}catch(l){}}return e?i[e]:i}},remove:function(e,n){i(e,"",x({},n,{expires:-1}))},withAttributes:function(n){return e(this.converter,x({},this.attributes,n))},withConverter:function(n){return e(x({},this.converter,n),this.attributes)}},{attributes:{value:Object.freeze(t)},converter:{value:Object.freeze(n)}})}({read:function(e){return'"'===e[0]&&(e=e.slice(1,-1)),e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(e){return encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}},{path:"/"}),N=u(v()),E="_sf_journey",C="_sf_journey_last_event",B="_sf_source",L=function(){if(T.get(B))return;const e=new URLSearchParams(window.location.search),n=function(){const{referrer:e}=document;if(e){const n=new URL(e);if(window.location.host===n.host)return;return n.host}}()||"",t=e.get("utm_source")||"",i=e.get("utm_medium")||"",a=e.get("utm_campaign")||"";T.set(B,`referrer:${n}|utm_source:${t}|utm_medium:${i}|utm_campaign:${a}`)};function R({cookieExpiryTime:e}){const n=(0,k.useRouter)();return(0,A.useEffect)((()=>{(function(e){const n=T.get(C);return!!n&&Date.now()-new Date(parseInt(n))>e})(e)&&function(e=[E,B]){e.forEach((e=>{T.remove(e)}))}(),function(e){let n=T.get(E);if(n){let t=n.split("|");if(t[t.length-1]?.split(":")[1]===e)return;n+="|"}else n="";n+=`${Date.now()}:${e}`,T.set(E,n)}(n.asPath),L(),T.set(C,`${Date.now()}`)}),[n.asPath,e]),A.default.createElement(A.default.Fragment,null)}R.defaultProps={cookieExpiryTime:108e5},R.propTypes={cookieExpiryTime:N.default.number}},32684:function(e,n,t){"use strict";var i,a=t(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var i in t)({}).hasOwnProperty.call(t,i)&&(e[i]=t[i])}return e},o.apply(null,arguments)}n.Z=function(e){return a.createElement("svg",o({width:40,height:40,fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),i||(i=a.createElement("g",{fill:"#000"},a.createElement("path",{opacity:.3,d:"M19.936 18.849 33.417 5.256A19.841 19.841 0 0 0 19.936 0C8.928 0 0 8.928 0 19.936s8.928 19.936 19.936 19.936 19.936-8.928 19.936-19.936c0-.368-.009-.728-.035-1.087h-19.91.009Z"}),a.createElement("path",{opacity:.3,d:"M39.871 18.849H19.935v21.15h19.936V18.85Z"}))))}},24148:function(e,n,t){"use strict";var i,a=t(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var i in t)({}).hasOwnProperty.call(t,i)&&(e[i]=t[i])}return e},o.apply(null,arguments)}n.Z=function(e){return a.createElement("svg",o({width:18,height:18,viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),i||(i=a.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M15.695 12.794c1.226.68 2.453 1.362 3.678 2.044.528.293.76.9
115.552 1.481-1.055 2.882-4.144 4.403-7.05 3.342C6.921 17.489 2.51 13.077.337 7.125-.722 4.219.798 1.129 3.68.075a1.21 1.21 0 0 1 1.482.551l2.043 3.679c.32.575.245 1.257-.193 1.748L5.295 7.985c1.222 2.975 3.744 5.497 6.72 6.718l1.93-1.717a1.498 1.498 0 0 1 1.75-.193Z",fill:"#000"})))}},9457:function(e,n,t){"use strict";var i,a,o,s=t(67294);function r(){return r=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var i in t)({}).hasOwnProperty.call(t,i)&&(e[i]=t[i])}return e},r.apply(null,arguments)}n.Z=function(e){return s.createElement("svg",r({width:40,height:40,fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),i||(i=s.createElement("path",{opacity:.4,d:"M0 0v26.67h27.169S40 25.164 40 13.34C40 1.514 31.446 0 25.663 0H0Z",fill:"#1D1D1B"})),a||(a=s.createElement("path",{opacity:.2,d:"M20.004 0H0v40h20.004V0Z",fill:"#000"})),o||(o=s.createElement("path",{opacity:.3,d:"m0 40 20.005-19.995L40 40H0Z",fill:"#000"})))}},99459:function(e,n,t){"use strict";var i,a=t(67294);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var i in t)({}).hasOwnProperty.call(t,i)&&(e[i]=t[i])}return e},o.apply(null,arguments)}n.Z=function(e){return a.createElement("svg",o({width:40,height:40,fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),i||(i=a.createElement("g",{fill:"#1D1D1B"},a.createElement("path",{opacity:.3,d:"m40 0-8.413 26.67H12.831S0 25.164 0 13.33C0 1.506 8.554 0 14.337 0H40Z"}),a.createElement("path",{opacity:.4,d:"M9.304 13.33 0 40h27.169S40 38.494 40 26.67c0-11.825-8.554-13.331-14.337-13.331H9.303v-.009Z"}))))}},94184:function(e,n){var t;!function(){"use strict";var i={}.hasOwnProperty;function a(){for(var e=[],n=0;n<arguments.length;n++){var t=arguments[n];if(t){var o=typeof t;if("string"===o||"number"===o)e.push(t);else if(Array.isArray(t)){if(t.length){var s=a.apply(null,t);s&&e.push(s)}}else if("object"===o){if(t.toString!==Object.prototype.toString&&!t.toString.toString().includes("[native code]")){e.push(t.toString());continue}for(var r in t)i.call(t,r)&&t[r]&&e.push(r)}}}return e.join(" ")}e.exports?(a.default=a,e.exports=a):void 0===(t=function(){return a}.apply(n,[]))||(e.exports=t)}()},44019:function(e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.getDomainLocale=function(e,n,t,i){return!1};("function"===typeof n.default||"object"===typeof n.default&&null!==n.default)&&"undefined"===typeof n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),e.exports=n.default)},7942:function(e,n,t){"use strict";var i=t(85696);Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var a=t(92648).Z,o=t(17273).Z,s=a(t(67294)),r=t(64957),l=t(57995),c=t(30647),d=t(51992),p=t(90639),u=t(44019),g=t(70227),m={};function h(e,n,t,i){if(e&&r.isLocalURL(n)){Promise.resolve(e.prefetch(n,t,i)).catch((function(e){0}));var a=i&&"undefined"!==typeof i.locale?i.locale:e&&e.locale;m[n+"%"+t+(a?"%"+a:"")]=!0}}var y=s.default.forwardRef((function(e,n){var t,a=e.href,y=e.as,f=e.children,w=e.prefetch,b=e.passHref,v=e.replace,S=e.shallow,A=e.scroll,k=e.locale,x=e.onClick,T=e.onMouseEnter,N=e.onTouchStart,E=e.legacyBehavior,C=void 0===E?!0!==Boolean(!1):E,B=o(e,["href","as","children","prefetch","passHref","replace","shallow","scroll","locale","onClick","onMouseEnter","onTouchStart","legacyBehavior"]);t=f,!C||"string"!==typeof t&&"number"!==typeof t||(t=s.default.createElement("a",null,t));var L=!1!==w,R=s.default.useContext(c.RouterContext),M=s.default.useContext(d.AppRouterContext);M&&(R=M);var P,I=s.default.useMemo((function(){var e=r.resolveHref(R,a,!0),n=i(e,2),t=n[0],o=n[1];return{href:t,as:y?r.resolveHref(R,y):o||t}}),[R,a,y]),O=I.href,j=I.as,H=s.default.useRef(O),G=s.default.useRef(j);C&&(P=s.default.Children.only(t));var D=C?P&&"object"===typeof P&&P.ref:n,F=p.useIntersection({rootMargin:"200px"}),$=i(F,3),U=$[0],W=$[1],_=$[2],Q=s.default.useCallback((function(e){G.current===j&&H.current===O||(_(),G.current=j,H.current=O),U(e),D&&("function"===typeof D?D(e):"object"===typeof D&&(D.current=e))}),[j,D,O,_,U]);s.default.useEffect((function(){var e=W&&L&&r.isLocalURL(O),n="undefined"!==typeof k?k:R&&R.locale,t=m[O+"%"+j+(n?"%"+n:"")];e&&!t&&h(R,O,j,{locale:n})}),[j,O,W,k,L,R]);var z={ref:Q,onClick:function(e){C||"function"!==typeof x||x(e),C&&P.props&&"function"===typeof P.props.onClick&&P.props.onClick(e),e.defaultPrevented||function(e,n,t,i,a,o,l,c,d,p){if("A"!==e.currentTarget.nodeName.toUpperCase()||!function(e){var n=e.currentTarget.target;return n&&"_self"!==n||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.nativeEvent&&2===e.nativeEvent.which}(e)&&r.isLocalURL(t)){e.preventDefault();var u=function(){"beforePopState"in n?n[a?"replace":"push"](t,i,{shallow:o,locale:c,scroll:l}):n[a?"replace":"push"](t,{forceOptimisticNavigation:!p})};d?s.default.startTransition(u):u()}}(e,R,O,j,v,S,A,k,Boolean(M),L)},onMouseEnter:function(e){C||"function"!==typeof T||T(e),C&&P.props&&"function"===typeof P.props.onMouseEnter&&P.props.onMouseEnter(e),!L&&M||r.isLocalURL(O)&&h(R,O,j,{priority:!0})},onTouchStart:function(e){C||"function"!==typeof N||N(e),C&&P.props&&"function"===typeof P.props.onTouchStart&&P.props.onTouchStart(e),!L&&M||r.isLocalURL(O)&&h(R,O,j,{priority:!0})}};if(!C||b||"a"===P.type&&!("href"in P.props)){var q="undefined"!==typeof k?k:R&&R.locale,K=R&&R.isLocaleDomain&&u.getDomainLocale(j,q,R.locales,R.domainLocales);z.href=K||g.addBasePath(l.addLocale(j,q,R&&R.defaultLocale))}return C?s.default.cloneElement(P,z):s.default.createElement("a",Object.assign({},B,z),t)}));n.default=y,("function"===typeof n.default||"object"===typeof n.default&&null!==n.default)&&"undefined"===typeof n.default.__esModule&&(Object.defineProperty(n.default,"__esMo
1dule",{value:!0}),Object.assign(n.default,n),e.exports=n.default)},90639:function(e,n,t){"use strict";var i=t(85696);Object.defineProperty(n,"__esModule",{value:!0}),n.useIntersection=function(e){var n=e.rootRef,t=e.rootMargin,c=e.disabled||!s,d=a.useState(!1),p=i(d,2),u=p[0],g=p[1],m=a.useState(null),h=i(m,2),y=h[0],f=h[1];a.useEffect((function(){if(s){if(c||u)return;if(y&&y.tagName){var e=function(e,n,t){var i=function(e){var n,t={root:e.root||null,margin:e.rootMargin||""},i=l.find((function(e){return e.root===t.root&&e.margin===t.margin}));if(i&&(n=r.get(i)))return n;var a=new Map,o=new IntersectionObserver((function(e){e.forEach((function(e){var n=a.get(e.target),t=e.isIntersecting||e.intersectionRatio>0;n&&t&&n(t)}))}),e);return n={id:t,observer:o,elements:a},l.push(t),r.set(t,n),n}(t),a=i.id,o=i.observer,s=i.elements;return s.set(e,n),o.observe(e),function(){if(s.delete(e),o.unobserve(e),0===s.size){o.disconnect(),r.delete(a);var n=l.findIndex((function(e){return e.root===a.root&&e.margin===a.margin}));n>-1&&l.splice(n,1)}}}(y,(function(e){return e&&g(e)}),{root:null==n?void 0:n.current,rootMargin:t});return e}}else if(!u){var i=o.requestIdleCallback((function(){return g(!0)}));return function(){return o.cancelIdleCallback(i)}}}),[y,c,t,n,u]);var w=a.useCallback((function(){g(!1)}),[]);return[f,u,w]};var a=t(67294),o=t(26286),s="function"===typeof IntersectionObserver,r=new Map,l=[];("function"===typeof n.default||"object"===typeof n.default&&null!==n.default)&&"undefined"===typeof n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),e.exports=n.default)},78e3:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.AmpStateContext=void 0;var i=(0,t(92648).Z)(t(67294)).default.createContext({});n.AmpStateContext=i},9470:function(e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.isInAmpMode=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.ampFirst,t=void 0!==n&&n,i=e.hybrid,a=void 0!==i&&i,o=e.hasQuery,s=void 0!==o&&o;return t||a&&s}},51992:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.TemplateContext=n.GlobalLayoutRouterContext=n.LayoutRouterContext=n.AppRouterContext=void 0;var i=(0,t(92648).Z)(t(67294)),a=i.default.createContext(null);n.AppRouterContext=a;var o=i.default.createContext(null);n.LayoutRouterContext=o;var s=i.default.createContext(null);n.GlobalLayoutRouterContext=s;var r=i.default.createContext(null);n.TemplateContext=r},72717:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.defaultHead=d,n.default=void 0;var i=t(6495).Z,a=t(92648).Z,o=(0,t(91598).Z)(t(67294)),s=a(t(11585)),r=t(78e3),l=t(15850),c=t(9470);t(99475);function d(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=[o.default.createElement("meta",{charSet:"utf-8"})];return e||n.push(o.default.createElement("meta",{name:"viewport",content:"width=device-width"})),n}function p(e,n){return"string"===typeof n||"number"===typeof n?e:n.type===o.default.Fragment?e.concat(o.default.Children.toArray(n.props.children).reduce((function(e,n){return"string"===typeof n||"number"===typeof n?e:e.concat(n)}),[])):e.concat(n)}var u=["name","httpEquiv","charSet","itemProp"];function g(e,n){var t=n.inAmpMode;return e.reduce(p,[]).reverse().concat(d(t).reverse()).filter(function(){var e=new Set,n=new Set,t=new Set,i={};return function(a){var o=!0,s=!1;if(a.key&&"number"!==typeof a.key&&a.key.indexOf("$")>0){s=!0;var r=a.key.slice(a.key.indexOf("$")+1);e.has(r)?o=!1:e.add(r)}switch(a.type){case"title":case"base":n.has(a.type)?o=!1:n.add(a.type);break;case"meta":for(var l=0,c=u.length;l<c;l++){var d=u[l];if(a.props.hasOwnProperty(d))if("charSet"===d)t.has(d)?o=!1:t.add(d);else{var p=a.props[d],g=i[d]||new Set;"name"===d&&s||!g.has(p)?(g.add(p),i[d]=g):o=!1}}}return o}}()).reverse().map((function(e,n){var a=e.key||n;if(!t&&"link"===e.type&&e.props.href&&["https://fonts.googleapis.com/css","https://use.typekit.net/"].some((function(n){return e.props.href.startsWith(n)}))){var s=i({},e.props||{});return s["data-href"]=s.href,s.href=void 0,s["data-optimized-fonts"]=!0,o.default.cloneElement(e,s)}return o.default.cloneElement(e,{key:a})}))}var m=function(e){var n=e.children,t=o.useContext(r.AmpStateContext),i=o.useContext(l.HeadManagerContext);return o.default.createElement(s.default,{reduceComponentsToState:g,headManager:i,inAmpMode:c.isInAmpMode(t)},n)};n.default=m,("function"===typeof n.default||"object"===typeof n.default&&null!==n.default)&&"undefined"===typeof n.default.__esModule&&(Object.defineProperty(n.default,"__esMo
1dule",{value:!0}),Object.assign(n.default,n),e.exports=n.default)},11585:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){var n=e.headManager,t=e.reduceComponentsToState;function r(){if(n&&n.mountedInstances){var a=i.Children.toArray(Array.from(n.mountedInstances).filter(Boolean));n.updateHead(t(a,e))}}if(a){var l;null==n||null==(l=n.mountedInstances)||l.add(e.children),r()}return o((function(){var t;return null==n||null==(t=n.mountedInstances)||t.add(e.children),function(){var t;null==n||null==(t=n.mountedInstances)||t.delete(e.children)}})),o((function(){return n&&(n._pendingUpdate=r),function(){n&&(n._pendingUpdate=r)}})),s((function(){return n&&n._pendingUpdate&&(n._pendingUpdate(),n._pendingUpdate=null),function(){n&&n._pendingUpdate&&(n._pendingUpdate(),n._pendingUpdate=null)}})),null};var i=(0,t(91598).Z)(t(67294));var a=!1,o=a?function(){}:i.useLayoutEffect,s=a?function(){}:i.useEffect},21190:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return q}});var i=t(59499),a=(t(48210),t(35585),t(67332),t(28279),t(67294)),o=t(59773),s=t.n(o),r=t(51291),l=t(11163),c=t(61958),d=t(47034),p=t.n(d),u=t(94184),g=t.n(u),m=t(41664),h=t.n(m);var y,f=t(6471),w=t.n(f);function b(){return b=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var i in t)({}).hasOwnProperty.call(t,i)&&(e[i]=t[i])}return e},b.apply(null,arguments)}var v,S=function(e){return a.createElement("svg",b({width:15,height:14,fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),y||(y=a.createElement("g",{fill:"#fff"},a.createElement("path",{d:"M3.814 3.958H.81v9.886h3.005V3.958ZM11.115 3.958c-1.72 0-2.196.564-2.578 1.29v-1.29H5.531v9.886h3.006V8.256c0-.86 0-1.72 1.503-1.72s1.503.86 1.503 1.72v5.588h3.005V8.256c0-2.579-.429-4.298-3.433-4.298ZM2.311 3.099A1.504 1.504 0 1 0 2.31.09 1.504 1.504 0 0 0 2.311 3.1Z"}))))};function A(){return A=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var i in t)({}).hasOwnProperty.call(t,i)&&(e[i]=t[i])}return e},A.apply(null,arguments)}var k,x=function(e){return a.createElement("svg",A({width:20,height:20,fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),v||(v=a.createElement("g",{fill:"#fff"},a.createElement("path",{d:"M15.198.256H4.938a2.563 2.563 0 0 0-2.565 2.567v10.27a2.569 2.569 0 0 0 2.565 2.568h10.26a2.563 2.563 0 0 0 2.564-2.568V2.823A2.568 2.568 0 0 0 15.198.256Zm1.282 12.837a1.284 1.284 0 0 1-1.282 1.284H4.938a1.281 1.281 0 0 1-1.282-1.284V2.823A1.284 1.284 0 0 1 4.938 1.54h10.26a1.282 1.282 0 0 1 1.282 1.283v10.27Z"}),a.createElement("path",{d:"M10.068 4.107A3.846 3.846 0 0 0 6.221 7.96a3.853 3.853 0 0 0 3.847 3.85 3.846 3.846 0 0 0 3.847-3.85 3.854 3.854 0 0 0-3.847-3.852Zm0 6.419a2.563 2.563 0 0 1-2.565-2.567 2.569 2.569 0 0 1 2.565-2.568 2.564 2.564 0 0 1 2.565 2.568 2.569 2.569 0 0 1-2.565 2.567ZM15.197 3.786a.962.962 0 1 1-1.925.001.962.962 0 0 1 1.925-.001Z"}))))};function T(){return T=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var i in t)({}).hasOwnProperty.call(t,i)&&(e[i]=t[i])}return e},T.apply(null,arguments)}var N=function(e){return a.createElement("svg",T({width:16,height:16,viewBox:"0 0 1200 1227",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),k||(k=a.createElement("path",{d:"M714.163 519.284 1160.89 0h-105.86L667.137 450.887 357.328 0H0l468.492 681.821L0 1226.37h105.866l409.625-476.152 327.181 476.152H1200L714.137 519.284h.026ZM569.165 687.828l-47.468-67.894-377.686-540.24h162.604l304.797 435.991 47.468 67.894 396.2 566.721H892.476L569.165 687.854v-.026Z",fill:"#fff"})))};var E=t(85893);function C(e){var n=e.footerSocialLinks,t=void 0===n||n,i=e.headerSocialLinks,a=void 0!==i&&i;return(0,E.jsxs)(E.Fragment,{children:[t&&(0,E.jsxs)("div",{id:"SocialLinks",className:"".concat(w().SocialLinks),children:[(0,E.jsx)(h(),{href:"https://www.linkedin.com/company/signify-technology/",children:(0,E.jsx)("a",{className:g()(w().li),target:"_blank",rel:"noreferrer","aria-label":"Follow us on Linkedin",children:(0,E.jsx)(S,{})})}),(0,E.jsx)(h(),{href:"https://twitter.com/Signify_Tech",children:(0,E.jsx)("a",{className:g()(w().li),target:"_blank",rel:"noreferrer","aria-label":"Follow us on Twitter",children:(0,E.jsx)(N,{})})}),(0,E.jsx)(h(),{href:"https://www.instagram.com/signify_tech/?hl=en",children:(0,E.jsx)("a",{className:g()(w().instagram),target:"_blank",rel:"noreferrer","aria-label":"Follow us on Instagram",children:(0,E.jsx)(x,{})})})]}),a&&(0,E.jsxs)("div",{id:"SocialLinks",className:"".concat(w().HeaderSocialLinks),children:[(0,E.jsx)("div",{className:g()(w().follow),children:"Follow us"}),(0,E.jsx)(h(),{href:"https://www.linkedin.com/company/signify-technology/",children:(0,E.jsx)("a",{className:g()(w().li),target:"_blank",rel:"noreferrer","aria-label":"Follow us on Linkedin",children:(0,E.jsx)(S,{})})}),(0,E.jsx)(h(),{href:"https://twitter.com/Signify_Tech",children:(0,E.jsx)("a",{className:g()(w().li),target:"_blank",rel:"noreferrer","aria-label":"Follow us on Twitter",children:(0,E.jsx)(N,{})})}),(0,E.jsx)(h(),{href:"https://www.instagram.com/signify_tech/?hl=en",children:(0,E.jsx)("a",{className:g()(w().instagram),target:"_blank",rel:"noreferrer","aria-label":"Follow us on Instagram",children:(0,E.jsx)(x,{})})})]})]})}var B,L;t(99459),t(9457),t(32684);function R(){var e=(0,l.useRouter)(),n=(0,a.useState)("false"),t=n[0],i=n[1],o=(0,a.useState)(!1),s=o[0],r=o[1],d=function(){i(!t)},u=e.asPath.split(/[?#]/)[0].replace(/\/$/,""),m=(0,a.useState)(!1),y=m[0];m[1];(0,a.useEffect)((function(){t?(document.body.classList.remove("no-scroll"),r(!1)):document.body.classList.add("no-scroll")}),[t]);var f=y?"header fixed":"header",w=t?"menu_closed":"menu_open",b=e.pathname.startsWith("/meet-the-team")||e.pathname.startsWith("/our-specialisms")||e.pathname.startsWith("/news")||e.pathname.startsWith("/company-values/")||e.pathname.startsWith("/jobs/")||e.pathname.startsWith("/locations")||e.pathname.startsWith("/thank-you")||e.pathname.startsWith("/leave-a-review")||e.pathname.startsWith("/404")?"header-dark":"header",v="".concat(f," ").concat(w," ").concat(b),S=(0,a.useState)(""),A=(S[0],S[1]);(0,a.useEffect)((function(){"/404"===e.pathname?A("header-noBanner"):A("")}
1),[e.pathname]);["/jobs/","/locations","/meet-the-team","/news","/our-specialisms","/404","/thank-you","/leave-a-review"].some((function(n){return e.pathname.startsWith(n)}));return h(),(0,E.jsxs)("header",{id:"Header",className:"".concat(p().Header," ").concat(v),children:[(0,E.jsx)(c.W2,{children:(0,E.jsxs)("div",{className:g()(p().wrapper,"wrapper"),children:[(0,E.jsx)("div",{className:g()(p().left,"left"),children:(0,E.jsx)(h(),{href:"/",children:(0,E.jsx)("figure",{className:g()(p().logo,"logo",{"logo-shadow":e.pathname.startsWith("/jobs/")||e.pathname.startsWith("/locations")||e.pathname.startsWith("/meet-the-team")||e.pathname.startsWith("/news")||e.pathname.startsWith("/our-specialisms")||e.pathname.startsWith("/404")||e.pathname.startsWith("/thank-you")||e.pathname.startsWith("/leave-a-review")}),children:(0,E.jsx)("img",{src:"/logo/signify-logo.png",alt:"Signify logo",onClick:function(){e.pathname.startsWith("/jobs/")||e.pathname.startsWith("/locations")||e.pathname.startsWith("/meet-the-team")||e.pathname.startsWith("/news")||e.pathname.startsWith("/our-specialisms")||e.pathname.startsWith("/404")||e.pathname.startsWith("/thank-you")||e.pathname.startsWith("/leave-a-review")?e.push("/specific-path"):e.push("/")}})})})}),(0,E.jsxs)("div",{className:g()(p().right,"right"),children:[(0,E.jsx)("div",{className:g()(p().top_menu_wrapper,"top-menu-wrapper"),children:(0,E.jsxs)("ul",{className:g()(p().top_menu),children:[(0,E.jsx)("li",{className:"/candidate-experience"==e.pathname?"active":"",children:(0,E.jsx)(h(),{href:"/candidate-experience",children:(0,E.jsx)("a",{children:"Candidates"})})}),(0,E.jsx)("li",{className:"/client-solutions"==e.pathname?"active":"",children:(0,E.jsx)(h(),{href:"/client-solutions",children:(0,E.jsx)("a",{children:"Client Solutions"})})}),(0,E.jsx)("li",{className:"/community-events"==e.pathname?"active":"",children:(0,E.jsx)(h(),{href:"/community-events",children:(0,E.jsx)("a",{children:"Community"})})}),(0,E.jsx)("li",{className:"/join-us"==e.pathname?"active":"",children:(0,E.jsx)(h(),{href:"/join-us",children:(0,E.jsx)("a",{children:"Join Us"})})}),(0,E.jsx)("li",{className:"/jobs"==e.pathname?"active":"",children:(0,E.jsx)(h(),{href:"/jobs",children:(0,E.jsx)("a",{children:"Job Search"})})})]})}),(0,E.jsx)("div",{className:"menu_trigger",onClick:d,children:(0,E.jsxs)("div",{className:"hamburger",id:"hamburger-6",children:[(0,E.jsx)("span",{className:"line"}),(0,E.jsx)("span",{className:"line"})]})})]})]})}),(0,E.jsx)("div",{className:"main_drop_wrapper",onClick:d,children:(0,E.jsx)("div",{className:"main_drop",children:(0,E.jsxs)(c.W2,{children:[(0,E.jsxs)("div",{className:"menu-wrapper hamburger",children:[(0,E.jsx)("div",{className:"sitemap",children:(0,E.jsx)("div",{className:"menuColumn",children:(0,E.jsxs)("div",{className:" slide",children:[(0,E.jsx)("div",{className:"menu-title",children:"sitemap"}),(0,E.jsxs)("ul",{className:"main-nav",children:[(0,E.jsx)("li",{className:"/"==e.pathname?"active":"",children:(0,E.jsx)(h(),{href:"/",children:(0,E.jsx)("a",{children:"Home"})})}),(0,E.jsx)("li",{className:"/jobs"==e.pathname?"active":"",children:(0,E.jsx)(h(),{href:"/jobs",children:(0,E.jsx)("a",{children:"Job Search"})})}),(0,E.jsx)("li",{className:"/candidate-experience"==e.pathname?"active":"",children:(0,E.jsx)(h(),{href:"/candidate-experience",children:(0,E.jsx)("a",{children:"Candidates"})})}),(0,E.jsx)("li",{className:"/client-solutions"==e.pathname?"active":"",children:(0,E.jsx)(h(),{href:"/client-solutions",children:(0,E.jsx)("a",{children:"Client Solutions"})})}),(0,E.jsx)("li",{className:"/resourcing-solutions"==e.pathname?"active":"",children:(0,E.jsx)(h(),{href:"/resourcing-solutions",children:(0,E.jsx)("a",{children:"Resourcing Solutions"})})}),(0,E.jsxs)("li",{className:g()("has-children",{active:"/consulting-solutions"==e.pathname,open:s}),children:[(0,E.jsxs)("div",{className:"parent-link",children:[(0,E.jsx)(h(),{href:"/consulting-solutions",children:(0,E.jsx)("a",{children:"Consulting Solutions"})}),(0,E.jsx)("button",{type:"button",className:"children-toggle","aria-expanded":s,"aria-controls":"consulting-solutions-submenu","aria-label":s?"Hide Consulting Solutions pages":"Show Consulting Solutions pages",onClick:function(e){e.stopPropagation(),r((function(e){return!e}))},children:(0,E.jsx)("span",{className:"chevron","aria-hidden":"true"})})]}),(0,E.jsxs)("ul",{id:"consulting-solutions-submenu",className:"children-nav",children:[(0,E.jsx)("li",{className:"/our-sow-solution"==u?"active":"",children:(0,E.jsx)(h(),{href:"/our-sow-solution",children:(0,E.jsx)("a",{children:"Statement of Work (SOW) Solution"})})}),(0,E.jsx)("li",{className:"/our-nearshoringoffshoring-solutions"==u?"active":"",children:(0,E.jsx)(h(),{href:"/our-nearshoringoffshoring-solutions",children:(0,E.jsx)("a",{children:"Nearshoring/Offshoring Solution"})})})]})]}),(0,E.jsx)("li",{className:"/community-events"==e.pathname?"active":"",children:(0,E.jsx)(h(),{href:"/community-events",children:(0,E.jsx)("a",{children:"Community"})})}),(0,E.jsx)("li",{className:"/diversity-and-inclusion"==e.pathname?"active":"",children:(0,E.jsx)(h(),{href:"/diversity-and-inclusion",children:(0,E.jsx)("a",{children:"Diversity & Inclusion"})})}),(0,E.jsx)("li",{className:"/news"==e.pathname?"active":"",children:(0,E.jsx)(h(),{href:"/news",children:(0,E.jsx)("a",{children:"Industry Insights"})})}),(0,E.jsx)("li",{className:"/join-us"==e.pathname?"active":"",children:(0,E.jsx)(h(),{href:"/join-us",children:(0,E.jsx)("a",{children:"Join Us"})})}
1),(0,E.jsx)("li",{className:"/meet-the-team"==e.pathname?"active":"",children:(0,E.jsx)(h(),{href:"/meet-the-team",children:(0,E.jsx)("a",{children:"Meet the Team"})})})]})]})})}),(0,E.jsx)("div",{className:"help",children:(0,E.jsx)("div",{className:"menuColumn",children:(0,E.jsxs)("div",{className:" slide",children:[(0,E.jsx)("div",{className:"menu-title",children:"Help"}),(0,E.jsxs)("ul",{className:"main-nav",children:[(0,E.jsx)("li",{className:"/get-in-touch"==e.pathname?"active":"",children:(0,E.jsx)(h(),{href:"/get-in-touch",children:(0,E.jsx)("a",{children:"Get in Touch"})})}),(0,E.jsx)("li",{className:"/leave-a-review"==e.pathname?"active":"",children:(0,E.jsx)(h(),{href:"leave-a-review",children:(0,E.jsx)("a",{children:"Leave a Review"})})}),(0,E.jsx)("li",{className:"/terms-and-conditions"==e.pathname?"active":"",children:(0,E.jsx)(h(),{href:"/terms-and-conditions",children:(0,E.jsx)("a",{children:"Terms & Conditions"})})}),(0,E.jsx)("li",{className:"/locations"==e.pathname?"active":"",children:(0,E.jsx)(h(),{href:"/locations",children:(0,E.jsx)("a",{children:"Our Locations"})})}),(0,E.jsx)("li",{children:(0,E.jsx)(h(),{href:"https://cdn.sourceflow.co.uk/abbt783bia89tegw5g4bmj0yugtn",children:(0,E.jsx)("a",{children:"Accessibility Statement"})})})]})]})})})]}),(0,E.jsxs)("div",{className:"bottom-menu-wrapper",children:[(0,E.jsx)("div",{className:"timesheet"}),(0,E.jsx)(C,{headerSocialLinks:!0,footerSocialLinks:!1})]})]})})})]})}function M(){return M=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var i in t)({}).hasOwnProperty.call(t,i)&&(e[i]=t[i])}return e},M.apply(null,arguments)}var P=function(e){return a.createElement("svg",M({width:136,height:15,fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),B||(B=a.createElement("g",{clipPath:"url(#sourceflow_svg__a)",fill:"#fff"},a.createElement("path",{d:"M123.855 13.47h.735v.16h-.264v.613h-.208v-.613h-.263v-.16Zm1.591.773-.002-.441-.234.36h-.093l-.235-.349v.43h-.195v-.773h.171l.309.466.302-.466h.169l.004.773h-.196ZM5.395 14.5c-.873 0-1.659-.137-2.358-.411-.7-.274-1.275-.66-1.728-1.158a3.612 3.612 0 0 1-.882-1.77l.487-.135c.112.604.366 1.127.764 1.57.397.441.914.785 1.552 1.031.638.247 1.36.37 2.165.37.917 0 1.72-.154 2.408-.462.688-.308 1.225-.733 1.61-1.276.387-.542.58-1.171.58-1.888 0-.95-.33-1.711-.99-2.282-.66-.57-1.589-1.029-2.786-1.376l-.99-.285c-.817-.235-1.443-.492-1.88-.772-.436-.28-.654-.655-.654-1.125 0-.548.257-.987.772-1.317.515-.33 1.164-.495 1.947-.495.76 0 1.387.157 1.88.47.491.313.771.721.838 1.225l-.486.134c-.023-.391-.238-.71-.646-.956-.409-.246-.937-.37-1.586-.37-.616 0-1.139.118-1.57.353-.43.235-.645.543-.645.923 0 .347.198.627.595.84.397.212.92.413 1.57.603l.956.286c1.354.402 2.388.925 3.105 1.569.716.643 1.074 1.513 1.074 2.61 0 .794-.216 1.501-.646 2.122-.431.62-1.03 1.105-1.796 1.452-.767.346-1.653.52-2.66.52Zm0-2.215c-.795 0-1.45-.154-1.963-.462-.515-.307-.795-.718-.84-1.233l.487-.134c0 .38.215.696.646.948.43.251.987.377 1.67.377.705 0 1.278-.128 1.72-.386.442-.257.663-.587.663-.99 0-.38-.185-.688-.554-.923-.37-.235-.873-.442-1.51-.62l-1.04-.303c-1.388-.402-2.434-.911-3.139-1.527C.83 6.417.478 5.572.478 4.498c0-.772.215-1.457.646-2.056.43-.598 1.018-1.07 1.762-1.417s1.586-.52 2.526-.52c.85 0 1.62.136 2.307.41a4.505 4.505 0 0 1 1.712 1.167c.453.503.741 1.09.864 1.762l-.487.134a3.051 3.051 0 0 0-.755-1.56c-.402-.448-.917-.795-1.544-1.041-.626-.246-1.325-.37-2.097-.37-.85 0-1.609.155-2.274.462-.666.308-1.192.725-1.578 1.25a2.984 2.984 0 0 0-.579 1.813c0 .917.322 1.653.965 2.207.644.554 1.597 1.004 2.862 1.35l1.04.286c.772.213 1.37.47 1.796.772.425.302.638.71.638 1.225 0 .57-.264 1.032-.79 1.385-.525.352-1.224.528-2.097.528Zm0 1.107c-1.052 0-1.933-.232-2.643-.696-.71-.464-1.127-1.071-1.25-1.821l.503-.134c.09.649.439 1.169 1.049 1.56.61.392 1.39.588 2.34.588.694 0 1.304-.106 1.83-.319.526-.212.934-.509 1.225-.89.29-.38.436-.816.436-1.308 0-.683-.257-1.223-.772-1.62-.514-.397-1.225-.718-2.131-.965l-1.024-.285C3.873 7.2 3.04 6.82 2.458 6.36c-.582-.459-.873-1.068-.873-1.83 0-.57.165-1.073.495-1.51.33-.436.786-.78 1.368-1.032.582-.251 1.236-.377 1.963-.377.683 0 1.295.103 1.838.31.542.207.987.501 1.334.881.346.38.56.822.637 1.326l-.503.134c-.078-.648-.422-1.169-1.032-1.56-.61-.392-1.368-.588-2.274-.588-.637 0-1.208.104-1.712.31-.503.208-.897.493-1.183.856a1.97 1.97 0 0 0-.428 1.25c0 .639.255 1.142.764 1.511.509.37 1.25.694 2.223.973l1.007.286c1.04.29 1.852.674 2.434 1.15.581.475.872 1.115.872 1.92 
10 .594-.168 1.117-.503 1.57-.336.453-.803.808-1.402 1.066-.598.257-1.295.385-2.089.385ZM31.876 14.5c-1.04 0-1.939-.226-2.694-.68a4.632 4.632 0 0 1-1.745-1.837 5.368 5.368 0 0 1-.612-2.551V.756h.503v8.676c0 .84.182 1.605.545 2.3a4.141 4.141 0 0 0 1.561 1.652c.677.409 1.49.613 2.442.613.95 0 1.764-.204 2.442-.613a4.145 4.145 0 0 0 1.56-1.653c.364-.694.545-1.46.545-2.299V.756h.504v8.676a5.37 5.37 0 0 1-.613 2.55 4.653 4.653 0 0 1-1.736 1.838c-.75.454-1.65.68-2.702.68Zm0-1.108c-.84 0-1.553-.178-2.14-.537a3.559 3.559 0 0 1-1.343-1.434 4.282 4.282 0 0 1-.46-1.99V.757h.503v8.676c0 .638.13 1.217.394 1.737.263.52.652.937 1.166 1.25.515.313 1.141.47 1.88.47.749 0 1.378-.157 1.887-.47.51-.313.895-.73 1.158-1.25a3.8 3.8 0 0 0 .395-1.737V.756h.503v8.676c0 .727-.154 1.39-.461 1.989a3.56 3.56 0 0 1-1.343 1.435c-.587.358-1.3.537-2.14.537Zm0-1.107c-.638 0-1.166-.129-1.586-.386a2.42 2.42 0 0 1-.94-1.032 3.266 3.266 0 0 1-.31-1.435V.756h.503v8.676c0 .649.185 1.203.554 1.662.369.458.962.688 1.779.688s1.41-.23 1.779-.688c.369-.459.553-1.013.553-1.662V.756h.504v8.676c0 .526-.104 1.004-.31 1.435a2.42 2.42 0 0 1-.94 1.032c-.42.257-.949.386-1.586.386ZM46.677 14.248 44.36 9.197h.554l2.316 5.051h-.554ZM47.902 14.248 45.569 9.18a4.441 4.441 0 0 0 .554-.034l2.332 5.102h-.553ZM49.127 14.248 46.76 9.063c.079-.011.16-.025.244-.042.084-.017.165-.042.243-.076l2.433 5.303h-.553ZM73.19 6.143h-5.738v.503h5.739v-.503ZM73.19 7.25h-5.738v.504h5.739V7.25ZM73.19 8.358h-5.738v.503h5.739v-.503ZM18.48 14.5a7.006 7.006 0 0 1-6.997-6.998A7.006 7.006 0 0 1 18.48.504a7.006 7.006 0 0 1 6.997 6.998 7.006 7.006 0 0 1-6.997 6.998Zm0-13.493a6.502 6.502 0 0 0-6.494 6.495 6.502 6.502 0 0 0 6.495 6.495 6.502 6.502 0 0 0 6.494-6.495 6.502 6.502 0 0 0-6.494-6.495Z"}),a.createElement("path",{d:"M18.48 13.387a5.892 5.892 0 0 1-5.885-5.885 5.892 5.892 
10 0 1 5.886-5.885 5.892 5.892 0 0 1 5.885 5.885 5.892 5.892 0 0 1-5.885 5.885Zm0-11.268a5.39 5.39 0 0 0-5.382 5.383 5.39 5.39 0 0 0 5.383 5.383 5.39 5.39 0 0 0 5.383-5.383A5.39 5.39 0 0 0 18.48 2.12Z"}),a.createElement("path",{d:"M18.48 12.274a4.778 4.778 0 0 1-4.772-4.772 4.778 4.778 0 0 1 4.773-4.772 4.778 4.778 0 0 1 4.772 4.772 4.778 4.778 0 0 1-4.772 4.772Zm0-9.042a4.275 4.275 0 0 0-4.27 4.27 4.275 4.275 0 0 0 4.27 4.27 4.275 4.275 0 0 0 4.27-4.27 4.275 4.275 0 0 0-4.27-4.27ZM60.798 10.516a4.256 4.256 0 0 1-3.022 1.256 4.275 4.275 0 0 1-4.27-4.27 4.275 4.275 0 0 1 4.27-4.27c1.178 0 2.247.48 3.02 1.255l.355-.355a4.757 4.757 0 0 0-3.375-1.402 4.778 4.778 0 0 0-4.773 4.772 4.778 4.778 0 0 0 4.773 4.772 4.757 4.757 0 0 0 3.377-1.403l-.355-.355Z"}),a.createElement("path",{d:"M61.584 11.302a5.366 5.366 0 0 1-3.809 1.583 5.39 5.39 0 0 1-5.383-5.383 5.39 5.39 0 0 1 5.383-5.383c1.486 0 2.833.605 3.808 1.581l.355-.355a5.867 5.867 0 0 0-4.163-1.728 5.892 5.892 0 0 0-5.885 5.885 5.892 5.892 0 0 0 5.885 5.885 5.866 5.866 0 0 0 4.164-1.73l-.355-.355Z"}),a.createElement("path",{d:"M62.37 12.088a6.474 6.474 0 0 1-4.594 1.909 6.502 6.502 0 0 1-6.495-6.495 6.502 6.502 0 0 1 6.495-6.495c1.792 0 3.416.73 4.593 1.908l.355-.356A6.977 6.977 0 0 0 57.775.504a7.006 7.006 0 0 0-6.997 6.998 7.005 7.005 0 0 0 6.997 6.998 6.976 6.976 0 0 0 4.95-2.057l-.355-.355ZM74.146 14.247H66.81a2.682 2.682 0 0 1-2.679-2.678V3.434A2.682 2.682 0 0 1 66.81.756h7.337v.502H66.81c-1.2 0-2.177.976-2.177 2.176v8.135c0 1.2.977 2.176 2.177 2.176h7.337v.502Z"}),a.createElement("path",{d:"M74.147 13.139h-7.34a1.57 1.57 0 0 1-1.569-1.568V3.432a1.57 1.57 0 0 1 1.568-1.568h7.341v.503h-7.34c-.588 0-1.066.478-1.066 1.065v8.139c0 .587.478 1.065 1.065 1.065h7.341v.503Z"}),a.createElement("path",{d:"M74.147 12.032h-7.344a.458.458 0 0 1-.457-.457V3.428c0-.252.205-.457.457-.457h7.344v.502h-7.299v8.057h7.3v.502ZM39.108 14.248h-.502V3.436A2.682 2.682 0 0 1 41.284.757h4.617a3.93 3.93 0 0 1 3.923 3.926 3.929 3.929 0 0 1-3.92 3.926H41.928v-.502h3.972a3.427 3.427 0 0 0 3.422-3.424A3.427 3.427 0 0 0 45.9 1.261h-4.615c-1.2 0-2.176.975-2.176 2.175v10.812Z"}),a.createElement("path",{d:"M40.216 14.248h-.502V3.434a1.57 1.57 0 0 1 1.568-1.568h4.597a2.823 2.823 0 0 1 2.827 2.818 2.822 2.822 0 0 1-2.818 2.819H41.93V7h3.952a2.32 2.32 0 0 0 2.322-2.317 2.319 2.319 0 0 0-2.316-2.316H41.282c-.588 0-1.066.478-1.066 1.066v10.814Z"}),a.createElement("path",{d:"M41.324 14.248h-.502V3.43c0-.252.205-.457.457-.457h4.608c.945 0 1.712.767 1.712 1.71 0 .944-.767 1.711-1.71 1.711h-3.957v-.502h3.953a1.21 1.21 0 1 0 .003-2.417H41.326v10.773ZM113.503 14.247 110.113.755h.52l3.39 13.492h-.52ZM114.644 14.247 111.254.755h.521l3.389 13.492h-.52ZM115.785 14.247 112.396.755h.52l3.39 13.492h-.521ZM115.466 8.475l-.234-1.058 1.661-6.662h.52l-1.947 7.72ZM116.037 10.757l-.252-1.024 2.249-8.978h.52l-2.517 10.002ZM116.624 13.005l-.268-1.057L119.175.755h.52l-3.071 12.25ZM119.595 14.247l-1.343-5.303.269-1.057 1.594 6.36h-.52ZM120.736 14.247 118.84 6.68l.251-1.024 2.165 8.592h-.52ZM121.86 14.247l-2.467-9.784.269-1.057 2.718 10.841h-.52ZM125.867 2.971c-.695 0-1.299.47-1.469 1.143l-1.971 7.803.257 1.031 2.201-8.71c.114-.45.517-.765.981-.765h6.49v-.502h-6.49.001Z"}),a.createElement("path",{d:"M125.638 1.863a2.319 2.319 0 0 0-2.252 1.757l-1.518 6.06.259 1.034 1.747-6.972a1.816 1.816 0 0 1 1.764-1.376H136v-.503h-10.362Z"}),a.createElement("path",{d:"M125.473.758a3.235 3.235 0 0 0-3.139 2.444l-1.049 4.145.258 1.03 1.278-5.052a2.732 2.732 0 0 1 2.652-2.065h3.222V.758h-3.222ZM103.173 14.495a7.006 7.006 0 0 1-6.998-6.997A7.005 7.005 0 0 1 103.173.5c3.858 0 6.997 3.14 6.997 6.998 0 3.859-3.139 6.997-6.997 6.997Zm0-13.492a6.502 6.502 0 0 0-6.495 6.495 6.502 6.502 0 0 0 6.495 6.494 6.502 6.502 0 0 0 6.494-6.494 6.502 6.502 0 0 0-6.494-6.495Z"}),a.createElement("path",{d:"M103.173 13.383a5.892 5.892 0 0 1-5.886-5.886 5.892 5.892 
10 0 1 5.886-5.885 5.892 5.892 0 0 1 5.885 5.885 5.892 5.892 0 0 1-5.885 5.886Zm0-11.268a5.389 5.389 0 0 0-5.383 5.383 5.389 5.389 0 0 0 5.383 5.383 5.39 5.39 0 0 0 5.383-5.383 5.39 5.39 0 0 0-5.383-5.383Z"}),a.createElement("path",{d:"M103.173 12.27A4.777 4.777 0 0 1 98.4 7.498a4.777 4.777 0 0 1 4.773-4.772 4.778 4.778 0 0 1 4.772 4.772 4.778 4.778 0 0 1-4.772 4.772Zm0-9.042a4.275 4.275 0 0 0-4.27 4.27 4.275 4.275 0 0 0 4.27 4.27 4.275 4.275 0 0 0 4.27-4.27 4.275 4.275 0 0 0-4.27-4.27ZM76.333 14.246h-.503V3.434A2.682 2.682 0 0 1 78.51.755h7.338v.503h-7.338c-1.2 0-2.176.976-2.176 2.176v10.812Z"}),a.createElement("path",{d:"M77.44 14.246h-.502V3.432a1.57 1.57 0 0 1 1.568-1.568h7.342v.503h-7.342c-.587 0-1.065.478-1.065 1.065v10.815Z"}),a.createElement("path",{d:"M78.549 14.246h-.503V3.428c0-.252.205-.457.458-.457h7.344v.502h-7.3v10.773ZM96.253 14.247H89.87a2.682 2.682 0 0 1-2.679-2.678V.755h.503v10.814c0 1.2.976 2.176 2.176 2.176h6.383v.502Z"}),a.createElement("path",{d:"M96.254 13.139h-6.387A1.57 1.57 0 0 1 88.3 11.57V.756h.503v10.815c0 .587.478 1.065 1.065 1.065h6.387v.503Z"}),a.createElement("path",{d:"M96.254 12.032h-6.39a.458.458 0 0 1-.457-.457V.76h.503v10.77h6.344v.502ZM84.892 6.142h-5.739v.503h5.74v-.503ZM84.892 7.25h-5.739v.503h5.74v-.504ZM84.892 8.357h-5.739v.503h5.74v-.503Z"}))),L||(L=a.createElement("defs",null,a.createElement("clipPath",{id:"sourceflow_svg__a"},a.createElement("path",{fill:"#fff",transform:"translate(.428 .5)",d:"M0 0h135.572v14H0z"})))))},I=t(50969),O=t.n(I),j=JSON.parse('{"et":[{"id":"87ca8b38-4fc1-4fbf-bd75-c58bd6bf300b","email":{"en":"[email protected]"},"image":{"en":"https://cdn.sourceflow.co.uk/oco245y4wgo4c42jsj5gjjgxeeia"},"order":{"en":1},"phone":{"en":"+44 (0) 20 3865 0621"},"title":{"en":"London"},"address":{"en":"<p>3 Moorgate Place, 1st Floor, London EC2R 6EA</p>"},"map_link":{"en":"https://www.google.com/maps/place/Signify+Technology+Group/@51.5169301,-0.0857493,19z/data=!3m2!4b1!5s0x48761cb29e1550a5:0x312ae52af5f78d74!4m6!3m5!1s0x4876034aca364fbd:0x40890e539ab72a95!8m2!3d51.5169301!4d-0.0851056!16s%2Fg%2F11c1tqppjh?entry=ttu"},"url_slug":"london","parent":{"id":null,"identifier":null},"_order":0,"created_at":"2023-09-19T05:00:22.693Z","updated_at":"2025-04-30T13:53:06.701Z"},{"id":"b6c391bc-da3d-4fda-ac44-5b641d711dc5","email":{"en":"[email protected]"},"image":{"en":"https://cdn.sourceflow.co.uk/ly6gjgytvtwwsfdualobmd10hati"},"order":{"en":4},"phone":{"en":"+1 (346) 374 0300"},"title":{"en":"Austin"},"address":{"en":"<p>Prominent Pointe 1, Suite 295, 8310-1 N. Capital of Texas Highway, Austin, TX 78731</p>"},"map_link":{"en":"https://maps.app.goo.gl/EZPrVaQNLCW63vsV8"},"url_slug":"austin","parent":{"id":null,"identifier":null},"_order":2,"created_at":"2023-09-19T05:07:31.378Z","updated_at":"2025-08-05T11:32:15.871Z"}]}'),H=t(24148);function G(){var e=(0,l.useRouter)(),n=["/consulting-solutions","/resourcing-solutions"].includes(e.pathname);return(0,E.jsxs)("footer",{className:g()(O().Footer,(0,i.Z)({},O().blackFooter,n)),children:[(0,E.jsxs)("div",{className:g()(O().wrapper),children:[(0,E.jsxs)("div",{className:g()(O().footer_top),children:[(0,E.jsx)("figure",{className:g()(O().logo),children:(0,E.jsx)("img",{src:"/logo/footer-logo.svg",alt:"Signify logo"})}),(0,E.jsx)("div",{className:g()(O().social_links_wrapper),children:(0,E.jsx)(C,{headerSocialLinks:!1,footerSocialLinks:!0})})]}),(0,E.jsx)("div",{className:g()(O().footer_middle),children:j.et.map((function(e,n){return(0,E.jsx)("div",{className:g()(O().location_wrapper),children:(0,E.jsxs)("div",{className:g()(O().location_listing),children:[e.title.en,(0,E.jsx)("div",{className:g()(O().address),dangerouslySetInnerHTML:{__html:e.address.en}}),(0,E.jsx)("div",{className:g()(O().footer_number),children:(0,E.jsx)(h(),{href:"tel:".concat(e.phone.en),passHref:!0,children:(0,E.jsxs)("a",{target:"_blank",children:[(0,E.jsx)(H.Z,{}),e.phone.en]})})})]})},e.id)}))}),(0,E.jsxs)("div",{className:g()(O().footer_bottom),children:[(0,E.jsxs)("div",{className:g()(O().left),children:[(0,E.jsx)("div",{className:g()(O().site_title),children:"2024 Signify Technology. All Rights Reserved."}),(0,E.jsxs)("nav",{className:"d-flex",children:[(0,E.jsx)(h(),{href:"https://cdn.sourceflow.co.uk/abbt783bia89tegw5g4bmj0yugtn",children:(0,E.jsx)("a",{target:"_blank",children:"Accessibility Statement"})}),(0,E.jsx)(h(),{href:"/terms-and-conditions",children:(0,E.jsx)("a",{target:"_blank",children:"Terms and Conditions"})}),(0,E.jsx)(h(),{href:"/privacy-policy",children:(0,E.jsx)("a",{target:"_blank",children:"Privacy Policy"})}),(0,E.jsx)(h(),{href:"/cookie-policy",children:(0,E.jsx)("a",{target:"_blank",children:"Cookie Policy"})})]})]}),(0,E.jsxs)("div",{className:g()(O().sourceflow),children:[(0,E.jsx)("span",{className:g()(O().site_text),children:"Site by"}),(0,E.jsx)(P,{})]})]})]}),(0,E.jsx)("div",{className:g()(O().curve_shape)})]})}t(4298);function D(e){var n=e.children;return(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(R,{}),(0,E.jsx)("main",{children:n}),(0,E.jsx)(G,{})]})}var F=t(79046),$=t.n(F);function U(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);n&&(i=i.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,i)}return t}function W(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};
1n%2?U(Object(t),!0).forEach((function(n){(0,i.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):U(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function _(e){var n=e.isOpen,t=e.onClose,o=e.onSave,s=(0,a.useState)({necessary:!0,analytics:!1,marketing:!1,preferences:!1}),r=s[0],l=s[1],c=function(e){"necessary"!==e&&l((function(n){return W(W({},n),{},(0,i.Z)({},e,!n[e]))}))};return n?(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)("div",{className:$().overlay,onClick:t}),(0,E.jsxs)("div",{className:$().modal,children:[(0,E.jsxs)("div",{className:$().header,children:[(0,E.jsx)("h2",{children:"Cookie Preferences"}),(0,E.jsx)("button",{className:$().closeButton,onClick:t,children:"\xd7"})]}),(0,E.jsxs)("div",{className:$().content,children:[(0,E.jsxs)("p",{className:$().description,children:["Manage your cookie preferences. You can enable or disable each category below."," ","For more information, please ",(0,E.jsx)("a",{href:"/cookie-policy",target:"_blank",rel:"noopener noreferrer",className:"privacy-link",children:"click here."})]}),(0,E.jsxs)("div",{className:$().cookieList,children:[(0,E.jsxs)("div",{className:$().cookieItem,children:[(0,E.jsxs)("div",{className:$().cookieHeader,children:[(0,E.jsxs)("label",{className:$().cookieLabel,children:[(0,E.jsx)("input",{type:"checkbox",checked:r.necessary,disabled:!0,onChange:function(){return c("necessary")},className:$().checkbox}),(0,E.jsx)("span",{className:$().cookieName,children:"Necessary"})]}),(0,E.jsx)("span",{className:$().badge,children:"Always required"})]}),(0,E.jsx)("p",{className:$().cookieDescription,children:"Essential cookies that are always enabled. These cookies are necessary for the website to function and cannot be disabled."})]}),(0,E.jsxs)("div",{className:$().cookieItem,children:[(0,E.jsxs)("label",{className:$().cookieLabel,children:[(0,E.jsx)("input",{type:"checkbox",checked:r.analytics,onChange:function(){return c("analytics")},className:$().checkbox}),(0,E.jsx)("span",{className:$().cookieName,children:"Analytics"})]}),(0,E.jsx)("p",{className:$().cookieDescription,children:"Help us understand how our website is used and improve user experience through analytics."})]}),(0,E.jsxs)("div",{className:$().cookieItem,children:[(0,E.jsxs)("label",{className:$().cookieLabel,children:[(0,E.jsx)("input",{type:"checkbox",checked:r.marketing,onChange:function(){return c("marketing")},className:$().checkbox}),(0,E.jsx)("span",{className:$().cookieName,children:"Marketing"})]}),(0,E.jsx)("p",{className:$().cookieDescription,children:"Used to track visitors and deliver personalized advertisements based on browsing behaviour."})]}),(0,E.jsxs)("div",{className:$().cookieItem,children:[(0,E.jsxs)("label",{className:$().cookieLabel,children:[(0,E.jsx)("input",{type:"checkbox",checked:r.preferences,onChange:function(){return c("preferences")},className:$().checkbox}),(0,E.jsx)("span",{className:$().cookieName,children:"Preferences"})]}),(0,E.jsx)("p",{className:$().cookieDescription,children:"Remember your preferences and settings to personalise your experience."})]})]})]}),(0,E.jsxs)("div",{className:$().footer,children:[(0,E.jsx)("button",{className:$().buttonRejectAll,onClick:function(){o({necessary:!0,analytics:!1,marketing:!1,preferences:!1}),t()},children:"Reject all"}),(0,E.jsx)("button",{className:$().buttonSave,onClick:function(){o(r),t()},children:"Save preferences"}),(0,E.jsx)("button",{className:$().buttonAcceptAll,onClick:function(){o({necessary:!0,analytics:!0,marketing:!0,preferences:!0}),t()},children:"Accept all"})]})]})]}):null}function Q(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);n&&(i=i.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,i)}return t}function z(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?Q(Object(t),!0).forEach((function(n){(0,i.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):Q(Object(t)).forEac
1h((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var q=function(e){var n=e.Component,t=e.pageProps,i=(0,a.useState)(!1),o=i[0],l=i[1],c=(0,a.useState)(!0),d=c[0],p=c[1];return(0,E.jsxs)(D,{children:[(0,E.jsx)(s(),{addTracker:!0,metaObject:r}),(0,E.jsx)(n,z({},t)),(0,E.jsx)(_,{isOpen:o,onClose:function(){return l(!1)},onSave:function(e){localStorage.setItem("cookiePreferences",JSON.stringify(e)),e.analytics,e.marketing,e.preferences}}),d&&(0,E.jsxs)("div",{style:{position:"fixed",background:"#000000",color:"#fff",width:"100%",maxWidth:"45rem",right:"0",bottom:"0",margin:"0 2rem",fontSize:"14px",padding:"0.5rem 0.5rem 0.5rem 0.5rem",boxShadow:"0 0 10px rgba(0,0,0,0.3)",display:"flex",flexWrap:"wrap",alignItems:"center",justifyContent:"space-between",gap:"1rem",zIndex:9999},children:[(0,E.jsxs)("div",{style:{flex:1},children:["We use cookies to provide the best possible experience for our users. They help us provide essential functionality and improve site performance, and allow us to offer a more personalised experience when using the site.",(0,E.jsx)("button",{onClick:function(){return l(!0)},style:{background:"none",border:"none",color:"#fff",textDecoration:"underline",cursor:"pointer",fontSize:"1em",padding:0,marginLeft:"0.25rem"},children:"Manage preferences"})]}),(0,E.jsxs)("div",{style:{display:"flex",gap:"0.5rem",padding:"0.25rem 0"},children:[(0,E.jsx)("button",{onClick:function(){return p(!1)},style:{color:"#000000",background:"#FFD700",border:"solid 1px #FFD700",borderRadius:"4px",fontSize:"13px",padding:"0.5rem 1rem",cursor:"pointer"},children:"Accept"}),(0,E.jsx)("button",{onClick:function(){return p(!1)},style:{color:"#FFD700",background:"transparent",border:"solid 1px #FFD700",borderRadius:"4px",fontSize:"13px",padding:"0.5rem 1rem",cursor:"pointer"},children:"Decline"})]})]})]})}},23837:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app",function(){return t(21190)}])},79046:function(e){e.exports={overlay:"styles_overlay__Mqpa_",modal:"styles_modal__OM6SM",header:"styles_header__TZP6B",closeButton:"styles_closeButton__i9Zu3",content:"styles_content__uojL7",description:"styles_description__PV6Hy",cookieList:"styles_cookieList__lk8Uc",cookieItem:"styles_cookieItem__NcmCh",cookieHeader:"styles_cookieHeader__8hXKe",cookieLabel:"styles_cookieLabel__ci7jb",checkbox:"styles_checkbox__Ee_st",cookieName:"styles_cookieName__zIWqd",badge:"styles_badge__HxwzN",cookieDescription:"styles_cookieDescription__F_tiY",footer:"styles_footer__fmdhm",buttonRejectAll:"styles_buttonRejectAll__5k9JZ",buttonSave:"styles_buttonSave__6yZbT",buttonAcceptAll:"styles_buttonAcceptAll__mHEmK"}},6471:function(e){e.exports={SocialLinks:"styles_SocialLinks__suU1T",li:"styles_li__RpULU",instagram:"styles_instagram__1qKsC",HeaderSocialLinks:"styles_HeaderSocialLinks__ACiHG",follow:"styles_follow__T2vRN",rotation:"styles_rotation__FpVLk"}},50969:function(e){e.exports={Footer:"styles_Footer__wyyED",logo:"styles_logo__5WlNI",wrapper:"styles_wrapper__qhp_H",footer_top:"styles_footer_top__7kIvW",footer_middle:"styles_footer_middle__oMlGD",location_listing:"styles_location_listing___crL7",address:"styles_address__xqVLc",footer_number:"styles_footer_number__vvX06",footer_bottom:"styles_footer_bottom__nd0ad",left:"styles_left___39WB",site_title:"styles_site_title__cifv_",sourceflow:"styles_sourceflow__NmbCD",site_text:"styles_site_text__b143_",curve_shape:"styles_curve_shape__Xqdbr",blackFooter:"styles_blackFooter__pWmKv",rotation:"styles_rotation__s7jmv"}},47034:function(e){e.exports={Header:"styles_Header__sqHpl",logo:"styles_logo__tLm4k",wrapper:"styles_wrapper__QcHzt",right:"styles_right__o6MBb",top_menu_wrapper:"styles_top_menu_wrapper__BjRV7",top_menu:"styles_top_menu__sSCFB",rotation:"styles_rotation__7sUOe"}},28279:function(){},35585:function(){},48210:function(){},67332:function(){},9008:function(e,n,t){e.exports=t(72717)},41664:function(e,n,t){e.exports=t(7942)},11163:function(e,n,t){e.exports=t(69898)},4298:function(e,n,t){e.exports=t(72189)},92703:function(e,n,t){"use strict";var i=t(50414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,n,t,a,o,s){if
1(s!==i){var r=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw r.name="Invariant Violation",r}}function n(){return e}e.isRequired=e;var t={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:n,element:e,elementType:e,instanceOf:n,node:e,objectOf:n,oneOf:n,oneOfType:n,shape:n,exact:n,checkPropTypes:o,resetWarningCache:a};return t.PropTypes=t,t}},45697:function(e,n,t){e.exports=t(92703)()},50414:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},69590:function(e){var n="undefined"!==typeof Element,t="function"===typeof Map,i="function"===typeof Set,a="function"===typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,s){if(e===s)return!0;if(e&&s&&"object"==typeof e&&"object"==typeof s){if(e.constructor!==s.constructor)return!1;var r,l,c,d;if(Array.isArray(e)){if((r=e.length)!=s.length)return!1;for(l=r;0!==l--;)if(!o(e[l],s[l]))return!1;return!0}if(t&&e instanceof Map&&s instanceof Map){if(e.size!==s.size)return!1;for(d=e.entries();!(l=d.next()).done;)if(!s.has(l.value[0]))return!1;for(d=e.entries();!(l=d.next()).done;)if(!o(l.value[1],s.get(l.value[0])))return!1;return!0}if(i&&e instanceof Set&&s instanceof Set){if(e.size!==s.size)return!1;for(d=e.entries();!(l=d.next()).done;)if(!s.has(l.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(s)){if((r=e.length)!=s.length)return!1;for(l=r;0!==l--;)if(e[l]!==s[l])return!1;return!0}if(e.constructor===RegExp)return e.source===s.source&&e.flags===s.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===s.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===s.toString();if((r=(c=Object.keys(e)).length)!==Object.keys(s).length)return!1;for(l=r;0!==l--;)if(!Object.prototype.hasOwnProperty.call(s,c[l]))return!1;if(n&&e instanceof Element)return!1;for(l=r;0!==l--;)if(("_owner"!==c[l]&&"__v"!==c[l]&&"__o"!==c[l]||!e.$$typeof)&&!o(e[c[l]],s[c[l]]))return!1;return!0}return e!==e&&s!==s}e.exports=function(e,n){try{return o(e,n)}catch(t){if((t.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw t}}},99342:function(e,n,t){"use strict";function i(e,n){return i=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,n){return e.__proto__=n,e},i(e,n)}t.d(n,{cn:function(){return p},d0:function(){return d},ZP:function(){return h}});var a=t(67294),o=t(73935),s=!1,r=a.createContext(null),l="unmounted",c="exited",d="entering",p="entered",u="exiting",g=function(e){var n,t;function g(n,t){var i;i=e.call(this,n,t)||this;var a,o=t&&!t.isMounting?n.enter:n.appear;return i.appearStatus=null,n.in?o?(a=c,i.appearStatus=d):a=p:a=n.unmountOnExit||n.mountOnEnter?l:c,i.state={status:a},i.nextCallback=null,i}t=e,(n=g).prototype=Object.create(t.prototype),n.prototype.constructor=n,i(n,t),g.getDerivedStateFromProps=function(e,n){return e.in&&n.status===l?{status:c}:null};var m=g.prototype;return m.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},m.componentDidUpdate=function(e){var n=null;if(e!==this.props){var t=this.state.status;this.props.in?t!==d&&t!==p&&(n=d):t!==d&&t!==p||(n=u)}this.updateStatus(!1,n)},m.componentWillUnmount=function(){this.cancelNextCallback()},m.getTimeouts=function(){var e,n,t,i=this.props.timeout;return e=n=t=i,null!=i&&"number"!==typeof i&&(e=i.exit,n=i.enter,t=void 0!==i.appear?i.appear:n),{exit:e,enter:n,appear:t}},m.updateStatus=function(e,n){if(void 0===e&&(e=!1),null!==n)if(this.cancelNextCallback(),n===d){if(this.props.unmountOnExit||this.props.mountOnEnter){var t=this.props.nodeRef?this.props.nodeRef.current:o.findDOMNode(this);t&&function(e){e.scrollTop}(t)}this.performEnter(e)}else this.performExit();else this.props.unmountOnExit&&this.state.status===c&&this.setState({status:l})},m.performEnter=function(e){var n=this,t=this.props.enter,i=this.context?this.context.isMounting:e,a=this.props.nodeRef?[i]:[o.findDOMNode(this),i],r=a[0],l=a[1],c=this.getTimeouts(),u=i?c.appear:c.enter;!e&&!t||s?this.safeSetState({status:p},(function(){n.props.onEntered(r)}
1)):(this.props.onEnter(r,l),this.safeSetState({status:d},(function(){n.props.onEntering(r,l),n.onTransitionEnd(u,(function(){n.safeSetState({status:p},(function(){n.props.onEntered(r,l)}))}))})))},m.performExit=function(){var e=this,n=this.props.exit,t=this.getTimeouts(),i=this.props.nodeRef?void 0:o.findDOMNode(this);n&&!s?(this.props.onExit(i),this.safeSetState({status:u},(function(){e.props.onExiting(i),e.onTransitionEnd(t.exit,(function(){e.safeSetState({status:c},(function(){e.props.onExited(i)}))}))}))):this.safeSetState({status:c},(function(){e.props.onExited(i)}))},m.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},m.safeSetState=function(e,n){n=this.setNextCallback(n),this.setState(e,n)},m.setNextCallback=function(e){var n=this,t=!0;return this.nextCallback=function(i){t&&(t=!1,n.nextCallback=null,e(i))},this.nextCallback.cancel=function(){t=!1},this.nextCallback},m.onTransitionEnd=function(e,n){this.setNextCallback(n);var t=this.props.nodeRef?this.props.nodeRef.current:o.findDOMNode(this),i=null==e&&!this.props.addEndListener;if(t&&!i){if(this.props.addEndListener){var a=this.props.nodeRef?[this.nextCallback]:[t,this.nextCallback],s=a[0],r=a[1];this.props.addEndListener(s,r)}null!=e&&setTimeout(this.nextCallback,e)}else setTimeout(this.nextCallback,0)},m.render=function(){var e=this.state.status;if(e===l)return null;var n=this.props,t=n.children,i=(n.in,n.mountOnEnter,n.unmountOnExit,n.appear,n.enter,n.exit,n.timeout,n.addEndListener,n.onEnter,n.onEntering,n.onEntered,n.onExit,n.onExiting,n.onExited,n.nodeRef,function(e,n){if(null==e)return{};var t={};for(var i in e)if({}.hasOwnProperty.call(e,i)){if(-1!==n.indexOf(i))continue;t[i]=e[i]}return t}(n,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]));return a.createElement(r.Provider,{value:null},"function"===typeof t?t(e,i):a.cloneElement(a.Children.only(t),i))},g}(a.Component);function m(){}g.contextType=r,g.propTypes={},g.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:m,onEntering:m,onEntered:m,onExit:m,onExiting:m,onExited:m},g.UNMOUNTED=l,g.EXITED=c,g.ENTERING=d,g.ENTERED=p,g.EXITING=u;var h=g},42473:function(e){"use strict";var n=function(){};e.exports=n},59499:function(e,n,t){"use strict";function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}t.d(n,{Z:function(){return i}})},61958:function(e,n,t){"use strict";t.d(n,{Zb:function(){return Ti},SK:function(){return va},JX:function(){return Fn},W2:function(){return Nn},u_:function(){return ao},fe:function(){return po},X2:function(){return Rn}});var i=t(67294),a=t(45697),o=t(94184),s=i.createContext(),r=i.createContext();function l(e){var n=e.children,t=i.useState(null),a=t[0],o=t[1],l=i.useRef(!1);i.useEffect((function(){return function(){l.current=!0}}),[]);var c=i.useCallback((function(e){l.current||o(e)}),[]);return i.createElement(s.Provider,{value:a},i.createElement(r.Provider,{value:c},n))}var c=function(e){return Array.isArray(e)?e[0]:e},d=function(e){if("function"===typeof e){for(var n=arguments.length,t=new Array(n>1?n-1:0),i=1;i<n;i++)t[i-1]=arguments[i];return e.apply(void 0,t)}},p=function(e,n){if("function"===typeof e)return d(e,n);null!=e&&(e.current=n)},u=function(e){return e.reduce((function(e,n){var t=n[0],i=n[1];return e[t]=i,e}),{})},g="undefined"!==typeof window&&window.document&&window.document.createElement?i.useLayoutEffect:i.useEffect,m=t(73935);function h(e){if(null==e)return window;if("[object Window]"!==e.toString()){var n=e.ownerDocument;return n&&n.defaultView||window}return e}function y(e){return e instanceof h(e).Element||e instanceof Element}function f(e){return e instanceof h(e).HTMLElement||e instanceof HTMLElement}function w(e){return"undefined"!==typeof ShadowRoot&&(e instanceof h(e).ShadowRoot||e instanceof ShadowRoot)}var b=Math.max,v=Math.min,S=Math.round;function A(){var e=navigator.userAgentData;return null!=e&&e.brands?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function k(){return!/^((?!chrome|android).)*safari/i.test(A())}function x(e,n,t){void 0===n&&(n=!1),void 0===t&&(t=!1);var i=e.getBoundingClientRect(),a=1,o=1;n&&f(e)&&(a=e.offsetWidth>0&&S(i.width)/e.offsetWidth||1,o=e.offsetHeight>0&&S(i.height)/e.offsetHeight||1);
vendor: 4,498 bytes, line 1
1var s=(y(e)?h(e):window).visualViewport,r=!k()&&t,l=(i.left+(r&&s?s.offsetLeft:0))/a,c=(i.top+(r&&s?s.offsetTop:0))/o,d=i.width/a,p=i.height/o;return{width:d,height:p,top:c,right:l+d,bottom:c+p,left:l,x:l,y:c}}function T(e){var n=h(e);return{scrollLeft:n.pageXOffset,scrollTop:n.pageYOffset}}function N(e){return e?(e.nodeName||"").toLowerCase():null}function E(e){return((y(e)?e.ownerDocument:e.document)||window.document).documentElement}function C(e){return x(E(e)).left+T(e).scrollLeft}function B(e){return h(e).getComputedStyle(e)}function L(e){var n=B(e),t=n.overflow,i=n.overflowX,a=n.overflowY;return/auto|scroll|overlay|hidden/.test(t+a+i)}function R(e,n,t){void 0===t&&(t=!1);var i=f(n),a=f(n)&&function(e){var n=e.getBoundingClientRect(),t=S(n.width)/e.offsetWidth||1,i=S(n.height)/e.offsetHeight||1;return 1!==t||1!==i}(n),o=E(n),s=x(e,a,t),r={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(i||!i&&!t)&&(("body"!==N(n)||L(o))&&(r=function(e){return e!==h(e)&&f(e)?{scrollLeft:(n=e).scrollLeft,scrollTop:n.scrollTop}:T(e);var n}(n)),f(n)?((l=x(n,!0)).x+=n.clientLeft,l.y+=n.clientTop):o&&(l.x=C(o))),{x:s.left+r.scrollLeft-l.x,y:s.top+r.scrollTop-l.y,width:s.width,height:s.height}}function M(e){var n=x(e),t=e.offsetWidth,i=e.offsetHeight;return Math.abs(n.width-t)<=1&&(t=n.width),Math.abs(n.height-i)<=1&&(i=n.height),{x:e.offsetLeft,y:e.offsetTop,width:t,height:i}}function P(e){return"html"===N(e)?e:e.assignedSlot||e.parentNode||(w(e)?e.host:null)||E(e)}function I(e){return["html","body","#document"].indexOf(N(e))>=0?e.ownerDocument.body:f(e)&&L(e)?e:I(P(e))}function O(e,n){var t;void 0===n&&(n=[]);var i=I(e),a=i===(null==(t=e.ownerDocument)?void 0:t.body),o=h(i),s=a?[o].concat(o.visualViewport||[],L(i)?i:[]):i,r=n.concat(s);return a?r:r.concat(O(P(s)))}function j(e){return["table","td","th"].indexOf(N(e))>=0}function H(e){return f(e)&&"fixed"!==B(e).position?e.offsetParent:null}function G(e){for(var n=h(e),t=H(e);t&&j(t)&&"static"===B(t).position;)t=H(t);return t&&("html"===N(t)||"body"===N(t)&&"static"===B(t).position)?n:t||function(e){var n=/firefox/i.test(A());if(/Trident/i.test(A())&&f(e)&&"fixed"===B(e).position)return null;var t=P(e);for(w(t)&&(t=t.host);f(t)&&["html","body"].indexOf(N(t))<0;){var i=B(t);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||n&&"filter"===i.willChange||n&&i.filter&&"none"!==i.filter)return t;t=t.parentNode}return null}(e)||n}var D="top",F="bottom",$="right",U="left",W="auto",_=[D,F,$,U],Q="start",z="end",q="viewport",K="popper",Y=_.reduce((function(e,n){return e.concat([n+"-"+Q,n+"-"+z])}),[]),V=[].concat(_,[W]).reduce((function(e,n){return e.concat([n,n+"-"+Q,n+"-"+z])}),[]),Z=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function J(e){var n=new Map,t=new Set,i=[];function a(e){t.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!t.has(e)){var i=n.get(e);i&&a(i)}})),i.push(e)}return e.forEach((function(e){n.set(e.name,e)})),e.forEach((function(e){t.has(e.name)||a(e)})),i}function X(e){var n;return function(){return n||(n=new Promise((function(t){Promise.resolve().then((function(){n=void 0,t(e())}))}))),n}}var ee={placement:"bottom",modifiers:[],strategy:"absolute"};function ne(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];return!n.some((function(e){return!(e&&"function"===typeof e.getBoundingClientRect)}))}function te(e){void 0===e&&(e={});var n=e,t=n.defaultModifiers,i=void 0===t?[]:t,a=n.defaultOptions,o=void 0===a?ee:a;return function(e,n,t){void 0===t&&(t=o);var a={placement:"bottom",orderedModifiers:[],options:Object.assign({},ee,o),modifiersData:{},elements:{reference:e,popper:n},attributes:{},styles:{}},s=[],r=!1,l={state:a,setOptions:function(t){var r="function"===typeof t?t(a.options):t;c(),a.options=Object.assign({},o,a.options,r),a.scrollParents={reference:y(e)?O(e):e.contextElement?O(e.contextElement):[],popper:O(n)};var d=function(e){var n=J(e);return Z.reduce((function(e,t){return e.concat(n.filter((function(e){return e.phase===t})))}),[])}(function(e){var n=e.reduce((function(e,n){var t=e[n.name];return e[n.name]=t?Object.assign({},t,n,{options:Object.assign({},t.options,n.options),data:Object.assign({},t.data,n.data)}):n,e}),{});return Object.keys(n).map((function(e){return n[e]}))}([].concat(i,a.options.modifiers)));return a.orderedModifiers=d.filter((function(e){return e.enabled}
vendor: 1,254 bytes, line 1
1)),a.orderedModifiers.forEach((function(e){var n=e.name,t=e.options,i=void 0===t?{}:t,o=e.effect;if("function"===typeof o){var r=o({state:a,name:n,instance:l,options:i}),c=function(){};s.push(r||c)}})),l.update()},forceUpdate:function(){if(!r){var e=a.elements,n=e.reference,t=e.popper;if(ne(n,t)){a.rects={reference:R(n,G(t),"fixed"===a.options.strategy),popper:M(t)},a.reset=!1,a.placement=a.options.placement,a.orderedModifiers.forEach((function(e){return a.modifiersData[e.name]=Object.assign({},e.data)}));for(var i=0;i<a.orderedModifiers.length;i++)if(!0!==a.reset){var o=a.orderedModifiers[i],s=o.fn,c=o.options,d=void 0===c?{}:c,p=o.name;"function"===typeof s&&(a=s({state:a,options:d,name:p,instance:l})||a)}else a.reset=!1,i=-1}}},update:X((function(){return new Promise((function(e){l.forceUpdate(),e(a)}))})),destroy:function(){c(),r=!0}};if(!ne(e,n))return l;function c(){s.forEach((function(e){return e()})),s=[]}return l.setOptions(t).then((function(e){!r&&t.onFirstUpdate&&t.onFirstUpdate(e)})),l}}var ie={passive:!0};function ae(e){return e.split("-")[0]}function oe(e){return e.split("-")[1]}function se(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function re(e){var n,t=e.reference,i=e.element,a=e.placement,o=a?ae(a):null,s=a?oe(a
vendor: 8,461 bytes, line 1
1):null,r=t.x+t.width/2-i.width/2,l=t.y+t.height/2-i.height/2;switch(o){case D:n={x:r,y:t.y-i.height};break;case F:n={x:r,y:t.y+t.height};break;case $:n={x:t.x+t.width,y:l};break;case U:n={x:t.x-i.width,y:l};break;default:n={x:t.x,y:t.y}}var c=o?se(o):null;if(null!=c){var d="y"===c?"height":"width";switch(s){case Q:n[c]=n[c]-(t[d]/2-i[d]/2);break;case z:n[c]=n[c]+(t[d]/2-i[d]/2)}}return n}var le={top:"auto",right:"auto",bottom:"auto",left:"auto"};function ce(e){var n,t=e.popper,i=e.popperRect,a=e.placement,o=e.variation,s=e.offsets,r=e.position,l=e.gpuAcceleration,c=e.adaptive,d=e.roundOffsets,p=e.isFixed,u=s.x,g=void 0===u?0:u,m=s.y,y=void 0===m?0:m,f="function"===typeof d?d({x:g,y:y}):{x:g,y:y};g=f.x,y=f.y;var w=s.hasOwnProperty("x"),b=s.hasOwnProperty("y"),v=U,A=D,k=window;if(c){var x=G(t),T="clientHeight",N="clientWidth";if(x===h(t)&&"static"!==B(x=E(t)).position&&"absolute"===r&&(T="scrollHeight",N="scrollWidth"),a===D||(a===U||a===$)&&o===z)A=F,y-=(p&&x===k&&k.visualViewport?k.visualViewport.height:x[T])-i.height,y*=l?1:-1;if(a===U||(a===D||a===F)&&o===z)v=$,g-=(p&&x===k&&k.visualViewport?k.visualViewport.width:x[N])-i.width,g*=l?1:-1}var C,L=Object.assign({position:r},c&&le),R=!0===d?function(e){var n=e.x,t=e.y,i=window.devicePixelRatio||1;return{x:S(n*i)/i||0,y:S(t*i)/i||0}}({x:g,y:y}):{x:g,y:y};return g=R.x,y=R.y,l?Object.assign({},L,((C={})[A]=b?"0":"",C[v]=w?"0":"",C.transform=(k.devicePixelRatio||1)<=1?"translate("+g+"px, "+y+"px)":"translate3d("+g+"px, "+y+"px, 0)",C)):Object.assign({},L,((n={})[A]=b?y+"px":"",n[v]=w?g+"px":"",n.transform="",n))}var de={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var n=e.state,t=e.options,i=e.name,a=t.offset,o=void 0===a?[0,0]:a,s=V.reduce((function(e,t){return e[t]=function(e,n,t){var i=ae(e),a=[U,D].indexOf(i)>=0?-1:1,o="function"===typeof t?t(Object.assign({},n,{placement:e})):t,s=o[0],r=o[1];return s=s||0,r=(r||0)*a,[U,$].indexOf(i)>=0?{x:r,y:s}:{x:s,y:r}}(t,n.rects,o),e}),{}),r=s[n.placement],l=r.x,c=r.y;null!=n.modifiersData.popperOffsets&&(n.modifiersData.popperOffsets.x+=l,n.modifiersData.popperOffsets.y+=c),n.modifiersData[i]=s}},pe={left:"right",right:"left",bottom:"top",top:"bottom"};function ue(e){return e.replace(/left|right|bottom|top/g,(function(e){return pe[e]}))}var ge={start:"end",end:"start"};function me(e){return e.replace(/start|end/g,(function(e){return ge[e]}))}function he(e,n){var t=n.getRootNode&&n.getRootNode();if(e.contains(n))return!0;if(t&&w(t)){var i=n;do{if(i&&e.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function ye(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function fe(e,n,t){return n===q?ye(function(e,n){var t=h(e),i=E(e),a=t.visualViewport,o=i.clientWidth,s=i.clientHeight,r=0,l=0;if(a){o=a.width,s=a.height;var c=k();(c||!c&&"fixed"===n)&&(r=a.offsetLeft,l=a.offsetTop)}return{width:o,height:s,x:r+C(e),y:l}}(e,t)):y(n)?function(e,n){var t=x(e,!1,"fixed"===n);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(n,t):ye(function(e){var n,t=E(e),i=T(e),a=null==(n=e.ownerDocument)?void 0:n.body,o=b(t.scrollWidth,t.clientWidth,a?a.scrollWidth:0,a?a.clientWidth:0),s=b(t.scrollHeight,t.clientHeight,a?a.scrollHeight:0,a?a.clientHeight:0),r=-i.scrollLeft+C(e),l=-i.scrollTop;return"rtl"===B(a||t).direction&&(r+=b(t.clientWidth,a?a.clientWidth:0)-o),{width:o,height:s,x:r,y:l}}(E(e)))}function we(e,n,t,i){var a="clippingParents"===n?function(e){var n=O(P(e)),t=["absolute","fixed"].indexOf(B(e).position)>=0&&f(e)?G(e):e;return y(t)?n.filter((function(e){return y(e)&&he(e,t)&&"body"!==N(e)})):[]}(e):[].concat(n),o=[].concat(a,[t]),s=o[0],r=o.reduce((function(n,t){var a=fe(e,t,i);return n.top=b(a.top,n.top),n.right=v(a.right,n.right),n.bottom=v(a.bottom,n.bottom),n.left=b(a.left,n.left),n}),fe(e,s,i));return r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}function be(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function ve(e,n){return n.reduce((function(n,t){return n[t]=e,n}),{})}function Se(e,n){void 0===n&&(n={});var t=n,i=t.placement,a=void 0===i?e.placement:i,o=t.strategy,s=void 0===o?e.strategy:o,r=t.boundary,l=void 0===r?"clippingParents":r,c=t.rootBoundary,d=void 0===c?q:c,p=t.elementContext,u=void 0===p?K:p,g=t.altBoundary,m=void 0!==g&&g,h=t.padding,f=void 0===h?0:h,w=be("number"!==typeof f?f:ve(f,_)),b=u===K?"reference":K,v=e.rects.popper,S=e.elements[m?b:u],A=we(y(S)?S:S.contextElement||E(e.elements.popper),l,d,s),k=x(e.elements.reference),T=re({reference:k,element:v,strategy:"absolute",placement:a}),N=ye(Object.assign({},v,T)),C=u===K?N:k,B={top:A.top-C.top+w.top,bottom:C.bottom-A.bottom+w.bottom,left:A.left-C.left+w.left,right:C.right-A.right+w.right},L=e.modifiersData.offset;if(u===K&&L){var R=L[a];Object.keys(B).forEach((function(e){var n=[$,F].indexOf(e)>=0?1:-1,t=[D,F].indexOf(e)>=0?"y":"x";B[e]+=R[t]*n}))}return B}function Ae(e,n,t){return b(e,v(n,t))}var ke={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var n=e.state,t=e.options,i=e.name,a=t.mainAxis,o=void 0===a||a,s=t.altAxis,r=void 0!==s&&s,l=t.boundary,c=t.rootBoundary,d=t.altBoundary,p=t.padding,u=t.tether,g=void 0===u||u,m=t.tetherOffset,h=void 0===m?0:m,y=Se(n,{boundary:l,rootBoundary:c,padding:p,altBoundary:d}),f=ae(n.placement),w=oe(n.placement),S=!w,A=se(f),k="x"===A?"y":"x",x=n.modifiersData.popperOffsets,T=n.rects.reference,N=n.rects.popper,E="function"===typeof h?h(Object.assign({},n.rects,{placement:n.placement})):h,C="number"===typeof E?{mainAxis:E,altAxis:E}:Object.assign({mainAxis:0,altAxis:0},E),B=n.modifiersData.offset?n.modifiersData.offset[n.placement]:null,L={x:0,y:0};if(x){if(o){var R,P="y"===A?D:U,I="y"===A?F:$,O="y"===A?"height":"width",j=x[A],H=j+y[P],W=j-y[I],_=g?-N[O]/2:0,z=w===Q?T[O]:N[O],q=w===Q?-N[O]:-T[O],K=n.elements.arrow,Y=g&&K?M(K):{width:0,height:0},V=n.modifiersData["arrow#persistent"]?n.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},Z=V[P],J=V[I],X=Ae(0,T[O],Y[O]),ee=S?T[O]/2-_-X-Z-C.mainAxis:z-X-Z-C.mainAxis,ne=S?-T[O]/2+_+X+J+C.mainAxis:q+X+J+C.mainAxis,te=n.elements.arrow&&G(n.elements.arrow),ie=te?"y"===A?te.clientTop||0:te.clientLeft||0:0,re=null!=(R=null==B?void 0:B[A])?R:0,le=j+ne-re,ce=Ae(g?v(H,j+ee-re-ie):H,j,g?b(W,le):W);x[A]=ce,L[A]=ce-j}if(r){var de,pe="x"===A?D:U,ue="x"===A?F:$,ge=x[k],me="y"===k?"height":"width",he=ge+y[pe],ye=ge-y[ue],fe=-1!==[D,U].indexOf(f),we=null!=(de=null==B?void 0:B[k])?de:0,be=fe?he:ge-T[me]-N[me]-we+C.altAxis,ve=fe?ge+T[me]+N[me]-we-C.altAxis:ye,ke=g&&fe?function(e,n,t){var i=Ae(e,n,t);return i>t?t:i}(be,ge,ve):Ae(g?be:he,ge,g?ve:ye);x[k]=ke,L[k]=ke-ge}n.modifiersData[i]=L}},requiresIfExists:["offset"]};var xe={name:"arrow",enabled:!0,phase:"main",fn:function(e){var n,t=e.state,i=e.name,a=e.options,o=t.elements.arrow,s=t.modifiersData.popperOffsets,r=ae(t.placement),l=se(r),c=[U,$].indexOf(r)>=0?"height":"width";if(o&&s){var d=function(e,n){return be("number"!==typeof(e="function"===typeof e?e(Object.assign({},n.rects,{placement:n.placement})):e)?e:ve(e,_))}(a.padding,t),p=M(o),u="y"===l?D:U,g="y"===l?F:$,m=t.rects.reference[c]+t.rects.reference[l]-s[l]-t.rects.popper[c],h=s[l]-t.rects.reference[l],y=G(o),f=y?"y"===l?y.clientHeight||0:y.clientWidth||0:0,w=m/2-h/2,b=d[u],v=f-p[c]-d[g],S=f/2-p[c]/2+w,A=Ae(b,S,v),k=l;t.modifiersData[i]=((n={})[k]=A,n.centerOffset=A-S,n)}},effect:function(e){var n=e.state,t=e.options.element,i=void 0===t?"[data-popper-arrow]":t;null!=i&&("string"!==typeof i||(i=n.elements.popper.querySelector(i)))&&he(n.elements.popper,i)&&(n.elements.arrow=i)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Te(e,n,t){return void 0===t&&(t={x:0,y:0}),{top:e.top-n.height-t.y,right:e.right-n.width+t.x,bottom:e.bottom-n.height+t.y,left:e.left-n.width-t.x}}function Ne(e){return[D,$,F,U].some((function(n){return e[n]>=0}))}var Ee=te({defaultModifiers:[{name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var n=e.state,t=e.instance,i=e.options,a=i.scroll,o=void 0===a||a,s=i.resize,r=void 0===s||s,l=h(n.elements.popper),c=[].concat(n.scrollParents.reference,n.scrollParents.popper);return o&&c.forEach((function(e){e.addEventListener("scroll",t.update,ie)})),r&&l.addEventListener("resize",t.update,ie),function(){o&&c.forEac
vendor: 1,360 bytes, line 1
1h((function(e){e.removeEventListener("scroll",t.update,ie)})),r&&l.removeEventListener("resize",t.update,ie)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var n=e.state,t=e.name;n.modifiersData[t]=re({reference:n.rects.reference,element:n.rects.popper,strategy:"absolute",placement:n.placement})},data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var n=e.state,t=e.options,i=t.gpuAcceleration,a=void 0===i||i,o=t.adaptive,s=void 0===o||o,r=t.roundOffsets,l=void 0===r||r,c={placement:ae(n.placement),variation:oe(n.placement),popper:n.elements.popper,popperRect:n.rects.popper,gpuAcceleration:a,isFixed:"fixed"===n.options.strategy};null!=n.modifiersData.popperOffsets&&(n.styles.popper=Object.assign({},n.styles.popper,ce(Object.assign({},c,{offsets:n.modifiersData.popperOffsets,position:n.options.strategy,adaptive:s,roundOffsets:l})))),null!=n.modifiersData.arrow&&(n.styles.arrow=Object.assign({},n.styles.arrow,ce(Object.assign({},c,{offsets:n.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),n.attributes.popper=Object.assign({},n.attributes.popper,{"data-popper-placement":n.placement})},data:{}},{name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var n=e.state;Object.keys(n.elements).forEach((function(e){var t=n.styles[e]||{},i=n.attributes[e]||{},a=n.elements[e];
vendor: 5,287 bytes, line 1
1f(a)&&N(a)&&(Object.assign(a.style,t),Object.keys(i).forEach((function(e){var n=i[e];!1===n?a.removeAttribute(e):a.setAttribute(e,!0===n?"":n)})))}))},effect:function(e){var n=e.state,t={popper:{position:n.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(n.elements.popper.style,t.popper),n.styles=t,n.elements.arrow&&Object.assign(n.elements.arrow.style,t.arrow),function(){Object.keys(n.elements).forEach((function(e){var i=n.elements[e],a=n.attributes[e]||{},o=Object.keys(n.styles.hasOwnProperty(e)?n.styles[e]:t[e]).reduce((function(e,n){return e[n]="",e}),{});f(i)&&N(i)&&(Object.assign(i.style,o),Object.keys(a).forEach((function(e){i.removeAttribute(e)})))}))}},requires:["computeStyles"]},de,{name:"flip",enabled:!0,phase:"main",fn:function(e){var n=e.state,t=e.options,i=e.name;if(!n.modifiersData[i]._skip){for(var a=t.mainAxis,o=void 0===a||a,s=t.altAxis,r=void 0===s||s,l=t.fallbackPlacements,c=t.padding,d=t.boundary,p=t.rootBoundary,u=t.altBoundary,g=t.flipVariations,m=void 0===g||g,h=t.allowedAutoPlacements,y=n.options.placement,f=ae(y),w=l||(f===y||!m?[ue(y)]:function(e){if(ae(e)===W)return[];var n=ue(e);return[me(e),n,me(n)]}(y)),b=[y].concat(w).reduce((function(e,t){return e.concat(ae(t)===W?function(e,n){void 0===n&&(n={});var t=n,i=t.placement,a=t.boundary,o=t.rootBoundary,s=t.padding,r=t.flipVariations,l=t.allowedAutoPlacements,c=void 0===l?V:l,d=oe(i),p=d?r?Y:Y.filter((function(e){return oe(e)===d})):_,u=p.filter((function(e){return c.indexOf(e)>=0}));0===u.length&&(u=p);var g=u.reduce((function(n,t){return n[t]=Se(e,{placement:t,boundary:a,rootBoundary:o,padding:s})[ae(t)],n}),{});return Object.keys(g).sort((function(e,n){return g[e]-g[n]}))}(n,{placement:t,boundary:d,rootBoundary:p,padding:c,flipVariations:m,allowedAutoPlacements:h}):t)}),[]),v=n.rects.reference,S=n.rects.popper,A=new Map,k=!0,x=b[0],T=0;T<b.length;T++){var N=b[T],E=ae(N),C=oe(N)===Q,B=[D,F].indexOf(E)>=0,L=B?"width":"height",R=Se(n,{placement:N,boundary:d,rootBoundary:p,altBoundary:u,padding:c}),M=B?C?$:U:C?F:D;v[L]>S[L]&&(M=ue(M));var P=ue(M),I=[];if(o&&I.push(R[E]<=0),r&&I.push(R[M]<=0,R[P]<=0),I.every((function(e){return e}))){x=N,k=!1;break}A.set(N,I)}if(k)for(var O=function(e){var n=b.find((function(n){var t=A.get(n);if(t)return t.slice(0,e).every((function(e){return e}))}));if(n)return x=n,"break"},j=m?3:1;j>0;j--){if("break"===O(j))break}n.placement!==x&&(n.modifiersData[i]._skip=!0,n.placement=x,n.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}},ke,xe,{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var n=e.state,t=e.name,i=n.rects.reference,a=n.rects.popper,o=n.modifiersData.preventOverflow,s=Se(n,{elementContext:"reference"}),r=Se(n,{altBoundary:!0}),l=Te(s,i),c=Te(r,a,o),d=Ne(l),p=Ne(c);n.modifiersData[t]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:d,hasPopperEscaped:p},n.attributes.popper=Object.assign({},n.attributes.popper,{"data-popper-reference-hidden":d,"data-popper-escaped":p})}}]}),Ce=t(69590),Be=t.n(Ce),Le=[],Re=function(){},Me=function(){return Promise.resolve(null)},Pe=[];function Ie(e){var n=e.placement,t=void 0===n?"bottom":n,a=e.strategy,o=void 0===a?"absolute":a,r=e.modifiers,l=void 0===r?Pe:r,d=e.referenceElement,h=e.onFirstUpdate,y=e.innerRef,f=e.children,w=i.useContext(s),b=i.useState(null),v=b[0],S=b[1],A=i.useState(null),k=A[0],x=A[1];i.useEffect((function(){p(y,v)}),[y,v]);var T=i.useMemo((function(){return{placement:t,strategy:o,onFirstUpdate:h,modifiers:[].concat(l,[{name:"arrow",enabled:null!=k,options:{element:k}}])}}),[t,o,h,l,k]),N=function(e,n,t){void 0===t&&(t={});var a=i.useRef(null),o={onFirstUpdate:t.onFirstUpdate,placement:t.placement||"bottom",strategy:t.strategy||"absolute",modifiers:t.modifiers||Le},s=i.useState({styles:{popper:{position:o.strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),r=s[0],l=s[1],c=i.useMemo((function(){return{name:"updateState",enabled:!0,phase:"write",fn:function(e){var n=e.state,t=Object.keys(n.elements);m.flushSync((function(){l({styles:u(t.map((function(e){return[e,n.styles[e]||{}]}))),attributes:u(t.map((function(e){return[e,n.attributes[e]]})))})}))},requires:["computeStyles"]}}),[]),d=i.useMemo((function(){var e={onFirstUpdate:o.onFirstUpdate,placement:o.placement,strategy:o.strategy,modifiers:[].concat(o.modifiers,[c,{name:"applyStyles",enabled:!1}])};return Be()(a.current,e)?a.current||e:(a.current=e,e)}),[o.onFirstUpdate,o.placement,o.strategy,o.modifiers,c]),p=i.useRef();return g((function(){p.current&&p.current.setOptions(d)}),[d]),g((function(){if(null!=e&&null!=n){var i=(t.createPopper||Ee)(e,n,d);return p.current=i,function(){i.destroy(),p.current=null}}}),[e,n,t.createPopper]),{state:p.current?p.current.state:null,styles:r.styles,attributes:r.attributes,update:p.current?p.current.update:null,forceUpdate:p.current?p.current.forceUpdate:null}}(d||w,v,T),E=N.state,C=N.styles,B=N.forceUpdate,L=N.update,R=i.useMemo((function(){return{ref:S,style:C.popper,placement:E?E.placement:t,hasPopperEscaped:E&&E.modifiersData.hide?E.modifiersData.hide.hasPopperEscaped:null,isReferenceHidden:E&&E.modifiersData.hide?E.modifiersData.hide.isReferenceHidden:null,arrowProps:{style:C.arrow,ref:x}
1,forceUpdate:B||Re,update:L||Me}}),[S,x,t,E,C,L,B]);return c(f)(R)}var Oe=t(42473),je=t.n(Oe);function He(e){var n=e.children,t=e.innerRef,a=i.useContext(r),o=i.useCallback((function(e){p(t,e),d(a,e)}),[t,a]);return i.useEffect((function(){return function(){return p(t,null)}}),[]),i.useEffect((function(){je()(Boolean(a),"`Reference` should not be used outside of a `Manager` component.")}),[a]),c(n)({ref:o})}var Ge=t(99342);function De(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);n&&(i=i.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,i)}return t}function Fe(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?De(Object(t),!0).forEach((function(n){$e(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):De(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function $e(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function Ue(){return Ue=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])}return e},Ue.apply(this,arguments)}function We(e,n){if(null==e)return{};var t,i,a=function(e,n){if(null==e)return{};var t,i,a={},o=Object.keys(e);for(i=0;i<o.length;i++)t=o[i],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)t=o[i],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}function _e(){let e=document.createElement("div");e.style.position="absolute",e.style.top="-9999px",e.style.width="50px",e.style.height="50px",e.style.overflow="scroll",document.body.appendChild(e);const n=e.offsetWidth-e.clientWidth;return document.body.removeChild(e),n}function Qe(e){document.body.style.paddingRight=e>0?`${e}px`:null}function ze(){return document.body.clientWidth<window.innerWidth}function qe(){const e=window.getComputedStyle(document.body,null);return parseInt(e&&e.getPropertyValue("padding-right")||0,10)}function Ke(){const e=_e(),n=document.querySelectorAll(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top")[0],t=n?parseInt(n.style.paddingRight||0,10):0;ze()&&Qe(t+e)}let Ye;function Ve(e="",n=Ye){return n?e.split(" ").map((e=>n[e]||e)).join(" "):e}function Ze(e,n){const t={};return Object.keys(e).forEach((i=>{-1===n.indexOf(i)&&(t[i]=e[i])})),t}function Je(e,n){const t=Array.isArray(n)?n:[n];let i,{length:a}=t;const o={};for(;a>0;)a-=1,i=t[a],o[i]=e[i];return o}let Xe={};function en(e){Xe[e]||("undefined"!==typeof console&&console.error(e),Xe[e]=!0)}function nn(e,n){return function(t,i,a,...o){return null!==t[i]&&"undefined"!==typeof t[i]&&en(`"${i}" property of "${a}" has been deprecated.\n${n}`),e(t,i,a,...o)}}const tn="object"===typeof window&&window.Element||function(){};function an(e,n,t){if(!(e[n]instanceof tn))return new Error("Invalid prop `"+n+"` supplied to `"+t+"`. Expected prop to be an instance of Element. Validation failed.")}const on=a.oneOfType([a.string,a.func,an,a.shape({current:a.any})]),sn=a.oneOfType([a.func,a.string,a.shape({$$typeof:a.symbol,render:a.func}),a.arrayOf(a.oneOfType([a.func,a.string,a.shape({$$typeof:a.symbol,render:a.func})]))]),rn={Fade:150,Collapse:350,Modal:300,Carousel:600,Offcanvas:300},ln=["in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","onEnter","onEntering","onEntered","onExit","onExiting","onExited"],cn={ENTERING:"entering",ENTERED:"entered",EXITING:"exiting",EXITED:"exited"},dn={esc:27,space:32,enter:13,tab:9,up:38,down:40,home:36,end:35,n:78,p:80},pn=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],un=!("undefined"===typeof window||!window.document||!window.document.createElement);function gn(e){return!(!e||"object"!==typeof e)&&"current"in e}
1function mn(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}function hn(e){const n=typeof e;return null!=e&&("object"===n||"function"===n)}function yn(e){const n=typeof e;if("number"===n)return e;if("symbol"===n||"object"===n&&"[object Symbol]"===mn(e))return NaN;if(hn(e)){const n="function"===typeof e.valueOf?e.valueOf():e;e=hn(n)?`${n}`:n}if("string"!==n)return 0===e?e:+e;e=e.replace(/^\s+|\s+$/g,"");const t=/^0b[01]+$/i.test(e);return t||/^0o[0-7]+$/i.test(e)?parseInt(e.slice(2),t?2:8):/^[-+]0x[0-9a-f]+$/i.test(e)?NaN:+e}function fn(e){if(!hn(e))return!1;const n=mn(e);return"[object Function]"===n||"[object AsyncFunction]"===n||"[object GeneratorFunction]"===n||"[object Proxy]"===n}function wn(e){if(gn(e))return e.current;if(fn(e))return e();if("string"===typeof e&&un){let n=document.querySelectorAll(e);if(n.length||(n=document.querySelectorAll(`#${e}`)),!n.length)throw new Error(`The target '${e}' could not be identified in the dom, tip: check spelling`);return n}return e}function bn(e){return null!==e&&(Array.isArray(e)||un&&"number"===typeof e.length)}function vn(e,n){const t=wn(e);return n?bn(t)?t:null===t?[]:[t]:bn(t)?t[0]:t}const Sn=["touchstart","click"];function An(e,n,t,i){let a=e;bn(a)||(a=[a]);let o=t;if("string"===typeof o&&(o=o.split(/\s+/)),!bn(a)||"function"!==typeof n||!Array.isArray(o))throw new Error("\n      The first argument of this function must be DOM node or an array on DOM nodes or NodeList.\n      The second must be a function.\n      The third is a string or an array of strings that represents DOM events\n    ");return Array.prototype.forEach.call(o,(e=>{Array.prototype.forEach.call(a,(t=>{t.addEventListener(e,n,i)}))})),function(){Array.prototype.forEach.call(o,(e=>{Array.prototype.forEach.call(a,(t=>{t.removeEventListener(e,n,i)}))}))}}const kn=["a[href]","area[href]","input:not([disabled]):not([type=hidden])","select:not([disabled])","textarea:not([disabled])","button:not([disabled])","object","embed","[tabindex]:not(.modal):not(.offcanvas)","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])'];const xn=["className","cssModule","fluid","tag"],Tn={tag:sn,fluid:a.oneOfType([a.bool,a.string]),className:a.string,cssModule:a.object};function Nn(e){const{className:n,cssModule:t,fluid:a,tag:s}=e,r=We(e,xn);let l="container";!0===a?l="container-fluid":a&&(l=`container-${a}`);const c=Ve(o(n,l),t);return i.createElement(s,Ue({},r,{className:c}))}Nn.propTypes=Tn,Nn.defaultProps={tag:"div"};const En=["className","cssModule","noGutters","tag","widths"],Cn=a.oneOfType([a.number,a.string]),Bn={tag:sn,noGutters:nn(a.bool,"Please use Bootstrap 5 gutter utility classes. https://getbootstrap.com/docs/5.0/layout/gutters/"),className:a.string,cssModule:a.object,xs:Cn,sm:Cn,md:Cn,lg:Cn,xl:Cn,xxl:Cn,widths:a.array},Ln={tag:"div",widths:["xs","sm","md","lg","xl","xxl"]};function Rn(e){const{className:n,cssModule:t,noGutters:a,tag:s,widths:r}=e,l=We(e,En),c=[];r.forEach(((n,t)=>{let i=e[n];if(delete l[n],!i)return;const a=!t;c.push(a?`row-cols-${i}`:`row-cols-${n}-${i}`)}));const d=Ve(o(n,a?"gx-0":null,"row",c),t);return i.createElement(s,Ue({},l,{className:d}))}Rn.propTypes=Bn,Rn.defaultProps=Ln;const Mn=["className","cssModule","widths","tag"],Pn=["xs","sm","md","lg","xl","xxl"],In=a.oneOfType([a.number,a.string]),On=a.oneOfType([a.bool,a.number,a.string,a.shape({size:a.oneOfType([a.bool,a.number,a.string]),order:In,offset:In})]),jn={tag:sn,xs:On,sm:On,md:On,lg:On,xl:On,xxl:On,className:a.string,cssModule:a.object,widths:a.array},Hn={tag:"div",widths:Pn},Gn=(e,n,t)=>!0===t||""===t?e?"col":`col-${n}`:"auto"===t?e?"col-auto":`col-${n}-auto`:e?`col-${t}`:`col-${n}-${t}`,Dn=(e,n,t=Pn)=>{const i=e,a=[];return t.forEach(((e,t)=>{let s=i[e];if(delete i[e],!s&&""!==s)return;const r=!t;if(hn(s)){const t=r?"-":`-${e}-`,i=Gn(r,e,s.size);a.push(Ve(o({[i]:s.size||""===s.size,[`order${t}${s.order}`]:s.order||0===s.order,[`offset${t}${s.offset}`]:s.offset||0===s.offset}),n))}else{const n=Gn(r,e,s);a.push(n)}})),{colClasses:a,modifiedAttributes:i}};function Fn(e){const{className:n,cssModule:t,widths:a,tag:s}=e,r=We(e,Mn);let{modifiedAttributes:l,colClasses:c}=Dn(r,t,a);c.length||c.push("col");const d=Ve(o(n,c),t);return i.createElement(s,Ue({},l,{className:d}))}Fn.propTypes=jn,Fn.defaultProps=Hn;const $n=["expand","className","cssModule","light","dark","fixed","sticky","color","container","tag","children"],Un={children:a.node,className:a.string,color:a.string,container:a.oneOfType([a.bool,a.string]),cssModule:a.object,dark:a.bool,expand:a.oneOfType([a.bool,a.string]),fixed:a.string,full:a.bool,light:a.bool,role:a.string,
1sticky:a.string,tag:sn};function Wn(e){const{expand:n,className:t,cssModule:a,light:s,dark:r,fixed:l,sticky:c,color:d,container:p,tag:u,children:g}=e,m=We(e,$n),h=Ve(o(t,"navbar",(e=>!1!==e&&(!0===e||"xs"===e?"navbar-expand":`navbar-expand-${e}`))(n),{"navbar-light":s,"navbar-dark":r,[`bg-${d}`]:d,[`fixed-${l}`]:l,[`sticky-${c}`]:c}),a),y=p&&!0===p?"container":`container-${p}`;return i.createElement(u,Ue({},m,{className:h}),p?i.createElement("div",{className:y},g):g)}Wn.propTypes=Un,Wn.defaultProps={tag:"nav",expand:!1,container:"fluid"};const _n=["className","cssModule","tag"],Qn={className:a.string,cssModule:a.object,tag:sn};function zn(e){const{className:n,cssModule:t,tag:a}=e,s=We(e,_n),r=Ve(o(n,"navbar-brand"),t);return i.createElement(a,Ue({},s,{className:r}))}zn.propTypes=Qn,zn.defaultProps={tag:"a"};const qn=["className","cssModule","active","tag"],Kn={className:a.string,cssModule:a.object,tag:sn,active:a.bool};function Yn(e){const{className:n,cssModule:t,active:a,tag:s}=e,r=We(e,qn),l=Ve(o(n,"navbar-text"),t);return i.createElement(s,Ue({},r,{className:l}))}Yn.propTypes=Kn,Yn.defaultProps={tag:"span"};const Vn=["className","cssModule","children","tag"],Zn={className:a.string,cssModule:a.object,tag:sn,type:a.string,children:a.node};function Jn(e){const{className:n,cssModule:t,children:a,tag:s}=e,r=We(e,Vn),l=Ve(o(n,"navbar-toggler"),t);return i.createElement(s,Ue({"aria-label":"Toggle navigation"},r,{className:l}),a||i.createElement("span",{className:Ve("navbar-toggler-icon",t)}))}Jn.propTypes=Zn,Jn.defaultProps={tag:"button",type:"button"};const Xn=["className","cssModule","tabs","pills","vertical","horizontal","justified","fill","navbar","card","tag"],et={card:a.bool,className:a.string,cssModule:a.object,fill:a.bool,horizontal:a.oneOf(["center","end"]),justified:a.bool,navbar:a.bool,pills:a.bool,tabs:a.bool,tag:sn,vertical:a.oneOfType([a.bool,a.string])};function nt(e){const{className:n,cssModule:t,tabs:a,pills:s,vertical:r,horizontal:l,justified:c,fill:d,navbar:p,card:u,tag:g}=e,m=We(e,Xn),h=Ve(o(n,p?"navbar-nav":"nav",!!l&&`justify-content-${l}`,(e=>!1!==e&&(!0===e||"xs"===e?"flex-column":`flex-${e}-column`))(r),{"nav-tabs":a,"card-header-tabs":u&&a,"nav-pills":s,"card-header-pills":u&&s,"nav-justified":c,"nav-fill":d}),t);return i.createElement(g,Ue({},m,{className:h}))}nt.propTypes=et,nt.defaultProps={tag:"ul",vertical:!1};const tt=["className","cssModule","active","tag"],it={active:a.bool,className:a.string,cssModule:a.object,tag:sn};function at(e){const{className:n,cssModule:t,active:a,tag:s}=e,r=We(e,tt),l=Ve(o(n,"nav-item",!!a&&"active"),t);return i.createElement(s,Ue({},r,{className:l}))}at.propTypes=it,at.defaultProps={tag:"li"};const ot=["className","cssModule","active","tag","innerRef"],st={active:a.bool,className:a.string,cssModule:a.object,disabled:a.bool,href:a.any,innerRef:a.oneOfType([a.object,a.func,a.string]),onClick:a.func,tag:sn};class rt extends i.Component{constructor(e){super(e),this.onClick=this.onClick.bind(this)}onClick(e){this.props.disabled?e.preventDefault():("#"===this.props.href&&e.preventDefault(),this.props.onClick&&this.props.onClick(e))}render(){let e=this.props,{className:n,cssModule:t,active:a,tag:s,innerRef:r}=e,l=We(e,ot);const c=Ve(o(n,"nav-link",{disabled:l.disabled,active:a}),t);return i.createElement(s,Ue({},l,{ref:r,onClick:this.onClick,className:c}))}}rt.propTypes=st,rt.defaultProps={tag:"a"};const lt=["className","listClassName","cssModule","children","tag","listTag","aria-label"],ct={"aria-label":a.string,children:a.node,className:a.string,cssModule:a.object,listClassName:a.string,listTag:sn,tag:sn};function dt(e){const{className:n,listClassName:t,cssModule:a,children:s,tag:r,listTag:l,"aria-label":c}=e,d=We(e,lt),p=Ve(o(n),a),u=Ve(o("breadcrumb",t),a);return i.createElement(r,Ue({},d,{className:p,"aria-label":c}),i.createElement(l,{className:u},s))}dt.propTypes=ct,dt.defaultProps={tag:"nav",listTag:"ol","aria-label":"breadcrumb"};const pt=["className","cssModule","active","tag"],ut={active:a.bool,className:a.string,cssModule:a.object,tag:sn};function gt(e){const{className:n,cssModule:t,active:a,tag:s}=e,r=We(e,pt),l=Ve(o(n,!!a&&"active","breadcrumb-item"),t);return i.createElement(s,Ue({},r,{className:l,"aria-current":a?"page":void 0}))}
1gt.propTypes=ut,gt.defaultProps={tag:"li"};const mt=["className","cssModule","variant","innerRef"],ht={active:a.bool,"aria-label":a.string,onClick:a.func,variant:a.oneOf(["white"]),className:a.string,cssModule:a.object,innerRef:a.oneOfType([a.object,a.string,a.func])};function yt(e){const{className:n,cssModule:t,variant:a,innerRef:s}=e,r=We(e,mt),l=Ve(o(n,"btn-close",a&&`btn-close-${a}`));return i.createElement("button",Ue({ref:s,type:"button",className:l},r))}yt.propTypes=ht,yt.defaultProps={"aria-label":"close"};const ft=["active","aria-label","block","className","close","cssModule","color","outline","size","tag","innerRef"],wt={active:a.bool,"aria-label":a.string,block:a.bool,children:a.node,className:a.string,cssModule:a.object,close:a.bool,color:a.string,disabled:a.bool,innerRef:a.oneOfType([a.object,a.func,a.string]),onClick:a.func,outline:a.bool,size:a.string,tag:sn};function bt(e){const n=(0,i.useCallback)((n=>{if(!e.disabled)return e.onClick?e.onClick(n):void 0;n.preventDefault()}),[e.onClick,e.disabled]);let{active:t,"aria-label":a,block:s,className:r,close:l,cssModule:c,color:d,outline:p,size:u,tag:g,innerRef:m}=e,h=We(e,ft);if(l)return i.createElement(yt,h);const y=Ve(o(r,"btn",`btn${p?"-outline":""}-${d}`,!!u&&`btn-${u}`,!!s&&"d-block w-100",{active:t,disabled:e.disabled}),c);return h.href&&"button"===g&&(g="a"),i.createElement(g,Ue({type:"button"===g&&h.onClick?"button":void 0},h,{className:y,ref:m,onClick:n,"aria-label":a}))}bt.propTypes=wt,bt.defaultProps={color:"secondary",tag:"button"};const vt=["className"],St={onClick:a.func,onBlur:a.func,onFocus:a.func,defaultValue:a.bool,className:a.string,cssModule:a.object};function At(e){const[n,t]=(0,i.useState)(e.defaultValue),[a,s]=(0,i.useState)(!1),r=(0,i.useCallback)((n=>{e.onBlur&&e.onBlur(n),s(!1)}),[e.onBlur]),l=(0,i.useCallback)((n=>{e.onFocus&&e.onFocus(n),s(!0)}),[e.onFocus]),c=(0,i.useCallback)((i=>{e.onClick&&e.onClick(i),t(!n)}),[e.onClick]),{className:d}=e,p=We(e,vt),u=Ve(o(d,{focus:a}),e.cssModule);return i.createElement(bt,Ue({active:n,onBlur:r,onFocus:l,onClick:c,className:u},p))}At.propTypes=St,At.defaultProps={defaultValue:!1};const kt=i.createContext({}),xt=i.createContext({}),Tt=["className","cssModule","direction","isOpen","group","size","nav","setActiveFromChild","active","tag","menuRole"],Nt={a11y:a.bool,disabled:a.bool,direction:a.oneOf(["up","down","start","end","left","right"]),group:a.bool,isOpen:a.bool,nav:a.bool,active:a.bool,size:a.string,tag:sn,toggle:a.func,children:a.node,className:a.string,cssModule:a.object,dropup:a.bool,inNavbar:a.bool,setActiveFromChild:a.bool,menuRole:a.oneOf(["listbox","menu"])},Et=[dn.space,dn.enter,dn.up,dn.down,dn.end,dn.home];class Ct extends i.Component{constructor(e){super(e),this.addEvents=this.addEvents.bind(this),this.handleDocumentClick=this.handleDocumentClick.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.removeEvents=this.removeEvents.bind(this),this.toggle=this.toggle.bind(this),this.handleMenuRef=this.handleMenuRef.bind(this),this.handleToggleRef=this.handleToggleRef.bind(this),this.containerRef=i.createRef(),this.menuRef=i.createRef(),this.toggleRef=i.createRef()}componentDidMount(){this.handleProps()}componentDidUpdate(e){this.props.isOpen!==e.isOpen&&this.handleProps()}componentWillUnmount(){this.removeEvents()}handleMenuRef(e){this.menuRef.current=e}handleToggleRef(e){this.toggleRef.current=e}handleDocumentClick(e){if(e&&(3===e.which||"keyup"===e.type&&e.which!==dn.tab))return;const n=this.getContainer(),t=this.getMenu(),i=this.getToggle(),a=e.target===i,o=t&&t.contains(e.target)&&t!==e.target;let s=!1;n&&(s=n.classList.contains("input-group")&&n.classList.contains("dropdown")&&"INPUT"===e.target.tagName),(!(a&&!s||o)||"keyup"===e.type&&e.which!==dn.tab)&&this.toggle(e)}handleKeyDown(e){const n="menuitem"===e.target.getAttribute("role")||"option"===e.target.getAttribute("role"),t=this.getMenuCtrl()===e.target,i=dn.tab===e.which;if(!(/input|textarea/i.test(e.target.tagName)||i&&!this.props.a11y||i&&!n&&!t)&&((-1!==Et.indexOf(e.which)||e.which>=48&&e.which<=90)&&e.preventDefault(),!this.props.disabled&&(t&&([dn.space,dn.enter,dn.up,dn.down
1].indexOf(e.which)>-1?(this.props.isOpen||this.toggle(e),setTimeout((()=>this.getMenuItems()[0].focus()))):this.props.isOpen&&i?(e.preventDefault(),this.getMenuItems()[0].focus()):this.props.isOpen&&e.which===dn.esc&&this.toggle(e)),this.props.isOpen&&n)))if([dn.tab,dn.esc].indexOf(e.which)>-1)this.toggle(e),this.getMenuCtrl().focus();else if([dn.space,dn.enter].indexOf(e.which)>-1)e.target.click(),this.getMenuCtrl().focus();else if([dn.down,dn.up].indexOf(e.which)>-1||[dn.n,dn.p].indexOf(e.which)>-1&&e.ctrlKey){const n=this.getMenuItems();let t=n.indexOf(e.target);dn.up===e.which||dn.p===e.which&&e.ctrlKey?t=0!==t?t-1:n.length-1:(dn.down===e.which||dn.n===e.which&&e.ctrlKey)&&(t=t===n.length-1?0:t+1),n[t].focus()}else if(dn.end===e.which){const e=this.getMenuItems();e[e.length-1].focus()}else if(dn.home===e.which){this.getMenuItems()[0].focus()}else if(e.which>=48&&e.which<=90){const n=this.getMenuItems(),t=String.fromCharCode(e.which).toLowerCase();for(let e=0;e<n.length;e+=1){if((n[e].textContent&&n[e].textContent[0].toLowerCase())===t){n[e].focus();break}}}}handleProps(){this.props.isOpen?this.addEvents():this.removeEvents()}getContextValue(){return{toggle:this.toggle,isOpen:this.props.isOpen,direction:"down"===this.props.direction&&this.props.dropup?"up":this.props.direction,inNavbar:this.props.inNavbar,disabled:this.props.disabled,onMenuRef:this.handleMenuRef,onToggleRef:this.handleToggleRef,menuRole:this.props.menuRole}}getContainer(){return this.containerRef.current}getMenu(){return this.menuRef.current}getToggle(){return this.toggleRef.current}getMenuCtrl(){return this._$menuCtrl||(this._$menuCtrl=this.getToggle()),this._$menuCtrl}getItemType(){return"listbox"===this.props.menuRole?"option":"menuitem"}getMenuItems(){const e=this.getMenu()||this.getContainer();return[].slice.call(e.querySelectorAll(`[role="${this.getItemType()}"]`))}addEvents(){["click","touchstart","keyup"].forEach((e=>document.addEventListener(e,this.handleDocumentClick,!0)))}removeEvents(){["click","touchstart","keyup"].forEach((e=>document.removeEventListener(e,this.handleDocumentClick,!0)))}toggle(e){return this.props.disabled?e&&e.preventDefault():this.props.toggle(e)}render(){const e=Ze(this.props,["toggle","disabled","inNavbar","a11y"]),{className:n,cssModule:t,direction:a,isOpen:s,group:r,size:c,nav:d,setActiveFromChild:p,active:u,tag:g,menuRole:m}=e,h=We(e,Tt),y=g||(d?"li":"div");let f=!1;p&&i.Children.map(this.props.children[1].props.children,(e=>{e&&e.props.active&&(f=!0)}));const w=Ve(o(n,!(!d||!u)&&"active",!(!p||!f)&&"active",{"btn-group":r,[`btn-group-${c}`]:!!c,dropdown:!r,dropup:"up"===a,dropstart:"start"===a||"left"===a,dropend:"end"===a||"right"===a,show:s,"nav-item":d}),t);return this.context.insideInputGroup?i.createElement(kt.Provider,{value:this.getContextValue()},i.createElement(l,null,i.Children.map(this.props.children,(e=>i.cloneElement(e,{onKeyDown:this.handleKeyDown}))))):i.createElement(kt.Provider,{value:this.getContextValue()},i.createElement(l,null,i.createElement(y,Ue({},h,{["string"===typeof y?"ref":"innerRef"]:this.containerRef,onKeyDown:this.handleKeyDown,className:w}))))}}Ct.propTypes=Nt,Ct.defaultProps={a11y:!0,isOpen:!1,direction:"down",nav:!1,active:!1,inNavbar:!1,setActiveFromChild:!1},Ct.contextType=xt;var Bt=Ct;const Lt={children:a.node};function Rt(e){return i.createElement(Bt,Ue({group:!0},e))}Rt.propTypes=Lt;const Mt=["className","cssModule","size","vertical","tag"],Pt={"aria-label":a.string,className:a.string,cssModule:a.object,role:a.string,size:a.string,tag:sn,vertical:a.bool};function It(e){const{className:n,cssModule:t,size:a,vertical:s,tag:r}=e,l=We(e,Mt),c=Ve(o(n,!!a&&"btn-group-"+a,s?"btn-group-vertical":"btn-group"),t);return i.createElement(r,Ue({},l,{className:c}))}It.propTypes=Pt,It.defaultProps={tag:"div",role:"group"};const Ot=["className","cssModule","tag"],jt={"aria-label":a.string,className:a.string,cssModule:a.object,role:a.string,tag:sn};function Ht(e){const{className:n,cssModule:t,tag:a}=e,s=We(e,Ot),r=Ve(o(n,"btn-toolbar"),t);return i.createElement(a,Ue({},s,{className:r}))}Ht.propTypes=jt,Ht.defaultProps={tag:"div",role:"toolbar"};const Gt=["className","cssModule","divider","tag","header","active","text"],Dt={children:a.node,active:a.bool,disabled:a.bool,divider:a.bool,tag:sn,header:a.bool,onClick:a.func,className:a.string,cssModule:a.object,toggle:a.bool,text:a.bool};class Ft extends i.Component{constructor(e){super(e),this.onClick=this.onClick.bind(this),this.getTabIndex=this.getTabIndex.bind(this)}onClick(e){const{disabled:n,header:t,divider:i,text:a}=this.props;n||t||i||a?e.preventDefault():(this.props.onClick&&this.props.onClick(e),this.props.toggle&&this.context.toggle(e))}getRole(){return"listbox"===this.context.menuRole?"option":"menuitem"}getTabIndex(){const{disabled:e,header:n,divider:t,text:i}=this.props;return e||n||t||i?"-1":"0"}render(){const e=this.getTabIndex(),n=e>-1?this.getRole():void 0;let t=Ze(this.props,["toggle"]),{className:a,cssModule:s,divider:r,tag:l,header:c,active:d,text:p}=t,u=We(t,Gt);const g=Ve(o(a,{disabled:u.disabled,"dropdown-item":!r&&!c&&!p,active:d,"dropdown-header":c,"dropdown-divider":r,"dropdown-item-text":p}),s);return"button"===l&&(c?l="h6":r?l="div":u.href?l="a":p&&(l="span")),i.createElement(l,Ue({type:"button"===l&&(u.onClick||this.props.toggle)?"button":void 0},u,{tabIndex:e,role:n,className:g,onClick:this.onClick}))}}Ft.propTypes=Dt,Ft.defaultProps={tag:"button",toggle:!0},Ft.contextType=kt;const $t=["className","cssModule","dark","end","right","tag","flip","modifiers","persist","strategy","container","updateOnSelect"],Ut={tag:sn,children:a.node.isRequired,dark:a.bool,end:a.bool,flip:a.bool,modifiers:a.array,className:a.string,cssModule:a.object,style:a.object,persist:a.bool,strategy:a.string,container:on,updateOnSelect:a.bool,right:nn(a.bool,'Please use "end" instead.')},Wt={up:"top",left:"left",right:"right",start:"left",end:"right",down:"bottom"};class _t extends i.Component{getRole(){return"listbox"===this.context.menuRole?"listbox":"menu"}render(){const e=this.props,{className:n,cssModule:t,dark:a,end:s,right:r,tag:l,flip:c,modifiers:d,persist:p,strategy:u,container:g,updateOnSelect:h}=e,y=We(e,$t),f=Ve(o(n,"dropdown-menu",{"dropdown-menu-dark":a,"dropdown-menu-end":s||r,show:this.context.
1isOpen}),t),w=l;if(p||this.context.isOpen&&!this.context.inNavbar){const e=`${Wt[this.context.direction]||"bottom"}-${s||r?"end":"start"}`,n=[...d,{name:"flip",enabled:!!c}],t=i.createElement(Ie,{placement:e,modifiers:n,strategy:u},(({ref:e,style:n,placement:t,update:a})=>{let o=Fe(Fe({},this.props.style),n);return i.createElement(w,Ue({tabIndex:"-1",role:this.getRole(),ref:n=>{e(n);const{onMenuRef:t}=this.context;t&&t(n)}},y,{style:o,"aria-hidden":!this.context.isOpen,className:f,"data-popper-placement":t,onClick:()=>h&&a()}))}));return g?m.createPortal(t,vn(g)):t}const{onMenuRef:b}=this.context;return i.createElement(w,Ue({tabIndex:"-1",role:this.getRole()},y,{ref:b,"aria-hidden":!this.context.isOpen,className:f,"data-popper-placement":y.placement}))}}_t.propTypes=Ut,_t.defaultProps={tag:"div",flip:!0,modifiers:[]},_t.contextType=kt;const Qt=["className","color","cssModule","caret","split","nav","tag","innerRef"],zt={caret:a.bool,color:a.string,children:a.node,className:a.string,cssModule:a.object,disabled:a.bool,onClick:a.func,"aria-haspopup":a.bool,split:a.bool,tag:sn,nav:a.bool,innerRef:a.oneOfType([a.object,a.string,a.func])};class qt extends i.Component{constructor(e){super(e),this.onClick=this.onClick.bind(this)}onClick(e){this.props.disabled||this.context.disabled?e.preventDefault():(this.props.nav&&!this.props.tag&&e.preventDefault(),this.props.onClick&&this.props.onClick(e),this.context.toggle(e))}getRole(){return this.context.menuRole||this.props["aria-haspopup"]}render(){const e=this.props,{className:n,color:t,cssModule:a,caret:s,split:r,nav:l,tag:c,innerRef:d}=e,p=We(e,Qt),u=p["aria-label"]||"Toggle Dropdown",g=Ve(o(n,{"dropdown-toggle":s||r,"dropdown-toggle-split":r,"nav-link":l}),a),m="undefined"!==typeof p.children?p.children:i.createElement("span",{className:"visually-hidden"},u);let h;return l&&!c?(h="a",p.href="#"):c?h=c:(h=bt,p.color=t,p.cssModule=a),this.context.inNavbar?i.createElement(h,Ue({},p,{className:g,onClick:this.onClick,ref:this.context.onToggleRef,"aria-expanded":this.context.isOpen,"aria-haspopup":this.getRole(),children:m})):i.createElement(He,{innerRef:d},(({ref:e})=>i.createElement(h,Ue({},p,{["string"===typeof h?"ref":"innerRef"]:n=>{e(n);const{onToggleRef:t}=this.context;t&&t(n)},className:g,onClick:this.onClick,"aria-expanded":this.context.isOpen,"aria-haspopup":this.getRole(),children:m}))))}}qt.propTypes=zt,qt.defaultProps={color:"secondary","aria-haspopup":!0},qt.contextType=kt;const Kt=["tag","baseClass","baseClassActive","className","cssModule","children","innerRef"],Yt=Fe(Fe({},Ge.ZP.propTypes),{},{children:a.oneOfType([a.arrayOf(a.node),a.node]),tag:sn,baseClass:a.string,baseClassActive:a.string,className:a.string,cssModule:a.object,innerRef:a.oneOfType([a.object,a.string,a.func])}),Vt=Fe(Fe({},Ge.ZP.defaultProps),{},{tag:"div",baseClass:"fade",baseClassActive:"show",timeout:rn.Fade,appear:!0,enter:!0,exit:!0,in:!0});function Zt(e){const{tag:n,baseClass:t,baseClassActive:a,className:s,cssModule:r,children:l,innerRef:c}=e,d=We(e,Kt),p=Je(d,ln),u=Ze(d,ln);return i.createElement(Ge.ZP,p,(e=>{const d=Ve(o(s,t,"entered"===e&&a),r);return i.createElement(n,Ue({className:d},u,{ref:c}),l)}))}Zt.propTypes=Yt,Zt.defaultProps=Vt;const Jt=i.createContext({}),Xt=["flush","open","toggle","className","cssModule","tag","innerRef"],ei={children:a.node,className:a.string,cssModule:a.object,flush:a.bool,innerRef:a.oneOfType([a.object,a.string,a.func]),open:a.oneOfType([a.array,a.string]).isRequired,tag:sn,toggle:a.func.isRequired};function ni(e){const{flush:n,open:t,toggle:a,className:s,cssModule:r,tag:l,innerRef:c}=e,d=We(e,Xt),p=Ve(o(s,"accordion",{"accordion-flush":n}),r),u=(0,i.useMemo)((()=>({open:t,toggle:a})));return i.createElement(Jt.Provider,{value:u},i.createElement(l,Ue({},d,{className:p,ref:c})))}ni.propTypes=ei,ni.defaultProps={tag:"div"};const ti=["defaultOpen","stayOpen"],ii={tag:sn,className:a.string,cssModule:a.object,innerRef:a.oneOfType([a.object,a.string,a.func]),children:a.node,defaultOpen:a.oneOfType([a.array,a.string]),stayOpen:a.bool};function ai(e){let{defaultOpen:n,stayOpen:t}=e,a=We(e,ti);const[o,s]=(0,i.useState)(n||(t?[]:void 0));return i.createElement(ni,Ue({},a,{open:o,toggle:e=>{t?o.includes(e)?s(o.filter((n=>n!==e))):s([...o,e]):s(o===e?void 0:e)}}))}ai.propTypes=ii,ai.defaultProps={tag:"div"};const oi=["className","cssModule","tag","innerRef","children","targetId"],si={children:a.node,className:a.string,cssModule:a.object,innerRef:a.oneOfType([a.object,a.string,a.func]),tag:sn,targetId:a.string.isRequired};function ri(e){const{className:n,cssModule:t,tag:a,innerRef:s,children:r,targetId:l}=e,c=We(e,oi),{open:d,toggle:p}=(0,i.useContext)(Jt),u=Ve(o(n,"accordion-header"),t),g=Ve(o("accordion-button",{collapsed:!(Array.isArray(d)?d.includes(l):d===l)}),t);return i.createElement(a,Ue({},c,{className:u,ref:s}),i.createElement("button",{type:"button",className:g,onClick:()=>p(l)},r))}ri.propTypes=si,ri.defaultProps={tag:"h2"};const li=["className","cssModule","tag","innerRef"],ci={children:a.node,className:a.string,cssModule:a.object,innerRef:a.oneOfType([a.object,a.string,a.func]),tag:sn};function di(e){const{className:n,cssModule:t,tag:a,innerRef:s}=e,r=We(e,li),l=Ve(o(n,"accordion-item"),t);return i.createElement(a,Ue({},r,{className:l,ref:s}))}di.propTypes=ci,di.defaultProps={tag:"div"};const pi=["tag","horizontal","isOpen","className","navbar","cssModule","children","innerRef"],ui=Fe(Fe({},Ge.ZP.propTypes),{},{horizontal:a.bool,isOpen:a.bool,children:a.oneOfType([a.arrayOf(a.node),a.node]),tag:sn,className:a.node,navbar:a.bool,cssModule:a.object,innerRef:a.shape({current:a.object})}),gi=Fe(Fe({},Ge.ZP.defaultProps),{}
1,{horizontal:!1,isOpen:!1,appear:!1,enter:!0,exit:!0,tag:"div",timeout:rn.Collapse}),mi={[cn.ENTERING]:"collapsing",[cn.ENTERED]:"collapse show",[cn.EXITING]:"collapsing",[cn.EXITED]:"collapse"};class hi extends i.Component{constructor(e){super(e),this.state={dimension:null},this.nodeRef=e.innerRef||i.createRef(),["onEntering","onEntered","onExit","onExiting","onExited"].forEach((e=>{this[e]=this[e].bind(this)}))}onEntering(e,n){const t=this.getNode();this.setState({dimension:this.getDimension(t)}),this.props.onEntering(t,n)}onEntered(e,n){const t=this.getNode();this.setState({dimension:null}),this.props.onEntered(t,n)}onExit(){const e=this.getNode();this.setState({dimension:this.getDimension(e)}),this.props.onExit(e)}onExiting(){const e=this.getNode();this.getDimension(e),this.setState({dimension:0}),this.props.onExiting(e)}onExited(){const e=this.getNode();this.setState({dimension:null}),this.props.onExited(e)}getNode(){return this.nodeRef.current}getDimension(e){return this.props.horizontal?e.scrollWidth:e.scrollHeight}render(){const e=this.props,{tag:n,horizontal:t,isOpen:a,className:s,navbar:r,cssModule:l,children:c,innerRef:d}=e,p=We(e,pi),{dimension:u}=this.state,g=Je(p,ln),m=Ze(p,ln);return i.createElement(Ge.ZP,Ue({},g,{in:a,nodeRef:this.nodeRef,onEntering:this.onEntering,onEntered:this.onEntered,onExit:this.onExit,onExiting:this.onExiting,onExited:this.onExited}),(e=>{let a=function(e){return mi[e]||"collapse"}(e);const d=Ve(o(s,t&&"collapse-horizontal",a,r&&"navbar-collapse"),l),p=null===u?null:{[t?"width":"height"]:u};return i.createElement(n,Ue({},m,{style:Fe(Fe({},m.style),p),className:d,ref:this.nodeRef}),c)}))}}hi.propTypes=ui,hi.defaultProps=gi;var yi=hi;const fi=["className","cssModule","tag","innerRef","children","accordionId"],wi={accordionId:a.string.isRequired,className:a.string,children:a.node,cssModule:a.object,innerRef:a.oneOfType([a.object,a.string,a.func]),tag:sn};function bi(e){const{className:n,cssModule:t,tag:a,innerRef:s,children:r,accordionId:l}=e,c=We(e,fi),{open:d}=(0,i.useContext)(Jt),p=Ve(o(n,"accordion-collapse"),t);return i.createElement(yi,Ue({},c,{className:p,ref:s,isOpen:Array.isArray(d)?d.includes(l):d===l}),i.createElement(a,{className:"accordion-body"},r))}bi.propTypes=wi,bi.defaultProps={tag:"div"};const vi=["className","cssModule","color","innerRef","pill","tag"],Si={children:a.node,className:a.string,color:a.string,cssModule:a.object,innerRef:a.oneOfType([a.object,a.func,a.string]),pill:a.bool,tag:sn};function Ai(e){let{className:n,cssModule:t,color:a,innerRef:s,pill:r,tag:l}=e,c=We(e,vi);const d=Ve(o(n,"badge","bg-"+a,!!r&&"rounded-pill"),t);return c.href&&"span"===l&&(l="a"),i.createElement(l,Ue({},c,{className:d,ref:s}))}Ai.propTypes=Si,Ai.defaultProps={color:"secondary",pill:!1,tag:"span"};const ki=["className","cssModule","color","body","inverse","outline","tag","innerRef"],xi={body:a.bool,className:a.string,color:a.string,cssModule:a.object,innerRef:a.oneOfType([a.object,a.string,a.func]),inverse:a.bool,outline:a.bool,tag:sn};function Ti(e){const{className:n,cssModule:t,color:a,body:s,inverse:r,outline:l,tag:c,innerRef:d}=e,p=We(e,ki),u=Ve(o(n,"card",!!r&&"text-white",!!s&&"card-body",!!a&&`${l?"border":"bg"}-${a}`),t);return i.createElement(c,Ue({},p,{className:u,ref:d}))}Ti.propTypes=xi,Ti.defaultProps={tag:"div"};const Ni=["className","cssModule","tag"],Ei={tag:sn,className:a.string,cssModule:a.object};function Ci(e){const{className:n,cssModule:t,tag:a}=e,s=We(e,Ni),r=Ve(o(n,"card-group"),t);return i.createElement(a,Ue({},s,{className:r}))}Ci.propTypes=Ei,Ci.defaultProps={tag:"div"};const Bi=["className","cssModule","tag"],Li={tag:sn,className:a.string,cssModule:a.object};function Ri(e){const{className:n,cssModule:t,tag:a}=e,s=We(e,Bi),r=Ve(o(n,"card-deck"),t);return i.createElement(a,Ue({},s,{className:r}))}Ri.propTypes=Li,Ri.defaultProps={tag:"div"};const Mi=["className","cssModule","tag"],Pi={tag:sn,className:a.string,cssModule:a.object};function Ii(e){const{className:n,cssModule:t,tag:a}=e,s=We(e,Mi),r=Ve(o(n,"card-columns"),t);return i.createElement(a,Ue({},s,{className:r}))}Ii.propTypes=Pi,Ii.defaultProps={tag:"div"};const Oi=["className","cssModule","innerRef","tag"],ji={className:a.string,cssModule:a.object,innerRef:a.oneOfType([a.object,a.string,a.func]),tag:sn};function Hi(e){const{className:n,cssModule:t,innerRef:a,tag:s}=e,r=We(e,Oi),l=Ve(o(n,"card-body"),t);return i.createElement(s,Ue({},r,{className:l,ref:a}))}Hi.propTypes=ji,Hi.defaultProps={tag:"div"};const Gi=["className","cssModule","tag","innerRef"],Di={tag:sn,innerRef:a.oneOfType([a.object,a.func,a.string]),className:a.string,cssModule:a.object};function Fi(e){const{className:n,cssModule:t,tag:a,innerRef:s}=e,r=We(e,Gi),l=Ve(o(n,"card-link"),t);return i.createElement(a,Ue({},r,{ref:s,className:l}))}Fi.propTypes=Di,Fi.defaultProps={tag:"a"};const $i=["className","cssModule","tag"],Ui={className:a.string,cssModule:a.object,tag:sn};function Wi(e){const{className:n,cssModule:t,tag:a}=e,s=We(e,$i),r=Ve(o(n,"card-footer"),t);return i.createElement(a,Ue({},s,{className:r}))}Wi.propTypes=Ui,Wi.defaultProps={tag:"div"};const _i=["className","cssModule","tag"],Qi={className:a.string,cssModule:a.object,tag:sn};function zi(e){const{className:n,cssModule:t,tag:a}=e,s=We(e,_i),r=Ve(o(n,"card-header"),t);return i.createElement(a,Ue({},s,{className:r}))}zi.propTypes=Qi,zi.defaultProps={tag:"div"};const qi=["className","cssModule","top","bottom","tag"],Ki={bottom:a.bool,className:a.string,cssModule:a.object,tag:sn,top:a.bool};function Yi(e){const{className:n,cssModule:t,top:a,bottom:s,tag:r}=e,l=We(e,qi);let c="card-img";
1a&&(c="card-img-top"),s&&(c="card-img-bottom");const d=Ve(o(n,c),t);return i.createElement(r,Ue({},l,{className:d}))}Yi.propTypes=Ki,Yi.defaultProps={tag:"img"};const Vi=["className","cssModule","tag"],Zi={tag:sn,className:a.string,cssModule:a.object};function Ji(e){const{className:n,cssModule:t,tag:a}=e,s=We(e,Vi),r=Ve(o(n,"card-img-overlay"),t);return i.createElement(a,Ue({},s,{className:r}))}Ji.propTypes=Zi,Ji.defaultProps={tag:"div"};const Xi=i.createContext({}),ea=["in","children","cssModule","slide","tag","className"];class na extends i.Component{constructor(e){super(e),this.state={startAnimation:!1},this.onEnter=this.onEnter.bind(this),this.onEntering=this.onEntering.bind(this),this.onExit=this.onExit.bind(this),this.onExiting=this.onExiting.bind(this),this.onExited=this.onExited.bind(this)}onEnter(e,n){this.setState({startAnimation:!1}),this.props.onEnter(e,n)}onEntering(e,n){const{offsetHeight:t}=e;return this.setState({startAnimation:!0}),this.props.onEntering(e,n),t}onExit(e){this.setState({startAnimation:!1}),this.props.onExit(e)}onExiting(e){this.setState({startAnimation:!0}),e.dispatchEvent(new CustomEvent("slide.bs.carousel")),this.props.onExiting(e)}onExited(e){e.dispatchEvent(new CustomEvent("slid.bs.carousel")),this.props.onExited(e)}render(){const e=this.props,{in:n,children:t,cssModule:a,slide:s,tag:r,className:l}=e,c=We(e,ea);return i.createElement(Ge.ZP,Ue({},c,{enter:s,exit:s,in:n,onEnter:this.onEnter,onEntering:this.onEntering,onExit:this.onExit,onExiting:this.onExiting,onExited:this.onExited}),(e=>{const{direction:n}=this.context,s=e===cn.ENTERED||e===cn.EXITING,c=(e===cn.ENTERING||e===cn.EXITING)&&this.state.startAnimation&&("end"===n?"carousel-item-start":"carousel-item-end"),d=Ve(o(l,"carousel-item",s&&"active",c,e===cn.ENTERING&&("end"===n?"carousel-item-next":"carousel-item-prev")),a);return i.createElement(r,{className:d},t)}))}}na.propTypes=Fe(Fe({},Ge.ZP.propTypes),{},{tag:sn,in:a.bool,cssModule:a.object,children:a.node,slide:a.bool,className:a.string}),na.defaultProps=Fe(Fe({},Ge.ZP.defaultProps),{},{tag:"div",timeout:rn.Carousel,slide:!0}),na.contextType=Xi;var ta=na;const ia={activeIndex:a.number,next:a.func.isRequired,previous:a.func.isRequired,keyboard:a.bool,pause:a.oneOf(["hover",!1]),ride:a.oneOf(["carousel"]),interval:a.oneOfType([a.number,a.string,a.bool]),children:a.array,mouseEnter:a.func,mouseLeave:a.func,slide:a.bool,dark:a.bool,fade:a.bool,cssModule:a.object,className:a.string,enableTouch:a.bool},aa=Object.keys(ia);class oa extends i.Component{constructor(e){super(e),this.handleKeyPress=this.handleKeyPress.bind(this),this.renderItems=this.renderItems.bind(this),this.hoverStart=this.hoverStart.bind(this),this.hoverEnd=this.hoverEnd.bind(this),this.handleTouchStart=this.handleTouchStart.bind(this),this.handleTouchEnd=this.handleTouchEnd.bind(this),this.touchStartX=0,this.touchStartY=0,this.state={activeIndex:this.props.activeIndex,direction:"end",indicatorClicked:!1}}componentDidMount(){"carousel"===this.props.ride&&this.setInterval(),document.addEventListener("keyup",this.handleKeyPress)}static getDerivedStateFromProps(e,n){let t=null,{activeIndex:i,direction:a,indicatorClicked:o}=n;return e.activeIndex!==i&&(e.activeIndex===i+1?a="end":e.activeIndex===i-1?a="start":e.activeIndex<i?a=o?"start":"end":e.activeIndex!==i&&(a=o?"end":"start"),t={activeIndex:e.activeIndex,direction:a,indicatorClicked:!1}),t}componentDidUpdate(e,n){n.activeIndex!==this.state.activeIndex&&this.setInterval()}componentWillUnmount(){this.clearInterval(),document.removeEventListener("keyup",this.handleKeyPress)}handleKeyPress(e){this.props.keyboard&&(37===e.keyCode?this.props.previous():39===e.keyCode&&this.props.next())}handleTouchStart(e){this.props.enableTouch&&(this.touchStartX=e.changedTouches[0].screenX,this.touchStartY=e.changedTouches[0].screenY)}handleTouchEnd(e){if(!this.props.enableTouch)return;const n=e.changedTouches[0].screenX,t=e.changedTouches[0].screenY,i=Math.abs(this.touchStartX-n);i<Math.abs(this.touchStartY-t)||i<40||(n<this.touchStartX?this.props.next():this.props.previous())}getContextValue(){return{direction:this.state.direction}}setInterval(){this.clearInterval(),this.props.interval&&(this.cycleInterval=setInterval((()=>{this.props.next()}),parseInt(this.props.interval,10)))}clearInterval(){clearInterval(this.cycleInterval)}hoverStart(...e){"hover"===this.props.pause&&this.clearInterval(),this.props.mouseEnter&&this.props.mouseEnter(...e)}
1hoverEnd(...e){"hover"===this.props.pause&&this.setInterval(),this.props.mouseLeave&&this.props.mouseLeave(...e)}renderItems(e,n){const{slide:t}=this.props;return i.createElement("div",{className:n},e.map(((e,n)=>{const a=n===this.state.activeIndex;return i.cloneElement(e,{in:a,slide:t})})))}render(){const{cssModule:e,slide:n,className:t,dark:a,fade:s}=this.props,r=Ze(this.props,aa),l=Ve(o(t,"carousel",s&&"carousel-fade",n&&"slide",a&&"carousel-dark"),e),c=Ve(o("carousel-inner"),e),d=this.props.children.filter((e=>null!==e&&void 0!==e&&"boolean"!==typeof e));if(d.every((e=>e.type===ta)))return i.createElement("div",Ue({},r,{className:l,onMouseEnter:this.hoverStart,onMouseLeave:this.hoverEnd}),i.createElement(Xi.Provider,{value:this.getContextValue()},this.renderItems(d,c)));if(d[0]instanceof Array){const e=d[0],n=d[1],t=d[2];return i.createElement("div",Ue({},r,{className:l,onMouseEnter:this.hoverStart,onMouseLeave:this.hoverEnd}),i.createElement(Xi.Provider,{value:this.getContextValue()},this.renderItems(e,c),n,t))}const p=d[0],u=i.cloneElement(p,{onClickHandler:e=>{"function"===typeof p.props.onClickHandler&&this.setState({indicatorClicked:!0},(()=>p.props.onClickHandler(e)))}}),g=d[1],m=d[2],h=d[3];return i.createElement("div",Ue({},r,{className:l,onMouseEnter:this.hoverStart,onMouseLeave:this.hoverEnd,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd}),i.createElement(Xi.Provider,{value:this.getContextValue()},u,this.renderItems(g,c),m,h))}}oa.propTypes=ia,oa.defaultProps={interval:5e3,pause:"hover",keyboard:!0,slide:!0,enableTouch:!0,fade:!1};var sa=oa;const ra=["direction","onClickHandler","cssModule","directionText","className"];function la(e){const{direction:n,onClickHandler:t,cssModule:a,directionText:s,className:r}=e,l=We(e,ra),c=Ve(o(r,`carousel-control-${n}`),a),d=Ve(o(`carousel-control-${n}-icon`),a),p=Ve(o("visually-hidden"),a);return i.createElement("a",Ue({},l,{className:c,style:{cursor:"pointer"},role:"button",tabIndex:"0",onClick:e=>{e.preventDefault(),t()}}),i.createElement("span",{className:d,"aria-hidden":"true"}),i.createElement("span",{className:p},s||n))}la.propTypes={direction:a.oneOf(["prev","next"]).isRequired,onClickHandler:a.func.isRequired,cssModule:a.object,directionText:a.string,className:a.string};const ca=["items","activeIndex","cssModule","onClickHandler","className"];function da(e){const{items:n,activeIndex:t,cssModule:a,onClickHandler:s,className:r}=e,l=We(e,ca),c=Ve(o(r,"carousel-indicators"),a),d=n.map(((e,n)=>{const r=Ve(o({active:t===n}),a);return i.createElement("button",{"aria-label":e.caption,"data-bs-target":!0,type:"button",key:`${e.key||Object.values(e).join("")}`,onClick:e=>{e.preventDefault(),s(n)},className:r})}));return i.createElement("div",Ue({className:c},l),d)}function pa(e){const{captionHeader:n,captionText:t,cssModule:a,className:s}=e,r=Ve(o(s,"carousel-caption","d-none","d-md-block"),a);return i.createElement("div",{className:r},i.createElement("h3",null,n),i.createElement("p",null,t))}da.propTypes={activeIndex:a.number.isRequired,className:a.string,cssModule:a.object,items:a.array.isRequired,onClickHandler:a.func.isRequired},pa.propTypes={captionHeader:a.node,captionText:a.node.isRequired,className:a.string,cssModule:a.object};const ua=["defaultActiveIndex","autoPlay","indicators","controls","items","goToIndex"],ga={items:a.array.isRequired,indicators:a.bool,controls:a.bool,autoPlay:a.bool,defaultActiveIndex:a.number,activeIndex:a.number,next:a.func,previous:a.func,goToIndex:a.func};class ma extends i.Component{constructor(e){super(e),this.animating=!1,this.state={activeIndex:e.defaultActiveIndex||0},this.next=this.next.bind(this),this.previous=this.previous.bind(this),this.goToIndex=this.goToIndex.bind(this),this.onExiting=this.onExiting.bind(this),this.onExited=this.onExited.bind(this)}onExiting(){this.animating=!0}onExited(){this.animating=!1}next(){this.animating||this.setState((e=>({activeIndex:e.activeIndex===this.props.items.length-1?0:e.activeIndex+1})))}previous(){this.animating||this.setState((e=>({activeIndex:0===e.activeIndex?this.props.items.length-1:e.activeIndex-1})))}goToIndex(e){this.animating||this.setState({activeIndex:e})}render(){const e=this.props,{defaultActiveIndex:n,autoPlay:t,indicators:a,controls:o,items:s,goToIndex:r}=e,l=We(e,ua),{activeIndex:c}=this.state,d=s.map((e=>{const n=e.key||e.src;return i.createElement(ta,{onExiting:this.onExiting,onExited:this.onExited,key:n},i.createElement("img",{className:"d-block w-100",src:e.src,alt:e.altText}),i.createElement(pa,{captionText:e.caption,captionHeader:e.header||e.caption}))}
1));return i.createElement(sa,Ue({activeIndex:c,next:this.next,previous:this.previous,ride:t?"carousel":void 0},l),a&&i.createElement(da,{items:s,activeIndex:l.activeIndex||c,onClickHandler:r||this.goToIndex}),d,o&&i.createElement(la,{direction:"prev",directionText:"Previous",onClickHandler:l.previous||this.previous}),o&&i.createElement(la,{direction:"next",directionText:"Next",onClickHandler:l.next||this.next}))}}ma.propTypes=ga,ma.defaultProps={controls:!0,indicators:!0,autoPlay:!0};const ha=["className","cssModule","tag"],ya={className:a.string,cssModule:a.object,tag:sn};function fa(e){const{className:n,cssModule:t,tag:a}=e,s=We(e,ha),r=Ve(o(n,"card-subtitle"),t);return i.createElement(a,Ue({},s,{className:r}))}fa.propTypes=ya,fa.defaultProps={tag:"div"};const wa=["className","cssModule","tag"],ba={className:a.string,cssModule:a.object,tag:sn};function va(e){const{className:n,cssModule:t,tag:a}=e,s=We(e,wa),r=Ve(o(n,"card-text"),t);return i.createElement(a,Ue({},s,{className:r}))}va.propTypes=ba,va.defaultProps={tag:"p"};const Sa=["className","cssModule","tag"],Aa={className:a.string,cssModule:a.object,tag:sn};function ka(e){const{className:n,cssModule:t,tag:a}=e,s=We(e,Sa),r=Ve(o(n,"card-title"),t);return i.createElement(a,Ue({},s,{className:r}))}ka.propTypes=Aa,ka.defaultProps={tag:"div"};const xa=["cssModule","children","isOpen","flip","target","offset","fallbackPlacements","placementPrefix","arrowClassName","hideArrow","popperClassName","tag","container","modifiers","strategy","boundariesElement","onClosed","fade","transition","placement"];const Ta={children:a.oneOfType([a.node,a.func]).isRequired,popperClassName:a.string,placement:a.string,placementPrefix:a.string,arrowClassName:a.string,hideArrow:a.bool,tag:sn,isOpen:a.bool,cssModule:a.object,offset:a.arrayOf(a.number),fallbackPlacements:a.array,flip:a.bool,container:on,target:on.isRequired,modifiers:a.array,strategy:a.string,boundariesElement:a.oneOfType([a.string,an]),onClosed:a.func,fade:a.bool,transition:a.shape(Zt.propTypes)},Na={boundariesElement:"scrollParent",placement:"auto",hideArrow:!1,isOpen:!1,offset:[0,0],flip:!0,container:"body",modifiers:[],onClosed:function(){},fade:!0,transition:Fe({},Zt.defaultProps)};class Ea extends i.Component{constructor(e){super(e),this.setTargetNode=this.setTargetNode.bind(this),this.getTargetNode=this.getTargetNode.bind(this),this.getRef=this.getRef.bind(this),this.onClosed=this.onClosed.bind(this),this.state={isOpen:e.isOpen}}static getDerivedStateFromProps(e,n){return e.isOpen&&!n.isOpen?{isOpen:e.isOpen}:null}componentDidUpdate(){this._element&&this._element.childNodes&&this._element.childNodes[0]&&this._element.childNodes[0].focus&&this._element.childNodes[0].focus()}onClosed(){this.props.onClosed(),this.setState({isOpen:!1})}getTargetNode(){return this.targetNode}getContainerNode(){return vn(this.props.container)}getRef(e){this._element=e}setTargetNode(e){this.targetNode="string"===typeof e?vn(e):e}renderChildren(){const e=this.props,{cssModule:n,children:t,isOpen:a,flip:s,target:r,offset:l,fallbackPlacements:c,placementPrefix:d,arrowClassName:p,hideArrow:u,popperClassName:g,tag:m,container:h,modifiers:y,strategy:f,boundariesElement:w,onClosed:b,fade:v,transition:S,placement:A}=e,k=We(e,xa),x=Ve(o("arrow",p),n),T=Ve(o(g,d?`${d}-auto`:""),this.props.cssModule),N=y.map((e=>e.name)),E=[...[{name:"offset",options:{offset:l}},{name:"flip",enabled:s,options:{fallbackPlacements:c}},{name:"preventOverflow",options:{boundary:w}}].filter((e=>!N.includes(e.name))),...y],C=Fe(Fe(Fe({},Zt.defaultProps),S),{},{baseClass:v?S.baseClass:"",timeout:v?S.timeout:0});return i.createElement(Zt,Ue({},C,k,{in:a,onExited:this.onClosed,tag:m}),i.createElement(Ie,{referenceElement:this.targetNode,modifiers:E,placement:A,strategy:f},(({ref:e,style:n,placement:a,isReferenceHidden:o,arrowProps:s,update:r})=>i.createElement("div",{ref:e,style:n,className:T,"data-popper-placement":a,"data-popper-reference-hidden":o?"true":void 0},"function"===typeof t?t({update:r}):t,!u&&i.createElement("span",{ref:s.ref,className:x,style:s.style})))))}render(){return this.setTargetNode(this.props.target),this.state.isOpen?"inline"===this.props.container?this.renderChildren():m.createPortal(i.createElement("div",{ref:this.getRef},this.renderChildren()),this.getContainerNode()):null}}Ea.propTypes=Ta,Ea.defaultProps=Na;
1var Ca=Ea;function Ba(e,n){return n.popperManager.setTargetNode(vn(e.target)),null}Ba.contextTypes={popperManager:a.object.isRequired},Ba.propTypes={target:on.isRequired};const La={children:a.oneOfType([a.node,a.func]),placement:a.oneOf(pn),target:on.isRequired,container:on,isOpen:a.bool,disabled:a.bool,hideArrow:a.bool,boundariesElement:a.oneOfType([a.string,an]),className:a.string,innerClassName:a.string,arrowClassName:a.string,popperClassName:a.string,cssModule:a.object,toggle:a.func,autohide:a.bool,placementPrefix:a.string,delay:a.oneOfType([a.shape({show:a.number,hide:a.number}),a.number]),modifiers:a.array,strategy:a.string,offset:a.arrayOf(a.number),innerRef:a.oneOfType([a.func,a.string,a.object]),trigger:a.string,fade:a.bool,flip:a.bool},Ra={show:0,hide:50},Ma={isOpen:!1,hideArrow:!1,autohide:!1,delay:Ra,toggle:function(){},trigger:"click",fade:!0};function Pa(e,n){return n&&(e===n||n.contains(e))}function Ia(e,n=[]){return n&&n.length&&n.filter((n=>Pa(e,n)))[0]}class Oa extends i.Component{constructor(e){super(e),this._targets=[],this.currentTargetElement=null,this.addTargetEvents=this.addTargetEvents.bind(this),this.handleDocumentClick=this.handleDocumentClick.bind(this),this.removeTargetEvents=this.removeTargetEvents.bind(this),this.toggle=this.toggle.bind(this),this.showWithDelay=this.showWithDelay.bind(this),this.hideWithDelay=this.hideWithDelay.bind(this),this.onMouseOverTooltipContent=this.onMouseOverTooltipContent.bind(this),this.onMouseLeaveTooltipContent=this.onMouseLeaveTooltipContent.bind(this),this.show=this.show.bind(this),this.hide=this.hide.bind(this),this.onEscKeyDown=this.onEscKeyDown.bind(this),this.getRef=this.getRef.bind(this),this.state={isOpen:e.isOpen},this._isMounted=!1}componentDidMount(){this._isMounted=!0,this.updateTarget()}componentWillUnmount(){this._isMounted=!1,this.removeTargetEvents(),this._targets=null,this.clearShowTimeout(),this.clearHideTimeout()}static getDerivedStateFromProps(e,n){return e.isOpen&&!n.isOpen?{isOpen:e.isOpen}:null}handleDocumentClick(e){const n=this.props.trigger.split(" ");n.indexOf("legacy")>-1&&(this.props.isOpen||Ia(e.target,this._targets))?(this._hideTimeout&&this.clearHideTimeout(),this.props.isOpen&&!Pa(e.target,this._popover)?this.hideWithDelay(e):this.props.isOpen||this.showWithDelay(e)):n.indexOf("click")>-1&&Ia(e.target,this._targets)&&(this._hideTimeout&&this.clearHideTimeout(),this.props.isOpen?this.hideWithDelay(e):this.showWithDelay(e))}onMouseOverTooltipContent(){this.props.trigger.indexOf("hover")>-1&&!this.props.autohide&&(this._hideTimeout&&this.clearHideTimeout(),this.state.isOpen&&!this.props.isOpen&&this.toggle())}onMouseLeaveTooltipContent(e){this.props.trigger.indexOf("hover")>-1&&!this.props.autohide&&(this._showTimeout&&this.clearShowTimeout(),e.persist(),this._hideTimeout=setTimeout(this.hide.bind(this,e),this.getDelay("hide")))}onEscKeyDown(e){"Escape"===e.key&&this.hide(e)}getRef(e){const{innerRef:n}=this.props;n&&("function"===typeof n?n(e):"object"===typeof n&&(n.current=e)),this._popover=e}getDelay(e){const{delay:n}=this.props;return"object"===typeof n?isNaN(n[e])?Ra[e]:n[e]:n}getCurrentTarget(e){if(!e)return null;const n=this._targets.indexOf(e);return n>=0?this._targets[n]:this.getCurrentTarget(e.parentElement)}show(e){if(!this.props.isOpen){if(this.clearShowTimeout(),this.currentTargetElement=e?e.currentTarget||this.getCurrentTarget(e.target):null,e&&e.composedPath&&"function"===typeof e.composedPath){const n=e.composedPath();this.currentTargetElement=n&&n[0]||this.currentTargetElement}this.toggle(e)}}showWithDelay(e){this._hideTimeout&&this.clearHideTimeout(),this._showTimeout=setTimeout(this.show.bind(this,e),this.getDelay("show"))}hide(e){this.props.isOpen&&(this.clearHideTimeout(),this.currentTargetElement=null,this.toggle(e))}hideWithDelay(e){this._showTimeout&&this.clearShowTimeout(),this._hideTimeout=setTimeout(this.hide.bind(this,e),this.getDelay("hide"))}clearShowTimeout(){clearTimeout(this._showTimeout),this._showTimeout=void 0}clearHideTimeout(){clearTimeout(this._hideTimeout),this._hideTimeout=void 0}
1addEventOnTargets(e,n,t){this._targets.forEach((i=>{i.addEventListener(e,n,t)}))}removeEventOnTargets(e,n,t){this._targets.forEach((i=>{i.removeEventListener(e,n,t)}))}addTargetEvents(){if(this.props.trigger){let e=this.props.trigger.split(" ");-1===e.indexOf("manual")&&((e.indexOf("click")>-1||e.indexOf("legacy")>-1)&&document.addEventListener("click",this.handleDocumentClick,!0),this._targets&&this._targets.length&&(e.indexOf("hover")>-1&&(this.addEventOnTargets("mouseover",this.showWithDelay,!0),this.addEventOnTargets("mouseout",this.hideWithDelay,!0)),e.indexOf("focus")>-1&&(this.addEventOnTargets("focusin",this.show,!0),this.addEventOnTargets("focusout",this.hide,!0)),this.addEventOnTargets("keydown",this.onEscKeyDown,!0)))}}removeTargetEvents(){this._targets&&(this.removeEventOnTargets("mouseover",this.showWithDelay,!0),this.removeEventOnTargets("mouseout",this.hideWithDelay,!0),this.removeEventOnTargets("keydown",this.onEscKeyDown,!0),this.removeEventOnTargets("focusin",this.show,!0),this.removeEventOnTargets("focusout",this.hide,!0)),document.removeEventListener("click",this.handleDocumentClick,!0)}updateTarget(){const e=vn(this.props.target,!0);e!==this._targets&&(this.removeTargetEvents(),this._targets=e?Array.from(e):[],this.currentTargetElement=this.currentTargetElement||this._targets[0],this.addTargetEvents())}toggle(e){return this.props.disabled||!this._isMounted?e&&e.preventDefault():this.props.toggle(e)}render(){this.props.isOpen&&this.updateTarget();const e=this.currentTargetElement||this._targets[0];if(!e)return null;const{className:n,cssModule:t,innerClassName:a,isOpen:o,hideArrow:s,boundariesElement:r,placement:l,placementPrefix:c,arrowClassName:d,popperClassName:p,container:u,modifiers:g,strategy:m,offset:h,fade:y,flip:f,children:w}=this.props,b=Ze(this.props,Object.keys(La)),v=Ve(p,t),S=Ve(a,t);return i.createElement(Ca,{className:n,target:e,isOpen:o,hideArrow:s,boundariesElement:r,placement:l,placementPrefix:c,arrowClassName:d,popperClassName:v,container:u,modifiers:g,strategy:m,offset:h,cssModule:t,fade:y,flip:f},(({update:e})=>i.createElement("div",Ue({},b,{ref:this.getRef,className:S,role:"tooltip",onMouseOver:this.onMouseOverTooltipContent,onMouseLeave:this.onMouseLeaveTooltipContent,onKeyDown:this.onEscKeyDown}),"function"===typeof w?w({update:e}):w)))}}Oa.propTypes=La,Oa.defaultProps=Ma;var ja=Oa;function Ha(e){const n=o("popover","show",e.popperClassName),t=o("popover-inner",e.innerClassName);return i.createElement(ja,Ue({},e,{arrowClassName:"popover-arrow",popperClassName:n,innerClassName:t}))}Ha.propTypes=La,Ha.defaultProps={placement:"right",placementPrefix:"bs-popover",trigger:"click",offset:[0,8]};const Ga=["defaultOpen"];class Da extends i.Component{constructor(e){super(e),this.state={isOpen:e.defaultOpen||!1},this.toggle=this.toggle.bind(this)}toggle(){this.setState((e=>({isOpen:!e.isOpen})))}render(){return i.createElement(Ha,Ue({isOpen:this.state.isOpen,toggle:this.toggle},Ze(this.props,Ga)))}}Da.propTypes=Fe({defaultOpen:a.bool},Ha.propTypes);const Fa=["className","cssModule","tag"],$a={tag:sn,className:a.string,cssModule:a.object};function Ua(e){const{className:n,cssModule:t,tag:a}=e,s=We(e,Fa),r=Ve(o(n,"popover-header"),t);return i.createElement(a,Ue({},s,{className:r}))}Ua.propTypes=$a,Ua.defaultProps={tag:"h3"};const Wa=["className","cssModule","tag"],_a={tag:sn,className:a.string,cssModule:a.object};function Qa(e){const{className:n,cssModule:t,tag:a}=e,s=We(e,Wa),r=Ve(o(n,"popover-body"),t);return i.createElement(a,Ue({},s,{className:r}))}Qa.propTypes=_a,Qa.defaultProps={tag:"div"};const za=["children","className","barClassName","cssModule","value","min","max","animated","striped","color","bar","multi","tag","style","barStyle","barAriaValueText","barAriaLabelledBy"],qa={animated:a.bool,bar:a.bool,barAriaLabelledBy:a.string,barAriaValueText:a.string,barClassName:a.string,barStyle:a.object,children:a.node,className:a.string,cssModule:a.object,color:a.string,max:a.oneOfType([a.string,a.number]),min:a.oneOfType([a.string,a.number]),multi:a.bool,striped:a.bool,style:a.object,tag:sn,value:a.oneOfType([a.string,a.number])};function Ka(e){const{children:n,className:t,barClassName:a,cssModule:s,value:r,min:l,max:c,animated:d,striped:p,color:u,bar:g,multi:m,tag:h,style:y,barStyle:f,barAriaValueText:w,barAriaLabelledBy:b}=e,v=We(e,za),S=yn(r)/yn(c)*100,A=Ve(o(t,"progress"),s),k={className:Ve(o("progress-bar",g&&t||a,d?"progress-bar-animated":null,u?`bg-${u}`:null,p||d?"progress-bar-striped":null),s),style:Fe(Fe(Fe({},g?y:{}),f),{},{width:`${S}%`}),role:"progressbar","aria-valuenow":r,"aria-valuemin":l,"aria-valuemax":c,"aria-valuetext":w,"aria-labelledby":b,children:n};return g?i.createElement(h,Ue({},v,k)):i.createElement(h,Ue({},v,{style:y,className:A}
1),m?n:i.createElement("div",k))}Ka.propTypes=qa,Ka.defaultProps={tag:"div",value:0,min:0,max:100,style:{},barStyle:{}};const Ya={children:a.node.isRequired,node:a.any};class Va extends i.Component{componentWillUnmount(){this.defaultNode&&document.body.removeChild(this.defaultNode),this.defaultNode=null}render(){return un?(this.props.node||this.defaultNode||(this.defaultNode=document.createElement("div"),document.body.appendChild(this.defaultNode)),m.createPortal(this.props.children,this.props.node||this.defaultNode)):null}}Va.propTypes=Ya;var Za=Va;function Ja(){}const Xa=a.shape(Zt.propTypes),eo={autoFocus:a.bool,backdrop:a.oneOfType([a.bool,a.oneOf(["static"])]),backdropClassName:a.string,backdropTransition:Xa,centered:a.bool,children:a.node,contentClassName:a.string,className:a.string,container:on,cssModule:a.object,external:a.node,fade:a.bool,fullscreen:a.oneOfType([a.bool,a.oneOf(["sm","md","lg","xl"])]),innerRef:a.oneOfType([a.object,a.string,a.func]),isOpen:a.bool,keyboard:a.bool,labelledBy:a.string,modalClassName:a.string,modalTransition:Xa,onClosed:a.func,onEnter:a.func,onExit:a.func,onOpened:a.func,returnFocusAfterClose:a.bool,role:a.string,scrollable:a.bool,size:a.string,toggle:a.func,trapFocus:a.bool,unmountOnClose:a.bool,wrapClassName:a.string,zIndex:a.oneOfType([a.number,a.string])},no=Object.keys(eo),to={isOpen:!1,autoFocus:!0,centered:!1,scrollable:!1,role:"dialog",backdrop:!0,keyboard:!0,zIndex:1050,fade:!0,onOpened:Ja,onClosed:Ja,modalTransition:{timeout:rn.Modal},backdropTransition:{mountOnEnter:!0,timeout:rn.Fade},unmountOnClose:!0,returnFocusAfterClose:!0,container:"body",trapFocus:!1};class io extends i.Component{constructor(e){super(e),this._element=null,this._originalBodyPadding=null,this.getFocusableChildren=this.getFocusableChildren.bind(this),this.handleBackdropClick=this.handleBackdropClick.bind(this),this.handleBackdropMouseDown=this.handleBackdropMouseDown.bind(this),this.handleEscape=this.handleEscape.bind(this),this.handleStaticBackdropAnimation=this.handleStaticBackdropAnimation.bind(this),this.handleTab=this.handleTab.bind(this),this.onOpened=this.onOpened.bind(this),this.onClosed=this.onClosed.bind(this),this.manageFocusAfterClose=this.manageFocusAfterClose.bind(this),this.clearBackdropAnimationTimeout=this.clearBackdropAnimationTimeout.bind(this),this.trapFocus=this.trapFocus.bind(this),this.state={isOpen:!1,showStaticBackdropAnimation:!1}}componentDidMount(){const{isOpen:e,autoFocus:n,onEnter:t}=this.props;e&&(this.init(),this.setState({isOpen:!0}),n&&this.setFocus()),t&&t(),document.addEventListener("focus",this.trapFocus,!0),this._isMounted=!0}componentDidUpdate(e,n){if(this.props.isOpen&&!e.isOpen)return this.init(),void this.setState({isOpen:!0});this.props.autoFocus&&this.state.isOpen&&!n.isOpen&&this.setFocus(),this._element&&e.zIndex!==this.props.zIndex&&(this._element.style.zIndex=this.props.zIndex)}componentWillUnmount(){this.clearBackdropAnimationTimeout(),this.props.onExit&&this.props.onExit(),this._element&&(this.destroy(),(this.props.isOpen||this.state.isOpen)&&this.close()),document.removeEventListener("focus",this.trapFocus,!0),this._isMounted=!1}handleBackdropClick(e){if(e.target===this._mouseDownElement){e.stopPropagation();const n=this._dialog?this._dialog.parentNode:null;if(n&&e.target===n&&"static"===this.props.backdrop&&this.handleStaticBackdropAnimation(),!this.props.isOpen||!0!==this.props.backdrop)return;n&&e.target===n&&this.props.toggle&&this.props.toggle(e)}}handleTab(e){if(9!==e.which)return;if(this.modalIndex<io.openCount-1)return;const n=this.getFocusableChildren(),t=n.length;if(0===t)return;const i=this.getFocusedChild();let a=0;for(let o=0;o<t;o+=1)if(n[o]===i){a=o;break}e.shiftKey&&0===a?(e.preventDefault(),n[t-1].focus()):e.shiftKey||a!==t-1||(e.preventDefault(),n[0].focus())}handleBackdropMouseDown(e){this._mouseDownElement=e.target}
1handleEscape(e){this.props.isOpen&&e.keyCode===dn.esc&&this.props.toggle&&(this.props.keyboard?(e.preventDefault(),e.stopPropagation(),this.props.toggle(e)):"static"===this.props.backdrop&&(e.preventDefault(),e.stopPropagation(),this.handleStaticBackdropAnimation()))}handleStaticBackdropAnimation(){this.clearBackdropAnimationTimeout(),this.setState({showStaticBackdropAnimation:!0}),this._backdropAnimationTimeout=setTimeout((()=>{this.setState({showStaticBackdropAnimation:!1})}),100)}onOpened(e,n){this.props.onOpened(),(this.props.modalTransition.onEntered||Ja)(e,n)}onClosed(e){const{unmountOnClose:n}=this.props;this.props.onClosed(),(this.props.modalTransition.onExited||Ja)(e),n&&this.destroy(),this.close(),this._isMounted&&this.setState({isOpen:!1})}setFocus(){this._dialog&&this._dialog.parentNode&&"function"===typeof this._dialog.parentNode.focus&&this._dialog.parentNode.focus()}getFocusableChildren(){return this._element.querySelectorAll(kn.join(", "))}getFocusedChild(){let e;const n=this.getFocusableChildren();try{e=document.activeElement}catch(t){e=n[0]}return e}trapFocus(e){if(!this.props.trapFocus)return;if(!this._element)return;if(this._dialog&&this._dialog.parentNode===e.target)return;if(this.modalIndex<io.openCount-1)return;const n=this.getFocusableChildren();for(let t=0;t<n.length;t+=1)if(n[t]===e.target)return;n.length>0&&(e.preventDefault(),e.stopPropagation(),n[0].focus())}init(){try{this._triggeringElement=document.activeElement}catch(e){this._triggeringElement=null}this._element||(this._element=document.createElement("div"),this._element.setAttribute("tabindex","-1"),this._element.style.position="relative",this._element.style.zIndex=this.props.zIndex,this._mountContainer=vn(this.props.container),this._mountContainer.appendChild(this._element)),this._originalBodyPadding=qe(),io.openCount<1&&(io.originalBodyOverflow=window.getComputedStyle(document.body).overflow),Ke(),0===io.openCount&&(document.body.className=o(document.body.className,Ve("modal-open",this.props.cssModule)),document.body.style.overflow="hidden"),this.modalIndex=io.openCount,io.openCount+=1}destroy(){this._element&&(this._mountContainer.removeChild(this._element),this._element=null),this.manageFocusAfterClose()}manageFocusAfterClose(){if(this._triggeringElement){const{returnFocusAfterClose:e}=this.props;this._triggeringElement.focus&&e&&this._triggeringElement.focus(),this._triggeringElement=null}}close(){if(io.openCount<=1){const e=Ve("modal-open",this.props.cssModule),n=new RegExp(`(^| )${e}( |$)`);document.body.className=document.body.className.replace(n," ").trim(),document.body.style.overflow=io.originalBodyOverflow}this.manageFocusAfterClose(),io.openCount=Math.max(0,io.openCount-1),Qe(this._originalBodyPadding)}clearBackdropAnimationTimeout(){this._backdropAnimationTimeout&&(clearTimeout(this._backdropAnimationTimeout),this._backdropAnimationTimeout=void 0)}renderModalDialog(){const e=Ze(this.props,no),n="modal-dialog";return i.createElement("div",Ue({},e,{className:Ve(o(n,this.props.className,{[`modal-${this.props.size}`]:this.props.size,"modal-dialog-centered":this.props.centered,"modal-dialog-scrollable":this.props.scrollable,"modal-fullscreen":!0===this.props.fullscreen,[`modal-fullscreen-${this.props.fullscreen}-down`]:"string"===typeof this.props.fullscreen}),this.props.cssModule),role:"document",ref:e=>{this._dialog=e}}),i.createElement("div",{className:Ve(o("modal-content",this.props.contentClassName),this.props.cssModule)},this.props.children))}render(){const{unmountOnClose:e}=this.props;if(this._element&&(this.state.isOpen||!e)){const n=!!this._element&&!this.state.isOpen&&!e;this._element.style.display=n?"none":"block";const{wrapClassName:t,modalClassName:a,backdropClassName:s,cssModule:r,isOpen:l,backdrop:c,role:d,labelledBy:p,external:u,innerRef:g}=this.props,m={onClick:this.handleBackdropClick,onMouseDown:this.handleBackdropMouseDown,onKeyUp:this.handleEscape,onKeyDown:this.handleTab,style:{display:"block"},"aria-labelledby":p,role:d,tabIndex:"-1"},h=this.props.fade,y=Fe(Fe(Fe({},Zt.defaultProps),this.props.modalTransition),{},{baseClass:h?this.props.modalTransition.baseClass:"",timeout:h?this.props.modalTransition.timeout:0}),f=Fe(Fe(Fe({},Zt.defaultProps),this.props.backdropTransition),{},{baseClass:h?this.props.backdropTransition.baseClass:"",timeout:h?this.props.backdropTransition.timeout:0}),w=c&&(h?i.createElement(Zt,Ue({},f,{in:l&&!!c,cssModule:r,className:Ve(o("modal-backdrop",s),r)})):i.createElement("div",{className:Ve(o("modal-backdrop","show",s),r)}));return i.createElement(Za,{node:this._element},i.createElement("div",{className:Ve(t)},i.createElement(Zt,Ue({},m,y,{in:l,onEntered:this.onOpened,onExited:this.onClosed,cssModule:r,className:Ve(o("modal",a,this.state.showStaticBackdropAnimation&&"modal-static"),r),innerRef:g}),u,this.renderModalDialog()),w))}return null}}io.propTypes=eo,io.defaultProps=to,io.openCount=0,io.originalBodyOverflow=null;var ao=io;const oo=["className","cssModule","children","toggle","tag","wrapTag","closeAriaLabel","close"],so={children:a.node,className:a.string,close:a.object,closeAriaLabel:a.string,cssModule:a.object,tag:sn,toggle:a.func,wrapTag:sn};function ro(e){let n;const{className:t,cssModule:a,children:s,toggle:r,tag:l,wrapTag:c,closeAriaLabel:d,close:p}=e,u=We(e,oo),g=Ve(o(t,"modal-header"),a);return!p&&r&&(n=i.createElement("button",{type:"button",onClick:r,className:Ve("btn-close",a),"aria-label":d})),i.createElement(c,Ue({},u,{className:g}),i.createElement(l,{className:Ve("modal-title",a)},s),p||n)}ro.propTypes=so,ro.defaultProps={tag:"h5",wrapTag:"div",closeAriaLabel:"Close"};const lo=["className","cssModule","tag"],co={className:a.string,cssModule:a.object,tag:sn};function po(e){const{className:n,cssModule:t,tag:a}=e,s=We(e,lo),r=Ve(o(n,"modal-body"),t);return i.createElement(a,Ue({},s,{className:r}))}po.propTypes=co,po.defaultProps={tag:"div"};const uo=["className","cssModule","tag"],go={className:a.string,cssModule:a.object,tag:sn};function mo(e){const{className:n,cssModule:t,tag:a}=e,s=We(e,uo),r=Ve(o(n,"modal-footer"),t);return i.createElement(a,Ue({},s,{className:r}))}mo.propTypes=go,mo.defaultProps={tag:"div"};function ho(e){const n=o("tooltip","show",e.popperClassName),t=o("tooltip-inner",e.innerClassName);return i.createElement(ja,Ue({},e,{arrowClassName:"tooltip-arrow",popperClassName:n,innerClassName:t}))}ho.propTypes=La,ho.defaultProps={placement:"top",autohide:!0,placementPrefix:"bs-tooltip",trigger:"hover focus"};const yo=["className","cssModule","size","bordered","borderless","striped","dark","hover","responsive","tag","responsiveTag","innerRef"],fo={bordered:a.bool,borderless:a.bool,className:a.string,cssModule:a.object,dark:a.bool,hover:a.bool,innerRef:a.oneOfType([a.func,a.string,a.object]),responsive:a.oneOfType([a.bool,a.string]),responsiveTag:sn,size:a.string,
1striped:a.bool,tag:sn};function wo(e){const{className:n,cssModule:t,size:a,bordered:s,borderless:r,striped:l,dark:c,hover:d,responsive:p,tag:u,responsiveTag:g,innerRef:m}=e,h=We(e,yo),y=Ve(o(n,"table",!!a&&"table-"+a,!!s&&"table-bordered",!!r&&"table-borderless",!!l&&"table-striped",!!c&&"table-dark",!!d&&"table-hover"),t),f=i.createElement(u,Ue({},h,{ref:m,className:y}));if(p){const e=Ve(!0===p?"table-responsive":`table-responsive-${p}`,t);return i.createElement(g,{className:e},f)}return f}wo.propTypes=fo,wo.defaultProps={tag:"table",responsiveTag:"div"};const bo=["className","cssModule","tag","flush","horizontal","numbered"],vo={className:a.string,cssModule:a.object,flush:a.bool,horizontal:a.oneOfType([a.bool,a.string]),numbered:a.bool,tag:sn};function So(e){const{className:n,cssModule:t,tag:a,flush:s,horizontal:r,numbered:l}=e,c=We(e,bo),d=Ve(o(n,"list-group",s?"list-group-flush":(e=>!1!==e&&(!0===e||"xs"===e?"list-group-horizontal":`list-group-horizontal-${e}`))(r),{"list-group-numbered":l}),t);return i.createElement(a,Ue({},c,{className:d}))}So.propTypes=vo,So.defaultProps={tag:"ul",horizontal:!1,numbered:!1};const Ao=["className","cssModule","tag","innerRef"],ko={children:a.node,tag:sn,innerRef:a.oneOfType([a.object,a.func,a.string]),className:a.string,cssModule:a.object};class xo extends i.Component{constructor(e){super(e),this.getRef=this.getRef.bind(this),this.submit=this.submit.bind(this)}getRef(e){this.props.innerRef&&this.props.innerRef(e),this.ref=e}submit(){this.ref&&this.ref.submit()}render(){const e=this.props,{className:n,cssModule:t,tag:a,innerRef:o}=e,s=We(e,Ao),r=Ve(n,t);return i.createElement(a,Ue({},s,{ref:o,className:r}))}}xo.propTypes=ko,xo.defaultProps={tag:"form"};const To=["className","cssModule","valid","tooltip","tag"],No={children:a.node,tag:sn,className:a.string,cssModule:a.object,valid:a.bool,tooltip:a.bool},Eo={tag:"div",valid:void 0};function Co(e){const{className:n,cssModule:t,valid:a,tooltip:s,tag:r}=e,l=We(e,To),c=s?"tooltip":"feedback",d=Ve(o(n,a?`valid-${c}`:`invalid-${c}`),t);return i.createElement(r,Ue({},l,{className:d}))}Co.propTypes=No,Co.defaultProps=Eo;const Bo=["className","cssModule","row","disabled","check","inline","floating","tag","switch"],Lo={children:a.node,row:a.bool,check:a.bool,switch:a.bool,inline:a.bool,floating:a.bool,disabled:a.bool,tag:sn,className:a.string,cssModule:a.object};function Ro(e){const{className:n,cssModule:t,row:a,disabled:s,check:r,inline:l,floating:c,tag:d,switch:p}=e,u=We(e,Bo),g=r||p,m=Ve(o(n,!!a&&"row",g?"form-check":"mb-3",!!p&&"form-switch",!(!g||!l)&&"form-check-inline",!(!g||!s)&&"disabled",c&&"form-floating"),t);return"fieldset"===d&&(u.disabled=s),i.createElement(d,Ue({},u,{className:m}))}Ro.propTypes=Lo,Ro.defaultProps={tag:"div"};const Mo=["className","cssModule","inline","color","tag"],Po={children:a.node,inline:a.bool,tag:sn,color:a.string,className:a.string,cssModule:a.object};function Io(e){const{className:n,cssModule:t,inline:a,color:s,tag:r}=e,l=We(e,Mo),c=Ve(o(n,!a&&"form-text",!!s&&`text-${s}`),t);return i.createElement(r,Ue({},l,{className:c}))}Io.propTypes=Po,Io.defaultProps={tag:"small",color:"muted"};const Oo=["className","cssModule","type","bsSize","valid","invalid","tag","addon","plaintext","innerRef"],jo={children:a.node,type:a.string,size:a.oneOfType([a.number,a.string]),bsSize:a.string,valid:a.bool,invalid:a.bool,tag:sn,innerRef:a.oneOfType([a.object,a.func,a.string]),plaintext:a.bool,addon:a.bool,className:a.string,cssModule:a.object};class Ho extends i.Component{constructor(e){super(e),this.getRef=this.getRef.bind(this),this.focus=this.focus.bind(this)}getRef(e){this.props.innerRef&&this.props.innerRef(e),this.ref=e}focus(){this.ref&&this.ref.focus()}render(){let e=this.props,{className:n,cssModule:t,type:a,bsSize:s,valid:r,invalid:l,tag:c,addon:d,plaintext:p,innerRef:u}=e,g=We(e,Oo);const m=["switch","radio","checkbox"].indexOf(a)>-1,h="select"===a;let y=c||(h||"textarea"===a?a:"input"),f="form-control";p?(f=`${f}-plaintext`,y=c||"input"):"range"===a?f="form-range":h?f="form-select":m&&(f=d?null:"form-check-input"),g.size&&/\D/g.test(g.size)&&(en('Please use the prop "bsSize" instead of the "size" to bootstrap\'s input sizing.'),s=g.size,delete g.size);const w=Ve(o(n,l&&"is-invalid",r&&"is-valid",!!s&&(h?`form-select-${s}`:`form-control-${s}`),f),t);return("input"===y||c&&"function"===typeof c)&&(g.type="switch"===a?"checkbox":a),g.children&&!p&&"select"!==a&&"string"===typeof y&&"select"!==y&&(en(`Input with a type of "${a}" cannot have children. Please use "value"/"defaultValue" instead.`),delete g.children),i.createElement(y,Ue({},g,{ref:u,className:w,"aria-invalid":l}))}}Ho.propTypes=jo,Ho.defaultProps={type:"text"};const Go=["className","cssModule","tag","type","size"],Do={className:a.string,cssModule:a.object,size:a.string,tag:sn,type:a.str
1ing};function Fo(e){const{className:n,cssModule:t,tag:a,type:s,size:r}=e,l=We(e,Go),c=Ve(o(n,"input-group",r?`input-group-${r}`:null),t);return"dropdown"===e.type?i.createElement(Bt,Ue({},l,{className:c})):i.createElement(xt.Provider,{value:{insideInputGroup:!0}},i.createElement(a,Ue({},l,{className:c})))}Fo.propTypes=Do,Fo.defaultProps={tag:"div"};const $o=["className","cssModule","tag"],Uo={className:a.string,cssModule:a.object,tag:sn};function Wo(e){const{className:n,cssModule:t,tag:a}=e,s=We(e,$o),r=Ve(o(n,"input-group-text"),t);return i.createElement(a,Ue({},s,{className:r}))}Wo.propTypes=Uo,Wo.defaultProps={tag:"span"};const _o=["className","cssModule","hidden","widths","tag","check","size","for"],Qo=a.oneOfType([a.number,a.string]),zo=a.oneOfType([a.bool,a.string,a.number,a.shape({size:Qo,order:Qo,offset:Qo})]),qo={children:a.node,hidden:a.bool,check:a.bool,size:a.string,for:a.string,tag:sn,className:a.string,cssModule:a.object,xs:zo,sm:zo,md:zo,lg:zo,xl:zo,xxl:zo,widths:a.array},Ko={tag:"label",widths:["xs","sm","md","lg","xl","xxl"]},Yo=(e,n,t)=>!0===t||""===t?e?"col":`col-${n}`:"auto"===t?e?"col-auto":`col-${n}-auto`:e?`col-${t}`:`col-${n}-${t}`;function Vo(e){const{className:n,cssModule:t,hidden:a,widths:s,tag:r,check:l,size:c,for:d}=e,p=We(e,_o),u=[];s.forEach(((n,i)=>{let a=e[n];if(delete p[n],!a&&""!==a)return;const s=!i;let r;if(hn(a)){const e=s?"-":`-${n}-`;r=Yo(s,n,a.size),u.push(Ve(o({[r]:a.size||""===a.size,[`order${e}${a.order}`]:a.order||0===a.order,[`offset${e}${a.offset}`]:a.offset||0===a.offset})),t)}else r=Yo(s,n,a),u.push(r)}));const g=c||u.length,m=Ve(o(n,!!a&&"visually-hidden",!!l&&"form-check-label",!!c&&`col-form-label-${c}`,u,!!g&&"col-form-label",!!!(l||g)&&"form-label"),t);return i.createElement(r,Ue({htmlFor:d},p,{className:m}))}Vo.propTypes=qo,Vo.defaultProps=Ko;a.bool,a.bool,a.node,a.string,a.object,a.bool,a.bool,a.bool,a.bool,a.bool,a.bool,a.bool;function Zo(){}const Jo=a.shape(Zt.propTypes),Xo={autoFocus:a.bool,backdrop:a.bool,backdropClassName:a.string,backdropTransition:Jo,children:a.node,className:a.string,container:on,cssModule:a.object,direction:a.oneOf(["start","end","bottom","top"]),fade:a.bool,innerRef:a.oneOfType([a.object,a.string,a.func]),isOpen:a.bool,keyboard:a.bool,labelledBy:a.string,offcanvasTransition:Jo,onClosed:a.func,onEnter:a.func,onExit:a.func,style:a.object,onOpened:a.func,returnFocusAfterClose:a.bool,role:a.string,scrollable:a.bool,toggle:a.func,trapFocus:a.bool,unmountOnClose:a.bool,zIndex:a.oneOfType([a.number,a.string])},es=Object.keys(Xo),ns={isOpen:!1,autoFocus:!0,direction:"start",scrollable:!1,role:"dialog",backdrop:!0,keyboard:!0,zIndex:1050,fade:!0,onOpened:Zo,onClosed:Zo,offcanvasTransition:{timeout:rn.Offcanvas},backdropTransition:{mountOnEnter:!0,timeout:rn.Fade},unmountOnClose:!0,returnFocusAfterClose:!0,container:"body",trapFocus:!1};class ts extends i.Component{constructor(e){super(e),this._element=null,this._originalBodyPadding=null,this.getFocusableChildren=this.getFocusableChildren.bind(this),this.handleBackdropClick=this.handleBackdropClick.bind(this),this.handleBackdropMouseDown=this.handleBackdropMouseDown.bind(this),this.handleEscape=this.handleEscape.bind(this),this.handleTab=this.handleTab.bind(this),this.onOpened=this.onOpened.bind(this),this.onClosed=this.onClosed.bind(this),this.manageFocusAfterClose=this.manageFocusAfterClose.bind(this),this.clearBackdropAnimationTimeout=this.clearBackdropAnimationTimeout.bind(this),this.trapFocus=this.trapFocus.bind(this),this.state={isOpen:!1}}componentDidMount(){const{isOpen:e,autoFocus:n,onEnter:t}=this.props;e&&(this.init(),this.setState({isOpen:!0}),n&&this.setFocus()),t&&t(),document.addEventListener("focus",this.trapFocus,!0),this._isMounted=!0}componentDidUpdate(e,n){if(this.props.isOpen&&!e.isOpen)return this.init(),void this.setState({isOpen:!0});this.props.autoFocus&&this.state.isOpen&&!n.isOpen&&this.setFocus(),this._element&&e.zIndex!==this.props.zIndex&&(this._element.style.zIndex=this.props.zIndex)}componentWillUnmount(){this.clearBackdropAnimationTimeout(),this.props.onExit&&this.props.onExit(),this._element&&(this.destroy(),(this.props.isOpen||this.state.isOpen)&&this.close()),document.removeEventListener("focus",this.trapFocus,!0),this._isMounted=!1}handleBackdropClick(e){if(e.target===this._mouseDownElement){e.stopPropagation();const n=this._backdrop;if(!this.props.isOpen||!0!==this.props.backdrop)return;n&&e.target===n&&this.props.toggle&&this.props.toggle(e)}}handleTab(e){if(9!==e.which)return;if(this.offcanvasIndex<ts.openCount-1)return;const n=this.getFocusableChildren(),t=n.length;if(0===t)return;const i=this.getFocusedChild();let a=0;for(let o=0;o<t;o+=1)if(n[o]===i){a=o;break}e.shiftKey&&0===a?(e.preventDefault(),n[t-1].focus()):e.shiftKey||a!==t-1||(e.preventDefault(),n[0].focus())}handleBackdropMouseDown(e){this._mouseDownElement=e.target}
1handleEscape(e){this.props.isOpen&&e.keyCode===dn.esc&&this.props.toggle&&this.props.keyboard&&(e.preventDefault(),e.stopPropagation(),this.props.toggle(e))}onOpened(e,n){this.props.onOpened(),(this.props.offcanvasTransition.onEntered||Zo)(e,n)}onClosed(e){const{unmountOnClose:n}=this.props;this.props.onClosed(),(this.props.offcanvasTransition.onExited||Zo)(e),n&&this.destroy(),this.close(),this._isMounted&&this.setState({isOpen:!1})}setFocus(){this._dialog&&"function"===typeof this._dialog.focus&&this._dialog.focus()}getFocusableChildren(){return this._element.querySelectorAll(kn.join(", "))}getFocusedChild(){let e;const n=this.getFocusableChildren();try{e=document.activeElement}catch(t){e=n[0]}return e}trapFocus(e){if(!this.props.trapFocus)return;if(!this._element)return;if(this._dialog===e.target)return;if(this.offcanvasIndex<ts.openCount-1)return;const n=this.getFocusableChildren();for(let t=0;t<n.length;t+=1)if(n[t]===e.target)return;n.length>0&&(e.preventDefault(),e.stopPropagation(),n[0].focus())}init(){try{this._triggeringElement=document.activeElement}catch(e){this._triggeringElement=null}this._element||(this._element=document.createElement("div"),this._element.setAttribute("tabindex","-1"),this._element.style.position="relative",this._element.style.zIndex=this.props.zIndex,this._mountContainer=vn(this.props.container),this._mountContainer.appendChild(this._element)),this._originalBodyPadding=qe(),Ke(),0===ts.openCount&&this.props.backdrop&&!this.props.scrollable&&(document.body.style.overflow="hidden"),this.offcanvasIndex=ts.openCount,ts.openCount+=1}destroy(){this._element&&(this._mountContainer.removeChild(this._element),this._element=null),this.manageFocusAfterClose()}manageFocusAfterClose(){if(this._triggeringElement){const{returnFocusAfterClose:e}=this.props;this._triggeringElement.focus&&e&&this._triggeringElement.focus(),this._triggeringElement=null}}close(){this.manageFocusAfterClose(),ts.openCount=Math.max(0,ts.openCount-1),document.body.style.overflow=null,Qe(this._originalBodyPadding)}clearBackdropAnimationTimeout(){this._backdropAnimationTimeout&&(clearTimeout(this._backdropAnimationTimeout),this._backdropAnimationTimeout=void 0)}render(){const{direction:e,unmountOnClose:n}=this.props;if(this._element&&(this.state.isOpen||!n)){const t=!!this._element&&!this.state.isOpen&&!n;this._element.style.display=t?"none":"block";const{className:a,backdropClassName:s,cssModule:r,isOpen:l,backdrop:c,role:d,labelledBy:p,style:u}=this.props,g={onKeyUp:this.handleEscape,onKeyDown:this.handleTab,"aria-labelledby":p,role:d,tabIndex:"-1"},m=this.props.fade,h=Fe(Fe(Fe({},Zt.defaultProps),this.props.offcanvasTransition),{},{baseClass:m?this.props.offcanvasTransition.baseClass:"",timeout:m?this.props.offcanvasTransition.timeout:0}),y=Fe(Fe(Fe({},Zt.defaultProps),this.props.backdropTransition),{},{baseClass:m?this.props.backdropTransition.baseClass:"",timeout:m?this.props.backdropTransition.timeout:0}),f=c&&(m?i.createElement(Zt,Ue({},y,{in:l&&!!c,innerRef:e=>{this._backdrop=e},cssModule:r,className:Ve(o("offcanvas-backdrop",s),r),onClick:this.handleBackdropClick,onMouseDown:this.handleBackdropMouseDown})):i.createElement("div",{className:Ve(o("offcanvas-backdrop","show",s),r),onClick:this.handleBackdropClick,onMouseDown:this.handleBackdropMouseDown})),w=Ze(this.props,es);return i.createElement(Za,{node:this._element},i.createElement(Zt,Ue({},w,g,h,{in:l,onEntered:this.onOpened,onExited:this.onClosed,cssModule:r,className:Ve(o("offcanvas",a,`offcanvas-${e}`),r),innerRef:e=>{this._dialog=e},style:Fe(Fe({},u),{},{visibility:l?"visible":"hidden"})}),this.props.children),f)}return null}}ts.propTypes=Xo,ts.defaultProps=ns,ts.openCount=0;const is=["className","cssModule","tag"],as={tag:sn,className:a.string,cssModule:a.object};function os(e){const{className:n,cssModule:t,tag:a}=e,s=We(e,is),r=Ve(o(n,"offcanvas-body"),t);return i.createElement(a,Ue({},s,{className:r}))}os.propTypes=as,os.defaultProps={tag:"div"};const ss=["children","className","close","closeAriaLabel","cssModule","tag","toggle","wrapTag"],rs={children:a.node,className:a.string,close:a.object,closeAriaLabel:a.string,cssModule:a.object,tag:sn,toggle:a.func,wrapTag:sn};function ls(e){let n;const{children:t,className:a,close:s,closeAriaLabel:r,cssModule:l,tag:c,toggle:d,wrapTag:p}=e,u=We(e,ss),g=Ve(o(a,"offcanvas-header"),l);return!s&&d&&(n=i.createElement("button",{type:"button",onClick:d,className:Ve("btn-close",l),"aria-label":r})),i.createElement(p,Ue({},u,{className:g}),i.createElement(c,{className:Ve("offcanvas-title",l)},t),s||n)}ls.propTypes=rs,ls.defaultProps={closeAriaLabel:"Close",tag:"h5",wrapTag:"div"};const cs=["className","listClassName","cssModule","size","tag","listTag","aria-label"],ds={children:a.node,className:a.string,listClassName:a.string,cssModule:a.object,size:a.string,tag:sn,listTag:sn,"aria-label":a.str
1ing};function ps(e){const{className:n,listClassName:t,cssModule:a,size:s,tag:r,listTag:l,"aria-label":c}=e,d=We(e,cs),p=Ve(o(n),a),u=Ve(o(t,"pagination",{[`pagination-${s}`]:!!s}),a);return i.createElement(r,{className:p,"aria-label":c},i.createElement(l,Ue({},d,{className:u})))}ps.propTypes=ds,ps.defaultProps={tag:"nav",listTag:"ul","aria-label":"pagination"};const us=["active","className","cssModule","disabled","tag"],gs={active:a.bool,children:a.node,className:a.string,cssModule:a.object,disabled:a.bool,tag:sn};function ms(e){const{active:n,className:t,cssModule:a,disabled:s,tag:r}=e,l=We(e,us),c=Ve(o(t,"page-item",{active:n,disabled:s}),a);return i.createElement(r,Ue({},l,{className:c}))}ms.propTypes=gs,ms.defaultProps={tag:"li"};const hs=["className","cssModule","next","previous","first","last","tag"],ys={"aria-label":a.string,children:a.node,className:a.string,cssModule:a.object,next:a.bool,previous:a.bool,first:a.bool,last:a.bool,tag:sn};function fs(e){let{className:n,cssModule:t,next:a,previous:s,first:r,last:l,tag:c}=e,d=We(e,hs);const p=Ve(o(n,"page-link"),t);let u;s?u="Previous":a?u="Next":r?u="First":l&&(u="Last");const g=e["aria-label"]||u;let m;s?m="\u2039":a?m="\u203a":r?m="\xab":l&&(m="\xbb");let{children:h}=e;return h&&Array.isArray(h)&&0===h.length&&(h=null),d.href||"a"!==c||(c="button"),(s||a||r||l)&&(h=[i.createElement("span",{"aria-hidden":"true",key:"caret"},h||m),i.createElement("span",{className:"visually-hidden",key:"ariaLabel"},g)]),i.createElement(c,Ue({},d,{className:p,"aria-label":g}),h)}fs.propTypes=ys,fs.defaultProps={tag:"a"};const ws=i.createContext({}),bs={tag:sn,activeTab:a.any,className:a.string,cssModule:a.object};class vs extends i.Component{static getDerivedStateFromProps(e,n){return n.activeTab!==e.activeTab?{activeTab:e.activeTab}:null}constructor(e){super(e),this.state={activeTab:this.props.activeTab}}render(){const{className:e,cssModule:n,tag:t}=this.props,a=Ze(this.props,Object.keys(bs)),s=Ve(o("tab-content",e),n);return i.createElement(ws.Provider,{value:{activeTabId:this.state.activeTab}},i.createElement(t,Ue({},a,{className:s})))}}vs.propTypes=bs,vs.defaultProps={tag:"div"};const Ss=["className","cssModule","tabId","tag"],As={tag:sn,className:a.string,cssModule:a.object,tabId:a.any};function ks(e){const{className:n,cssModule:t,tabId:a,tag:s}=e,r=We(e,Ss),l=e=>Ve(o("tab-pane",n,{active:a===e}),t);return i.createElement(ws.Consumer,null,(({activeTabId:e})=>i.createElement(s,Ue({},r,{className:l(e)}))))}ks.propTypes=As,ks.defaultProps={tag:"div"};const xs=["className","closeClassName","closeAriaLabel","cssModule","tag","color","isOpen","toggle","children","transition","fade","innerRef"],Ts={children:a.node,className:a.string,closeClassName:a.string,closeAriaLabel:a.string,color:a.string,cssModule:a.object,fade:a.bool,innerRef:a.oneOfType([a.object,a.string,a.func]),isOpen:a.bool,tag:sn,toggle:a.func,transition:a.shape(Zt.propTypes)},Ns={color:"success",isOpen:!0,tag:"div",closeAriaLabel:"Close",fade:!0,transition:Fe(Fe({},Zt.defaultProps),{},{unmountOnExit:!0})};function Es(e){const{className:n,closeClassName:t,closeAriaLabel:a,cssModule:s,tag:r,color:l,isOpen:c,toggle:d,children:p,transition:u,fade:g,innerRef:m}=e,h=We(e,xs),y=Ve(o(n,"alert",`alert-${l}`,{"alert-dismissible":d}),s),f=Ve(o("btn-close",t),s),w=Fe(Fe(Fe({},Zt.defaultProps),u),{},{baseClass:g?u.baseClass:"",timeout:g?u.timeout:0});return i.createElement(Zt,Ue({},h,w,{tag:r,className:y,in:c,role:"alert",innerRef:m}),d?i.createElement("button",{type:"button",className:f,"aria-label":a,onClick:d}):null,p)}Es.propTypes=Ts,Es.defaultProps=Ns;const Cs=["className","cssModule","tag","isOpen","children","transition","fade","innerRef"],Bs={children:a.node,className:a.string,cssModule:a.object,fade:a.bool,isOpen:a.bool,tag:sn,transition:a.shape(Zt.propTypes),innerRef:a.oneOfType([a.object,a.string,a.func])},Ls={isOpen:!0,tag:"div",fade:!0,transition:Fe(Fe({},Zt.defaultProps),{},{unmountOnExit:!0})};function Rs(e){const{className:n,cssModule:t,tag:a,isOpen:s,children:r,transition:l,fade:c,innerRef:d}=e,p=We(e,Cs),u=Ve(o(n,"toast"),t),g=Fe(Fe(Fe({},Zt.defaultProps),l),{},{baseClass:c?l.baseClass:"",timeout:c?l.timeout:0});return i.createElement(Zt,Ue({},p,g,{tag:a,className:u,in:s,role:"alert",innerRef:d}),r)}Rs.propTypes=Bs,Rs.defaultProps=Ls;const Ms=["className","cssModule","innerRef","tag"],Ps={tag:sn,className:a.string,cssModule:a.object,innerRef:a.oneOfType([a.object,a.string,a.func])};function Is(e){const{className:n,cssModule:t,innerRef:a,tag:s}=e,r=We(e,Ms),l=Ve(o(n,"toast-body"),t);return i.createElement(s,Ue({},r,{className:l,ref:a}))}Is.propTypes=Ps,Is.defaultProps={tag:"div"};const Os=["className","cssModule","children","toggle","tag","wrapTag","closeAriaLabel","close","tagClassName","icon"],js={tag:sn,icon:a.oneOfType([a.string,a.node]),wrapTag:sn,toggle:a.func,className:a.string,cssModule:a.object,children:a.node,closeAriaLabel:a.string,charCode:a.oneOfType([a.string,a.number]),close:a.object,tagClassName:a.string};function Hs(e){let n,t;
1const{className:a,cssModule:s,children:r,toggle:l,tag:c,wrapTag:d,closeAriaLabel:p,close:u,tagClassName:g,icon:m}=e,h=We(e,Os),y=Ve(o(a,"toast-header"),s);return!u&&l&&(n=i.createElement("button",{type:"button",onClick:l,className:Ve("btn-close",s),"aria-label":p})),"string"===typeof m?t=i.createElement("svg",{className:Ve(`rounded text-${m}`),width:"20",height:"20",xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid slice",focusable:"false",role:"img"},i.createElement("rect",{fill:"currentColor",width:"100%",height:"100%"})):m&&(t=m),i.createElement(d,Ue({},h,{className:y}),t,i.createElement(c,{className:Ve(o(g,{"ms-2":null!=t}),s)},r),u||n)}Hs.propTypes=js,Hs.defaultProps={tag:"strong",wrapTag:"div",tagClassName:"me-auto",closeAriaLabel:"Close"};const Gs=["className","cssModule","tag","active","disabled","action","color"],Ds={action:a.bool,active:a.bool,className:a.string,cssModule:a.object,color:a.string,disabled:a.bool,tag:sn},Fs=e=>{e.preventDefault()};function $s(e){const{className:n,cssModule:t,tag:a,active:s,disabled:r,action:l,color:c}=e,d=We(e,Gs),p=Ve(o(n,!!s&&"active",!!r&&"disabled",!!l&&"list-group-item-action",!!c&&`list-group-item-${c}`,"list-group-item"),t);return r&&(d.onClick=Fs),i.createElement(a,Ue({},d,{className:p}))}$s.propTypes=Ds,$s.defaultProps={tag:"li"};const Us=["className","cssModule","tag"],Ws={className:a.string,cssModule:a.object,tag:sn};function _s(e){const{className:n,cssModule:t,tag:a}=e,s=We(e,Us),r=Ve(o(n,"list-group-item-heading"),t);return i.createElement(a,Ue({},s,{className:r}))}_s.propTypes=Ws,_s.defaultProps={tag:"h5"};const Qs=["className","cssModule","tag"],zs={className:a.string,cssModule:a.object,tag:sn};function qs(e){const{className:n,cssModule:t,tag:a}=e,s=We(e,Qs),r=Ve(o(n,"list-group-item-text"),t);return i.createElement(a,Ue({},s,{className:r}))}qs.propTypes=zs,qs.defaultProps={tag:"p"};const Ks=["className","cssModule","tag","type"],Ys={className:a.string,cssModule:a.object,tag:sn,type:a.string},Vs=(0,i.forwardRef)(((e,n)=>{const{className:t,cssModule:a,tag:s,type:r}=e,l=We(e,Ks),c=Ve(o(t,!!r&&`list-${r}`),a);return i.createElement(s,Ue({},l,{className:c,ref:n}))}));Vs.name="List",Vs.propTypes=Ys,Vs.defaultProps={tag:"ul"};const Zs=["className","cssModule","tag"],Js={className:a.string,cssModule:a.object,tag:sn},Xs=(0,i.forwardRef)(((e,n)=>{const{className:t,cssModule:a,tag:s}=e,r=We(e,Zs),l=Ve(o(t,"list-inline-item"),a);return i.createElement(s,Ue({},r,{className:l,ref:n}))}
1));Xs.name="ListInlineItem",Xs.propTypes=Js,Xs.defaultProps={tag:"li"};i.Component;const er=["defaultOpen"];class nr extends i.Component{constructor(e){super(e),this.state={isOpen:e.defaultOpen||!1},this.toggle=this.toggle.bind(this)}toggle(){this.setState((e=>({isOpen:!e.isOpen})))}render(){return i.createElement(Rt,Ue({isOpen:this.state.isOpen,toggle:this.toggle},Ze(this.props,er)))}}nr.propTypes=Fe({defaultOpen:a.bool},Rt.propTypes);const tr=["toggleEvents","defaultOpen"],ir={defaultOpen:a.bool,toggler:a.string.isRequired,toggleEvents:a.arrayOf(a.string)},ar={toggleEvents:Sn};class or extends i.Component{constructor(e){super(e),this.togglers=null,this.removeEventListeners=null,this.toggle=this.toggle.bind(this),this.state={isOpen:e.defaultOpen||!1}}componentDidMount(){this.togglers=wn(this.props.toggler),this.togglers.length&&(this.removeEventListeners=An(this.togglers,this.toggle,this.props.toggleEvents))}componentWillUnmount(){this.togglers.length&&this.removeEventListeners&&this.removeEventListeners()}toggle(e){this.setState((({isOpen:e})=>({isOpen:!e}))),e.preventDefault()}render(){return i.createElement(yi,Ue({isOpen:this.state.isOpen},Ze(this.props,tr)))}}or.propTypes=ir,or.defaultProps=ar;const sr=["defaultOpen"];class rr extends i.Component{constructor(e){super(e),this.state={isOpen:e.defaultOpen||!1},this.toggle=this.toggle.bind(this)}toggle(e){this.setState((e=>({isOpen:!e.isOpen})),(()=>{this.props.onToggle&&this.props.onToggle(e,this.state.isOpen)}))}render(){return i.createElement(Bt,Ue({isOpen:this.state.isOpen,toggle:this.toggle},Ze(this.props,sr)))}}rr.propTypes=Fe({defaultOpen:a.bool,onToggle:a.func},Bt.propTypes);const lr=["defaultOpen"];class cr extends i.Component{constructor(e){super(e),this.state={isOpen:e.defaultOpen||!1},this.toggle=this.toggle.bind(this)}toggle(){this.setState((e=>({isOpen:!e.isOpen})))}render(){return i.createElement(ho,Ue({isOpen:this.state.isOpen,toggle:this.toggle},Ze(this.props,lr)))}}cr.propTypes=Fe({defaultOpen:a.bool},ho.propTypes);const dr=["className","cssModule","type","size","color","children","tag"],pr={tag:sn,type:a.oneOf(["border","grow"]),size:a.oneOf(["sm"]),color:a.oneOf(["primary","secondary","success","danger","warning","info","light","dark"]),className:a.string,cssModule:a.object,children:a.string};function ur(e){const{className:n,cssModule:t,type:a,size:s,color:r,children:l,tag:c}=e,d=We(e,dr),p=Ve(o(n,!!s&&`spinner-${a}-${s}`,`spinner-${a}`,!!r&&`text-${r}`),t);return i.createElement(c,Ue({role:"status"},d,{className:p}),l&&i.createElement("span",{className:Ve("visually-hidden",t)},l))}ur.propTypes=pr,ur.defaultProps={tag:"div",type:"border",children:"Loading..."};const gr=["className","cssModule","color","innerRef","tag","animation","size","widths"],mr=Fe(Fe({},Fn.propTypes),{},{color:a.string,tag:sn,animation:a.oneOf(["glow","wave"]),innerRef:a.oneOfType([a.object,a.func,a.string]),size:a.oneOf(["lg","sm","xs"])});function hr(e){let{className:n,cssModule:t,color:a,innerRef:s,tag:r,animation:l,size:c,widths:d}=e,p=We(e,gr),{attributes:u,colClasses:g}=Dn(p,t,d);const m=Ve(o(n,g,"placeholder"+(l?"-"+l:""),!!c&&"placeholder-"+c,!!a&&"bg-"+a),t);return i.createElement(r,Ue({},u,{className:m,ref:s}))}hr.propTypes=mr,hr.defaultProps={tag:"span"};const yr=["cssModule","className","tag"],fr={size:a.string,color:a.string,outline:a.bool,className:a.string,tag:sn,cssModule:a.object},wr={color:"primary",tag:bt};function br(e){let{cssModule:n,className:t,tag:a}=e,s=We(e,yr),{attributes:r,colClasses:l}=Dn(s,n);const c=Ve(o("placeholder",t,l),n);return i.createElement(bt,Ue({},r,{className:c,disabled:!0}))}br.propTypes=fr,br.defaultProps=wr,(()=>{if("object"!==typeof window||"function"===typeof window.CustomEvent)return;window.CustomEvent=(e,n)=>{n=n||{bubbles:!1,cancelable:!1,detail:null};let t=document.createEvent("CustomEvent");return t.initCustomEvent(e,n.bubbles,n.cancelable,n.detail),t}})(),(()=>{if("function"===typeof Object.values)return;Object.values=e=>Object.keys(e).map((n=>e[n]))})()},51291:function(e){"use strict";e.exports=JSON.parse('{"/news/what-are-the-core-language-features-every-scala-developer-needs/":[{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"WebPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/what-are-the-core-language-features-every-scala-developer-needs/\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/news/what-are-the-core-language-features-every-scala-developer-needs/\\",\\n      \\"name\\": \\"What are the core language features every Scala developer needs?\\",\\n      \\"description\\": \\"Signify Technology explains the essential Scala features and tools developers must master, including immutability, pattern matching, type systems, functional libraries, sbt, CI/CD integration, testing frameworks, and concurrency with Akka actors.\\",\\n      \\"author\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"[name]\\",\\n        \\"jobTitle\\": \\"[position]\\",\\n        \\"worksFor\\": {\\n          \\"@type\\": \\"Organization\\",\\n          \\"name\\": \\"Signify Technology\\"\\n        }\\n      },\\n      \\"publisher\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"Signify Technology\\"\\n      },\\n      \\"about\\": {\\n        \\"@type\\": \\"Thing\\",\\n        \\"name\\": \\"Scala recruitment and engineering expertise\\",\\n        \\"description\\": \\"Expert Scala recruitment services to help companies hire pre-vetted Scala developers with production-ready skills in Akka, Cats, and functional programming.\\"\\n      }
1,\\n      \\"offers\\": {\\n        \\"@type\\": \\"Offer\\",\\n        \\"url\\": \\"https://www.signifytechnology.com/contact\\",\\n        \\"price\\": \\"0\\",\\n        \\"priceCurrency\\": \\"GBP\\",\\n        \\"availability\\": \\"https://schema.org/InStock\\",\\n        \\"description\\": \\"Speak to Signify Technology\u2019s Scala recruitment experts to secure pre-vetted developers who can deliver production-ready code on day one.\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Scala Features\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"name\\": \\"How to Build Core Scala Technical Expertise\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"text\\": \\"Learn immutability, pattern matching, and generics by coding small projects in JVM ecosystems.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"text\\": \\"Adopt functional libraries such as Cats, Scalaz, and ZIO to handle errors and concurrency cleanly.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"text\\": \\"Set up sbt or Mill for build automation and connect pipelines to Jenkins or GitHub Actions.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"text\\": \\"Practice test-driven development with ScalaTest and Specs2, using Mockito-Scala for mocks.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"text\\": \\"Master concurrency by writing futures and building Akka actor systems.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"text\\": \\"Apply skills in fintech, data engineering, and cloud-native microservices for production readiness.\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What are the essential Scala features for enterprise developers?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"The essential Scala features for enterprise developers include immutability, pattern matching, and strong type systems that support reliability in banking, telecom, and data engineering projects.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Which functional libraries improve Scala developer productivity?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Functional libraries like Cats, Scalaz, and ZIO improve Scala developer productivity by providing error handling, concurrency support, and async task management in large-scale systems.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What build tools do Scala engineers use in real-world projects?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Scala engineers use sbt and Mill as build tools, often integrated with CI/CD pipelines like Jenkins and GitHub Actions, to automate compilation, testing, and artifact publishing.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How do testing frameworks help Scala developers deliver quality code?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Testing frameworks such as ScalaTest, Specs2, and Mockito-Scala help Scala developers by enabling descriptive, concise, and mock-driven tests that reduce regressions in complex systems.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What concurrency tools should Scala developers learn?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Scala developers should learn futures, promises, and Akka actors, as these concurrency tools are critical for building scalable systems in fintech, streaming platforms, and telecom infrastructure.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"SpeakableSpecification\\",\\n      \\"speakable\\": [\\n        \\"What are the core language features every Scala developer needs?\\",\\n        \\"Signify Technology helps hiring managers and engineering leaders build elite Scala teams by sourcing and screening top functional programmers and JVM engineers.\\"\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/what-are-the-core-language-features-every-scala-developer-needs/"},"staticAttributes":{"rel":"canonical"}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Scala recruitment, Scala developers, Scala engineers, hire Scala talent, Scala hiring solutions, functional programming recruitment, Akka recruitment, Play Framework recruitment, Cats library recruitment, ZIO recruitment, sbt build tool, ScalaTest recruitment, Specs2 recruitment, Mockito Scala, Scala concurrency, futures and promises, JVM recruitment, big data Scala, backend Scala recruitment, Signify Technology Scala"}},{"id":"robots","body":null,"name":"robots","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"User-agent: Google-Extended\\nAllow: /\\n\\nUser-agent: GPTBot\\nAllow: /\\n\\nUser-agent: *\\nDisallow:\\n"}},{"id":"title","body":"What are the core language features every Scala developer needs?","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire pre-vetted Scala developers with Signify Technology. Experts in Akka, Cats, ZIO, and more to build scalable, production-ready systems."}}],"/leadership-solutions/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Signify Technology offers retained-search leadership solutions delivering senior software, cloud and data engineering experts to drive your most complex projects."}},{"id":"title","body":"Client Solutions","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/training-solutions/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Signify Technology supports train-and-deploy talent programmes for early-stage developers and engineers across cloud, Rust, Scala and Go markets."}},{"id":"title","body":"Client Solutions","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/news/we-re-heading-back-to-scala-days-2025-here-s-why-you-should-too/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Join our team at Scala Days 2025 in Lausanne for expert talks, networking and hands on Scala insights."}},{"id":"title","body":"Scala Days 2025","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/news/ai-contractor-recruitment-in-denver-for-evaluation-harnesses-and-offline-benchmarks/":[{"id":"title","body":"AI contractor recruitment in Denver for evaluation harnesses and offline benchmarks","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Discover how Signify Technology connects you with top tier AI contractors in Denver to build evaluation harnesses and offline benchmark systems."}}],"/news/senior-golang-engineer-recruitment-guide/":[{"id":"title","body":"Senior Golang Engineer Recruitment Guide | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire senior Golang engineers with confidence. Signify Technology covers skills, salaries, interview questions and the Go market across the US in 2026."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"senior golang engineer, hire golang developer, go engineer recruitment, golang hiring guide"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Go Recruitment\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/our-specialisms/go/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Senior Golang Engineer Recruitment Guide\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"serviceType\\": \\"Go Engineer Recruitment\\",\\n      \\"provider\\": {\\n        \\"@type\\": \\"EmploymentAgency\\",\\n        \\"name\\": \\"Signify Technology\\",\\n        \\"url\\": \\"https://www.signifytechnology.com\\"\\n      },\\n      \\"areaServed\\": [\\n        \\"San Francisco Bay Area\\",\\n        \\"New York City Metro\\",\\n        \\"Washington DC\\",\\n        \\"Seattle\\",\\n        \\"Los Angeles Metro\\"\\n      ],\\n      \\"name\\": \\"Senior Golang Engineer Recruitment\\"\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"name\\": \\"How to Hire a Senior Golang Engineer\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Write a stack-specific role brief\\",\\n          \\"text\\": \\"Name the frameworks, deployment platform and system type. Senior Go engineers self-select against specificity.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Define compensation before going to market\\",\\n          \\"text\\": \\"Senior US Go engineers earn $165,000-$300,000. Calibrate the range before search begins, not during offer.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Engage a specialist Go re
1cruiter\\",\\n          \\"text\\": \\"Generalist recruiters screen on keyword match. Signify Technology runs concurrency-specific technical screens and live system design interviews.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Reach passive candidates through community networks\\",\\n          \\"text\\": \\"Signify Technology co-sponsors GopherCon and Go community events to maintain warm candidate relationships year-round.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 5,\\n          \\"name\\": \\"Run Go-specific technical assessments\\",\\n          \\"text\\": \\"Run a concurrency design task, a system design session and a production scenario interview with agreed pass/fail rubrics.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 6,\\n          \\"name\\": \\"Build an offer around motivation triggers\\",\\n          \\"text\\": \\"Identify technical ownership, stack quality and remote flexibility as motivation factors before salary conversations begin.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 7,\\n          \\"name\\": \\"Move within 24-48 hours of final interview\\",\\n          \\"text\\": \\"Senior Go engineers in active search are interviewing at multiple companies simultaneously. Speed at offer stage is decisive.\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How long does it take to hire a Senior Golang Engineer?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Senior Go roles take 30% longer to fill than equivalent Java or Python backend positions because genuine concurrency proficiency is rare. Most experienced candidates are passive - currently employed and well-compensated - and receive multiple approaches each quarter. A specialist recruiter with warm Go community networks reduces time-to-shortlist meaningfully compared to a cold-start search.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What salary should we offer a Senior Golang Engineer in 2026?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Senior Golang Engineers in the US earn $165,000-$300,000 in base salary depending on city and specialisation. San Francisco and New York sit at the top of the range. Total compensation at FAANG companies often exceeds $300,000 when equity and bonus are included. Glassdoor\'s 90th percentile for Senior Golang Engineers is $360,081 as of December 2025.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Is Go a niche language or mainstream in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Go is still a niche language relative to Java or Python, but adoption is growing rapidly in cloud-native infrastructure, AI inference platforms and fintech. The Stack Overflow 2025 Developer Survey ranks it in the top 10 most wanted languages globally. The talent pool of engineers with genuine production experience remains small, which is why specialist recruitment is more effective than generalist search.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What makes a Golang engineer senior rather than mid-level?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"The clearest marker is production ownership: has this engineer designed, deployed, owned on-call responsibility for and made architectural calls on a Go service under real load? Lemon.io\'s May 2026 rate guide states this end-to-end ownership is the threshold that separates senior from mid-level compensation. Concurrency proficiency is a necessary but not sufficient condition.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Does Signify Technology recruit Golang engineers across the US?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Signify Technology places senior Go engineers across San Francisco Bay Area, New York City Metro, Washington DC, Seattle and Los Angeles Metro, as well as remote-first roles. The Signify team runs Go-specific technical vetting including concurrency challenges and live system design sessions designed by practising Go engineers.\\"\\n          }\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/senior-golang-engineer-recruitment-guide/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"senior-golang-engineer-recruitment-guide"}}],"/news/what-is-a-senior-golang-engineer/":[{"id":"title","body":"What Is a Senior Golang Engineer? Career Guide 2026","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"A Senior Golang Engineer designs and deploys distributed systems using Go, Kubernetes and gRPC. Career path, responsibilities, salary and role comparisons from Signify Technology.\\n"}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"what is a senior golang engineer, go engineer career path, golang engineer responsibilities, go developer vs devops\\n"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/what-is-a-senior-golang-engineer/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"what-is-a-senior-golang-engineer"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Go Recruitment\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/our-specialisms/go/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"What Is a Senior Golang Engineer\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"serviceType\\": \\"Go Engineer Recruitment\\",\\n      \\"provider\\": {\\n        \\"@type\\": \\"EmploymentAgency\\",\\n        \\"name\\": \\"Signify Technology\\",\\n        \\"url\\": \\"https://www.signifytechnology.com\\"\\n      },\\n      \\"name\\": \\"Senior Golang Engineer Career Guide\\"\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What does a Senior Golang Engineer do?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"A Senior Golang Engineer designs and builds high-performance backend services using Go, managing distributed systems, microservices and APIs at production scale. They own service reliability, conduct code reviews, mentor junior engineers and make architectural decisions that affect how entire product domains are structured and deployed.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How much does a Senior Golang Engineer earn in the US?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Senior Golang Engineers earn $165,000-$230,000 in base salary in the US at 6-10 years\' experience. San Francisco and New York sit at the top of the range. Total compensation at FAANG companies often exceeds $300,000 when equity and bonus are included. Glassdoor\'s 90th percentile for Senior Golang Engineers is $360,081 as of December 2025.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Is Go in demand for engineers in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Go adoption is rising fastest in cloud-native infrastructure and AI inference platforms. The Stack Overflow 2025 Developer Survey ranks Go in the top 10 most wanted languages globally, and Gartner projects over 70% of new cloud-native workloads will run on containerised platforms by 2026. Senior Go engineers with infrastructure specialisation are in very high demand and very limited supply.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What qualifications does a Senior Golang Engineer need?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Most senior Go roles require a computer science degree or equivalent practical experience, plus 6+ years of software engineering experience with demonstrable Go production work. Goroutine management, Kubernetes deployment and incident response experience are the primary screening criteria in 2026 postings.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How do I start a career as a Golang engineer?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Starting a Go career requires building production-level proficiency in Go\'s concurrency model - goroutines, channels and context management - alongside practical experience with Docker and Kubernetes. Most engineers transition from adjacent backend roles in Python, Java or Node.js. Employers in 2026 prioritise engineers with demonstrable Go production projects over those with only tutorial experience.\\"\\n          }\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/golang-engineer-recruitment-san-francisco/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/golang-engineer-recruitment-san-francisco/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"golang-engineer-recruitment-san-francisco"}},{"id":"title","body":"Golang Engineer Recruitment San Francisco | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire senior Golang engineers in San Francisco Bay Area. Signify Technology covers SoMa, Silicon Valley and Peninsula talent clusters with Go-specific technical vetting"}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"golang engineer recruitment San Francisco, go developer jobs bay area, hire golang engineer SoMa, go engineer silicon valley"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Go Recruitment\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/our-specialisms/go/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Golang Engineer Recruitment San Francisco\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"serviceType\\": \\"Go Engineer Recruitment\\",\\n      \\"provider\\": {\\n        \\"@type\\": \\"EmploymentAgency\\",\\n        \\"name\\": \\"Signify Technology\\",\\n        \\"url\\": \\"https://www.signifytechnology.com\\"\\n      },\\n      \\"areaServed\\": {\\n        \\"@type\\": \\"City\\",\\n        \\"name\\": \\"San Francisco Bay Area\\",\\n        \\"containsPlace\\": [\\n          {\\n            \\"@type\\": \\"Place\\",\\n            \\"name\\": \\"South of Market (SoMa)\\"\\n          },\\n          {\\n            \\"@type\\": \\"Place\\",\\n            \\"name\\": \\"Mission Bay\\"\\n          },\\n          {\\n            \\"@type\\": \\"Place\\",\\n            \\"name\\": \\"Silicon Valley\\"\\n          }\\n        ]\\n      },\\n      \\"name\\": \\"Senior Golang Engineer Recruitment - San Francisco Bay Area\\"\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What do senior Go engineers earn in San Francisco in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Senior Go engineers in San Francisco Bay Area earn $200,000-$270,000 in base salary, with top earners at FAANG companies and AI-backed scaleups reaching $300,000-$360,000+ in total compensation including equity and bonus. The Bay Area is the highest-paying US Go market and consistently sits 15-20% above the national senior average.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Which companies in San Francisco hire the most Golang engineers?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"The most prominent Bay Area Go employers are Cloudflare (SoMa), Dropbox (SoMa), Salesforce (SoMa) and Google (Mountain View). AI infrastructure companies expanding in Mission Bay represent the fastest-growing hiring cohort. As of May 2026, 395 active Golang roles were listed on LinkedIn San Francisco.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How does the Silicon Valley Go talent pool differ from San Francisco proper?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Silicon Valley engineers - particularly those from Google\'s Mountain View campus - bring deeper language-level Go expertise than the Bay Area average. Google created Go; engineers who have worked on Google\'s internal Go tooling represent the highest technical ceiling in the market. Peninsula roles typically command a premium reflecting this credential depth.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How does Signify Technology source Go engineers in the Bay Area?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Signify Technology co-sponsors GopherCon and Go community gatherings, building warm candidate relationships year-round rather than cold-starting searches at point of need. Technical vetting includes concurrency-specific coding challenges and live system design sessions designed by practising Go engineers.\\"\\n          }\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/golang-engineer-recruitment-new-york/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/golang-engineer-recruitment-new-york/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"golang-engineer-recruitment-new-york"}},{"id":"title","body":"Golang Engineer Recruitment New York City | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire senior Golang engineers in New York City Metro. Signify Technology covers Midtown, Financial District and Hudson Yards Go talent with specialist technical vetting."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"golang engineer recruitment New York, go developer jobs NYC, hire golang engineer Manhattan, fintech go engineer New York"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Go Recruitment\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/our-specialisms/go/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Golang Engineer Recruitment New York\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"serviceType\\": \\"Go Engineer Recruitment\\",\\n      \\"provider\\": {\\n        \\"@type\\": \\"EmploymentAgency\\",\\n        \\"name\\": \\"Signify Technology\\",\\n        \\"url\\": \\"https://www.signifytechnology.com\\"\\n      },\\n      \\"areaServed\\": {\\n        \\"@type\\": \\"City\\",\\n        \\"name\\": \\"New York City Metro\\",\\n        \\"containsPlace\\": [\\n          {\\n            \\"@type\\": \\"Place\\",\\n            \\"name\\": \\"Midtown Manhattan\\"\\n          },\\n          {\\n            \\"@type\\": \\"Place\\",\\n            \\"name\\": \\"Financial District\\"\\n          },\\n          {\\n            \\"@type\\": \\"Place\\",\\n            \\"name\\": \\"Hudson Yards\\"\\n          }\\n        ]\\n      },\\n      \\"name\\": \\"Senior Golang Engineer Recruitment - New York City Metro\\"\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What do senior Go engineers earn in New York City in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Senior Go engineers in New York City Metro earn $190,000-$260,000 in base salary. Fintech and trading technology firms sit at the top of the range. Total compensation at investment banking technology divisions and late-stage fintech companies often exceeds $300,000 when bonus is included.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Which companies in New York City hire Golang engineers?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Confirmed active NYC Golang employers include Palantir Technologies, Google NYC, Goldman Sachs Technology, JPMorgan, Citadel, Warner Bros. Discovery and Disney Entertainment and ESPN Product and Technology. As of March 2026, 73 active Golang roles were open on Glassdoor NYC.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What is the Go engineering market like in New York\'s Financial District?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"The Financial District hosts the most compensation-sophisticated Go engineers in the US market. Goldman Sachs, JPMorgan and Citadel use Go for performance-critical trading infrastructure, and engineers from these institutions benchmark compensation against FAANG total packages.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Does Signify Technology recruit Golang engineers in New York?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Signify Technology places senior Go engineers across Midtown Manhattan, the Financial District and Hudson Yards. The Signify team runs Go-specific technical vetting including concurrency challenges and live system design sessions, and maintains warm candidate relationships through Go community events in the city.\\"\\n          }\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/mlops-vs-devops-which-engineer-does-your-ai-team-need/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/mlops-vs-devops-which-engineer-does-your-ai-team-need/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"mlops-vs-devops-which-engineer-does-your-ai-team-need\\""}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Article\\",\\n      \\"headline\\": \\"MLOps vs DevOps: Which Engineer Does Your AI Team Actually Need?\\",\\n      \\"description\\": \\"MLOps and DevOps engineers solve different problems. Signify Technology breaks down the role split, salary comparison and which hire your AI team actually needs in 2026.\\",\\n      \\"author\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"[placeholder]\\"\\n      },\\n      \\"publisher\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"Signify Technology\\",\\n        \\"url\\": \\"https://www.signifytechnology.com\\"\\n      },\\n      \\"datePublished\\": \\"2026-05-23\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/news/mlops-vs-devops-which-engineer-does-your-ai-team-need/\\"\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Tech Recruitment Specialisms\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/our-specialisms/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"MLOps vs DevOps 2026\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"name\\": \\"How to Hire an MLOps Engineer in 2026\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Define whether the role is infrastructure-heavy or model-heavy\\",\\n          \\"text\\": \\"Infrastructure-heavy MLOps roles require deep Kubernetes and cloud platform experience. Model-heavy MLOps roles require strong ML system knowledge. Both exist and attract different candidate profiles.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Set the compensation range before going to market\\",\\n          \\"text\\": \\"Senior MLOps engineers earn $165,000-$230,000 in base salary. Engineers with production LLM serving experience sit at the top of that range.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Build an MLOps-specific technical screen\\",\\n          \\"text\\": \\"The screen must include model monitoring design, drift detection strategy and a sce
1nario involving a degrading model in production. A generic DevOps screen will not surface MLOps depth.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Engage a specialist recruiter with an active ML engineering network\\",\\n          \\"text\\": \\"Technical vetting must be designed by practising engineers rather than keyword screens. Generalist recruiters cannot distinguish genuine MLOps depth from DevOps engineers who have used SageMaker once.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 5,\\n          \\"name\\": \\"Move fast after final interview\\",\\n          \\"text\\": \\"MLOps engineers with production experience are passive candidates receiving multiple approaches per quarter. Offers extended within 24-48 hours close at materially higher rates.\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What is the difference between MLOps and DevOps?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"DevOps manages application deployment, CI/CD pipelines and infrastructure reliability. MLOps applies those disciplines specifically to machine learning systems, adding model versioning, training pipeline automation, drift monitoring and inference infrastructure management. DevOps failure is visible downtime; MLOps failure is silent model degradation that standard application monitoring does not catch.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How much does an MLOps engineer earn in the US in 2026?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Senior MLOps engineers in the US earn $165,000-$230,000 in base salary at 6-10 years\' experience, per Glassdoor data from December 2025. The MLOps premium over a comparable DevOps engineer sits at 15-20% because the combination of infrastructure engineering depth and machine learning system knowledge is rare.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Can a DevOps engineer do MLOps work?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"A DevOps engineer can handle the infrastructure layer of MLOps but cannot reliably handle model monitoring, drift detection or inference optimisation without ML-specific training. Teams that need MLOps capability now and cannot wait 12-18 months for an internal transition typically use contract MLOps engineers to bridge the gap.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What tools does an MLOps engineer need to know in 2026?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Core MLOps tooling in 2026 includes Kubernetes and Docker for containerised model serving, MLflow or Weights and Biases for experiment tracking, SageMaker or Vertex AI for managed training pipelines, and vLLM or TensorRT for LLM inference optimisation. Engineers who hold production experience across this stack are in very high demand and very limited supply.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How long does it take to hire an MLOps engineer?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"MLOps engineer roles take longer to fill than standard DevOps or backend engineering roles because the candidate pool with genuine production ML experience is structurally small. Most experienced MLOps engineers are passive candidates. A specialist recruiter with an active ML engineering network reduces time-to-shortlist meaningfully compared to a cold generalist search.\\"\\n          }\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}},{"id":"title","body":"MLOps vs DevOps: Which Engineer Does Your AI Team Need?","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"MLOps and DevOps engineers solve different problems. Signify Technology breaks down the role split, salary comparison and which hire your AI team actually needs in 2026."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"MLOps vs DevOps, MLOps engineer salary 2026, DevOps engineer AI team, MLOps engineer responsibilities, hire MLOps engineer"}}],"/news/hire-rust-engineers-new-york/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/hire-rust-engineers-new-york/"},"staticAttributes":{"rel":"canonical"}},{"id":"title","body":"Hire Rust Engineers in New York for Fintech and Crypto","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire Rust engineers in New York across Silicon Alley, the Financial District and the Brooklyn Tech Triangle. Fintech, trading and digital-asset specialists.\\n"}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"hire rust engineers new york, rust developer nyc, rust fintech engineer, rust engineer financial district\\n"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"hire-rust-engineers-new-york"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"name\\": \\"Rust Engineer Recruitment in New York\\",\\n      \\"serviceType\\": \\"Technology staffing and recruitment\\",\\n      \\"provider\\": {\\n        \\"@type\\": \\"EmploymentAgency\\",\\n        \\"name\\": \\"Signify Technology\\",\\n        \\"url\\": \\"https://www.signifytechnology.com/\\"\\n      },\\n      \\"areaServed\\": {\\n        \\"@type\\": \\"City\\",\\n        \\"name\\": \\"New York\\"\\n      },\\n      \\"description\\": \\"Specialist recruitment of Rust engineers for fintech, trading and digital-asset teams across New York, on permanent, contract and contract-to-hire terms.\\"\\n    },\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"description\\": \\"Global technology staffing agency specialising in Scala, Rust, Go and AI engineering talent across the US and UK.\\"\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"name\\": \\"How to Hire a Rust Engineer in New York\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Map the role to the corridor\\",\\n          \\"text\\": \\"Identify whether the work sits in Silicon Alley fintech, Financial District trading, or a Brooklyn Web3 startup, because the corridor sets the profile and band.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Source on shipped production Rust\\",\\n          \\"text\\": \\"Reach passive candidates through GitHub, Rust forums and C++ alumni networks rather than LinkedIn keyword scrapes.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Manage the counter-offer early\\",\\n          \\"text\\": \\"Qualify motivation up front and run the counter-offer conversation before the offer stage to protect the close.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Handle correctness-critical delivery\\",\\n          \\"text\\": \\"Structure bounded trading or settlement builds as contract, contract-to-hire or permanent by urgency.\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How much do Rust engineers earn in New York?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Rust engineers in New York earn an average of $212,000 at startups, the top US market, with senior and staff roles reaching $240,000 to $320,000-plus. ZipRecruiter put New York Rust Crypto salaries at $113,000 to $167,000.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Where are Rust jobs concentrated in New York?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Rust jobs concentrate in three New York corridors: Silicon Alley around Flatiron and Union Square for fintech, the Financial District and Lower Manhattan for trading and digital-asset systems, and the Brooklyn Tech Triangle in DUMBO for Web3 startups.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Is it hard to hire Rust engineers in New York?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Hiring Rust engineers in New York is hard because finance and crypto employers bid up a scarce pool, driving aggressive counter-offers and acceptance rates near the sector\'s 80.8 per cent floor. A warm pipeline and early counter-offer management close faster than a cold search.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Hire Rust Engineers in New York\\"\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/hire-rust-engineers-san-francisco/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/hire-rust-engineers-san-francisco/"},"staticAttributes":{"rel":"canonical"}},{"id":"title","body":"Hire Rust Engineers in San Francisco for AI and Crypto","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire Rust engineers in San Francisco across Mission Bay, SoMa and the Peninsula. Frontier-AI, crypto and systems specialists in the top-paying US market.\\n"}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"hire rust engineers san francisco, rust developer sf, rust ai infrastructure engineer, rust systems engineer bay area\\n"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"hire-rust-engineers-san-francisco"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"name\\": \\"Rust Engineer Recruitment in San Francisco\\",\\n      \\"serviceType\\": \\"Technology staffing and recruitment\\",\\n      \\"provider\\": {\\n        \\"@type\\": \\"EmploymentAgency\\",\\n        \\"name\\": \\"Signify Technology\\",\\n        \\"url\\": \\"https://www.signifytechnology.com/\\"\\n      },\\n      \\"areaServed\\": {\\n        \\"@type\\": \\"City\\",\\n        \\"name\\": \\"San Francisco\\"\\n      },\\n      \\"description\\": \\"Specialist recruitment of Rust engineers for frontier-AI, crypto and systems teams across the San Francisco Bay Area, on permanent, contract and contract-to-hire terms.\\"\\n    },\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"description\\": \\"Global technology staffing agency specialising in Scala, Rust, Go and AI engineering talent across the US and UK.\\"\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"name\\": \\"How to Hire a Rust Engineer in San Francisco\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Match the zone to the work\\",\\n          \\"text\\": \\"Identify whether the role needs Mission Bay AI-infrastru
1cture Rust, SoMa crypto and edge Rust, or Peninsula silicon and systems Rust.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Screen on production Rust under load\\",\\n          \\"text\\": \\"Run practical, replayable coding and systems-design conversations that verify safe, concurrent Rust.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Position beyond base pay\\",\\n          \\"text\\": \\"Help employers outside crypto and frontier AI compete on scope and mission, since base alone rarely wins against inflated comp.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Staff silicon and embedded depth\\",\\n          \\"text\\": \\"Apply embedded and no_std rigour for Peninsula firmware and systems work.\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How much do Rust engineers earn in San Francisco?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Rust engineers in San Francisco earn $150,000 to $200,000 at mid-level and $200,000 to $280,000 at senior, with frontier-AI and crypto total compensation reaching $255,000 to $405,000. The Bay Area leads all US metros on Rust pay.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Where are Rust jobs concentrated in San Francisco?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Rust jobs concentrate in three San Francisco zones: Mission Bay for frontier-AI infrastructure around OpenAI, SoMa and the Financial District for crypto and cloud around Kraken, Coinbase and Cloudflare, and the Peninsula for silicon and systems around Rivos and Oxide Computer.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Is it harder to hire Rust engineers in San Francisco than elsewhere?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Hiring Rust engineers in San Francisco is harder on cost, since crypto and AI labs have inflated salaries to levels other sectors struggle to match. It\'s easier on supply, since the Bay Area holds the deepest concentration of production-Rust employers and talent in the US.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Hire Rust Engineers in San Francisco\\"\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/hire-rust-engineers-seattle/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/hire-rust-engineers-seattle/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"hire-rust-engineers-seattle"}},{"id":"title","body":"Hire Rust Engineers in Seattle for Cloud and Systems\\n","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire Rust engineers in Seattle across South Lake Union, Bellevue and Redmond. Cloud-infrastructure and systems specialists in the deepest US production-Rust pool.\\n"}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"hire rust engineers seattle, rust developer seattle, rust cloud infrastructure engineer, rust systems engineer bellevue\\n"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"name\\": \\"Rust Engineer Recruitment in Seattle\\",\\n      \\"serviceType\\": \\"Technology staffing and recruitment\\",\\n      \\"provider\\": {\\n        \\"@type\\": \\"EmploymentAgency\\",\\n        \\"name\\": \\"Signify Technology\\",\\n        \\"url\\": \\"https://www.signifytechnology.com/\\"\\n      },\\n      \\"areaServed\\": {\\n        \\"@type\\": \\"City\\",\\n        \\"name\\": \\"Seattle\\"\\n      },\\n      \\"description\\": \\"Specialist recruitment of Rust engineers for cloud-infrastructure and systems teams across Seattle, on permanent, contract and contract-to-hire terms.\\"\\n    },\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"description\\": \\"Global technology staffing agency specialising in Scala, Rust, Go and AI engineering talent across the US and UK.\\"\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"name\\": \\"How to Hire a Rust Engineer in Seattle\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Locate the role by cluster\\",\\n          \\"text\\": \\"Identify whether the work fits South Lake Union cloud infrastructure, Bellevue and Spring District hyperscaler engineering, or Redmond OS and cloud systems.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Reach engineers beyond the hyperscalers\\",\\n          \\"text\\": \\"Source production-Rust talent through GitHub, the Rust community and cloud-systems alumni networks.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Help independents compete on more than equity\\",\\n          \\"text\\": \\"Position scope, autonomy and mission for employers who cannot match hyperscaler RSU grants.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Staff distributed cloud depth\\",\\n          \\"text\\": \\"Apply senior distributed-systems rigour for control-plane and distributed cloud work.\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How much do Rust engineers earn in Seattle?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Rust engineers in Seattle earn $182,000 to $260,000 at senior level, with dev-infrastructure startups posting $200,000 to $300,000. Seattle pay sits between the national average and San Francisco, driven by cloud and systems demand from Amazon and Microsoft.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Where are Rust jobs concentrated in Seattle?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Rust jobs concentrate in three Seattle areas: South Lake Union for Amazon and AWS cloud infrastructure, downtown Bellevue and the Spring District for hyperscaler engineering, and Redmond for Microsoft OS and cloud systems.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Is it hard to hire Rust engineers in Seattle?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Hiring Rust engineers in Seattle is hard because Amazon and Microsoft dominate demand and compete on comp and equity that independent employers struggle to match. The offsetting advantage is depth, since Seattle holds the deepest US pool of production cloud-systems Rust talent.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Hire Rust Engineers in Seattle\\"\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/locations/los-angeles/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Los Angeles office with tailored tech recruitment and staffing solutions for the region."}},{"id":"title","body":"Los Angeles Office | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/meet-the-team/sam-house/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Sam House focuses on efficient tech recruitment and effective staffing delivery."}},{"id":"title","body":"Sam House | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/news/how-to-hire-a-senior-ai-engineer-in-2026/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/how-to-hire-a-senior-ai-engineer-in-2026/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"how-to-hire-a-senior-ai-engineer-in-2026"}},{"id":"title","body":"How to Hire a Senior AI Engineer for Production LLM Systems","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"A 2026 hiring manager guide to Senior AI Engineer skills, salary and process across Austin, New York and San Francisco. Book a Signify call."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"senior ai engineer, hire ai engineer 2026, ai engineer salary us, ai engineer recruitment, llm engineer hiring"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/how-to-hire-a-senior-ai-engineer-in-2026/#service\\",\\n      \\"name\\": \\"Senior AI Engineer Recruitment\\",\\n      \\"serviceType\\": \\"Specialist AI Engineer Recruitment\\",\\n      \\"description\\": \\"Specialist search and placement of Senior AI Engineers for production LLM systems across Austin, New York and San Francisco, delivered inside a 25-day sprint.\\",\\n      \\"provider\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      },\\n      \\"areaServed\\": [\\n        {\\n          \\"@type\\": \\"City\\",\\n          \\"name\\": \\"Austin\\",\\n          \\"containedInPlace\\": {\\n            \\"@type\\": \\"State\\",\\n            \\"name\\": \\"Texas\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"City\\",\\n          \\"name\\": \\"New York\\",\\n          \\"containedInPlace\\": {\\n            \\"@type\\": \\"State\\",\\n            \\"name\\": \\"New York\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"City\\",\\n          \\"name\\": \\"San Francisco\\",\\n          \\"containedInPlace\\": {\\n            \\"@type\\": \\"State\\",\\n            \\"name\\": \\"California\\"\\n          }\\n        }\\n      ],\\n      \\"audience\\": {\\n        \\"@type\\": \\"BusinessAudience\\",\\n        \\"audienceType\\": \\"CTOs, VP Engineering, Heads of AI, Talent Acquisition Directors\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/logo.png\\",\\n      \\"address\\": [\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"Prominent Pointe 1, Suite 295, 8310-1 N. Capital of Texas Highway\\",\\n          \\"addressLocality\\": \\"Austin\\",\\n          \\"addressRegion\\": \\"TX\\",\\n          \\"postalCode\\": \\"78731\\",\\n          \\"addressCountry\\": \\"US\\"\\n        }\\n      ],\\n      \\"sameAs\\": [\\n        \\"https://www.linkedin.com/company/signify-technology-group/\\"\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/how-to-hire-a-senior-ai-engineer-in-2026/#faq\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How long does it take to hire a Senior AI Engineer in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Signify\'s median time-to-hire on senior US AI Engineer roles runs 25 to 35 days, benchmarked against a 25-day sprint standard per Qureos June 2026. Companies running generalist recruitment against a below-market base salary face a 114-day average time-to-fill per Korn Ferry via Acceler8 Talent April 2026.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What is the minimum base salary to attract a Senior AI Engineer in 2026?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Base salary below $200,000 in Austin, $220,000 in New York or $225,000 in San Francisco falls below the market floor for a Senior AI Engineer with production LLM shipping evidence. Companies offering below the $200,000 base floor trigger a 114-day time-to-fill against the 52-day tech-market average.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Should I hire a Senior AI Engineer or a Senior ML Engineer for RAG and LLM work?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"An AI Engineer for RAG, agent orchestration, and LLM-integration work. An ML Engineer for building models from scratch on your proprietary data. The two share 67% of top skills, but a real Senior AI Engineer has shipped LLM applications while an ML Engineer has shipped trained models with feature engineering.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How high does counter-offer risk run on active LinkedIn candidates?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Counter-offer probability on any Senior AI Engineer candidate active on LinkedIn hits 65% to 75% during the interview loop per AgileEngine December 2025. Signify pre-negotiates compensation in week one of the loop and structures sign-on bonuses to bridge vesting gaps, cutting offer drop-off from 22% to 28% down to under 12%.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What is the total compensation ceiling for Senior AI Engineers in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Frontier labs (OpenAI, Anthropic, xAI) reach $500,000 to $943,000+ in total compensation at senior and staff level inclusive of equity per Acceler8 Talent June 2026. Anthropic base runs $300K to $490K for senior with staff exceeding $600K. OpenAI specialised researchers frequently see total packages crossing $900,000.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/how-to-hire-a-senior-ai-engineer-in-2026/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"How to Hire a Senior AI Engineer in 2026\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/how-to-hire-a-senior-ai-engineer-in-2026/#howto\\",\\n      \\"name\\": \\"How Signify Hires a Senior AI Engineer in 7 Steps\\",\\n      \\"description\\": \\"Signify Technology\'s 7-step process for placing Senior AI Engineers in Austin, New York and San Francisco inside a 25-day sprint.\\",\\n      \\"totalTime\\": \\"P25D\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Name the profile before the title\\",\\n          \\"text\\": \\"Agree four axes with the hiring manager: application-layer vs systems-layer, build-from-scratch vs pretrained integration, API-only vs open-source-served, and IC-only vs mentorship.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Engage the specialist AI/ML desk\\",\\n          \\"text\\": \\"Run proactive outbound at 70% of sourcing volume against passive senior candidates at frontier labs and AI-native scale-ups.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Calibrate compensation against 2026 data\\",\\n          \\"text\\": \\"Base senior bands: Austin $175K-$240K, NYC $195K-$312K, SF $200K-$400K+. Frontier lab total comp $500K-$943K+.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Build a reasoning-based screening rubric\\",\\n          \\"text\\": \\"Replace leetcode with paired code review of a shipped LLM system plus a live broken-RAG diagnostic.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 5,\\n          \\"name\\": \\"Run a three-round loop inside 15 working days\\",\\n          \\"text\\": \\"System design, code review plus RAG diagnostic, and behavioural incident response. Cap at three rounds, 15 working days.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 6,\\n          \\"name\\": \\"Pre-empt the counter-offer in week one\\",\\n          \\"text\\": \\"Surface current package and competing offers on first call. Structure sign-on bonuses to bridge vesting gaps.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 7,\\n          \\"name\\": \\"Close on a defined timeline\\",\\n          \\"text\\": \\"Run the offer conversation as a scheduled event with the CTO or hiring manager present, not a delayed email exchange.\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"Person\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/meet-the-team/lauren-dubery/#person\\",\\n      \\"name\\": \\"Lauren Dubery\\",\\n      \\"jobTitle\\": \\"Senior Director\\",\\n      \\"worksFor\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      },\\n      \\"url\\": \\"https://www.signifytechnology.com/meet-the-team/\\"\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/what-is-a-senior-ai-engineer-role-definition-career-path-2026/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/what-is-a-senior-ai-engineer-role-definition-career-path-2026/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"what-is-a-senior-ai-engineer-role-definition-career-path-2026"}},{"id":"title","body":"What Is a Senior AI Engineer Role Definition and Career Path","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Senior AI Engineer role definition, daily responsibilities, career path and salary bands across the US market in 2026. Book a Signify call."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"senior ai engineer definition, ai engineer career path, ai engineer responsibilities, ai engineer vs ml engineer, ai engineer role 2026"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/what-is-a-senior-ai-engineer-role-definition-career-path-2026/#service\\",\\n      \\"name\\": \\"Senior AI Engineer Recruitment and Career Definition\\",\\n      \\"serviceType\\": \\"Specialist AI Engineer Recruitment\\",\\n      \\"description\\": \\"Specialist Senior AI Engineer recruitment covering role definition, career path progression and salary bands across Austin, New York and San Francisco in 2026.\\",\\n      \\"provider\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      },\\n      \\"areaServed\\": [\\n        {\\n          \\"@type\\": \\"City\\",\\n          \\"name\\": \\"Austin\\",\\n          \\"containedInPlace\\": {\\n            \\"@type\\": \\"State\\",\\n            \\"name\\": \\"Texas\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"City\\",\\n          \\"name\\": \\"New York\\",\\n          \\"containedInPlace\\": {\\n            \\"@type\\": \\"State\\",\\n            \\"name\\": \\"New York\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"City\\",\\n          \\"name\\": \\"San Francisco\\",\\n          \\"containedInPlace\\": {\\n            \\"@type\\": \\"State\\",\\n            \\"name\\": \\"California\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/logo.png\\",\\n      \\"address\\": {\\n        \\"@type\\": \\"PostalAddress\\",\\n        \\"streetAddress\\": \\"Prominent Pointe 1, Suite 295, 8310-1 N. Capital of Texas Highway\\",\\n        \\"addressLocality\\": \\"Austin\\",\\n        \\"addressRegion\\": \\"TX\\",\\n        \\"postalCode\\": \\"78731\\",\\n        \\"addressCountry\\": \\"US\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/what-is-a-senior-ai-engineer-role-definition-career-path-2026/#faq\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What qualifications does a Senior AI Engineer need in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"A Senior AI Engineer typically holds a Bachelor\'s degree in Computer Science, Mathematics or a related quantitative field. A portfolio of shipped LLM-integrated systems with named metrics matters more than credentials. AWS ML Specialty or Google Professional ML Engineer certifications carry a 20% to 25% salary premium per MirrorCV June 2026.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Do Senior AI Engineers earn more than senior software engineers or ML engineers?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Senior AI Engineers command a 15% to 30% premium over senior software engineers at comparable levels. Against senior ML Engineers, the ML title carries a $20,000 median base premium, but the AI Engineer title is growing faster and the frontier-lab total-comp packages of $500K to $943K+ sit at the AI Engineer track per Acceler8 Talent June 2026.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Is a Senior AI Engineer role in 2026 a smart move for a senior software engineer?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Yes. AI engineering commands the highest single premium in software engineering in 2026 per JobsByCulture May 2026. The 3.2 to 1 demand-to-supply ratio gives senior software engineers with production ML integration experience their strongest ever negotiating position.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Can a Senior AI Engineer work fully remotely in 2026?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"85% of US AI Engineer positions offer remote or hybrid flexibility per Rise 2026. Fully-remote Senior AI Engineer roles typically pay 85% to 95% of equivalent onsite US salaries. Frontier labs and quant finance firms largely enforce in-office attendance at senior level, and the highest total-comp packages remain onsite in SF and NYC.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How long does it take to become a Senior AI Engineer from a mid-level position?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Typically 3 to 5 additional years of production shipping. The AI engineer levelling framework per Zen van Riel July 2026 puts the mid-to-senior transition at 6 to 10 years total experience. The shortest transitions belong to engineers who ship at least one production RAG or agent system end-to-end with named evaluation harness and cost observability.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Does a PhD increase Senior AI Engineer pay in 2026?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"A PhD provides a 15% to 30% salary premium at frontier labs and research-heavy AI-native scale-ups, adding roughly $30,000 to $75,000 to the senior base band. At Series B-C AI-native scale-ups and Applied AI Engineer roles, a PhD provides marginal or zero premium; production shipping evidence dominates the hiring decision per Ivan Turkovic April 2026.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/what-is-a-senior-ai-engineer-role-definition-career-path-2026/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"What Is a Senior AI Engineer in 2026\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/what-is-a-senior-ai-engineer-role-definition-career-path-2026/#howto\\",\\n      \\"name\\": \\"How to Progress From Mid-Level to Senior AI Engineer\\",\\n      \\"description\\": \\"The transition milestones separating a Mid-Level AI Engineer from a Senior AI Engineer in 2026.\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Ship a production RAG or agent system end-to-end\\",\\n          \\"text\\": \\"Own at least one production RAG or agent system with a named evaluation harness before applying for senior roles.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Own cost observability on a product surface\\",\\n          \\"text\\": \\"Set up LangSmith or Arize Phoenix tracing and defend the model-router configuration in a monthly cost review.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Carry on-call for the LLM stack\\",\\n          \\"text\\": \\"Handle production incidents including retrieval drift, runaway tool calls and prompt regressions as second or first on-call.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Mentor a converting software engineer\\",\\n          \\"text\\": \\"Onboard at least one senior software engineer into AI-native workflows and review their LangChain and vector database code.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 5,\\n          \\"name\\": \\"Represent AI engineering in cross-functional stakeholder work\\",\\n          \\"text\\": \\"Translate model behaviour to KPI for Product, Finance and Compliance stakeholders and unlock budget for the next model.\\"\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/meet-the-team/matthew-davie/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Matthew Davie delivers innovative tech staffing and recruitment solutions."}},{"id":"title","body":"Matthew Davie | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/meet-the-team/matthew-davie/"},"staticAttributes":{"rel":"canonical"}}],"/meet-the-team/nathan-muller/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Nathan Muller excels in matching tech talent with positions that drive success."}},{"id":"title","body":"Nathan Muller | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/meet-the-team/nathan-muller/"},"staticAttributes":{"rel":"canonical"}}],"/contracts-placement/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Contract placement services tailored for tech professionals and forward-thinking companies."}},{"id":"title","body":"Contracts Placement | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/meet-the-team/rich-johnson/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Rich Johnson pioneers innovative solutions in tech recruitment and staffing."}},{"id":"title","body":"Rich Johnson | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/meet-the-team/ryan-adams/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Ryan Adams connects tech professionals with opportunities that fuel growth."}},{"id":"title","body":"Ryan Adams | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/cookie-policy/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Cookie policy detailing our data practices to enhance your website experience."}},{"id":"title","body":"Cookie Policy | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/meet-the-team/ciprianna-harmon/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Ciprianna Harmon connects top tech professionals with roles that match their skills."}},{"id":"title","body":"Ciprianna Harmon | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/news/build-us-senior-software-engineer-salary-band-beats-faang-crypto-counter-offers/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/build-us-senior-software-engineer-salary-band-beats-faang-crypto-counter-offers/"},"staticAttributes":{"rel":"canonical"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Article\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/build-us-senior-software-engineer-salary-band-beats-faang-crypto-counter-offers/\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/news/build-us-senior-software-engineer-salary-band-beats-faang-crypto-counter-offers/\\",\\n      \\"headline\\": \\"How to Build a US Senior Softw
1are Engineer Salary Band That Beats FAANG and Crypto Counter-Offers\\",\\n      \\"description\\": \\"Build a US senior software engineer salary band that beats FAANG and crypto counter-offers. Signing bonus, refresher cadence and equity levers explained.\\",\\n      \\"inLanguage\\": \\"en-GB\\",\\n      \\"datePublished\\": \\"2026-06-23\\",\\n      \\"dateModified\\": \\"2026-06-23\\",\\n      \\"author\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"Signify Technology\\"\\n      },\\n      \\"publisher\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"areaServed\\": [\\n        \\"US\\",\\n        \\"GB\\",\\n        \\"DE\\"\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What does a US senior software engineer earn at FAANG companies in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"L5/E5 senior total comp $400,000-$550,000 median. Netflix $700K+. Anthropic and OpenAI $600K-$1M+. Base $185,000-$240,000, rest in RSUs, refreshers and target bonus per Levels.fyi May 2026.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How big is the salary gap between FAANG and mid-market US tech employers in 2026?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"FAANG senior median TC $400K-$650K versus mid-market $148K base median per KORE1\'s 88-close placed base. Total-comp gap runs $250K-$400K at senior.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What signing bonus is competitive against an AI lab counter-offer in 2026?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"AI labs run $100,000-$300,000 signing on senior offers. Competing offers need to model the candidate\'s specific unvested RSU schedule and bridge that gap, typically $50,000-$150,000 at mid-market tier.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How do equity refreshers work and why do they matter for retention?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Refreshers are additional equity grants given annually starting year 2 or 3. Without refreshers, year-5 total comp drops 30-50% as the initial grant exhausts.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Can a non-FAANG US employer compete with a $300K crypto counter-offer?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Selectively, by combining cash-heavier restructure, anti-volatility positioning, and IC ladder progression that crypto roles often lack. Conversion runs 30-40% on FAANG-counter scenarios with honest reframing.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What\'s the typical year-1 to year-4 total comp curve at FAANG senior?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Year 1 includes signing bonus. Year 2 drops as signing exhausts. Years 3-4 stabilise on base, bonus and RSU vest. Amazon\'s 5/15/40/40 back-loaded RSU vest means year 1 sees only 5% of stock grant.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Build a US Senior Engineer Salary Band\\"\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}},{"id":"title","body":"US Senior Engineer Salary Band That Beats FAANG","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Build a US senior software engineer salary band that beats FAANG and crypto counter-offers. Signing bonus, refresher cadence and equity levers explained."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"senior software engineer salary 2026, FAANG counter offer, US engineering salary band, crypto counter offer"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"build-us-senior-software-engineer-salary-band-beats-faang-crypto-counter-offers"}}],"/news/senior-ai-engineer-salary-2026-austin-new-york-san-francisco-bands/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/senior-ai-engineer-salary-2026-austin-new-york-san-francisco-bands/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"senior-ai-engineer-salary-2026-austin-new-york-san-francisco-bands"}},{"id":"title","body":"Senior AI Engineer Salary 2026 Across Austin NYC and SF","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"2026 Senior AI Engineer salary bands, contract day rates and total comp benchmarks across Austin, New York and San Francisco. Book a Signify call."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"senior ai engineer salary 2026, ai engineer base pay us, ai engineer contract rates, llm engineer compensation, ai engineer market rates"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/senior-ai-engineer-salary-2026-austin-new-york-san-francisco-bands/#service\\",\\n      \\"name\\": \\"Senior AI Engineer Salary Benchmarking and Recruitment\\",\\n      \\"serviceType\\": \\"Specialist AI Engineer Recruitment and Compensation Benchmarking\\",\\n      \\"description\\": \\"US Senior AI Engineer salary benchmarking and specialist search across Austin, New York and San Francisco, calibrated to Q2 2026 market data.\\",\\n      \\"provider\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      },\\n      \\"areaServed\\": [\\n        {\\n          \\"@type\\": \\"City\\",\\n          \\"name\\": \\"Austin\\",\\n          \\"containedInPlace\\": {\\n            \\"@type\\": \\"State\\",\\n            \\"name\\": \\"Texas\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"City\\",\\n          \\"name\\": \\"New York\\",\\n          \\"containedInPlace\\": {\\n            \\"@type\\": \\"State\\",\\n            \\"name\\": \\"New York\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"City\\",\\n          \\"name\\": \\"San Francisco\\",\\n          \\"containedInPlace\\": {\\n            \\"@type\\": \\"State\\",\\n            \\"name\\": \\"California\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"Dataset\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/senior-ai-engineer-salary-2026-austin-new-york-san-francisco-bands/#dataset\\",\\n      \\"name\\": \\"Senior AI Engineer Salary Benchmarks 2026 Across Austin, New York and San Francisco\\",\\n      \\"description\\": \\"US Senior AI Engineer salary bands, contract day rates, skills premiums, benefits packages and employer-type compensation covering Austin, New York and San Francisco for 2026.\\",\\n      \\"creator\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      },\\n      \\"datePublished\\": \\"2026-07-19\\",\\n      \\"keywords\\": [\\n        \\"Senior AI Engineer salary 2026\\",\\n        \\"AI Engineer base pay US\\",\\n        \\"AI Engineer contract rates\\",\\n        \\"LLM Engineer compensation\\",\\n        \\"AI Engineer market rates\\"\\n      ],\\n      \\"spatialCoverage\\": [\\n        {\\n          \\"@type\\": \\"Place\\",\\n          \\"name\\": \\"Austin, Texas, United States\\"\\n        },\\n        {\\n          \\"@type\\": \\"Place\\",\\n          \\"name\\": \\"New York City, New York, United States\\"\\n        },\\n        {\\n          \\"@type\\": \\"Place\\",\\n          \\"name\\": \\"San Francisco Bay Area, California, United States\\"\\n        }\\n      ],\\n      \\"temporalCoverage\\": \\"2026\\",\\n      \\"variableMeasured\\": [\\n        \\"Base salary range by experience tier\\",\\n        \\"Year-on-year salary growth by tier\\",\\n        \\"Skills premium uplift over base\\",\\n        \\"Benefits package by seniority\\",\\n        \\"Employer type total compensation range\\",\\n        \\"Contract day rates by engagement type\\"\\n      ],\\n      \\"citation\\": [\\n        \\"Acceler8 Talent 2026 salary and market rate analysis\\",\\n        \\"KORE1 AI Engineer Salary Guide 2026\\",\\n        \\"Axiom Recruit AI Engineer Compensation 2026\\",\\n        \\"MRJ Recruitment Zone 1 January 2026\\",\\n        \\"Levels.fyi Q1 2026\\",\\n        \\"MirrorCV AI Engineer Resume Guide June 2026\\",\\n        \\"Zen van Riel AI Engineer Contract Rates 2026\\"\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/logo.png\\",\\n      \\"address\\": {\\n        \\"@type\\": \\"PostalAddress\\",\\n        \\"streetAddress\\": \\"Prominent Pointe 1, Suite 295, 8310-1 N. Capital of Texas Highway\\",\\n        \\"addressLocality\\": \\"Austin\\",\\n        \\"addressRegion\\": \\"TX\\",\\n        \\"postalCode\\": \\"78731\\",\\n        \\"addressCountry\\": \\"US\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/senior-ai-engineer-salary-2026-austin-new-york-san-francisco-bands/#faq\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Is the US Senior AI Engineer market candidate-driven or client-driven in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Firmly candidate-driven through Q2 2026. Global demand outstrips supply at 3.2 to 1, and top candidates accept offers within two to three weeks of first contact per daily.dev June 2026. Companies offering below a $200,000 base floor face a 114-day time-to-fill against 52 days for the broader tech market.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How much do frontier labs pay Senior AI Engineers in San Francisco in 2026?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Frontier lab total compensation runs $500,000 to $943,000+ at OpenAI, Anthropic and xAI at senior and staff level inclusive of equity per Acceler8 Talent June 2026. Anthropic base sits at $300K to $490K for senior, with staff exceeding $600K. OpenAI specialised researchers frequently see total packages crossing $900,000.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What day rate should I expect for a Senior AI Engineer contract in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"W-2 rates run $80 to $120 per hour, 1099 independent runs $95 to $130 per hour or $760 to $1,040 per day, and Corp-to-Corp runs $100 to $200 per hour per Zen van Riel July 2026 and Acceler8 Talent April 2026. NYC quant finance ML sits at $1,500 to $2,200 per day, the highest single-domain contract rate in the US market.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Why does Austin base salary sit 15% to 20% below San Francisco for the same role?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Cost of living and state tax mechanics. Texas\'s zero state income tax on Austin base adds roughly $20,000 to $25,000 in take-home versus California\'s 13.3% top rate. Combined with 50% lower cost of living, a $210,000 Austin salary delivers more real purchasing power than $280,000 in SF per Zen van Riel April 2026.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How much will Senior AI Engineer salaries grow through Q4 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Base salary inflation runs 14% to 18% year-on-year in Austin, 15% to 20% in NYC and 18% to 25% in SF through Q4 2026. Frontier-lab total-comp resets after Anthropic\'s $30B Series G in February 2026 and $65B Series H in May 2026 continue to pull every senior band upward.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/senior-ai-engineer-salary-2026-austin-new-york-san-francisco-bands/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Senior AI Engineer Salary Benchmarks 2026 Across Austin, New York and San Francisco\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/senior-ai-engineer-salary-2026-austin-new-york-san-francisco-bands/#howto\\",\\n      \\"name\\": \\"How to Calibrate a Senior AI Engineer Offer to Q2 2026 Market Data\\",\\n      \\"description\\": \\"Signify Technology\'s process for setting a Senior AI Engineer offer against current US 2026 compensation bands across Austin, New York and San Francisco.\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Set the base salary anchor by city\\",\\n          \\"text\\": \\"Austin $175K-$240K senior base, NYC $195K-$312K, SF $200K-$400K+. Below the $200K floor triggers a 114-day time-to-fill.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Layer the correct equity band on top\\",\\n          \\"text\\": \\"Senior AI Engineer equity runs 35% to 50% of total comp. Staff/Principal equity runs 50%+ of total comp at frontier labs.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Add the applicable skills premium\\",\\n          \\"text\\": \\"GenAI/LLM fine-tuning +40% to +60%. MLOps +25% to +40%. AI Safety +45%. AWS ML Specialty +20% to +25%.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Bridge vesting gaps with sign-on bonus\\",\\n          \\"text\\": \\"Senior sign-on bonuses run $25,000-$75,000. Structure sign-on to cover the candidate\'s unvested equity from the current employer.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 5,\\n          \\"name\\": \\"Present the total-comp anchor against the frontier-lab ceiling\\",\\n          \\"text\\": \\"Frontier lab total comp reaches $500K-$943K+. Benchmark your total comp offer against the applicable percentile before the candidate presents a competing offer.\\"\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/nearshoring-vs-offshoring-vs-onshoring-us-engineering-leaders-2026/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/nearshoring-vs-offshoring-vs-onshoring-us-engineering-leaders-2026/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"nearshoring-vs-offshoring-vs-onshoring-us-engineering-leaders-2026"}},{"id":"title","body":"Nearshoring vs Offshoring vs Onshoring for US Engineering","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Nearshoring vs offshoring vs onshoring in 2026 for US engineering leaders. Cost, timezone and quality trade-offs across LATAM, EMEA and US."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"nearshoring vs offshoring, us engineering leaders 2026, nearshore latam softw
1are, offshore development cost, onshoring us tech"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Article\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/nearshoring-vs-offshoring-vs-onshoring-us-engineering-leaders-2026/#article\\",\\n      \\"headline\\": \\"Nearshoring vs Offshoring vs Onshoring for US Engineering Leaders in 2026\\",\\n      \\"description\\": \\"Nearshoring vs offshoring vs onshoring in 2026 for US engineering leaders. Cost, timezone and quality trade-offs across LATAM, EMEA and US.\\",\\n      \\"datePublished\\": \\"2026-07-19\\",\\n      \\"dateModified\\": \\"2026-07-19\\",\\n      \\"author\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/meet-the-team/lauren-dubery/#person\\"\\n      },\\n      \\"publisher\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      },\\n      \\"mainEntityOfPage\\": {\\n        \\"@type\\": \\"WebPage\\",\\n        \\"@id\\": \\"https://www.signifytechnology.com/news/nearshoring-vs-offshoring-vs-onshoring-us-engineering-leaders-2026/\\"\\n      },\\n      \\"keywords\\": [\\n        \\"nearshoring vs offshoring\\",\\n        \\"US engineering leaders 2026\\",\\n        \\"nearshore LATAM software\\",\\n        \\"offshore development cost\\",\\n        \\"onshoring US tech\\"\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/logo.png\\",\\n      \\"address\\": {\\n        \\"@type\\": \\"PostalAddress\\",\\n        \\"streetAddress\\": \\"Prominent Pointe 1, Suite 295, 8310-1 N. Capital of Texas Highway\\",\\n        \\"addressLocality\\": \\"Austin\\",\\n        \\"addressRegion\\": \\"TX\\",\\n        \\"postalCode\\": \\"78731\\",\\n        \\"addressCountry\\": \\"US\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"Person\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/meet-the-team/lauren-dubery/#person\\",\\n      \\"name\\": \\"Lauren Dubery\\",\\n      \\"jobTitle\\": \\"Senior Director\\",\\n      \\"worksFor\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      },\\n      \\"url\\": \\"https://www.signifytechnology.com/meet-the-team/\\"\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/nearshoring-vs-offshoring-vs-onshoring-us-engineering-leaders-2026/#faq\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What is the actual cost difference between nearshoring, offshoring and onshoring in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Fully-loaded senior engineer rates run US onshore at $150 to $220 per hour, nearshore LATAM at $50 to $85 per hour, and offshore India at $30 to $55 per hour. Total cost of ownership narrows the gap once turnover (offshore 20% to 30%, nearshore 8% to 15%) and cross-timezone velocity loss (30% to 50%) are priced in.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Which markets deliver the best time zone overlap with US business hours?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"LATAM markets deliver 6 to 8 hours of overlap with US Central time. Eastern European markets deliver 3 to 4 hours of overlap with US Eastern time. India, the Philippines and Vietnam deliver 0 to 2 hours of overlap with US Pacific time, requiring asynchronous-first workflows for productive collaboration.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Should a US engineering leader onshore, nearshore or offshore senior AI Engineers in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Onshore. Senior AI Engineer base bands run $175K to $400K+ against 2026 US benchmarks per Acceler8 Talent and KORE1 2026, and the frontier-lab talent pool clusters only in SoMa AI Alley, Hudson Square and Silicon Hills. IP concentration risk on AI product code makes offshoring senior AI Engineers a false economy.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What is the recommended 2026 team blend for a Series B to Series D US scale-up?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"20% to 30% onshore US for senior AI Engineers, Staff and Principal architects, and IP-critical roles. 50% to 60% nearshore LATAM for mid-level feature engineers, senior QA, DevOps, MLOps and applied AI product engineers. 10% to 20% offshore for application maintenance and 24/7 monitoring where synchronous collaboration is not on the critical path.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How long does it take to mobilise a nearshore LATAM engineering team in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Median LATAM senior engineer contract mobilisation runs 15 to 25 working days from initial brief through signed engagement, against 25 to 35 days for equivalent US onshore Senior AI Engineer permanent placement. Offshore India mobilisation typically runs 20 to 30 working days but carries higher first-90-day dropout rates.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/nearshoring-vs-offshoring-vs-onshoring-us-engineering-leaders-2026/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Nearshoring vs Offshoring vs Onshoring for US Engineering Leaders in 2026\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/nearshoring-vs-offshoring-vs-onshoring-us-engineering-leaders-2026/#howto\\",\\n      \\"name\\": \\"How to Blend Onshore, Nearshore and Offshore Engineering for a US Scale-up in 2026\\",\\n      \\"description\\": \\"The recommended 2026 team blend for a Series B to Series D US scale-up across US onshore, LATAM nearshore and EMEA offshore markets.\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Onshore the top 20% to 30% of the engineering team\\",\\n          \\"text\\": \\"Senior AI Engineers, Staff and Principal architects, security-cleared roles, and any function owning IP-critical production systems stay onshore against $175K-$400K+ US base bands.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Nearshore 50% to 60% of the engineering team to LATAM\\",\\n          \\"text\\": \\"Mid-level feature engineers, senior QA, DevOps, MLOps and applied AI product engineers to Mexico, Colombia or Costa Rica at $6,500-$11,000 per engineer per month fully loaded.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Offshore 10% to 20% of the engineering team for maintenance\\",\\n          \\"text\\": \\"Application maintenance, high-volume QA automation runs, data annotation and 24/7 monitoring to India, the Philippines or Vietnam at $30-$55 per hour.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Price total cost of ownership, not rate card alone\\",\\n          \\"text\\": \\"Turnover replacement cost ($75K-$150K per senior engineer), cross-timezone velocity loss (30% to 50% on features requiring cross-team decisions), and IP jurisdiction friction all shift the calculus toward nearshore for critical-path work.\\"\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/how-to-choose-between-staff-augmentation-and-managed-services-us-tech-delivery/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/how-to-choose-between-staff-augmentation-and-managed-services-us-tech-delivery/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"how-to-choose-between-staff-augmentation-and-managed-services-us-tech-delivery"}},{"id":"title","body":"How to Choose Staff Augmentation vs Managed Services 2026","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Staff augmentation vs managed services for US tech delivery in 2026. Cost, control, IP and delivery risk trade-offs for engineering leaders."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"staff augmentation vs managed services, us tech delivery 2026, sow vs t&m engineering, managed services engineering, staff aug ai teams"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Article\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/how-to-choose-between-staff-augmentation-and-managed-services-us-tech-delivery/#article\\",\\n      \\"headline\\": \\"How to Choose Between Staff Augmentation and Managed Services for US Tech Delivery\\",\\n      \\"description\\": \\"Staff augmentation vs managed services for US tech delivery in 2026. Cost, control, IP and delivery risk trade-offs for engineering leaders.\\",\\n      \\"datePublished\\": \\"2026-07-19\\",\\n      \\"dateModified\\": \\"2026-07-19\\",\\n      \\"author\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/meet-the-team/lauren-dubery/#person\\"\\n      },\\n      \\"publisher\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      },\\n      \\"mainEntityOfPage\\": {\\n        \\"@type\\": \\"WebPage\\",\\n        \\"@id\\": \\"https://www.signifytechnology.com/news/how-to-choose-between-staff-augmentation-and-managed-services-us-tech-delivery/\\"\\n      },\\n      \\"keywords\\": [\\n        \\"staff augmentation vs managed services\\",\\n        \\"US tech delivery 2026\\",\\n        \\"SOW vs T&M engineering\\",\\n        \\"managed services engineering\\",\\n        \\"staff aug AI teams\\"\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/logo.png\\",\\n      \\"address\\": {\\n        \\"@type\\": \\"PostalAddress\\",\\n        \\"streetAddress\\": \\"Prominent Pointe 1, Suite 295, 8310-1 N. Capital of Texas Highway\\",\\n        \\"addressLocality\\": \\"Austin\\",\\n        \\"addressRegion\\": \\"TX\\",\\n        \\"postalCode\\": \\"78731\\",\\n        \\"addressCountry\\": \\"US\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"Person\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/meet-the-team/lauren-dubery/#person\\",\\n      \\"name\\": \\"Lauren Dubery\\",\\n      \\"jobTitle\\": \\"Senior Director\\",\\n      \\"worksFor\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      },\\n      \\"url\\": \\"https://www.signifytechnology.com/meet-the-team/\\"\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/how-to-choose-between-staff-augmentation-and-managed-services-us-tech-delivery/#faq\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What is the actual cost difference between staff augmentation and managed services in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Staff augmentation runs $80 to $200 per hour US onshore per Zen van Riel July 2026. Managed services against a Statement of Work typically prices 15% to 30% above equivalent time and materials. Change requests add 10% to 20% cost uplift per event. The total-cost delta narrows once buyer-side engineering manager overhead is priced into the staff augmentation option.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Which model fits senior AI Engineer roles best in 2026?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Staff augmentation. Senior AI Engineer work runs on continuous learning against production telemetry, and managed services SOWs cannot scope prompt iterations, RAG tuning and evaluation harness updates cleanly. Senior AI Engineer base bands of $175,000 to $400,000+ also match staff augmentation contractor pricing at $95 to $200 per hour.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"When does managed services outperform staff augmentation?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Scoped one-off builds with clear acceptance criteria, legacy platform modernisation with known destination, and engagements where the buyer\'s engineering leadership does not have bandwidth to absorb project management overhead. The 15% to 30% managed services premium prices out the buyer\'s engineering manager time that the vendor\'s project manager replaces.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How does staff augmentation fit the 25-day permanent hiring sprint?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Staff augmentation fills the sprint gap. Signify\'s median time-to-hire on US Senior AI Engineer permanent placement runs 25 to 35 days per Korn Ferry via Acceler8 Talent April 2026. A senior contractor mobilised inside 10 to 15 working days holds sprint velocity through the permanent interview loop.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Should a US engineering leader avoid blending both models on the same engagement?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Yes. Blended engagements consistently underperform both pure models because delivery risk becomes contested. The vendor\'s project manager and the buyer\'s engineering manager both own part of the outcome, and neither owns it fully. Pick one model per engagement, or run parallel engagements with clear scope boundaries.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/how-to-choose-between-staff-augmentation-and-managed-services-us-tech-delivery/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"How to Choose Between Staff Augmentation and Managed Services for US Tech Delivery\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/how-to-choose-between-staff-augmentation-and-managed-services-us-tech-delivery/#howto\\",\\n      \\"name\\": \\"How to Choose Between Staff Augmentation and Managed Services for US Tech Delivery in 2026\\",\\n      \\"description\\": \\"The 4-step decision framework for choosing between staff augmentation and managed services on US tech delivery engagements in 2026.\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Assess whether the outcome is scopable in an SOW\\",\\n          \\"text\\": \\"Scopable one-off builds (migration, evaluation harness, observability rollout) fit managed services. Continuous learning work (AI product engineering, prompt iteration, RAG tuning) fits staff augmentation.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Assess IP concentration risk\\",\\n          \\"text\\": \\"IP-critical roadmap work stays in staff augmentation to keep IP inside the buyer\'s repository under the buyer\'s assignment clauses. Non-IP-critical migration and modernisation can move to managed services.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Assess engineering manager bandwidth\\",\\n          \\"text\\": \\"A 5-contractor staff augmentation engagement typically requires 20% to 30% of an engineering manager\'s week. If the buyer\'s leadership is at capacity, the 15% to 30% managed services premium prices out the manager time the vendor\'s PM replaces.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Avoid blending both models on the same engagement\\",\\n          \\"text\\": \\"Blended engagements consistently underperform both pure models because delivery risk becomes contested. Pick one model per engagement, or run parallel engagements with clear scope boundaries.\\"\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/ir35-w2-1099-rules-global-tech-contractors-2026/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/ir35-w2-1099-rules-global-tech-contractors-2026/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"ir35-w2-1099-rules-global-tech-contractors-2026"}},{"id":"title","body":"IR35 W-2 and 1099 Rules Every Global Tech Contractor Needs","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"IR35, W-2 and 1099 rules for global tech contractors in 2026. April 2026 threshold changes, US self-employment tax and jurisdiction picks."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"ir35 rules 2026, w-2 vs 1099 contractor, global tech contractor tax, ir35 april 2026 changes, corp to corp tech"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Article\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/ir35-w2-1099-rules-global-tech-contractors-2026/#article\\",\\n      \\"headline\\": \\"The IR35, W-2 and 1099 Rules Every Global Tech Contractor Needs to Know in 2026\\",\\n      \\"description\\": \\"IR35, W-2 and 1099 rules for global tech contractors in 2026. April 2026 threshold changes, US self-employment tax and jurisdiction picks.\\",\\n      \\"datePublished\\": \\"2026-07-19\\",\\n      \\"dateModified\\": \\"2026-07-19\\",\\n      \\"author\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/meet-the-team/lauren-dubery/#person\\"\\n      },\\n      \\"publisher\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      },\\n      \\"mainEntityOfPage\\": {\\n        \\"@type\\": \\"WebPage\\",\\n        \\"@id\\": \\"https://www.signifytechnology.com/news/ir35-w2-1099-rules-global-tech-contractors-2026/\\"\\n      },\\n      \\"keywords\\": [\\n        \\"IR35 rules 2026\\",\\n        \\"W-2 vs 1099 contractor\\",\\n        \\"global tech contractor tax\\",\\n        \\"IR35 April 2026 changes\\",\\n        \\"Corp to Corp tech\\"\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/logo.png\\",\\n      \\"address\\": {\\n        \\"@type\\": \\"PostalAddress\\",\\n        \\"streetAddress\\": \\"Prominent Pointe 1, Suite 295, 8310-1 N. Capital of Texas Highway\\",\\n        \\"addressLocality\\": \\"Austin\\",\\n        \\"addressRegion\\": \\"TX\\",\\n        \\"postalCode\\": \\"78731\\",\\n        \\"addressCountry\\": \\"US\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"Person\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/meet-the-team/lauren-dubery/#person\\",\\n      \\"name\\": \\"Lauren Dubery\\",\\n      \\"jobTitle\\": \\"Senior Director\\",\\n      \\"worksFor\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      },\\n      \\"url\\": \\"https://www.signifytechnology.com/meet-the-team/\\"\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/ir35-w2-1099-rules-global-tech-contractors-2026/#faq\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What actually changed with UK IR35 on 6 April 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"The small-company threshold for IR35 purposes increased. Turnover moves from \xa310.2 million to \xa315 million, balance sheet total moves from \xa35.1 million to \xa37.5 million, and employee headcount stays at 50. Approximately 14,000 UK companies reclassify as small, and the IR35 status determination responsibility shifts back to the contractor\'s PSC for those clients.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Should a US tech contractor take W-2, 1099 or Corp-to-Corp in 2026?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Depends on rate, engagement length and personal tax profile. W-2 fits shorter engagements under six months and rates under $130 per hour. 1099 fits mid-rate independent contractors with clear self-employment. C2C through an LLC or S-Corp fits senior contractors on engagements over six months at rates above $130 per hour.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Does IR35 apply to a UK contractor working for a US client?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"IR35 applies when the work is performed in the UK, regardless of client location. A UK Ltd Company contractor working from the UK for a US client faces IR35 determination against UK working practices. A UK contractor performing the work outside the UK falls outside IR35 on that engagement, but UK tax residency still determines income tax on Ltd Company dividends.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How much does US W-2 employer burden actually cost the client?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Approximately 20% to 30% above base pay per Homebase April 2026. The employer covers 7.65% employer FICA, federal unemployment tax, state unemployment tax, workers\' comp insurance and any offered benefits. A W-2 contractor at $100 per hour costs the client roughly $120 to $130 per hour fully loaded.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What is the 2026 Social Security wage base for US 1099 contractors?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"The Social Security wage base is $184,500 for 2026, up from $176,100 in 2025 per Finhabits March 2026. Self-employment tax of 15.3% applies to 92.35% of net earnings. Above the $184,500 threshold, only the 2.9% Medicare portion continues, with an additional 0.9% Medicare surtax for high earners.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/ir35-w2-1099-rules-global-tech-contractors-2026/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"The IR35, W-2 and 1099 Rules Every Global Tech Contractor Needs to Know in 2026\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/ir35-w2-1099-rules-global-tech-contractors-2026/#howto\\",\\n      \\"name\\": \\"How to Pick the Right Contractor Structure Across UK and US Markets in 2026\\",\\n      \\"description\\": \\"The 4-step decision framework for choosing between UK IR35 Ltd Company, US W-2, US 1099-NEC and US Corp-to-Corp structures.\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Confirm where the work is performed\\",\\n          \\"text\\": \\"IR35 applies to work performed in the UK. Work performed outside the UK falls outside IR35 on that engagement, though UK tax residency still governs income tax on Ltd Company dividends.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Confirm the UK client\'s small-company status\\",\\n          \\"text\\": \\"From 6 April 2026, clients meeting two of three thresholds (\xa315M turnover, \xa37.5M balance sheet, 50 employees) qualify as small. Small clients push IR35 determination back to the contractor\'s PSC.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Match the US structure to rate and duration\\",\\n          \\"text\\": \\"W-2 for shorter engagements under six months and rates under $130 per hour. 1099-NEC for mid-rate independent contractors. C2C through S-Corp for senior contractors above $130 per hour and over six months.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Take independent professional advice before signing\\",\\n          \\"text\\": \\"Every contractor\'s position depends on jurisdiction, personal circumstances and engagement structure. Take independent professional advice from an accountant or tax specialist before making structure decisions.\\"\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/download/ai-product-hiring-trends/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Report on AI product hiring trends highlighting recruitment patterns in technology."}},{"id":"title","body":"AI Hiring Trends Report | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/download/industry-census/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Industry census report featuring comprehensive data and insights on tech recruitment."}},{"id":"title","body":"Industry Census Report | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/join-us/internal-jobs-london/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Internal roles in London for skilled professionals in technology recruitment and staffing."}},{"id":"title","body":"Internal Jobs London | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/meet-the-team/ike-feehi/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Ike Feehi is dedicated to efficie
1nt tech recruitment and superior talent acquisition."}},{"id":"title","body":"Ike Feehi | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/meet-the-team/ike-feehi/"},"staticAttributes":{"rel":"canonical"}}],"/join-us/internal-jobs-los-angeles/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Internal job opportunities in Los Angeles focused on tech recruitment and candidate matching."}},{"id":"title","body":"Internal Jobs Los Angeles | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/meet-the-team/ben-mellows/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Ben Mellows \u2013 an experienced expert advancing tech recruitment and innovative staffing."}},{"id":"title","body":"Ben Mellows | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/meet-the-team/grace-liao/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Grace Liao advances tech recruitment with innovative solutions and dedicated service."}},{"id":"title","body":"Grace Liao | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/meet-the-team/cassandra-benson/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Cassandra Benson specializes in matching quality tech talent with career opportunities."}},{"id":"title","body":"Cassandra Benson | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/meet-the-team/megan-tayler/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Megan Tayler facilitates effective placements through advanced tech recruitment."}},{"id":"title","body":"Megan Tayler | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/meet-the-team/corin-vivanti/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Corin Vivanti drives results in tech recruitment and innovative staffing practices."}},{"id":"title","body":"Corin Vivanti | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/meet-the-team/james-holder/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"James Holder bridges tech talent with career opportunities through expert recruitment."}},{"id":"title","body":"James Holder | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/meet-the-team/darnell-bromfield/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Darnell Bromfield brings veteran expertise to tech recruitment and creative staffing."}},{"id":"title","body":"Darnell Bromfield | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/meet-the-team/david-robinson/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"David Robinson is a proven expert in connecting tech talent with ideal opportunities."}},{"id":"title","body":"David Robinson | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/meet-the-team/ethan-marshall/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Ethan Marshall implements modern tech recruitment strategies and effective placements."}},{"id":"title","body":"Ethan Marshall | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/meet-the-team/gianni-wilson/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Gianni Wilson matches tech professionals with optimal roles through expert recruitment."}},{"id":"title","body":"Gianni Wilson | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/meet-the-team/gabrielle-charalambous/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Gabrielle Charalambous aligns tech talent with the right career paths for impactful results."}},{"id":"title","body":"Gabrielle Charalambous | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}
1],"/meet-the-team/frankie-oatham/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Frankie Oatham ensures client success through focused tech recruitment and innovation."}},{"id":"title","body":"Frankie Oatham | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/meet-the-team/freddie-moore-hobbis/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Freddie Moore Hobbis offers expertise in tech staffing and advanced recruitment solutions."}},{"id":"title","body":"Freddie Moore Hobbis | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/meet-the-team/george-ethell/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"George Ethell delivers effective tech recruitment and reliable staffing solutions."}},{"id":"title","body":"George Ethell | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/meet-the-team/humza-haque/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Humza Haque plays a key role in driving successful tech recruitment strategies."}},{"id":"title","body":"Humza Haque | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/meet-the-team/ian-kanewski/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Ian Kanewski specializes in strategic tech recruitment and precise talent matching."}},{"id":"title","body":"Ian Kanewski | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/news/navigating-mental-health-helping-tech-contractors-stay-connected/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Practical strategies addressing mental health while supporting tech contractors in a dynamic market."}},{"id":"title","body":"Mental Health & Tech Contractors | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/meet-the-team/jack-marsh/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Jack Marsh provides precise talent matching in the realm of tech recruitment."}},{"id":"title","body":"Jack Marsh | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/meet-the-team/zach-weir/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Zach Weir delivers precise talent matching in the competitive tech recruitment arena."}},{"id":"title","body":"Zach Weir | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/meet-the-team/jay-flaherty/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Jay Flaherty drives successful tech staffing initiatives with dedicated recruitment."}},{"id":"title","body":"Jay Flaherty | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/meet-the-team/jessie-wright/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Jessie Wright delivers custom tech recruitment and effective staffing solutions."}},{"id":"title","body":"Jessie Wright | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/meet-the-team/lauren-dubery/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Lauren Dubery leads tech recruitment efforts with proven staffing excellence."}},{"id":"title","body":"Lauren Dubery | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/meet-the-team/madina-ali-/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Madina Ali specializes in aligning tech talent with the right career opportunities."}},{"id":"title","body":"Madina Ali | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/meet-the-team/raman-rajakumar/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Raman Rajakumar delivers superior tech staffing outcomes through targeted recruitment."}},{"id":"title","body":"Raman Rajakumar | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/meet-the-team/sean-urbain/":[{"id":"title","body":"Sean Urbain | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Sean Urbain leverages industry expertise to connect tech talent with opportunity."}}],"/meet-the-team/steven-sinisi/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Steven Sinisi is committed to outstanding service in tech recruitment and staffing."}},{"id":"title","body":"Steven Sinisi | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/news/contract-software-engineers-for-critical-delivery-projects/":[{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"contract software engineers, delivery bottlenecks, programme managers, rapid delivery support, Signify Technology, engineering contractors, project scaling, high skill engineers"}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire contract software engineers who remove delivery bottlenecks, add capacity fast and keep critical projects on track when deadlines are tight."}}],"/meet-the-team/susan-barrance/":[{"id":"title","body":"Susan Barrance | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Susan Barrance, a senior leader, shapes innovative strategies in tech recruitment."}}],"/news/advantages-of-using-golang-for-web-app-development-/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Golang benefits for web app development and their influence on tech hiring trends."}},{"id":"title","body":"Golang for Web Apps | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/perm-direct-hire-placements-new/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Permanent direct hire placements that secure top-tier tech talent for companies."}},{"id":"title","body":"Permanent Hire Placements | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/news/from-talent-sourcer-to-associate-director-susan-barrance/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Profile of Susan Barrance showcasing her progression from talent sourcer to associate director."}},{"id":"title","body":"Susan Barrance Career | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/news/lauren-dubery-promoted-to-senior-director/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Announcement of Lauren Dubery\u2019s promotion, marking a milestone in tech recruitment leadership."}},{"id":"title","body":"Lauren Dubery Promotion | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/news/signify-technology-provides-an-inclusive-experience-online/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"An inclusive online experience designed to boost tech recruitment and candidate engagement."}},{"id":"title","body":"Inclusive Online Experience | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/terms-and-conditions/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Terms and conditions outlining policies for using our tech recruitment and staffing services."}},{"id":"title","body":"Terms & Conditions | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/news/top-european-tech-cities-to-watch-now/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Overview of European tech cities showcasing emerging recruitment opportunities and trends."}},{"id":"title","body":"Top European Tech Cities | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/news/unveiling-industry-predictions-scala-rust-and-golang-/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Industry predictions on Scala, Rust, and Golang that are reshaping tech recruitment."}},{"id":"title","body":"Predictions: Scala, Rust, Golang | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/news/unveiling-the-trends/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Key trends and insights defining the evolution of technology recruitment practices."}},{"id":"title","body":"Tech Recruitment Trends | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/recite-me-user-guide/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"User guide for Recite Me, optimizing accessibility and usability for recruitment tools."}},{"id":"title","body":"Recite Me User Guide | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/news/how-to-hire-a-rust-engineer-us-guide-2026/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/how-to-hire-a-rust-engineer-us-guide-2026/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"how-to-hire-a-rust-engineer-us-guide-2026"}},{"id":"title","body":"How to Hire a Rust Engineer in the US in 2026","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"How to hire a Rust engineer in the US in 2026. The skills to screen, interview questions, salary bands and the obstacles that sink most Rust searches."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"hire rust engineer, rust engineer recruitment, hire rust developers, rust hiring guide\\n"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"name\\": \\"Rust Engineer Recruitment\\",\\n      \\"serviceType\\": \\"Technology staffing and recruitment\\",\\n      \\"provider\\": {\\n        \\"@type\\": \\"EmploymentAgency\\",\\n        \\"name\\": \\"Signify Technology\\",\\n        \\"url\\": \\"https://www.signifytechnology.com/\\"\\n      },\\n      \\"areaServed\\": \\"United States\\",\\n      \\"description\\": \\"Specialist recruitment of Rust engineers across application, systems, blockchain and embedded roles, on permanent, contract and contract-to-hire terms.\\"\\n    },\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"description\\": \\"Global technology staffing agency specialising in Scala, Rust, Go and AI engineering talent across the US and UK.\\"\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"name\\": \\"How to Hire a Rust Engineer in the US\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Scope the real role\\",\\n          \\"text\\": \\"Identify which of the four Rust jobs you are hiring for, application, systems, blockchain or infrastru
1cture, because the job sets the salary band.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Decide build versus buy\\",\\n          \\"text\\": \\"Assess whether ramping an internal senior C++ or Go engineer beats an external hire, except where correctness failures are costly.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Warm the pipeline before headcount signs\\",\\n          \\"text\\": \\"Engage passive candidates through GitHub, Rust forums and C++ and embedded alumni networks weeks ahead.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Screen on shipped production Rust\\",\\n          \\"text\\": \\"Run practical coding and systems-design conversations that verify safe, concurrent Rust written under load.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 5,\\n          \\"name\\": \\"Manage compensation and counter-offers early\\",\\n          \\"text\\": \\"Benchmark against 2026 bands and qualify motivation up front, handling counter-offers before the offer stage.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 6,\\n          \\"name\\": \\"Structure the deal\\",\\n          \\"text\\": \\"Advise on W2, C2C and contract-to-hire and total employer cost, then staff by urgency and budget.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 7,\\n          \\"name\\": \\"Support the first 90 days\\",\\n          \\"text\\": \\"Align role reality against expectation so placements convert to long-tenure hires.\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What skills should a Rust engineer have?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"A Rust engineer should have deep command of ownership, borrowing and lifetimes first, then async runtime engineering with Tokio, unsafe Rust and FFI for C or C++ interop, and either blockchain or embedded no_std depth depending on the role. The borrow checker is the primary screen.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How much does it cost to hire a Rust engineer in the US?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Hiring a Rust engineer in the US means a base of roughly $147,500 on average, with mid-level at $120,000 to $185,000 and senior at $170,000 to $280,000. Blockchain, fintech and AI-infrastructure roles pay the most, and New York and the San Francisco Bay Area lead the metros.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How do I tell a real Rust engineer from a keyword-padder?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Ask for shipped production Rust and read it. Strong candidates point to a crate they maintain, merged pull requests to projects like tokio or serde, or a public system they built. A keyword-padder cannot walk through a real ownership decision or an FFI boundary they designed.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Should I hire a Rust engineer permanently or on contract?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Hire permanently for sustained, latency-critical platform work where equity retains the engineer, and on contract or C2C for a bounded rewrite, a migration, or a trial before conversion. C2C rates run 20 to 50 per cent above W2 to cover self-employment tax and absent benefits.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Why do Rust engineers cost more than other backend engineers?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Rust engineers cost 15 to 30 per cent more because supply is structurally short and there is no cheap junior tier. Almost nobody learns Rust first, so engineers arrive with prior systems experience already priced in, and compliance-driven demand keeps pressure on the small pool.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"How to Hire a Rust Engineer in the US in 2026\\"\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/salesforce-commerce-cloud-developer-cost-to-hire-2026/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/salesforce-commerce-cloud-developer-cost-to-hire-2026/"},"staticAttributes":{"rel":"canonical"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Article\\",\\n      \\"headline\\": \\"What a Salesforce Commerce Cloud Developer Costs in 2026\\",\\n      \\"description\\": \\"US salary and contract-rate data for Salesforce Commerce Cloud developers in 2026, plus how to hire one.\\",\\n      \\"author\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"Lauren Dubery\\",\\n        \\"jobTitle\\": \\"Senior Director\\",\\n        \\"worksFor\\": {\\n          \\"@type\\": \\"Organization\\",\\n          \\"name\\": \\"Signify Technology\\"\\n        }\\n      },\\n      \\"publisher\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"Signify Technology\\",\\n        \\"logo\\": {\\n          \\"@type\\": \\"ImageObject\\",\\n          \\"url\\": \\"https://www.signifytechnology.com/logo.png\\"\\n        }\\n      },\\n      \\"datePublished\\": \\"2026-08-18\\",\\n      \\"mainEntityOfPage\\": \\"https://www.signifytechnology.com/news/salesforce-commerce-cloud-developer-cost-to-hire-2026/\\"\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"name\\": \\"How to Hire a Salesforce Commerce Cloud Developer\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Define the platform version\\",\\n          \\"text\\": \\"Confirm whether the build is B2C Commerce (SFRA or SiteGenesis) or B2B Commerce before writing the brief.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Set the budget against 2026 data\\",\\n          \\"text\\": \\"Benchmark against the $118,368 average salary or $62 hourly contract rate and add the Agentforce premium if AI agents are in scope.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Screen for production deployment experience\\",\\n          \\"text\\": \\"Ask for a full Demandware lifecycle the candidate shipped, not just certification numbers.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Decide the model\\",\\n          \\"text\\": \\"Choose permanent for ongoing maintenance and contract or nearshore for a defined migration or peak-trading window.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 5,\\n          \\"name\\": \\"Test before you commit\\",\\n          \\"text\\": \\"Run a scoped technical assessment in SFRA or headless before signing.\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What does a Salesforce Commerce Cloud developer do?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"A Salesforce Commerce Cloud developer builds and maintains ecommerce storefronts on Salesforce B2C Commerce, formerly Demandware, writing ISML templates and Demandware Script, configuring Business Manager, integrating payment and ERP systems, and working in SFRA or headless architectures.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How much does a Salesforce Commerce Cloud developer cost in 2026?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"A Salesforce Commerce Cloud developer costs $118,368 a year on average in the US, rising to $181,171 for top earners per Glassdoor\'s May 2026 data. Contract rates run $53 to $81 an hour, and onshore specialists reach $180 an hour.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What certifications should an SFCC developer have?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"The Salesforce B2C Commerce Developer certification is the baseline enterprise requirement, proving the candidate can work in SFRA, Business Manager and Demandware Script to production standard. For AI-agent work, look for Agentforce deployment experience.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Is Salesforce Commerce Cloud the same as Demandware?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Salesforce B2C Commerce is the current name for the platform previously called Demandware, which Salesforce acquired in 2016. The SFRA and Business Manager tooling carry forward, so Demandware experience remains current.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How long does it take to hire a certified SFCC developer?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Hiring a certified SFCC developer locally often takes months because the qualified pool is small and demand is high across the US and UK. Nearshore and staff augmentation models shorten that timeline with pre-vetted developers.\\"\\n          }\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}},{"id":"title","body":"Salesforce Commerce Cloud Developer Cost to Hire 2026","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"A Salesforce Commerce Cloud developer costs $118k to $181k a year or $53 to $81 an hour in 2026. See the full US pay data and how to hire one.\\n"}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"salesforce commerce cloud developer, sfcc developer salary, hire sfcc developer, b2c commerce developer cost, demandware developer\\n"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"salesforce-commerce-cloud-developer-cost-to-hire-2026"}}],"/news/high-performance-computing-engineer-salary-us-2026/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/high-performance-computing-engineer-salary-us-2026/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"high-performance-computing-engineer-salary-us-2026"}},{"id":"title","body":"High Performance Computing Engineer Salary US 2026","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"High performance computing engineers earn $107k to $188k a year in the US in 2026, with Bay Area roles paying most. See the full US salary data by role."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"high performance computing engineer salary, hpc engineer salary us, hpc engineer pay 2026, supercomputing engineer salary, hire hpc engineers"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Article\\",\\n      \\"headline\\": \\"What High Performance Computing Engineers Earn in 2026\\",\\n      \\"description\\": \\"US salary data for high performance computing engineers in 2026, by source, role and region.\\",\\n      \\"author\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"Susan Barrance\\",\\n        \\"jobTitle\\": \\"Associate Director\\",\\n        \\"worksFor\\": {\\n          \\"@type\\": \\"Organization\\",\\n          \\"name\\": \\"Signify Technology\\"\\n        }\\n      },\\n      \\"publisher\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"Signify Technology\\",\\n        \\"logo\\": {\\n          \\"@type\\": \\"ImageObject\\",\\n          \\"url\\": \\"https://www.signifytechnology.com/logo.png\\"\\n        }\\n      },\\n      \\"datePublished\\": \\"2026-08-18\\",\\n      \\"mainEntityOfPage\\": \\"https://www.signifytechnology.com/news/high-performance-computing-engineer-salary-us-2026/\\"\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"name\\": \\"How to Benchmark an HPC Engineer Salary Offer\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Pull two data sources\\",\\n          \\"text\\": \\"Compare Glassdoor and ZipRecruiter before setting a number, because their 2026 averages differ by nearly $40,000.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Adjust for the real scope\\",\\n          \\"text\\": \\"Separate cluster administration from GPU performance work, since the two carry very different market rates.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Add the regional premium\\",\\n          \\"text\\": \\"Weight Bay Area offers against the national average, where San Jose and Santa Clara sit well above the median.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Price the scarce skills\\",\\n          \\"text\\": \\"Increase the offer for CUDA, MPI, SLURM and parallel C or C++ experience.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 5,\\n          \\"name\\": \\"Factor clearance and industry\\",\\n          \\"text\\": \\"Raise the budget for cleared defence or national-lab roles, where the qualified pool is smallest.\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How much does a high performance computing engineer earn in the US?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"A high performance computing engineer earns an average of $107,956 to $145,394 a year in the US in 2026, depending on source and seniority. Top earners reach $188,314 in the senior band.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What is the highest HPC engineer salary in 2026?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"The highest HPC engineer salary reaches $188,314 a year, or $91 an hour, per Glassdoor\'s May 2026 data. HPC engineering managers average $163,234, and senior Bay Area roles push higher through stock and bonuses.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What skills increase an HPC engineer\'s salary?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Parallel-programming and GPU skills increase HPC engineer pay the most in 2026. CUDA, MPI, OpenMP, SLURM, PBS and parallel C or C++ all raise market value, alongside Linux cluster management and AI-infrastructure experience.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Where are HPC engineers most in demand in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"HPC engineers are most in demand in the San Francisco Bay Area, with NVIDIA, SpaceX, Google and Etched hiring across San Jose and Santa Clara. Austin, Seattle, Boston, Arlington and Atlanta follow.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Is HPC engineering a growing field?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"HPC engineering is growing fast, driven by the AI infrastructure build-out. Indeed listed 9,212 HPC engineer roles and Glassdoor 15,882 in 2026, spanning chip firms, aerospace, national labs and finance.\\"\\n          }\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/when-staff-augmentation-costs-more-than-permanent-hire/":[{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"when-staff-augmentation-costs-more-than-permanent-hire"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/when-staff-augmentation-costs-more-than-permanent-hire/"},"staticAttributes":{"rel":"canonical"}},{"id":"title","body":"When Staff Augmentation Costs More Than Hiring 2026","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Staff augmentation costs more than a permanent hire once a role runs past 18 to 24 months. See the 2026 break-even maths and when each model wins."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"staff augmentation, staff augmentation cost 2026, staff augmentation vs permanent hire, it staff augmentation rates, when to use staff augmentation"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Article\\",\\n      \\"headline\\": \\"When Staff Augmentation Costs More Than a Permanent Hire\\",\\n      \\"description\\": \\"The 2026 break-even maths on staff augmentation versus a permanent engineering hire, and when each model wins.\\",\\n      \\"author\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"Lauren Dubery\\",\\n        \\"jobTitle\\": \\"Senior Director\\",\\n        \\"worksFor\\": {\\n          \\"@type\\": \\"Organization\\",\\n          \\"name\\": \\"Signify Technology\\"\\n        }\\n      },\\n      \\"publisher\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"Signify Technology\\",\\n        \\"logo\\": {\\n          \\"@type\\": \\"ImageObject\\",\\n          \\"url\\": \\"https://www.signifytechnology.com/logo.png\\"\\n        }\\n      },\\n      \\"datePublished\\": \\"2026-08-18\\",\\n      \\"mainEntityOfPage\\": \\"https://www.signifytechnology.com/news/when-staff-augmentation-costs-more-than-permanent-hire/\\"\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"name\\": \\"How to Decide Between Staff Augmentation and a Permanent Hire\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Estimate the engagement length\\",\\n          \\"text\\": \\"Map the work to a timeline, since under 18 months favours augmentation and over 24 favours a permanent hire.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Calculate the fully loaded FTE cost\\",\\n          \\"text\\": \\"Add benefits, payroll tax, recruiting and ramp to the base salary before you compare.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Get the blended augmentation rate\\",\\n          \\"text\\": \\"Confirm the vendor rate includes margin, taxes and overhead, then annualise it against the loaded salary.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Weigh speed and exit risk\\",\\n          \\"text\\": \\"Price the value of starting in two weeks and cancelling on 30 days notice against the flat contract premium.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 5,\\n          \\"name\\": \\"Check skill scarcity\\",\\n          \\"text\\": \\"Raise the augmentation budget for scarce stacks where a permanent seat could stay unfilled for months.\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Is 
1staff augmentation cheaper than hiring full-time?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Staff augmentation is cheaper for short engagements, usually the first 12 to 18 months. It skips recruiting, onboarding and benefits and delivers a vetted engineer in under two weeks. For roles past 24 months, a permanent hire costs less as one-off costs amortise.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"When does staff augmentation cost more than a permanent hire?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Staff augmentation costs more once a role runs past 18 to 24 months and the person is fully utilised. A blended vendor rate carries a permanent 30 to 50 per cent margin that never falls, while a salaried engineer\'s fixed cost spreads across every month worked.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How much does staff augmentation cost in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"IT staff augmentation costs $25 to $250 or more an hour in 2026. Offshore starts near $15 to $35, nearshore Latin America runs $45 to $100, and US-based engineers command $120 to $250. Monthly costs run $8,700 to $41,500 by role and seniority.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How long does it take to hire a permanent engineer versus augment?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Hiring a permanent engineer takes 41 to 42 days on average in the US, with 28 per cent of offers rejected. Staff augmentation delivers a pre-vetted engineer in under two weeks, the main reason teams augment against a fixed deadline.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Does staff augmentation include benefits and payroll costs?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Staff augmentation folds benefits, payroll taxes and employer overhead into the vendor\'s blended hourly rate, so you carry no separate employment burden. Around 13 points of an onshore rate covers that burden, with the rest funding recruiting, vetting and the replacement guarantee.\\"\\n          }\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/european-tech-cities-hiring-engineers-2026/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/european-tech-cities-hiring-engineers-2026/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"european-tech-cities-hiring-engineers-2026"}},{"id":"title","body":"8 Top European Tech Cities Hiring Engineers in 2026\\n","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"The 8 European tech cities hiring the most engineers in 2026, from London and Berlin to Warsaw and Lisbon, with salary and time-to-hire data for each.\\n"}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"european tech cities, hiring software engineers europe, best european tech hubs 2026, european engineering talent, hire engineers europe"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Article\\",\\n      \\"headline\\": \\"8 European Tech Cities Hiring the Most Engineers in 2026\\",\\n      \\"description\\": \\"The eight European tech cities hiring the most engineers in 2026, with salary and time-to-hire data for each.\\",\\n      \\"author\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"Susan Barrance\\",\\n        \\"jobTitle\\": \\"Associate Director\\",\\n        \\"worksFor\\": {\\n          \\"@type\\": \\"Organization\\",\\n          \\"name\\": \\"Signify Technology\\"\\n        }\\n      },\\n      \\"publisher\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"Signify Technology\\",\\n        \\"logo\\": {\\n          \\"@type\\": \\"ImageObject\\",\\n          \\"url\\": \\"https://www.signifytechnology.com/logo.png\\"\\n        }\\n      },\\n      \\"datePublished\\": \\"2026-08-18\\",\\n      \\"mainEntityOfPage\\": \\"https://www.signifytechnology.com/news/european-tech-cities-hiring-engineers-2026/\\"\\n    },\\n    {\\n      \\"@type\\": \\"ItemList\\",\\n      \\"name\\": \\"8 European Tech Cities Hiring the Most Engineers in 2026\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"London\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Berlin\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Amsterdam\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Warsaw\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 5,\\n          \\"name\\": \\"Munich\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 6,\\n          \\"name\\": \\"Dublin\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 7,\\n          \\"name\\": \\"Barcelona\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 8,\\n          \\"name\\": \\"Lisbon\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Which European tech city pays engineers the most?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Zurich pays the highest raw engineering salaries in Europe in 2026, with senior total compensation of CHF 130,000 to CHF 200,000 or more, per levels.fyi. A Swiss work-permit quota limits access. London follows on total compensation, with FAANG packages the highest after Zurich.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Where should US companies expand engineering teams in Europe?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Amsterdam, Dublin, Berlin, Barcelona and Warsaw are the strongest primary expansion locations for US companies in 2026, per Tech StaQ. Dublin and Amsterdam suit US-aligned operations, while Warsaw and Barcelona win on cost-efficient senior engineering at speed.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Which European cities are best for AI and machine learning hiring?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"London holds Europe\'s deepest AI talent market in 2026, with senior LLM engineers at \xa390,000 to \xa3140,000, per Tech StaQ. Berlin leads on applied AI and product engineering, and Munich concentrates industrial AI and safety-critical systems.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How does Copenhagen compare for software engineers?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Copenhagen posts a median software engineering salary of \u20ac93,260, rising to \u20ac134,100 for highly experienced developers, per Levels 2026 data. The Danish capital ranks among Europe\'s top fintech hubs, favouring Python, Java, C++, C# and SQL skills.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Which European cities fill engineering roles fastest?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Warsaw and Lisbon fill engineering roles fastest in Europe in 2026, at four to eight weeks for senior hires, per Tech StaQ. Both pair high hiring volume with English-friendly workplaces, suiting US companies on a fixed launch deadline.\\"\\n          }\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/our-specialisms/go/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Recruitment expertise focused on sourcing top Go developers for tech projects. Your Golang Recruitment Partners!"}},{"id":"title","body":"Go Developer Recruitment | Signify Technology Golang Recruitment","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"WebPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/our-specialisms/go/#webpage\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/our-specialisms/go/\\",\\n      \\"name\\": \\"Go Recruitment\\",\\n      \\"description\\": \\"Recruitment expertise focused on sourcing top Go developers for tech projects.\\",\\n      \\"isPartOf\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#website\\"\\n      },\\n      \\"about\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n      },\\n      \\"inLanguage\\": \\"en-GB\\",\\n      \\"breadcrumb\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/our-specialisms/go/#breadcrumb\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/our-specialisms/go/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Our Specialisms\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/our-specialisms/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Go Recruitment\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"Organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/logo/signify-logo.png\\",\\n      \\"description\\": \\"Signify Technology is a global staffing agency connecting exceptional talent in emerging technologies across leadership, software engineering, data, and cloud. We are minority-owned (MSDUK certified) with offices in London and Austin.\\",\\n      \\"foundingDate\\": \\"2016\\",\\n      \\"founder\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"Ryan Adams\\",\\n        \\"jobTitle\\": \\"Founder & CEO\\",\\n        \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n      },\\n      \\"employee\\": [\\n        {\\n          \\"@type\\": \\"Person\\",\\n          \\"name\\": \\"Ryan Adams\\",\\n          \\"jobTitle\\": \\"Founder & CEO\\",\\n          \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n        }\\n      ],\\n      \\"address\\": [\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"3 Moorgate Place, 1st Floor\\",\\n          \\"addressLocality\\": \\"London\\",\\n          \\"postalCode\\": \\"EC2R 6EA\\",\\n          \\"addressCountry\\": \\"GB\\"\\n        },\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"Prominent Pointe 1, Suite 295, 8310-1 N. Capital of Texas Highway\\",\\n          \\"addressLocality\\": \\"Austin\\",\\n          \\"addressRegion\\": \\"TX\\",\\n          \\"postalCode\\": \\"78731\\",\\n          \\"addressCountry\\": \\"US\\"\\n        }\\n      ],\\n      \\"contactPoint\\": [\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+44 (0) 20 3865 0621\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"GB\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        },\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+1 (346) 374 0300\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"US\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        }\\n      ],\\n      \\"sameAs\\": [\\n        \\"https://www.linkedin.com/company/signify-technology\\",\\n        \\"https://twitter.com/signifytech\\",\\n        \\"https://www.facebook.com/signifytechnology\\"\\n      ],\\n      \\"knowsAbout\\": [\\n        \\"Scala recruitment\\",\\n        \\"Functional programming staffing\\",\\n        \\"Software engineering recruitment\\",\\n        \\"Data and cloud hiring\\",\\n        \\"Tech leadership placements\\"\\n      ],\\n      \\"memberOf\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"MSDUK\\",\\n        \\"url\\": \\"https://www.msduk.org.uk/\\"\\n      },\\n      \\"award\\": [\\n        \\"2023 Best Recruitment Company to Work For\\",\\n        \\"2022 Recruiter Awards Finalist\\"\\n      ],\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/our-specialisms/go/#faqpage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What\u2019s your average time-to-hire for Go roles?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"We typically place mid-to-senior Go engineers in 6\u20138 weeks thanks to our proactive sourcing and streamlined interview process.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How do you assess a candidate\u2019s Go proficiency?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Our in-house Go experts conduct live coding on Goroutines, channels, and modules, plus review open-source contributions.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Can you help build a Go employer brand?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Yes - we co-sponsor GopherCon, Go Community Gatherings, and local meet-ups, produce thought leadership content, and manage your presence in the Go community.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Do you source both in-office and remote Go talent?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Absolutely - our global network covers North America, Europe, and APAC, giving you access to diverse, remote-ready candidates.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What industries do your Go candidates typically come from?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"We recruit for cloud-native, DevOps tooling, high-performance web services, networking infrastructure, and system-level applications.\\"\\n          }\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/our-specialisms/go/"},"staticAttributes":{"rel":"canonical"}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Go recruitment, Golang recruitment, Go developers, Golang engineers, hire Go talent, Go hiring solutions, cloud native recruitment, DevOps recruitment, high performance Go recruitment, microservices recruitment, concurrency engineers, Go contractor recruitment, Go employer branding, Go RPO, Go contingency search, Go retained search, GopherCon recruitment, DockerCon hiring, Go jobs, backend Go recruitment, Signify Technology Go"}},{"id":"robots","body":null,"name":"robots","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"User-agent: Google-Extended\\nAllow: /\\n\\nUser-agent: GPTBot\\nAllow: /\\n\\nUser-agent: *\\nDisallow:\\n"}}],"/project-recruitment/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Project recruitment solutions offering flexible staffing for technology-driven initiatives."}},{"id":"title","body":"Project Recruitment Solutions | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/statement-of-work-recruitment/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Statement of work recruitment services providing efficient tech staffing solutions."}},{"id":"title","body":"SOW Recruitment Services | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/news/software-architects-for-multi-cloud-and-hybrid-environments/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire software architects who design reliable multi cloud systems across AWS Azure and GCP so your platforms stay stable, scalable and easy to manage."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"multi cloud software architect, AWS Azure GCP design, distributed systems architecture, hybrid cloud reliability, cloud leaders, Signify Technology"}}],"/news/ai-recruitment-for-on-device-inference-engineers-in-austin/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire on device inference engineers in Austin to boost latency, privacy and performance for real time AI products with help from specialist recruiters."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"on device inference engineers Austin, edge AI hiring, latency optimisation, device level AI, inference engineering recruitment, Signify Technology"}}],"/news/golang-engineer-recruitment-washington-dc/":[{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"golang-engineer-recruitment-washington-dc"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/golang-engineer-recruitment-washington-dc/"},"staticAttributes":{"rel":"canonical"}},{"id":"title","body":"Golang Engineer Recruitment Washington DC | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire senior Golang engineers in Washington DC Metro. Signify Technology covers NoMa, Rosslyn and Arlington Go talent including cleared engineers for federal tech roles.\\n"}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"golang engineer recruitment Washington DC, go developer jobs DC, hire go engineer federal technology, cleared golang engineer"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Go Recruitment\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/our-specialisms/go/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Golang Engineer Recruitment Washington DC\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"serviceType\\": \\"Go Engineer Recruitment\\",\\n      \\"provider\\": {\\n        \\"@type\\": \\"EmploymentAgency\\",\\n        \\"name\\": \\"Signify Technology\\",\\n        \\"url\\": \\"https://www.signifytechnology.com\\"\\n      },\\n      \\"areaServed\\": {\\n        \\"@type\\": \\"City\\",\\n        \\"name\\": \\"Washington DC Metro\\",\\n        \\"containsPlace\\": [\\n          {\\n            \\"@type\\": \\"Place\\",\\n            \\"name\\": \\"NoMa\\"\\n          },\\n          {\\n            \\"@type\\": \\"Place\\",\\n            \\"name\\": \\"Capitol Hill\\"\\n          },\\n          {\\n            \\"@type\\": \\"Place\\",\\n            \\"name\\": \\"Rosslyn-Ballston Corridor, Arlington\\"\\n          }\\n        ]\\n      },\\n      \\"name\\": \\"Senior Golang Engineer Recruitment - Washington DC Metro\\"\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What do senior Go engineers earn in Washington DC in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Senior Go engineers in the DC metro earn $175,000-$235,000 in base salary. Cleared engineers with cloud-native and cybersecurity skills command 10-20% above market, placing total compensation for the strongest cleared Go engineers at $200,000-$280,000+. DC offers stability driven by government contract cycles rather than venture capital sentiment.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Which companies in Washington DC hire Golang engineers?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Confirmed DC-area Golang employers include Booz Allen Hamilton (McLean), Leidos, SAIC and Comcast Technology Solutions. AWS Government cloud teams maintain Arlington presence. As of May 2026, 221 open Golang engineer roles were listed on Glassdoor DC across cybersecurity, government technology and cloud-native platform sectors.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Does security clearance matter for Golang engineering jobs in DC?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Security clearance creates a material salary premium in DC that does not exist in any other US Go market. Cleared Go engineers with cloud-native and cybersecurity skills command 10-20% above market rate because the pool of cleared engineers who also hold genuine Go production experience is extremely thin.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How is the DC Golang market different from San Francisco or New York?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"DC\'s Go demand is driven by government technology modernisation, cybersecurity and defence contracting rather than venture-backed startups or financial services. This makes DC hiring more stable across economic cycles but more specialised in application domain. The security clearance premium and government contracting context have no equivalents in SF or NYC.\\"\\n          }\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/machine-learning-engineer-jobs-boston/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/machine-learning-engineer-jobs-boston/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"machine-learning-engineer-jobs-boston"}},{"id":"title","body":"Machine Learning Engineer Jobs in Boston | Signify","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Find machine learning engineer jobs in Boston with Signify Technology. We place ML engineers across Kendall Square, Seaport and the Route 128 corridor in 2026."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"machine learning engineer jobs Boston, ML engineer Boston, hire ML engineer Boston, Boston machine learning recruitment, ML jobs Kendall Square"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"WebPage\\",\\n      \\"name\\": \\"Machine Learning Engineer Jobs in Boston | Signify Technology\\",\\n      \\"description\\": \\"Machine learning engineer jobs in Boston with Signify Technology. We place ML engineers across Kendall Square, Seaport and the Route 128 corridor in 2026.\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/news/machine-learning-engineer-jobs-boston/\\"\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Tech Recruitment Specialisms\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/our-specialisms/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Machine Learning Engineer Jobs in Boston\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What do machine learning engineers earn in Boston in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Senior machine learning engineers in Boston earn $175,000-$240,000 in base salary at 6-10 years\' experience. Biotech and AI infrastructure roles sit at the top of the range. Total compensation including equity and bonus at late-stage biotech and AI companies regularly exceeds $280,000. MLOps-capable engineers command a 25-40% premium above the standard senior baseline.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Where do machine learning engineers work in Boston?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"The primary cluster is Kendall Square in Cambridge, anchored by MIT and Google Cambridge with a dense concentration of AI-backed biotech and enterprise technology companies. The Seaport District is the second major cluster for later-stage AI startups. The Route 128 corridor through Waltham, Lexington and Burlington hosts established enterprise technology companies with significant ML programmes.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Is Boston a good market for machine learning engineers in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Boston is one of the strongest ML engineering markets in the US. MIT, Harvard, Northeastern and Boston University produce world-class ML research talent, and the biotech sector applies machine learning to problems with direct commercial and regulatory consequence. The market is candidate-driven: the pool with genuine production ML experience is structurally smaller than the number of open roles.\\"\\n          }\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"_sf_header_tags":null,"/news/why-staff-principal-ml-engineer-roles-replacing-senior-tier/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/why-staff-principal-ml-engineer-roles-replacing-senior-tier/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"why-staff-principal-ml-engineer-roles-replacing-senior-tier"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Article\\",\\n      \\"headline\\": \\"Why Staff and Principal ML Engineer Roles Are Replacing the Senior Tier\\",\\n      \\"description\\": \\"Staff and Principal ML Engineer roles are growing faster than the Senior tier in 2026. Signify Technology explains the role difference, salary gap and how to hire for both profiles.\\",\\n      \\"author\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"[placeholder]\\"\\n      },\\n      \\"publisher\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"Signify Technology\\",\\n        \\"url\\": \\"https://www.signifytechnology.com\\"\\n      },\\n      \\"datePublished\\": \\"2026-05-23\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/news/why-staff-principal-ml-engineer-roles-replacing-senior-tier/\\"\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Tech Recruitment Specialisms\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/our-specialisms/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Why Staff and Principal ML Engineer Roles Are Rising\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What is the difference between a Staff ML Engineer and a Senior ML Engineer?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"A Senior ML Engineer owns one model or pipeline within a team. A Staff ML Engineer owns the architectural decisions and platform standards that affect every model and pipeline across multiple teams. The transition requires a demonstrable organisation-wide technical decision that shipped to production at scale. Staff ML Engineers earn $230,000-$310,000 versus $165,000-$230,000 for senior engineers.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What does a Principal ML Engineer do?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"A Principal ML Engineer operates at company-wide scope, shaping how the entire organisation thinks about and invests in machine learning. They advise on hiring strategy, represent ML engineering in executive technology discussions and define the multi-year architectural direction for the ML organisation. The role appears most frequently at companies with 500+ engineers and mature ML programmes.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Why are Staff and Principal ML Engineer roles growing faster than Senior roles?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Companies running 50-200 ML models in production need engineers who can define the platform those models run on and set the standards other engineers follow. That is a staff or principal-level charter. As ML adoption matures, demand for organisational-scope engineering leadership is growing structurally while the senior tier compresses.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How do you identify a genuine Staff ML Engineer versus a strong Senior ML Engineer?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Ask for a specific cross-team technical decision they have owned. A senior engineer will describe a model or pipeline improvement within their team. A genuine staff engineer will describe a platform-wide architectural decision that changed how engineers outside their team work, supported by RFC-quality documentation and cross-functional stakeholder sign-off.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What total compensation should we expect for a Principal ML Engineer in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Total compensation for Principal ML Engineers at FAANG companies and late-stage AI-backed startups regularly exceeds $400,000 when base salary, RSUs and annual bonus are combined. At Google, Meta and OpenAI, equity alone can exceed base salary in strong performance years. Full employer cost approaches $450,000-$600,000 per year at large technology companies.\\"\\n          }\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}},{"id":"title","body":"Why Staff and Principal ML Engineer Roles Are Rising\\n","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Staff and Principal ML Engineer roles are replacing the Senior tier in 2026. Signify Technology explains why, what these roles pay and how to hire for them."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"staff machine learning engineer, principal ML engineer, senior ML engineer replaced, staff ML engineer salary, principal ML engineer salary 2026"}}],"/news/best-ai-recruitment-agency-in-london-for-llm-engineering-teams/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire LLM engineers in London with expertise in fine tuning, optimisation and deployment through specialist recruitment that shortens timelines and improves results."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"LLM engineers London, large language model hiring, AI recruitment UK, fine tuning engineers, LLM optimisation, Signify Technology, London AI hiring"}}],"/news/effective-scala-recruitment-strategies/":[{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"<script type=\\"application/ld+json\\">\\n{\\n\\"@context\\": \\"https://schema.org\\",\\n\\"@type\\": \\"FAQPage\\",\\n\\"mainEntity\\": [\\n{\\n\\"@type\\": \\"Question\\",\\n\\"name\\": \\"What makes Scala hiring best practices unique?\\",\\n\\"acceptedAnswer\\": {\\n\\"@type\\": \\"Answer\\",\\n\\"text\\": \\"Scala hiring best practices focus on functional programming skills, JVM ecosystem knowledge, and code quality. They screen for core features like immutability, pattern matching, and strong type safety.\\"\\n}\\n},\\n{\\n\\"@type\\": \\"Question\\",\\n\\"name\\": \\"How long does a typical Scala hiring cycle take?\\",\\n\\"acceptedAnswer\\": {\\n\\"@type\\": \\"Answer\\",\\n\\"text\\": \\"On average, a Scala hiring cycle takes six to eight weeks. Clear role definitions and targeted sourcing can reduce this to around four weeks.\\"\\n}\\n},\\n{\\n\\"@type\\": \\"Question\\",\\n\\"name\\": \\"Which platforms work best for candidate sourcing for Scala?\\",\\n\\"acceptedAnswer\\": {\\n\\"@type\\": \\"Answer\\",\\n\\"text\\": \\"Stack Overflow Jobs, LinkedIn, and Scala-specific Slack or Meetup groups often yield strong Scala developer candidates.\\"\\n}\\n}\\n]\\n}\\n<\/script>"}},{"id":"title","body":"Effective Scala Recruitment Strategies\\n","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Explore proven strategies from Signify Technology for hiring elite Scala developers faster and reducing time to hire and hiring risk."}}],"/news/ai-recruiter-for-prompt-engineering-and-content-safety-in-los-angeles/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Signify Technology helps you hire prompt engineering and content safety specialists in Los Angeles, with deep screening and fast placement support."}},{"id":"title","body":"AI recruiter For Prompt Engineering And Content Safety In Los Angeles\\n","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/news/-leaders-create-culture-a-q-a-with-engineer-gabriela-chiribau/":[{"id":"title","body":"\'Leaders Create Culture\' A Q&A with Engineer Gabriela Chiribau\\n","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Read the Q&A with engineer Gabriela Chiribau at Signify Technology on how leadership, culture and engineering excellence go hand in hand."}}],"/meet-the-team/rob-gwillim/":[{"id":"title","body":"Robert Gwillim","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Meet Rob Gwillim, Senior Principal Consultant at Signify Technology specialising in AI, RPA and intelligent automation across North America and LATAM."}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/meet-the-team/rob-gwillim/"},"staticAttributes":{"rel":"canonical"}}],"/meet-the-team/keem-hairston/":[{"id":"title","body":"Joachim Hairston","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Get to know Keem Hairston, valued team member at Signify Technology focused on delivering specialised tech recruitment solutions."}}],"/meet-the-team/ghazal-mayahi/":[{"id":"title","body":"Ghazal Mayahi","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Meet Ghazal Mayahi, Senior Consultant at Signify Technology working to connect outstanding tech talent in niche markets with leading employers."}}],"/meet-the-team/morgan-keeley/":[{"id":"title","body":"Morgan Keeley","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Meet Morgan Keeley, Global Marketing Manager at Signify Technology and expert content strategist in Scala, Rust and Go talent markets."}}],"/meet-the-team/sam-akkouche/":[{"id":"title","body":"Sam Akkouche","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Meet Sam Akkouche, Consultant at Signify Technology working to bridge skilled tech talent with top employers in software, cloud and data."}}],"/meet-the-team/connor-andrews/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Meet Connor Andrews, Principal Consultant at Signify Technology dedicated to helping clients build high performing tech teams across global markets."}},{"id":"title","body":"Connor Andrews","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/meet-the-team/jack-harris/":[{"id":"title","body":"Jack Harris","
1single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Meet Jack Harris, Senior Consultant at Signify Technology specialising in matching niche engineering talent with high impact roles worldwide."}}],"/news/senior-backend-engineers-for-complex-api-architectures/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire senior backend engineers who improve API performance, scale microservices and fix latency issues so distributed systems stay fast, stable and reliable."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"senior backend engineers, API performance, microservices scalability, distributed systems backend, latency optimisation, backend hiring, Signify Technology"}}],"/news/contract-mlops-engineer-to-productionise-inference-on-kubernetes/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Need production ready ML inference on Kubernetes fast? Hire contract MLOps engineers through Signify Technology to scale models, protect SLAs and ship sooner."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"contract MLOps engineer, Kubernetes inference, machine learning production, MLOps contractor, Kubernetes MLOps, Signify Technology, ML model deployment, AI hiring, MLOps recruitment"}}],"/news/hire-expert-ai-engineers-in-atlanta-for-speech-models-and-call-center-automation/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire AI engineers in Atlanta to build advanced speech models and call center automation. Improve accuracy, reduce costs, and deliver natural customer interactions."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"AI engineers Atlanta, speech model developers, call center automation, NLP engineers, AI hiring Atlanta, conversational AI, Signify Technology, customer service AI"}}],"/contract-solutions/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Signify Technology delivers flexible consulting solutions to help you scale tech teams fast with global talent, nearshoring, and contract-to-hire options."}},{"id":"title","body":"Consulting Solutions","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/news/hire-embedded-systems-engineers-for-performance-critical-applications/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire embedded systems engineers for real time, memory efficient firmware that improves device performance and supports robotics and embedded applications."}},{"id":"title","body":"Hire Embedded Systems Engineers for Performance Critical Applications | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"embedded systems engineer, real time firmware, memory efficient software\\n"}}],"/meet-the-team/chris-allen/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/meet-the-team/chris-allen/"},"staticAttributes":{"rel":"canonical"}}],"/meet-the-team/daniel-harwood/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/meet-the-team/daniel-harwood/"},"staticAttributes":{"rel":"canonical"}}],"/meet-the-team/jessie-watling/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/meet-the-team/jessie-watling/"},"staticAttributes":{"rel":"canonical"}}],"/meet-the-team/tarik-hirst/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/meet-the-team/tarik-hirst/"},"staticAttributes":{"rel":"canonical"}}],"/meet-the-team/victoria-raistrick/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/meet-the-team/victoria-raistrick/"},"staticAttributes":{"rel":"canonical"}}],"/our-specialisms/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Specialised recruitment services designed to fill diverse roles in the tech industry."}},{"id":"title","body":"Tech Recruitment Specialisms | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"WebPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/our-specialisms/#webpage\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/our-specialisms/\\",\\n      \\"name\\": \\"Our Specialisms\\",\\n      \\"description\\": \\"Specialised recruitment services designed to fill diverse roles in the tech industry.\\",\\n      \\"isPartOf\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#website\\"\\n      },\\n      \\"about\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n      },\\n      \\"inLanguage\\": \\"en-GB\\",\\n      \\"breadcrumb\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/our-specialisms/#breadcrumb\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/our-specialisms/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Our Specialisms\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"Organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/logo/signify-logo.png\\",\\n      \\"description\\": \\"Signify Technology is a global staffing agency connecting exceptional talent in emerging technologies across leadership, software engineering, data, and cloud. We are minority-owned (MSDUK certified) with offices in London and Austin.\\",\\n      \\"foundingDate\\": \\"2016\\",\\n      \\"founder\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"Ryan Adams\\",\\n        \\"jobTitle\\": \\"Founder & CEO\\",\\n        \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n      },\\n      \\"employee\\": [\\n        {\\n          \\"@type\\": \\"Person\\",\\n          \\"name\\": \\"Ryan Adams\\",\\n          \\"jobTitle\\": \\"Founder & CEO\\",\\n          \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n        }\\n      ],\\n      \\"address\\": [\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"3 Moorgate Place, 1st Floor\\",\\n          \\"addressLocality\\": \\"London\\",\\n          \\"postalCode\\": \\"EC2R 6EA\\",\\n          \\"addressCountry\\": \\"GB\\"\\n        },\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"Prominent Pointe 1, Suite 295, 8310-1 N. Capital of Texas Highway\\",\\n          \\"addressLocality\\": \\"Austin\\",\\n          \\"addressRegion\\": \\"TX\\",\\n          \\"postalCode\\": \\"78731\\",\\n          \\"addressCountry\\": \\"US\\"\\n        }\\n      ],\\n      \\"contactPoint\\": [\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+44 (0) 20 3865 0621\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"GB\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        },\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+1 (346) 374 0300\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"US\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        }\\n      ],\\n      \\"sameAs\\": [\\n        \\"https://www.linkedin.com/company/signify-technology\\",\\n        \\"https://twitter.com/signifytech\\",\\n        \\"https://www.facebook.com/signifytechnology\\"\\n      ],\\n      \\"knowsAbout\\": [\\n        \\"Scala recruitment\\",\\n        \\"Functional programming staffing\\",\\n        \\"Software engineering recruitment\\",\\n        \\"Data and cloud hiring\\",\\n        \\"Tech leadership placements\\"\\n      ],\\n      \\"memberOf\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"MSDUK\\",\\n        \\"url\\": \\"https://www.msduk.org.uk/\\"\\n      },\\n      \\"award\\": [\\n        \\"2023 Best Recruitment Company to Work For\\",\\n        \\"2022 Recruiter Awards Finalist\\"\\n      ],\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/our-specialisms/"},"staticAttributes":{"rel":"canonical"}}],"/news/industries-that-rely-on-scala-where-the-demand-comes-from/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/industries-that-rely-on-scala-where-the-demand-comes-from/"},"staticAttributes":{"rel":"canonical"}}],"/news/minority-owned-tech-recruitment-partner-improves-hiring-diversity/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/minority-owned-tech-recruitment-partner-improves-hiring-diversity/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"minority-owned-tech-recruitment-partner-improves-hiring-diversity"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Article\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/minority-owned-tech-recruitment-partner-improves-hiring-diversity/\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/news/minority-owned-tech-recruitment-partner-improves-hiring-diversity/\\",\\n      \\"headline\\": \\"How a Minority-Owned Tech Recruitment Partner Improves Hiring Diversity Without Slowing Time-to-Hire\\",\\n      \\"description\\": \\"A certified minority-owned tech recruitment partner advances supplier diversity spend and hiring diversity without slowing time-to-fill.\\",\\n      \\"inLanguage\\": \\"en-GB\\",\\n      \\"datePublished\\": \\"2026-06-23\\",\\n      \\"dateModified\\": \\"2026-06-23\\",\\n      \\"author\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"Signify Technology\\"\\n      },\\n      \\"publisher\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"areaServed\\": [\\n        \\"US\\",\\n        \\"GB\\",\\n        \\"DE\\"\\n      ],\\n      \\"knowsAbout\\": [\\n        \\"Minority-owned tech recruitment\\",\\n        \\"Supplier diversity\\",\\n        \\"Diverse engineering hiring\\"\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What is NMSDC certification and why does it matter for tech recruitment?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"NMSDC is the National Minority Supplier Development Council, the premier US certifying body for minority-owned businesses. Certification requires 51% minority ownership and is required by most Fortune 500 supplier diversity programmes.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Does using a minority-owned tech recruitment partner slow down hiring?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"No. Certified minority-owned recruitment partners run standard specialist time-to-fill cycles. The certification is a procurement attribute, not a sourcing constraint.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How do minority-owned recruitment firms access more diverse candidate pools?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Through affinity-group community relationships, HBCU and HSI alumni networks, sponsorship at NSBE, AfroTech, Latinx in Tech and Grace Hopper, plus direct candidate trust built over years in those communities.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What corporate supplier diversity programs accept NMSDC-certified spend?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Walmart, Target, Amazon, Costco, Home Depot, General Motors and most Fortune 500 employers running supplier diversity programmes. NMSDC corporate members spend over $200 billion annually with certified suppliers.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Is supplier diversity the same as hiring diversity?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"No. Supplier diversity counts spend with certified minority-owned vendors. Hiring diversity counts who the employer places into seats. Both are tracked independently by most Fortune 500 companies.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How does a certified minority-owned recruitment partner improve engineering team performance?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"By sourcing from candidate pools standard partners underweight. McKinsey shows top-quartile diversity correlates with 39% higher profitability. BCG documents 19% higher innovation revenue at above-average diversity firms.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Minority-Owned Tech Recruitment Partner\\"\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}},{"id":"title","body":"Minority-Owned Tech Recruitment Partner for Diversity","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"A certified minority-owned tech recruitment partner advances supplier diversity spend and hiring diversity without slowing time-to-fill."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"minority-owned tech recruitment, NMSDC certified recruitment, supplier diversity tech, diverse tech hiring\\n"}}],"/our-specialisms/go/hire-senior-backend-engineer-graphql-san-francisco/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/our-specialisms/go/hire-senior-backend-engineer-graphql-san-francisco/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"hire-senior-backend-engineer-graphql-san-francisco"}},{"id":"title","body":"Hire a Senior Backend Engineer for GraphQL in San Francisco","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire a Senior Backend Engineer for GraphQL API architecture in San Francisco for AI Alley, Mission Bay and Financial District roles in 2026."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"hire senior backend engineer graphql san francisco, sf graphql api architecture, senior go backend engineer sf, soma ai alley backend engineer, mission bay graphql engineer"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/our-specialisms/go/hire-senior-backend-engineer-graphql-san-francisco/#service\\",\\n      \\"name\\": \\"Senior Backend GraphQL Engineer Recruitment in San Francisco\\",\\n      \\"serviceType\\": \\"Specialist Senior Backend Engineer Recruitment\\",\\n      \\"description\\": \\"Specialist Senior Backend Engineer recruitment for GraphQL API architecture across San Francisco\'s SoMa AI Alley, Mission Bay, Mission District and Financial District cluster
1s, calibrated to Q2 2026 compensation bands.\\",\\n      \\"provider\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      },\\n      \\"areaServed\\": {\\n        \\"@type\\": \\"City\\",\\n        \\"name\\": \\"San Francisco\\",\\n        \\"containedInPlace\\": {\\n          \\"@type\\": \\"State\\",\\n          \\"name\\": \\"California\\"\\n        }\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/logo.png\\",\\n      \\"address\\": {\\n        \\"@type\\": \\"PostalAddress\\",\\n        \\"streetAddress\\": \\"Prominent Pointe 1, Suite 295, 8310-1 N. Capital of Texas Highway\\",\\n        \\"addressLocality\\": \\"Austin\\",\\n        \\"addressRegion\\": \\"TX\\",\\n        \\"postalCode\\": \\"78731\\",\\n        \\"addressCountry\\": \\"US\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/our-specialisms/go/hire-senior-backend-engineer-graphql-san-francisco/#faq\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What does a Senior Backend GraphQL Engineer earn in San Francisco in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Base salary runs $200,000 to $310,000 with median at $220,000 per Recruiting from Scratch June 2026 analysis of 648 job postings. Total compensation ranges $257,500 to $466,250 per Levels.fyi June 2026. Anthropic senior backend engineers reach $300K to $490K base with staff exceeding $600K.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Which SF employers hire Senior Backend GraphQL Engineers?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Applied AI scale-ups at SoMa AI Alley (Anthropic, Databricks, Harvey AI) anchor the largest demand. Mission Bay (OpenAI-adjacent biotech-AI) drives the second segment. Mission District emerging AI scale-ups (Thinking Machines Lab, Ramp-adjacent fintech, Series A-B product AI) drive the fastest-growing niche. Financial District rounds out the top.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Why does backend GraphQL sit under the Go specialism at Signify?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Backend GraphQL at SF scale-ups is dominantly Go: gqlgen, graph-gophers, Thunder and gRPC-Gateway anchor the Go GraphQL ecosystem. Go\'s fast compilation, lightweight goroutines and thorough standard library match the Kubernetes-first microservices architecture most SF scale-ups deploy. The entire CNCF ecosystem is built on Go.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What GraphQL specialisms are in demand in SF in 2026?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Apollo Federation for multi-service GraphQL architecture, schema-first design with type-safe code generation, DataLoader batching for N+1 query resolution, subscription infrastructure for real-time updates, and GraphQL gateway routing (Apollo Router, Cosmo Router) anchor the top SF backend GraphQL specialisms in 2026.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How long does it take Signify to place a Senior Backend GraphQL Engineer in San Francisco?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Median time-to-hire runs 25 to 35 days across the Signify SF desk against the 114-day industry average for equivalent seniority. The desk runs proactive outbound at 70% of sourcing volume against passive senior candidates who face continuous outbound from every frontier lab and Series C+ scale-up in the cluster.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/our-specialisms/go/hire-senior-backend-engineer-graphql-san-francisco/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Our Specialisms\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/our-specialisms/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Go\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/our-specialisms/go/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Hire a Senior Backend Engineer for GraphQL API Architecture in San Francisco\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/our-specialisms/go/hire-senior-backend-engineer-graphql-san-francisco/#howto\\",\\n      \\"name\\": \\"How Signify Places a Senior Backend GraphQL Engineer in San Francisco\\",\\n      \\"description\\": \\"Signify Technology\'s process for placing a Senior Backend GraphQL Engineer across SF\'s four named employer categories inside a 25-day sprint.\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Map the profile to the correct SF employer category\\",\\n          \\"text\\": \\"SoMa AI Alley applied AI to Anthropic, Databricks, Harvey AI. Mission Bay biotech-AI to OpenAI-adjacent scale-ups. Mission District emerging AI to Thinking Machines Lab and Series A-B product AI. Financial District to enterprise SaaS and cybersecurity AI.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Calibrate compensation against SF bands\\",\\n          \\"text\\": \\"Senior base $200K-$310K, median $220K. Total comp $257K-$466K. Anthropic senior backend $300K-$490K, staff exceeding $600K. Series B-D scale-ups $200K-$275K base plus equity.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Run proactive outbound at 70% of sourcing\\",\\n          \\"text\\": \\"Target passive senior backend GraphQL candidates facing continuous outbound from every frontier lab and Series C+ scale-up in the cluster.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Close inside a 25-day sprint\\",\\n          \\"text\\": \\"Cap the loop at three rounds and 15 working days. Pre-empt counter-offers in week one against frontier-lab total-comp ceilings.\\"\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/it-s-time-to-know-your-worth-/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/it-s-time-to-know-your-worth-/"},"staticAttributes":{"rel":"canonical"}}],"/news/machine-learning-engineer-salary-benchmarks-us-market-2025-2026/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/machine-learning-engineer-salary-benchmarks-us-market-2025-2026/"},"staticAttributes":{"rel":"canonical"}}],"/news/the-guide-to-hiring-machine-learning-engineers-a-roadmap-for-technical-leaders/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/the-guide-to-hiring-machine-learning-engineers-a-roadmap-for-technical-leaders/"},"staticAttributes":{"rel":"canonical"}}],"/news/what-is-a-machine-learning-engineer/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/what-is-a-machine-learning-engineer/"},"staticAttributes":{"rel":"canonical"}}],"/news/hire-senior-ai-engineer-austin/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/hire-senior-ai-engineer-austin/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"hire-senior-ai-engineer-austin"}},{"id":"title","body":"Hire a Senior AI Engineer in Austin Across Silicon Hills","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire a Senior AI Engineer in Austin across The Domain, Parmer Lane, Downtown and Gigafactory clusters in 2026. Book a Signify call today."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"hire senior ai engineer austin, austin ai recruitment, silicon hills ai hiring, austin llm engineer, ai engineer salary austin"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/hire-senior-ai-engineer-austin/#service\\",\\n      \\"name\\": \\"Senior AI Engineer Recruitment in Austin, Texas\\",\\n      \\"serviceType\\": \\"Specialist Senior AI Engineer Recruitment\\",\\n      \\"description\\": \\"Specialist Senior AI Engineer recruitment across The Domain, Parmer Lane, Downtown and Gigafactory Southeast cluster
1s in Austin, Texas, calibrated to Q2 2026 compensation bands.\\",\\n      \\"provider\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      },\\n      \\"areaServed\\": {\\n        \\"@type\\": \\"City\\",\\n        \\"name\\": \\"Austin\\",\\n        \\"containedInPlace\\": {\\n          \\"@type\\": \\"State\\",\\n          \\"name\\": \\"Texas\\"\\n        }\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/logo.png\\",\\n      \\"address\\": {\\n        \\"@type\\": \\"PostalAddress\\",\\n        \\"streetAddress\\": \\"Prominent Pointe 1, Suite 295, 8310-1 N. Capital of Texas Highway\\",\\n        \\"addressLocality\\": \\"Austin\\",\\n        \\"addressRegion\\": \\"TX\\",\\n        \\"postalCode\\": \\"78731\\",\\n        \\"addressCountry\\": \\"US\\"\\n      },\\n      \\"areaServed\\": [\\n        {\\n          \\"@type\\": \\"City\\",\\n          \\"name\\": \\"Austin\\"\\n        },\\n        {\\n          \\"@type\\": \\"City\\",\\n          \\"name\\": \\"Round Rock\\"\\n        },\\n        {\\n          \\"@type\\": \\"City\\",\\n          \\"name\\": \\"Cedar Park\\"\\n        },\\n        {\\n          \\"@type\\": \\"City\\",\\n          \\"name\\": \\"Pflugerville\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/hire-senior-ai-engineer-austin/#faq\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What does a Senior AI Engineer earn in Austin in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Base salary runs $175,000 to $240,000 with average base at $198,000 per Axiom Recruit March 2026 and median total compensation at $210,000 per Levels.fyi. Meta Austin leads at $384,000 average total comp; Tesla AI pays $250,000 to $350,000 for senior roles.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Where do Austin\'s Senior AI Engineer roles concentrate geographically?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Four named clusters: The Domain and North Austin (78758, 78759) for enterprise SaaS at Indeed, IBM and Amazon; Parmer Lane and Silicon Hills North (78727, 78729) for hardware AI at Apple, AMD and Intel; Downtown and Sixth & Guadalupe (78701) for applied AI at Google, Meta and Oracle Waterloo; and Gigafactory Southeast (78725) for physical AI at Tesla, Saronic and Apptronik.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How does Austin compare to San Francisco for Senior AI Engineer roles?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Austin base sits roughly 15% to 20% below SF nominal but delivers stronger real purchasing power. Texas\'s zero state income tax adds $20K to $25K on a $210K base versus California\'s 13.3% top rate, and Austin cost of living runs 50% lower than SF. A $210K Austin salary provides more real spending power than $280K in SF.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How long does Signify take to place a Senior AI Engineer in Austin?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Median time-to-hire on Senior AI Engineer roles across the Austin desk runs 25 to 35 days against the 114-day industry average for equivalent seniority. The Signify Austin desk runs proactive outbound at 70% of sourcing volume against passive candidates at Austin-headquartered scale-ups and enterprise buyers.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Which Austin employers pay the highest Senior AI Engineer total compensation?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Meta Austin leads at $384,000 average total comp per Zen van Riel April 2026. Tesla AI pays $250,000 to $350,000 for senior roles. Oracle AI and Amazon Austin pay competitively at $200,000 to $300,000. Saronic and Apptronik pay defence-tech premium at the upper end of the Austin senior band ($240K+ base).\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/hire-senior-ai-engineer-austin/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Hire a Senior AI Engineer in Austin\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/hire-senior-ai-engineer-austin/#howto\\",\\n      \\"name\\": \\"How Signify Places a Senior AI Engineer in Austin\\",\\n      \\"description\\": \\"Signify Technology\'s process for placing a Senior AI Engineer across Austin\'s four named talent clusters inside a 25-day sprint.\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Map the profile to the correct Austin cluster\\",\\n          \\"text\\": \\"Enterprise SaaS to The Domain, hardware AI to Parmer Lane, applied AI to Downtown, physical AI to Gigafactory Southeast.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Calibrate compensation against Austin bands\\",\\n          \\"text\\": \\"Senior base $175K-$240K, average $198K, median TC $210K. Add 15% to 20% for cleared-role or defence-tech premium at Saronic and Apptronik.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Run proactive outbound at 70% of sourcing\\",\\n          \\"text\\": \\"Target passive senior candidates at Austin-headquartered scale-ups and enterprise buyers who never respond to standard recruiter outreach.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Close inside a 25-day sprint\\",\\n          \\"text\\": \\"Cap the loop at three rounds and 15 working days. Pre-empt counter-offers in week one.\\"\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/our-specialisms/scala/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Scala Recruitment experts. Tailored services connecting Scala professionals with competitive tech roles."}},{"id":"title","body":"Scala Developer Recruitment | Signify Technology Scala Recruitment","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"WebPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/our-specialisms/scala/#webpage\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/our-specialisms/scala/\\",\\n      \\"name\\": \\"Scala Recruitment\\",\\n      \\"description\\": \\"Scala Recruitment experts.\\",\\n      \\"isPartOf\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#website\\"\\n      },\\n      \\"about\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n      },\\n      \\"inLanguage\\": \\"en-GB\\",\\n      \\"breadcrumb\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/our-specialisms/scala/#breadcrumb\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/our-specialisms/scala/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Our Specialisms\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/our-specialisms/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Scala Recruitment\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"Organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/logo/signify-logo.png\\",\\n      \\"description\\": \\"Signify Technology is a global staffing agency connecting exceptional talent in emerging technologies across leadership, software engineering, data, and cloud. We are minority-owned (MSDUK certified) with offices in London and Austin.\\",\\n      \\"foundingDate\\": \\"2016\\",\\n      \\"founder\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"Ryan Adams\\",\\n        \\"jobTitle\\": \\"Founder & CEO\\",\\n        \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n      },\\n      \\"employee\\": [\\n        {\\n          \\"@type\\": \\"Person\\",\\n          \\"name\\": \\"Ryan Adams\\",\\n          \\"jobTitle\\": \\"Founder & CEO\\",\\n          \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n        }\\n      ],\\n      \\"address\\": [\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"3 Moorgate Place, 1st Floor\\",\\n          \\"addressLocality\\": \\"London\\",\\n          \\"postalCode\\": \\"EC2R 6EA\\",\\n          \\"addressCountry\\": \\"GB\\"\\n        },\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"Prominent Pointe 1, Suite 295, 8310-1 N. Capital of Texas Highway\\",\\n          \\"addressLocality\\": \\"Austin\\",\\n          \\"addressRegion\\": \\"TX\\",\\n          \\"postalCode\\": \\"78731\\",\\n          \\"addressCountry\\": \\"US\\"\\n        }\\n      ],\\n      \\"contactPoint\\": [\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+44 (0) 20 3865 0621\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"GB\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        },\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+1 (346) 374 0300\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"US\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        }\\n      ],\\n      \\"sameAs\\": [\\n        \\"https://www.linkedin.com/company/signify-technology\\",\\n        \\"https://twitter.com/signifytech\\",\\n        \\"https://www.facebook.com/signifytechnology\\"\\n      ],\\n      \\"knowsAbout\\": [\\n        \\"Scala recruitment\\",\\n        \\"Functional programming staffing\\",\\n        \\"Software engineering recruitment\\",\\n        \\"Data and cloud hiring\\",\\n        \\"Tech leadership placements\\"\\n      ],\\n      \\"memberOf\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"MSDUK\\",\\n        \\"url\\": \\"https://www.msduk.org.uk/\\"\\n      },\\n      \\"award\\": [\\n        \\"2023 Best Recruitment Company to Work For\\",\\n        \\"2022 Recruiter Awards Finalist\\"\\n      ],\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/our-specialisms/scala/#faqpage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What\u2019s your average time-to-hire for Scala roles?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"We typically place mid-to-senior Scala engineers in 6-8 weeks thanks to our proactive sourcing and streamlined interview process.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How do you assess a candidate\u2019s Scala proficiency?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Our in-house Scala experts design live coding on immutability, pattern matching, and Akka Actors, plus review Spark and Play Framework contributions.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Can you help build a Scala employer brand?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Yes - we host and co-sponsor Scala Days, regional meet-ups, and webinars, produce thought leadership content, and manage your presence in the Scala community.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Do you source both in-office and remote Scala talent?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Absolutely - our global network spans North America, Europe, and APAC, giving you access to diverse, remote-ready candidates.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What industries do your Scala candidates typically come from?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"We recruit for finance, big data, streaming platforms, telecommunications, and high-performance backend systems.\\"\\n          }\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/our-specialisms/scala/"},"staticAttributes":{"rel":"canonical"}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Scala recruitment, Scala developers, Scala engineers, hire Scala talent, Scala hiring solutions, Akka recruitment, Play Framework recruitment, Spark recruitment, functional programming recruitment, type safe design engineers, Scala contractor recruitment, Scala employer branding, Scala RPO, Scala contingency search, Scala retained search, Scala community hiring, Scala jobs, big data Scala recruitment, backend Scala recruitment, Signify Technology Scala"}},{"id":"robots","body":null,"name":"robots","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"User-agent: Google-Extended\\nAllow: /\\n\\nUser-agent: GPTBot\\nAllow: /\\n\\nUser-agent: *\\nDisallow:\\n"}}],"/news/the-future-of-ai-and-machine-learning-in-scala-recruitment/":[{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@type\\": \\"FAQPage\\",\\n  \\"mainEntity\\": [\\n    {\\n      \\"@type\\": \\"Question\\",\\n      \\"name\\": \\"What skills are most in demand for Scala developers in AI roles?\\",\\n      \\"acceptedA
1nswer\\": {\\n        \\"@type\\": \\"Answer\\",\\n        \\"text\\": \\"Employers prioritize experience with Apache Spark, MLlib, cloud platforms, and the ability to build and deploy machine learning models at scale.\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"Question\\",\\n      \\"name\\": \\"Why is Scala used in machine learning hiring?\\",\\n      \\"acceptedAnswer\\": {\\n        \\"@type\\": \\"Answer\\",\\n        \\"text\\": \\"Scala is often chosen for its speed, functional programming features, and deep integration with big data tools like Spark, making it ideal for large ML workloads.\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"Question\\",\\n      \\"name\\": \\"How can recruiters identify strong Scala + ML candidates?\\",\\n      \\"acceptedAnswer\\": {\\n        \\"@type\\": \\"Answer\\",\\n        \\"text\\": \\"Look for code examples, public repositories, and prior experience with real-time ML systems or cloud-based deployments. Avoid candidates who list tools without project evidence.\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"Question\\",\\n      \\"name\\": \\"What industries are hiring Scala developers with AI experience?\\",\\n      \\"acceptedA
1nswer\\": {\\n        \\"@type\\": \\"Answer\\",\\n        \\"text\\": \\"Finance, health tech, ad tech, and retail are leading sectors investing in Scala and AI-based systems to improve automation and prediction.\\"\\n      }\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/the-future-of-ai-and-machine-learning-in-scala-recruitment/"},"staticAttributes":{"rel":"canonical"}}],"/our-specialisms/rust/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Targeted recruitment solutions for Rust developers driving innovative tech projects. Your Rust Recruitment partner of choice!"}},{"id":"title","body":"Rust Developer Recruitment | Signify Technology Rust Recruitment","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"WebPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/our-specialisms/rust/#webpage\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/our-specialisms/rust/\\",\\n      \\"name\\": \\"Rust Recruitment\\",\\n      \\"description\\": \\"Targeted recruitment solutions for Rust developers driving innovative tech projects.\\",\\n      \\"isPartOf\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#website\\"\\n      },\\n      \\"about\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n      },\\n      \\"inLanguage\\": \\"en-GB\\",\\n      \\"breadcrumb\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/our-specialisms/rust/#breadcrumb\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/our-specialisms/rust/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Our Specialisms\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/our-specialisms/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Rust Recruitment\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"Organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/logo/signify-logo.png\\",\\n      \\"description\\": \\"Signify Technology is a global staffing agency connecting exceptional talent in emerging technologies across leadership, software engineering, data, and cloud. We are minority-owned (MSDUK certified) with offices in London and Austin.\\",\\n      \\"foundingDate\\": \\"2016\\",\\n      \\"founder\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"Ryan Adams\\",\\n        \\"jobTitle\\": \\"Founder & CEO\\",\\n        \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n      },\\n      \\"employee\\": [\\n        {\\n          \\"@type\\": \\"Person\\",\\n          \\"name\\": \\"Ryan Adams\\",\\n          \\"jobTitle\\": \\"Founder & CEO\\",\\n          \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n        }\\n      ],\\n      \\"address\\": [\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"3 Moorgate Place, 1st Floor\\",\\n          \\"addressLocality\\": \\"London\\",\\n          \\"postalCode\\": \\"EC2R 6EA\\",\\n          \\"addressCountry\\": \\"GB\\"\\n        },\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"Prominent Pointe 1, Suite 295, 8310-1 N. Capital of Texas Highway\\",\\n          \\"addressLocality\\": \\"Austin\\",\\n          \\"addressRegion\\": \\"TX\\",\\n          \\"postalCode\\": \\"78731\\",\\n          \\"addressCountry\\": \\"US\\"\\n        }\\n      ],\\n      \\"contactPoint\\": [\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+44 (0) 20 3865 0621\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"GB\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        },\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+1 (346) 374 0300\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"US\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        }\\n      ],\\n      \\"sameAs\\": [\\n        \\"https://www.linkedin.com/company/signify-technology\\",\\n        \\"https://twitter.com/signifytech\\",\\n        \\"https://www.facebook.com/signifytechnology\\"\\n      ],\\n      \\"knowsAbout\\": [\\n        \\"Scala recruitment\\",\\n        \\"Functional programming staffing\\",\\n        \\"Software engineering recruitment\\",\\n        \\"Data and cloud hiring\\",\\n        \\"Tech leadership placements\\"\\n      ],\\n      \\"memberOf\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"MSDUK\\",\\n        \\"url\\": \\"https://www.msduk.org.uk/\\"\\n      },\\n      \\"award\\": [\\n        \\"2023 Best Recruitment Company to Work For\\",\\n        \\"2022 Recruiter Awards Finalist\\"\\n      ],\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/our-specialisms/rust/#faqpage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What\u2019s your average time-to-hire for Rust roles?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"We typically place mid-to-senior Rust engineers in 6-8 weeks thanks to our proactive sourcing and streamlined interview process.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How do you assess a candidate\u2019s Rust proficiency?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Our in-house Rust experts conduct live coding on memory safety, ownership rules, and zero-cost abstractions, plus review open-source contributions.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Can you help build a Rust employer brand?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Yes - we co-sponsor RustConf, Rust Belt Rust, and local meet-ups, produce thought leadership content, and manage your presence in the Rust community.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Do you source both in-office and remote Rust talent?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Absolutely - our global network covers North America, Europe, and APAC, giving you access to diverse, remote-ready candidates.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What industries do your Rust candidates typically come from?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"We recruit for blockchain, systems programming, embedded, high-performance web services, gaming engines, and security-critical applications.\\"\\n          }\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Rust recruitment, Rust developers, Rust engineers, hire Rust talent, Rust hiring solutions, systems programming recruitment, embedded systems recruitment, blockchain Rust recruitment, high performance Rust recruitment, safe concurrency engineers, Rust contractor recruitment, Rust employer branding, Rust RPO, Rust contingency search, Rust retained search, RustConf hiring, Rust Belt Rust recruitment, Rust jobs, crates.io Rust recruitment, backend Rust recruitment, Signify Technology Rust"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/our-specialisms/rust/"},"staticAttributes":{"rel":"canonical"}},{"id":"robots","body":null,"name":"robots","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"User-agent: Google-Extended\\nAllow: /\\n\\nUser-agent: GPTBot\\nAllow: /\\n\\nUser-agent: *\\nDisallow:\\n"}}],"/news/scala-recruitment-build-vs-buy-decision-guide/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Scala recruitment decisions made clear. Compare internal upskilling vs hiring Scala engineers and choose the fastest, lowest risk path."}},{"id":"title","body":"Build vs Buy: Growing Scala Capability | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"scala recruitment, scala engineers, scala hiring, hire scala developers, functional programming recruitment"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/scala-recruitment-build-vs-buy-decision-guide/"},"staticAttributes":{"rel":"canonical"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"sameAs\\": [\\n        \\"https://www.linkedin.com/company/signify-technology\\",\\n        \\"https://twitter.com/signify_tech\\"\\n      ],\\n      \\"logo\\": {\\n        \\"@type\\": \\"ImageObject\\",\\n        \\"url\\": \\"https://www.signifytechnology.com/images/logo.png\\"\\n      },\\n      \\"description\\": \\"Specialist Scala and Functional Programming Recruitment Agency.\\"\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/build-vs-buy-growing-scala-capability/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Build vs Buy: Growing Scala Capability\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BlogPosting\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/build-vs-buy-growing-scala-capability/#article\\",\\n      \\"headline\\": \\"Scala Recruitment Build vs Buy Decision Guide\\",\\n      \\"description\\": \\"Scala recruitment decisions made clear. Compare internal upskilling vs hiring Scala engineers and choose the fastest, lowest risk path.\\",\\n      \\"author\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"Signify Technology Team\\",\\n        \\"jobTitle\\": \\"Scala Recruitment Specialists\\"\\n      },\\n      \\"publisher\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      },\\n      \\"datePublished\\": \\"2026-01-09\\",\\n      \\"dateModified\\": \\"2026-01-09\\",\\n      \\"mainEntityOfPage\\": \\"https://www.signifytechnology.com/news/build-vs-buy-growing-scala-capability\\"\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"name\\": \\"How to Decide Between Training Engineers or Hiring Scala Talent\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Audit Your Delivery Timeline\\",\\n          \\"text\\": \\"Assess if your product roadmap can withstand a significant drop in velocity. If you need to ship critical features in the next 6 months, training will not be fast enough.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Calculate the Hidden Costs\\",\\n          \\"text\\": \\"Factor in the non-delivery time of your senior mentors. Every hour a senior engineer spends teaching Scala concepts is an hour they are not coding, architecting, or solving business problems.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Define Your Technical Debt Tolerance\\",\\n          \\"text\\": \\"Determine if your system can handle the inevitable \'learning code\' that novices produce. If you are building a high-concurrency trading platform, the risk of error from upskilling engineers is often too high.\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Is it faster to train engineers in Scala than hire externally?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Training engineers in Scala typically takes 9 to 18 months to reach production level, while hiring experienced Scala engineers delivers immediate capability. While onboarding a new hire takes time, it is significantly faster than bridging the paradigm shift from Object-Oriented to Functional Programming.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How long does Scala upskilling take?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Scala upskilling usually requires sustained real-world exposure over multiple delivery cycles to achieve performance, concurrency, and functional design competence. Most Java developers need at least a year of immersion to write idiomatic, high-performance Scala.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What usually fails with internal Scala training?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Internal Scala training often fails due to underestimated learning curves, lack of expert mentorship, and delivery pressure overriding learning time. When deadlines loom, teams revert to familiar OOP patterns, resulting in a \'Java-in-Scala\' codebase that misses the benefits of the language.\\"\\n          }\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/golang-engineer-salary-us-2026/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/golang-engineer-salary-us-2026/"},"staticAttributes":{"rel":"canonical"}},{"id":"title","body":"Golang Engineer Salary US 2026 | Rates & Market Data","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Golang engineer salaries in the US range from $90,000 to $360,000+ in 2026. Full salary tables, contract rates, city breakdowns and market analysis from Signify Technology."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"golang engineer salary 2026, go developer salary US, golang contract rate, go engineer pay"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"golang-engineer-salary-us-2026"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Go Recruitment\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/our-specialisms/go/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Golang Engineer Salary US 2026\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"serviceType\\": \\"Go Engineer Recruitment\\",\\n      \\"provider\\": {\\n        \\"@type\\": \\"EmploymentAgency\\",\\n        \\"name\\": \\"Signify Technology\\",\\n        \\"url\\": \\"https://www.signifytechnology.com\\"\\n      },\\n      \\"name\\": \\"Golang Engineer Salary Data and Market Analysis\\"\\n    },\\n    {\\n      \\"@type\\": \\"Dataset\\",\\n      \\"name\\": \\"Golang Engineer Salary US 2026\\",\\n      \\"description\\": \\"Salary and contract rate data for Golang engineers in the US, covering San Francisco, New York, Seattle, Washington DC and Los Angeles. Sourced from Glassdoor, Salary.com, ZipRecruiter, Golang.cafe and Lemon.io.\\",\\n      \\"creator\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"Signify Technology\\",\\n        \\"url\\": \\"https://www.signifytechnology.com\\"\\n      },\\n      \\"temporalCoverage\\": \\"2025-2026\\",\\n      \\"spatialCoverage\\": \\"United States\\"\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What is the average Golang engineer salary in the US in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"The US national average for a Golang Software Engineer is $147,524 per year, per ZipRecruiter data from January 2026. Senior engineers earn $165,000-$230,000. Total compensation at FAANG companies and late-stage startups regularly exceeds $300,000 when equity and bonus are included. Glassdoor\'s 90th percentile for Senior Golang Engineers sits at $360,081.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What is the contract rate for a senior Go engineer in the US?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Senior Go engineers on independent or corp-to-corp contracts charge $100-$140/hr as of May 2026, annualising at $208,000-$291,000. W-2 agency contracts run $90-$127/hr. Rates are highest in San Francisco, New York and Seattle, and are rising fastest in AI infrastructure and cloud-native platform roles.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Do Golang engineers earn more than Python engineers?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Go developers in infrastructure and cloud roles earn 5-15% more than Python developers in comparable positions, per Golang.cafe\'s March 2026 salary guide. Go is particularly valued in cloud-native and DevOps contexts where performance and concurrency requirements matter. The premium is largest for engineers working on Kubernetes tooling and AI inference platforms.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Which Golang specialisation pays the most in 2026?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"AI inference platform infrastructure commands the highest premium in 2026 - a 25-30% uplift above the senior baseline. Engineers building Go services at the ML boundary - inference serving, model deployment pipelines, data ingestion - face very high demand and very limited supply. Kubernetes operator-level experience commands a 20-25% uplift.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What does total compensation look like for a Staff Golang Engineer?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Staff Backend Engineers and Principal Go Engineers in the US earn $230,000-$360,000+ in base salary. Add a 4-6% 401k match, 20-40% annual bonus and a significant equity package (RSUs). At FAANG companies, equity alone can exceed base salary in total compensation terms. Total employer cost including payroll taxes and benefits runs $300,000-$480,000+ per year.\\"\\n          }\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/our-specialisms/rust/hire-senior-distributed-systems-engineer-new-york/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/our-specialisms/rust/hire-senior-distributed-systems-engineer-new-york/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"hire-senior-distributed-systems-engineer-new-york"}},{"id":"title","body":"Hire a Senior Distributed Systems Engineer in New York","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire a Senior Distributed Systems Engineer in New York for Wall Street quant, frontier AI infrastructure and Big Tech roles in 2026. Book a call."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"hire senior distributed systems engineer new york, nyc distributed systems rust, wall street quant distributed systems, hedge fund software engineer nyc, low latency engineer new york"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/our-specialisms/rust/hire-senior-distributed-systems-engineer-new-york/#service\\",\\n      \\"name\\": \\"Senior Distributed Systems Engineer Recruitment in New York\\",\\n      \\"serviceType\\": \\"Specialist Senior Distributed Systems Engineer Recruitment\\",\\n      \\"description\\": \\"Specialist Senior Distributed Systems Engineer recruitment across NYC\'s Wall Street quant, frontier AI and Big Tech clusters, calibrated to Q2 2026 compensation bands.\\",\\n      \\"provider\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      },\\n      \\"areaServed\\": {\\n        \\"@type\\": \\"City\\",\\n        \\"name\\": \\"New York\\",\\n        \\"containedInPlace\\": {\\n          \\"@type\\": \\"State\\",\\n          \\"name\\": \\"New York\\"\\n        }\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/logo.png\\",\\n      \\"address\\": {\\n        \\"@type\\": \\"PostalAddress\\",\\n        \\"streetAddress\\": \\"Prominent Pointe 1, Suite 295, 8310-1 N. Capital of Texas Highway\\",\\n        \\"addressLocality\\": \\"Austin\\",\\n        \\"addressRegion\\": \\"TX\\",\\n        \\"postalCode\\": \\"78731\\",\\n        \\"addressCountry\\": \\"US\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/our-specialisms/rust/hire-senior-distributed-systems-engineer-new-york/#faq\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What does a Senior Distributed Systems Engineer earn in New York in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Base salary runs $200,000 to $400,000+ per Glassdoor April 2026 and Blind February 2026. Senior Quant Developer NYC averages $282,315 base with 90th percentile at $444,499. Wall Street quant firms deliver total compensation of $500K to $1M+ at Two Sigma, Citadel and Jane Street. Anthropic and OpenAI NYC pay $250K to $450K+ base plus equity.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Which NYC employers hire Senior Distributed Systems Engineers?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Wall Street quant firms (Two Sigma, Citadel, Hudson River Trading, Jane Street, D.E. Shaw, Millennium) at Financial District anchor the largest demand. Frontier AI labs (Anthropic Hudson Square, OpenAI SoHo) drive the fastest-growing segment. Big Tech (Google, Meta, Bloomberg, Palantir) rounds out the top employers.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Why does distributed systems sit under the Rust specialism at Signify?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Execution engines, order management systems and real-time risk engines at Wall Street quant firms are typically written in C++ or increasingly Rust per Quantt February 2026. The \'quants use Rust, devs use C++\' split is now dominant across Hudson River Trading, Citadel and Two Sigma.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What distributed systems specialisms are in demand in NYC in 2026?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Low-latency execution engines, real-time risk systems, high-throughput data pipelines, distributed consensus protocols, custom networking stacks and production inference infrastructure anchor the top NYC distributed systems specialisms in 2026.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How much do Wall Street quant firms pay Senior Distributed Systems Engineers?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Base salary runs $200,000 to $400,000+ with total compensation reaching $500,000 to $1,000,000+ at Two Sigma, Jane Street, Citadel and Hudson River Trading. Contract day rates hit $1,500 to $2,200 per KORE1 April 2026, the highest single-domain contract rate in the US market.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/our-specialisms/rust/hire-senior-distributed-systems-engineer-new-york/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Our Specialisms\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/our-specialisms/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Rust\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/our-specialisms/rust/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Hire a Senior Distributed Systems Engineer in New York\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/our-specialisms/rust/hire-senior-distributed-systems-engineer-new-york/#howto\\",\\n      \\"name\\": \\"How Signify Places a Senior Distributed Systems Engineer in New York\\",\\n      \\"description\\": \\"Signify Technology\'s process for placing a Senior Distributed Systems Engineer across NYC\'s three named employer categories inside a 25-day sprint.\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Map the profile to the correct NYC employer category\\",\\n          \\"text\\": \\"Wall Street quant execution engines and real-time risk to Two Sigma, Citadel, Hudson River Trading, Jane Street. Frontier AI infrastructure to Anthropic Hudson Square and OpenAI SoHo. Big Tech to Google, Meta, Bloomberg, Palantir.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Calibrate compensation against NYC bands\\",\\n          \\"text\\": \\"Senior base $200K-$400K+. Senior Quant Developer average $282K, 90th percentile $444K. Wall Street quant TC $500K-$1M+. Anthropic and OpenAI NYC $250K-$450K+ base plus equity.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Run proactive outbound at 70% of sourcing\\",\\n          \\"text\\": \\"Target passive senior candidates facing continuous outbound from every Wall Street quant firm and every frontier lab in the cluster.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Close inside a 25-day sprint\\",\\n          \\"text\\": \\"Cap the loop at three rounds and 15 working days. Pre-empt counter-offers in week one against Wall Street quant total-comp ceilings.\\"\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/scala-technical-interview-techniques-a-complete-guide/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Ace your Scala technical interview with this complete guide. Master core concepts, practice with real coding tests, and learn to answer common Scala interview questions with confidence."}},{"id":"title","body":"Scala Technical Interview Techniques: A Complete Guide","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/scala-technical-interview-techniques-a-complete-guide/"},"staticAttributes":{"rel":"canonical"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Organization\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organization\\",\\n      \\"name\\": \\"SIGNIFY TECHNOLOGY GROUP LTD\\",\\n      \\"legalName\\": \\"SIGNIFY TECHNOLOGY GROUP LTD\\",\\n      \\"alternateName\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/assets/images/logo.svg\\",\\n      \\"description\\": \\"Signify Technology is a global technology recruitment firm specialising in hiring advanced software engineering talent across functional programming, AI, machine learning, and data-focused roles.\\",\\n      \\"email\\": \\"[email protected]\\",\\n      \\"telephone\\": \\"+4420 3865 0621\\",\\n      \\"sameAs\\": [\\n        \\"https://www.linkedin.com/company/signify-technology/\\"\\n      ],\\n      \\"address\\": [\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"3 Moorgate Place, 1st Floor\\",\\n          \\"addressLocality\\": \\"London\\",\\n          \\"postalCode\\": \\"EC2R 6EA\\",\\n          \\"addressCountry\\": \\"GB\\"\\n        },\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"11044 Research Boulevard, Suite B-420\\",\\n          \\"addressLocality\\": \\"Austin\\",\\n          \\"addressRegion\\": \\"TX\\",\\n          \\"postalCode\\": \\"78759\\",\\n          \\"addressCountry\\": \\"US\\"\\n        }\\n      ],\\n      \\"areaServed\\": [\\n        {\\n          \\"@type\\": \\"Place\\",\\n          \\"name\\": \\"London\\"\\n        },\\n        {\\n          \\"@type\\": \\"Place\\",\\n          \\"name\\": \\"United Kingdom\\"\\n        },\\n        {\\n          \\"@type\\": \\"Place\\",\\n          \\"name\\": \\"Los Angeles\\"\\n        },\\n        {\\n          \\"@type\\": \\"Place\\",\\n          \\"name\\": \\"LA\\"\\n        },\\n        {\\n          \\"@type\\": \\"Place\\",\\n          \\"name\\": \\"Austin\\"\\n        },\\n        {\\n          \\"@type\\": \\"Place\\",\\n          \\"name\\": \\"Texas\\"\\n        },\\n        {\\n          \\"@type\\": \\"Place\\",\\n          \\"name\\": \\"California\\"\\n        },\\n        {\\n          \\"@type\\": \\"Place\\",\\n          \\"name\\": \\"USA\\"\\n        }\\n      ],\\n      \\"contactPoint\\": [\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+4420 3865 0621\\",\\n          \\"contactType\\": \\"Customer Services\\",\\n          \\"email\\": \\"[email protected]\\",\\n          \\"areaServed\\": [\\n            \\"London\\",\\n            \\"United Kingdom\\"\\n          ],\\n          \\"availableLanguage\\": [\\n            \\"English\\"\\n          ]\\n        },\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+1310 593 4503\\",\\n          \\"contactType\\": \\"Customer Services\\",\\n          \\"email\\": \\"[email protected]\\",\\n          \\"areaServed\\": [\\n            \\"Los Angeles\\",\\n            \\"California\\"\\n          ],\\n          \\"availableLanguage\\": [\\n            \\"English\\"\\n          ]\\n        },\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+1346 374 0300\\",\\n          \\"contactType\\": \\"Customer Services\\",\\n          \\"email\\": \\"[email protected]\\",\\n          \\"areaServed\\": [\\n            \\"Austin\\",\\n            \\"Texas\\"\\n          ],\\n          \\"availableLanguage\\": [\\n            \\"English\\"\\n          ]\\n        }\\n      ],\\n      \\"knowsAbout\\": [\\n        \\"Scala recruitment\\",\\n        \\"Rust recruitment\\",\\n        \\"Golang recruitment\\",\\n        \\"Go recruitment\\",\\n        \\"Advanced software engineering recruitment\\",\\n        \\"AI recruitment\\",\\n        \\"Data engineering recruitment\\",\\n        \\"Machine learning recruitment\\",\\n        \\"ML recruitment\\",\\n        \\"Artificial intelligence recruitment\\"\\n      ],\\n      \\"department\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"Signify Technology Sector Recruitment\\",\\n        \\"department\\": [\\n          {\\n            \\"@type\\": \\"Organization\\",\\n            \\"name\\": \\"Scala Recruitment\\"\\n          },\\n          {\\n            \\"@type\\": \\"Organization\\",\\n            \\"name\\": \\"Rust Recruitment\\"\\n          },\\n          {\\n            \\"@type\\": \\"Organization\\",\\n            \\"name\\": \\"Golang Recruitment\\"\\n          },\\n          {\\n            \\"@type\\": \\"Organization\\",\\n            \\"name\\": \\"Go Recruitment\\"\\n          },\\n          {\\n            \\"@type\\": \\"Organization\\",\\n            \\"name\\": \\"Advanced Software Engineering Recruitment\\"\\n          },\\n          {\\n            \\"@type\\": \\"Organization\\",\\n            \\"name\\": \\"AI Recruitment\\"\\n          },\\n          {\\n            \\"@type\\": \\"Organization\\",\\n            \\"name\\": \\"Data 
1Engineering Recruitment\\"\\n          },\\n          {\\n            \\"@type\\": \\"Organization\\",\\n            \\"name\\": \\"Machine Learning Recruitment\\"\\n          },\\n          {\\n            \\"@type\\": \\"Organization\\",\\n            \\"name\\": \\"ML Recruitment\\"\\n          },\\n          {\\n            \\"@type\\": \\"Organization\\",\\n            \\"name\\": \\"Artificial Intelligence Recruitment\\"\\n          }\\n        ]\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"WebSite\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#website\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"publisher\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"WebPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/scala-technical-interview-techniques-a-complete-guide/#webpage\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/news/scala-technical-interview-techniques-a-complete-guide/\\",\\n      \\"name\\": \\"Scala Technical Interview Techniques: A Complete Guide\\",\\n      \\"description\\": \\"Ace your Scala technical interview with this complete guide. Master core concepts, practice with real coding tests, and learn to answer common Scala interview questions with confidence.\\",\\n      \\"isPartOf\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#website\\"\\n      },\\n      \\"breadcrumb\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/news/scala-technical-interview-techniques-a-complete-guide/#breadcrumb\\"\\n      },\\n      \\"about\\": [\\n        \\"Scala technical interviews\\",\\n        \\"functional programming\\",\\n        \\"coding tests\\"\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/scala-technical-interview-techniques-a-complete-guide/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Scala Technical Interview Techniques: A Complete Guide\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"serviceType\\": \\"Scala Technical Interview Preparation\\",\\n      \\"provider\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      },\\n      \\"areaServed\\": [\\n        \\"United Kingdom\\",\\n        \\"United States\\",\\n        \\"Europe\\"\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"ItemList\\",\\n      \\"name\\": \\"Key Takeaways\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Understand Scala basics and functional programming principles\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Practice with real Scala coding tests and sample problems\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Learn to tackle technical assessments for Scala step by step\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Use targeted resources and mock interviews to boost confidence\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 5,\\n          \\"name\\": \\"Leverage Scala REPL and type inference for faster debugging\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"name\\": \\"How do I prepare for te
1chnical assessments for Scala?\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"text\\": \\"Structure your practice to cover breadth and depth. Choose platforms like HackerRank for quick puzzles, Codility for performance tests, or LeetCode for community discussion.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"text\\": \\"Warm-Up Problems: Solve easy tasks on arrays, strings, and basic recursion to build confidence.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"text\\": \\"Intermediate Challenges: Tackle tree traversals, graph searches, and dynamic programming to grasp algorithmic complexity.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"text\\": \\"Code Style & Tools: Use sbt to compile and run your code, apply Scalafmt for consistent formatting, and catch common issues with WartRemover.\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What are common Scala interview questions?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Interviewers often ask about collections, pattern matching, immutability, futures, and functional methods like map and flatMap. They may also probe monads, implicit conversions, and type inference.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How do technical assessments for Scala work?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"They range from timed online coding tests to take-home assignments that evaluate problem solving, code style, and concurrency patterns with Future or Akka.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What is a Scala coding test?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"A Scala coding test is a timed challenge where you write Scala code to solve algorithmic or domain-specific problems. Tests often cover tail recursion, pattern guards, and error handling.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How can I prepare for Scala technical interviews?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Study core topics, solve practice problems on platforms like HackerRank and LeetCode, review sample Scala interview questions, and follow best practices for modelling for design insights.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Where can I find sample Scala interview questions?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Many GitHub repos and blogs list up-to-date Scala interview questions and solutions, including official Scala community forums and the blog post \'How to improve your Scala programming skills\'.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"CreativeWork\\",\\n      \\"name\\": \\"Scala Technical Interview Techniques: A Complete Guide - TLDR\\",\\n      \\"abstract\\": \\"This guide covers key Scala technical interview techniques, including mastering core concepts, trial coding tests, and preparing for common Scala interview questions.\\"\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/career-pathways-and-growth-for-scala-developers/":[{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Organization\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organization\\",\\n      \\"name\\": \\"SIGNIFY TECHNOLOGY GROUP LTD\\",\\n      \\"legalName\\": \\"SIGNIFY TECHNOLOGY GROUP LTD\\",\\n      \\"alternateName\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/assets/images/logo.svg\\",\\n      \\"description\\": \\"Signify Technology is a global technology recruitment firm specialising in hiring advanced software engineering talent across functional programming, AI, machine learning, and data-focused roles.\\",\\n      \\"email\\": \\"[email protected]\\",\\n      \\"telephone\\": \\"+4420 3865 0621\\",\\n      \\"sameAs\\": [\\n        \\"https://www.linkedin.com/company/signify-technology/\\"\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"WebSite\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#website\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"publisher\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"WebPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/career-pathways-and-growth-for-scala-developers/#webpage\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/news/career-pathways-and-growth-for-scala-developers/\\",\\n      \\"name\\": \\"Career pathways and growth for Scala Developers\\",\\n      \\"description\\": \\"Discover the career path for a Scala developer, from junior roles to architect. This guide maps out key skills, growth opportunities in data engineering and microservices, and typical UK salary ranges to help you advance your career.\\",\\n      \\"isPartOf\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#website\\"\\n      },\\n      \\"breadcrumb\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/news/career-pathways-and-growth-for-scala-developers/#breadcrumb\\"\\n      },\\n      \\"about\\": [\\n        \\"Scala career pathways\\",\\n        \\"Scala professional development\\",\\n        \\"developer growth opportunities\\"\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/career-pathways-and-growth-for-scala-developers/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Career pathways and growth for Scala Developers\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"ItemList\\",\\n      \\"name\\": \\"Key Takeaways\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Learn typical Scala developer roles and salary bands\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Identify core skills that drive Scala career progression, such as functional programming paradigms\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Explore growth opportunities for Scala developers in different industries\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Map out a step-by-step Scala career progression plan\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 5,\\n          \\"name\\": \\"Access top resources for Scala professional development\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"name\\": \\"How do Scala developers find growth opportunities?\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"text\\": \\"Data 
1Engineering: Build ETL pipelines, transform datasets at scale, and optimise Spark or Flink jobs.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"text\\": \\"Microservices: Design scalable REST APIs or gRPC services using Play Framework and Akka HTTP.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"text\\": \\"Open-Source Contribution: Participate in Scala libraries, track issues, and submit pull requests to gain recognition.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"text\\": \\"Code Reviews & Architecture: Volunteer for reviews to learn different styles and debate architectural trade-offs.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"text\\": \\"Networking: Speak at Scala conferences, attend local meetups, and join online forums to expand your perspective.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"text\\": \\"Microservices Architecture: Gain hands-on experience decomposing monoliths and applying service-oriented patterns.\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What are typical Scala career progression steps?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Scala developers often move from Junior Scala Developer to Scala Developer, then to Senior Scala Developer and Lead Scala Engineer or Architect.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How can Scala developers find growth opportunities?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"They can seek roles in data engineering, backend systems, platform teams or open-source projects to build new skills.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What skills support Scala professional development?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Mastering functional programming, concurrency, streaming libraries (Akka, FS2) and build tools (sbt) boosts growth.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How long does it take to reach a Senior Scala Developer role?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"It typically takes 3\u20135 years of hands-on Scala experience and contributions to production projects.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Where can I find resources for Scala professional development?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Official Scala documentation, Coursera courses, community forums and GitHub projects provide ongoing learning.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"Dataset\\",\\n      \\"name\\": \\"Scala Career Progression Table\\",\\n      \\"description\\": \\"Data outlining typical Scala developer career stages, including experience ranges, salary bands in the UK, and focus areas.\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/news/career-pathways-and-growth-for-scala-developers/\\",\\n      \\"creator\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      },\\n      \\"license\\": \\"https://creativecommons.org/licenses/by/4.0/\\",\\n      \\"variableMeasured\\": [\\n        \\"Role\\",\\n        \\"Experience\\",\\n        \\"Salary Range (UK)\\",\\n        \\"Focus Areas\\"\\n      ],\\n      \\"includedInDataCatalog\\": {\\n        \\"@type\\": \\"DataCatalog\\",\\n        \\"name\\": \\"Scala Career Progression Data\\"\\n      },\\n      \\"distribution\\": {\\n        \\"@type\\": \\"DataDownload\\",\\n        \\"encodingFormat\\": \\"text/csv\\",\\n        \\"contentUrl\\": \\"https://www.signifytechnology.com/news/career-pathways-and-growth-for-scala-developers/#career-table\\"\\n      },\\n      \\"subjectOf\\": {\\n        \\"@type\\": \\"DataFeed\\",\\n        \\"name\\": \\"Scala Career Progression Feed\\",\\n        \\"dataFeedElement\\": [\\n          {\\n            \\"@type\\": \\"DataFeedItem\\",\\n            \\"item\\": {\\n              \\"@type\\": \\"Thing\\",\\n              \\"name\\": \\"Junior Scala Developer\\",\\n              \\"additionalProperty\\": [\\n                {\\n                  \\"@type\\": \\"PropertyValue\\",\\n                  \\"name\\": \\"Experience\\",\\n                  \\"value\\": \\"0\u20132 years\\"\\n                },\\n                {\\n                  \\"@type\\": \\"PropertyValue\\",\\n                  \\"name\\": \\"Salary Range (UK)\\",\\n                  \\"value\\": \\"\xa330k\u2013\xa345k\\"\\n                },\\n                {\\n                  \\"@type\\": \\"PropertyValue\\",\\n                  \\"name\\": \\"Focus Areas\\",\\n                  \\"value\\": \\"Code implementation, testing, debugging\\"\\n                }\\n              ]\\n            }\\n          },\\n          {\\n            \\"@type\\": \\"DataFeedItem\\",\\n            \\"item\\": {\\n              \\"@type\\": \\"Thing\\",\\n              \\"name\\": \\"Scala Developer\\",\\n              \\"additionalProperty\\": [\\n                {\\n                  \\"@type\\": \\"PropertyValue\\",\\n                  \\"name\\": \\"Experience\\",\\n                  \\"value\\": \\"2\u20134 years\\"\\n                },\\n                {\\n                  \\"@type\\": \\"PropertyValue\\",\\n                  \\"name\\": \\"Salary Range (UK)\\",\\n                  \\"value\\": \\"\xa345k\u2013\xa360k\\"\\n                },\\n                {\\n                  \\"@type\\": \\"PropertyValue\\",\\n                  \\"name\\": \\"Focus Areas\\",\\n                  \\"value\\": \\"Feature ownership, performance tuning\\"\\n                }\\n              ]\\n            }\\n          },\\n          {\\n            \\"@type\\": \\"DataFeedItem\\",\\n            \\"item\\": {\\n              \\"@type\\": \\"Thing\\",\\n              \\"name\\": \\"Senior Scala Developer\\",\\n              \\"additionalProperty\\": [\\n                {\\n                  \\"@type\\": \\"PropertyValue\\",\\n                  \\"name\\": \\"Experience\\",\\n                  \\"value\\": \\"4\u20136 years\\"\\n                },\\n                {\\n                  \\"@type\\": \\"PropertyValue\\",\\n                  \\"name\\": \\"Salary Range (UK)\\",\\n                  \\"value\\": \\"\xa360k\u2013\xa380k\\"\\n                },\\n                {\\n                  \\"@type\\": \\"PropertyValue\\",\\n                  \\"name\\": \\"Focus Areas\\",\\n                  \\"value\\": \\"Architecture, mentoring, best practices\\"\\n                }\\n              ]\\n            }\\n          },\\n          {\\n            \\"@type\\": \\"DataFeedItem\\",\\n            \\"item\\": {\\n              \\"@type\\": \\"Thing\\",\\n              \\"name\\": \\"Lead Scala Engineer\\",\\n              \\"additionalProperty\\": [\\n                {\\n                  \\"@type\\": \\"PropertyValue\\",\\n                  \\"name\\": \\"Experience\\",\\n                  \\"value\\": \\"6+ years\\"\\n                },\\n                {\\n                  \\"@type\\": \\"PropertyValue\\",\\n                  \\"name\\": \\"Salary Range (UK)\\",\\n                  \\"value\\": \\"\xa380k\u2013\xa3100k+\\"\\n                },\\n                {\\n                  \\"@type\\": \\"PropertyValue\\",\\n                  \\"name\\": \\"Focus Areas\\",\\n                  \\"value\\": \\"Team leadership, system design\\"\\n                }\\n              ]\\n            }\\n          }\\n        ]\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"CreativeWork\\",\\n      \\"name\\": \\"Career pathways and growth for Scala Developers - TLDR\\",\\n      \\"abstract\\": \\"TLDR; This article outlines clear career pathways and growth for Scala developers, from entry level roles to leadership positions, and highlights key skills and resources for professional development, Scala career ladder frameworks.\\"\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}},{"id":"title","body":"Career pathways and growth for Scala Developers","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Discover the career path for a Scala developer, from junior roles to architect. This guide maps out key skills, growth opportunities in data engineering and microservices, and typical UK salary ranges to help you advance your career."}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/career-pathways-and-growth-for-scala-developers/"},"staticAttributes":{"rel":"canonical"}}],"/news/best-coding-assessments-for-scala-recruitment/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire the best Scala developers with our guide to coding assessments. Compare top platforms like HackerRank and Codility, design effective technical tests, and learn how to evaluate functional programming skills."}},{"id":"title","body":"Best coding assessments for Scala Recruitment\\n","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/best-coding-assessments-for-scala-recruitment/"},"staticAttributes":{"rel":"canonical"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Organization\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organization\\",\\n      \\"name\\": \\"SIGNIFY TECHNOLOGY GROUP LTD\\",\\n      \\"legalName\\": \\"SIGNIFY TECHNOLOGY GROUP LTD\\",\\n      \\"alternateName\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/assets/images/logo.svg\\",\\n      \\"description\\": \\"Signify Technology is a global technology recruitment firm specialising in hiring advanced software engineering talent across functional programming, AI, machine learning, and data-focused roles.\\",\\n      \\"email\\": \\"[email protected]\\",\\n      \\"telephone\\": \\"+4420 3865 0621\\",\\n      \\"sameAs\\": [\\n        \\"https://www.linkedin.com/company/signify-technology/\\"\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"WebSite\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#website\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"publisher\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"WebPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/best-coding-assessments-for-scala-recruitment/#webpage\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/news/best-coding-assessments-for-scala-recruitment/\\",\\n      \\"name\\": \\"Best coding assessments for Scala Recruitment\\",\\n      \\"description\\": \\"Hire the best Scala developers with our guide to coding assessments. Compare top platforms like HackerRank and Codility, design effective technical tests, and learn how to evaluate functional programming skills.\\",\\n      \\"isPartOf\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#website\\"\\n      },\\n      \\"breadcrumb\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/news/best-coding-assessments-for-scala-recruitment/#breadcrumb\\"\\n      },\\n      \\"about\\": [\\n        \\"Scala coding assessments\\",\\n        \\"technical tests for recruitment\\",\\n        \\"functional programming evaluation\\"\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/best-coding-assessments-for-scala-recruitment/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Best coding assessments for Scala Recruitment\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"ItemList\\",\\n      \\"name\\": \\"Key Takeaways\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Choose assessment types that test algorithms, functional programming, and real-world tasks\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Compare HackerRank, Codility, LeetCode, and Exercism for Scala coding challenges\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Design custom technical tests for Scala that reflect your co
1debase and workflow\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Use clear scoring rubrics and automated metrics for evaluating Scala skills\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 5,\\n          \\"name\\": \\"Incorporate JVM profiling for performance tests\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 6,\\n          \\"name\\": \\"Follow best practices to ensure fair, valid, and engaging assessments\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"name\\": \\"How do I design technical tests for Scala recruitment?\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"text\\": \\"Align tasks with your codebase and workflow. Outline key skills and libraries in your stack, then model tasks on real JVM workloads.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"text\\": \\"Write small modules that reflect actual features candidates will maintain.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"text\\": \\"Provide clear instructions with sample input/output and expected edge-case behaviour.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"text\\": \\"Set realistic time limits that match your typical sprint or task duration.\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What are the best coding assessments for Scala recruitment?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"The best assessments combine algorithm puzzles, functional programming exercises, and real-world tasks on platforms like HackerRank and Codility.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How can Scala coding challenges evaluate candidate skills?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"They measure problem solving, code quality, and knowledge of functional concepts such as immutability and pattern matching, plus algorithmic complexity.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What should technical tests for Scala include?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Include algorithmic exercises, concurrency tasks with Futures, and domain-specific problems like data streaming.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How do you evaluate Scala skills effectively?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Use automated grading for correctness, peer review for style, performance metrics for efficiency, and JVM memory profiling.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Where can I find Scala coding challenges?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"You can find Scala challenges on HackerRank, LeetCode, Codility, and open-source sites like Exercism.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"Dataset\\",\\n      \\"name\\": \\"Scala Coding Assessment Platforms\\",\\n      \\"description\\": \\"Comparison of platforms offering Scala coding assessments, including challenge types, pricing, and key benefits.\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/news/best-coding-assessments-for-scala-recruitment/\\",\\n      \\"creator\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      },\\n      \\"license\\": \\"https://creativecommons.org/licenses/by/4.0/\\",\\n      \\"variableMeasured\\": [\\n        \\"Platform\\",\\n        \\"Challenge Type\\",\\n        \\"Pricing\\",\\n        \\"Pros\\"\\n      ],\\n      \\"includedInDataCatalog\\": {\\n        \\"@type\\": \\"DataCatalog\\",\\n        \\"name\\": \\"Scala Coding Assessment Data\\"\\n      },\\n      \\"distribution\\": {\\n        \\"@type\\": \\"DataDownload\\",\\n        \\"encodingFormat\\": \\"text/csv\\",\\n        \\"contentUrl\\": \\"https://www.signifytechnology.com/news/best-coding-assessments-for-scala-recruitment/#platform-table\\"\\n      },\\n      \\"subjectOf\\": {\\n        \\"@type\\": \\"DataFeed\\",\\n        \\"name\\": \\"Scala Assessment Platforms Feed\\",\\n        \\"dataFeedElement\\": [\\n          {\\n            \\"@type\\": \\"DataFeedItem\\",\\n            \\"item\\": {\\n              \\"@type\\": \\"Thing\\",\\n              \\"name\\": \\"HackerRank\\",\\n              \\"additionalProperty\\": [\\n                {\\n                  \\"@type\\": \\"PropertyValue\\",\\n                  \\"name\\": \\"Challenge Type\\",\\n                  \\"value\\": \\"Algorithm & FP puzzles\\"\\n                },\\n                {\\n                  \\"@type\\": \\"PropertyValue\\",\\n                  \\"name\\": \\"Pricing\\",\\n                  \\"value\\": \\"Free/Paid\\"\\n                },\\n                {\\n                  \\"@type\\": \\"PropertyValue\\",\\n                  \\"name\\": \\"Pros\\",\\n                  \\"value\\": \\"Auto grading, code templates, large question library\\"\\n                }\\n              ]\\n            }\\n          },\\n          {\\n            \\"@type\\": \\"DataFeedItem\\",\\n            \\"item\\": {\\n              \\"@type\\": \\"Thing\\",\\n              \\"name\\": \\"Codility\\",\\n              \\"additionalProperty\\": [\\n                {\\n                  \\"@type\\": \\"PropertyValue\\",\\n                  \\"name\\": \\"Challenge Type\\",\\n                  \\"value\\": \\"Code tasks with performance tests\\"\\n                },\\n                {\\n                  \\"@type\\": \\"PropertyValue\\",\\n                  \\"name\\": \\"Pricing\\",\\n                  \\"value\\": \\"Paid\\"\\n                },\\n                {\\n                  \\"@type\\": \\"PropertyValue\\",\\n                  \\"name\\": \\"Pros\\",\\n                  \\"value\\": \\"Performance tests, plagiarism checks, detailed reports, JVM profiling\\"\\n                }\\n              ]\\n            }\\n          },\\n          {\\n            \\"@type\\": \\"DataFeedItem\\",\\n            \\"item\\": {\\n              \\"@type\\": \\"Thing\\",\\n              \\"name\\": \\"LeetCode\\",\\n              \\"additionalProperty\\": [\\n                {\\n                  \\"@type\\": \\"PropertyValue\\",\\n                  \\"name\\": \\"Challenge Type\\",\\n                  \\"value\\": \\"Algorithm puzzles\\"\\n                },\\n                {\\n                  \\"@type\\": \\"PropertyValue\\",\\n                  \\"name\\": \\"Pricing\\",\\n                  \\"value\\": \\"Freemium\\"\\n                },\\n                {\\n                  \\"@type\\": \\"PropertyValue\\",\\n                  \\"name\\": \\"Pros\\",\\n                  \\"value\\": \\"Active community, discussion forums, frequent updates\\"\\n                }\\n              ]\\n            }\\n          },\\n          {\\n            \\"@type\\": \\"DataFeedItem\\",\\n            \\"item\\": {\\n              \\"@type\\": \\"Thing\\",\\n              \\"name\\": \\"Exercism\\",\\n              \\"additionalProperty\\": [\\n                {\\n                  \\"@type\\": \\"PropertyValue\\",\\n                  \\"name\\": \\"Challenge Type\\",\\n                  \\"value\\": \\"Mentored exercises\\"\\n                },\\n                {\\n                  \\"@type\\": \\"PropertyValue\\",\\n                  \\"name\\": \\"Pricing\\",\\n                  \\"value\\": \\"Free\\"\\n                },\\n                {\\n                  \\"@type\\": \\"PropertyValue\\",\\n                  \\"name\\": \\"Pros\\",\\n                  \\"value\\": \\"Mentor feedback, real code reviews, career tracks\\"\\n                }\\n              ]\\n            }\\n          }\\n        ]\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"CreativeWork\\",\\n      \\"name\\": \\"Best Coding Assessments for Scala Recruitment - TLDR\\",\\n      \\"abstract\\": \\"TLDR; This guide reviews the best coding assessments for Scala recruitment. It covers key assessment types, top platforms, custom test design, and Scala code evaluation metrics to help you hire skilled Scala developers.\\"\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/rust-engineer-salary-us-2026/":[{"id":"title","body":"Rust Engineer Salary and Rates in the US 2026","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":" Rust engineer salary and contract rates for the US in 2026, with metro bands, experience progression, skills premiums and W2 versus C2C cost data.\\n"}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"rust engineer salary, rust developer salary us, rust contract rates, rust engineer salary 2026\\
1n"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/rust-engineer-salary-us-2026/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"rust-engineer-salary-us-2026"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"name\\": \\"Rust Engineer Salary Benchmarking and Recruitment\\",\\n      \\"serviceType\\": \\"Technology staffing and salary benchmarking\\",\\n      \\"provider\\": {\\n        \\"@type\\": \\"EmploymentAgency\\",\\n        \\"name\\": \\"Signify Technology\\",\\n        \\"url\\": \\"https://www.signifytechnology.com/\\"\\n      },\\n      \\"areaServed\\": \\"United States\\",\\n      \\"description\\": \\"Rust engineer salary and contract-rate benchmarking, with placement across permanent, contract and C2C terms in the US market.\\"\\n    },\\n    {\\n      \\"@type\\": \\"Dataset\\",\\n      \\"name\\": \\"Rust Engineer Salary and Contract Rates, US 2026\\",\\n      \\"description\\": \\"US Rust engineer salary data for 2026 by metro, experience level, skills premium, total compensation, industry sub-sector, and contract versus permanent structure.\\",\\n      \\"temporalCoverage\\": \\"2026\\",\\n      \\"spatialCoverage\\": {\\n        \\"@type\\": \\"Place\\",\\n        \\"name\\": \\"United States\\"\\n      },\\n      \\"creator\\": {\\n        \\"@type\\": \\"EmploymentAgency\\",\\n        \\"name\\": \\"Signify Technology\\"\\n      },\\n      \\"variableMeasured\\": [\\n        \\"Base salary by metro\\",\\n        \\"Salary by experience level\\",\\n        \\"Skills premium percentage\\",\\n        \\"Total compensation and benefits\\",\\n        \\"Salary by industry sub-sector\\",\\n        \\"Contract versus permanent rates\\"\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"description\\": \\"Global technology staffing agency specialising in Scala, Rust, Go and AI engineering talent across the US and UK.\\"\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"name\\": \\"How to Benchmark a Rust Engineer Offer\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Fix the title definition\\",\\n          \\"text\\": \\"Separate application, systems, blockchain and infrastructure Rust before quoting a band.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Weight metro and sub-sector\\",\\n          \\"text\\": \\"Apply the San Francisco, New York and Seattle premiums and the crypto, fintech and AI-infra bands rather than a single national figure.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Model total cost, not base\\",\\n          \\"text\\": \\"Add the 30 to 50 per cent employer burden for permanent, or the 20 to 50 per cent C2C premium for contract.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Pressure-test against acceptance\\",\\n          \\"text\\": \\"Benchmark high enough to clear the 80.8 per cent acceptance rate and pre-empt the counter-offer.\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What is the average Rust engineer salary in the US?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"The average Rust engineer base salary in the US is roughly $147,521, per Glassdoor 2026, with most engineers between $115,000 and $191,000. Generalist aggregates that mix in junior and application roles report lower figures near $96,000.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Which US city pays Rust engineers the most?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"The San Francisco Bay Area pays Rust engineers the most, reaching $280,000 to $405,000 in total compensation at frontier-AI labs. New York follows, with startups averaging $212,000 and senior roles reaching $240,000 to $320,000-plus.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How much do Rust contractors charge in 2026?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Rust contractors charge roughly $53 an hour on a W2 average, rising to $65 to $80 for specialists, while independent C2C Web3 Rust averages $78 an hour and ranges from $41 to $143. C2C rates run 20 to 50 per cent above W2.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Are Rust salaries rising in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Rust salaries are rising modestly against a stabilising market, where Robert Half projects US technology pay up 1.6 per cent on average in 2026. Rust defies that average as a scarce specialist skill, with blockchain, AI-infrastructure and systems roles commanding the steepest premiums.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Rust Engineer Salary and Rates in the US 2026\\"\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/ai-engineer-vs-machine-learning-engineer-salary-role-split-2026/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/ai-engineer-vs-machine-learning-engineer-salary-role-split-2026/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"ai-engineer-vs-machine-learning-engineer-salary-role-split-2026"}},{"id":"title","body":"AI Engineer vs ML Engineer: Salary & Role Split 2026","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"AI Engineer vs Machine Learning Engineer: different roles, different salaries. Signify Technology breaks down the split, the overlap and what each pays in 2026."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"AI engineer vs machine learning engineer, AI engineer salary 2026, ML engineer salary, AI engineer responsibilities, machine learning engineer role\\n"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Article\\",\\n      \\"headline\\": \\"AI Engineer vs Machine Learning Engineer: The Salary and Role Split in 2026\\",\\n      \\"description\\": \\"AI Engineer and Machine Learning Engineer are not interchangeable titles. Signify Technology breaks down the role difference, salary comparison and hiring strategy for both profiles in 2026.\\",\\n      \\"author\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"[placeholder]\\"\\n      },\\n      \\"publisher\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"Signify Technology\\",\\n        \\"url\\": \\"https://www.signifytechnology.com\\"\\n      },\\n      \\"datePublished\\": \\"2026-05-23\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/news/ai-engineer-vs-machine-learning-engineer-salary-role-split-2026/\\"\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Tech Recruitment Specialisms\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/our-specialisms/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"AI Engineer vs Machine Learning Engineer 2026\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"name\\": \\"How to Brief an AI Engineer vs Machine Learning Engineer Search\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Define the primary output\\",\\n          \\"text\\": \\"If the role\'s primary deliverable is a production system, brief an AI Engineer. If it\'s a model achieving measurable performance, brief an ML Engineer.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Map the stack\\",\\n          \\"text\\": \\"AI Engineer roles require inference infrastru
1cture experience. ML Engineer roles require training infrastructure experience. Roles requiring both are staff-level positions.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Set the compensation range before going to market\\",\\n          \\"text\\": \\"Senior AI Engineers earn $175,000-$260,000. Senior ML Engineers earn $165,000-$240,000. MLOps-capable engineers at either title command a 25-40% premium.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Engage a specialist recruiter\\",\\n          \\"text\\": \\"Generalist recruiters cannot distinguish between an engineer who has called an AI API and one who has built a production inference cluster.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 5,\\n          \\"name\\": \\"Move fast after final interview\\",\\n          \\"text\\": \\"Both profiles interview at multiple companies simultaneously. Offers extended within 24-48 hours close at materially higher rates than those delayed by approval cycles.\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What is the difference between an AI Engineer and a Machine Learning Engineer?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"An AI Engineer builds and maintains the production systems that deploy and serve AI models - inference APIs, model serving infrastructure, RAG pipelines. A Machine Learning Engineer builds and trains the models themselves, focusing on model performance, evaluation and training pipelines. The roles overlap significantly but the primary technical charter is distinct.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Which pays more in 2026: AI Engineer or ML Engineer?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"AI Engineers in production infrastructure roles earn slightly more than ML Engineers at equivalent seniority, with senior AI Engineers earning $175,000-$260,000 versus $165,000-$240,000 for senior ML Engineers in the US. The premium reflects the scarcity of engineers who can build production-grade inference systems. MLOps-capable engineers at either title command a 25-40% premium above the baseline.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Is an AI Engineer the same as a data scientist?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"No. A data scientist\'s primary output is insight and analysis; an AI Engineer\'s primary output is a production system. Data scientists frequently transition into ML engineering as companies need models in production, but the transition requires developing software engineering depth - testing, CI/CD, containerisation - that pure data science work does not demand.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How long does it take to hire a senior ML Engineer in 2026?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Senior ML Engineer roles take 30% longer to fill than traditional software engineering roles. The skills gap between candidates who can train models and candidates who can maintain them in production is significant. Most experienced ML Engineers are passive candidates - currently employed and receiving multiple approaches per quarter.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What is the hardest AI/ML sub-skill to hire for in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Inference optimisation - the ability to run large models efficiently in production using tools like vLLM and TensorRT - is the hardest sub-skill to source in the current market. Engineers who can fine-tune LLMs and build RAG architecture at infrastructure level command the top of the AI Engineer salary range in every US market.\\"\\n          }\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/building-a-strong-scala-employer-brand/":[{"id":"title","body":"Building a strong Scala employer brand\\n","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Struggling to hire Scala developers? Learn how to build a powerful employer brand that attracts top talent, reduces hiring costs, and boosts retention with proven recruitment marketing tactics."}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/building-a-strong-scala-employer-brand/"},"staticAttributes":{"rel":"canonical"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Organization\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organization\\",\\n      \\"name\\": \\"SIGNIFY TECHNOLOGY GROUP LTD\\",\\n      \\"legalName\\": \\"SIGNIFY TECHNOLOGY GROUP LTD\\",\\n      \\"alternateName\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/assets/images/logo.svg\\",\\n      \\"description\\": \\"Signify Technology is a global technology recruitment firm specialising in hiring advanced software engineering talent across functional programming, AI, machine learning, and data-focused roles.\\",\\n      \\"email\\": \\"[email protected]\\",\\n      \\"telephone\\": \\"+4420 3865 0621\\",\\n      \\"sameAs\\": [\\n        \\"https://www.linkedin.com/company/signify-technology/\\"\\n      ],\\n      \\"address\\": [\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"3 Moorgate Place, 1st Floor\\",\\n          \\"addressLocality\\": \\"London\\",\\n          \\"postalCode\\": \\"EC2R 6EA\\",\\n          \\"addressCountry\\": \\"GB\\"\\n        },\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"11044 Research Boulevard, Suite B-420\\",\\n          \\"addressLocality\\": \\"Austin\\",\\n          \\"addressRegion\\": \\"TX\\",\\n          \\"postalCode\\": \\"78759\\",\\n          \\"addressCountry\\": \\"US\\"\\n        }\\n      ],\\n      \\"areaServed\\": [\\n        {\\n          \\"@type\\": \\"Place\\",\\n          \\"name\\": \\"London\\"\\n        },\\n        {\\n          \\"@type\\": \\"Place\\",\\n          \\"name\\": \\"United Kingdom\\"\\n        },\\n        {\\n          \\"@type\\": \\"Place\\",\\n          \\"name\\": \\"Los Angeles\\"\\n        },\\n        {\\n          \\"@type\\": \\"Place\\",\\n          \\"name\\": \\"LA\\"\\n        },\\n        {\\n          \\"@type\\": \\"Place\\",\\n          \\"name\\": \\"Austin\\"\\n        },\\n        {\\n          \\"@type\\": \\"Place\\",\\n          \\"name\\": \\"Texas\\"\\n        },\\n        {\\n          \\"@type\\": \\"Place\\",\\n          \\"name\\": \\"California\\"\\n        },\\n        {\\n          \\"@type\\": \\"Place\\",\\n          \\"name\\": \\"USA\\"\\n        }\\n      ],\\n      \\"contactPoint\\": [\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+4420 3865 0621\\",\\n          \\"contactType\\": \\"Customer Services\\",\\n          \\"email\\": \\"[email protected]\\",\\n          \\"areaServed\\": [\\n            \\"London\\",\\n            \\"United Kingdom\\"\\n          ],\\n          \\"availableLanguage\\": [\\n            \\"English\\"\\n          ]\\n        },\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+1310 593 4503\\",\\n          \\"contactType\\": \\"Customer Services\\",\\n          \\"email\\": \\"[email protected]\\",\\n          \\"areaServed\\": [\\n            \\"Los Angeles\\",\\n            \\"California\\"\\n          ],\\n          \\"availableLanguage\\": [\\n            \\"English\\"\\n          ]\\n        },\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+1346 374 0300\\",\\n          \\"contactType\\": \\"Customer Services\\",\\n          \\"email\\": \\"[email protected]\\",\\n          \\"areaServed\\": [\\n            \\"Austin\\",\\n            \\"Texas\\"\\n          ],\\n          \\"availableLanguage\\": [\\n            \\"English\\"\\n          ]\\n        }\\n      ],\\n      \\"knowsAbout\\": [\\n        \\"Scala recruitment\\",\\n        \\"Rust recruitment\\",\\n        \\"Golang recruitment\\",\\n        \\"Go recruitment\\",\\n        \\"Advanced software engineering recruitment\\",\\n        \\"AI recruitment\\",\\n        \\"Data engineering recruitment\\",\\n        \\"Machine learning recruitment\\",\\n        \\"ML recruitment\\",\\n        \\"Artificial intelligence recruitment\\"\\n      ],\\n      \\"department\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"Signify Technology Sector Recruitment\\",\\n        \\"department\\": [\\n          {\\n            \\"@type\\": \\"Organization\\",\\n            \\"name\\": \\"Scala Recruitment\\"\\n          },\\n          {\\n            \\"@type\\": \\"Organization\\",\\n            \\"name\\": \\"Rust Recruitment\\"\\n          },\\n          {\\n            \\"@type\\": \\"Organization\\",\\n            \\"name\\": \\"Golang Recruitment\\"\\n          },\\n          {\\n            \\"@type\\": \\"Organization\\",\\n            \\"name\\": \\"Go Recruitment\\"\\n          },\\n          {\\n            \\"@type\\": \\"Organization\\",\\n            \\"name\\": \\"Advanced Software Engineering Recruitment\\"\\n          },\\n          {\\n            \\"@type\\": \\"Organization\\",\\n            \\"name\\": \\"AI Recruitment\\"\\n          },\\n          {\\n            \\"@type\\": \\"Organization\\",\\n            \\"name\\": \\"Data 
1Engineering Recruitment\\"\\n          },\\n          {\\n            \\"@type\\": \\"Organization\\",\\n            \\"name\\": \\"Machine Learning Recruitment\\"\\n          },\\n          {\\n            \\"@type\\": \\"Organization\\",\\n            \\"name\\": \\"ML Recruitment\\"\\n          },\\n          {\\n            \\"@type\\": \\"Organization\\",\\n            \\"name\\": \\"Artificial Intelligence Recruitment\\"\\n          }\\n        ]\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"WebSite\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#website\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"publisher\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"WebPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/building-a-strong-scala-employer-brand/#webpage\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/news/building-a-strong-scala-employer-brand/\\",\\n      \\"name\\": \\"Building a strong Scala employer brand\\",\\n      \\"description\\": \\"Struggling to hire Scala developers? Learn how to build a powerful employer brand that attracts top talent, reduces hiring costs, and boosts retention with proven recruitment marketing tactics.\\",\\n      \\"isPartOf\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#website\\"\\n      },\\n      \\"breadcrumb\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/news/building-a-strong-scala-employer-brand/#breadcrumb\\"\\n      },\\n      \\"about\\": [\\n        \\"Scala employer branding\\",\\n        \\"recruitment marketing\\",\\n        \\"developer attraction\\"\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/building-a-strong-scala-employer-brand/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Building a strong Scala employer brand\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"serviceType\\": \\"Scala Employer Branding & Recruitment Marketing\\",\\n      \\"provider\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      },\\n      \\"areaServed\\": [\\n        \\"United Kingdom\\",\\n        \\"United States\\",\\n        \\"Europe\\"\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"ItemList\\",\\n      \\"name\\": \\"Key Takeaways\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Define a clear Scala employer branding message that highlights your mission and tech stack\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Showcase attracting top Scala talent through real team stories and developer-friendly perks\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Use Scala recruitment marketing channels like developer blogs, meetups, and social media\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Measure brand reach and candidate quality with key metrics\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 5,\\n          \\"name\\": \\"Refine strategies based on feedback and analytics\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 6,\\n          \\"name\\": \\"Establish a strong Employee Value Proposition to boost employer of choice status\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"name\\": \\"How can I use Scala recruitment marketing?\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"text\\": \\"Reach developers where they learn and network by mixing content and community. Publish deep dives on Akka Streams or FS2 on your developer blog.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"text\\": \\"Targeted Ads: Run LinkedIn ads to niche Scala groups or sponsor posts on Reddit\u2019s r/scala.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"text\\": \\"Podcasts & Newsletters: Sponsor Scala-focused podcasts or email newsletters to 
1stay top of mind.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"text\\": \\"GitHub Demos: Open-source bite-sized tutorials \u2014 \'Building a simple Play Framework API\' \u2014 so candidates can fork and explore.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"text\\": \\"Email Campaigns: Send event invites, tech talk recordings, and job alerts to subscribers. This multi-channel mix builds awareness, drives applications, and begins the candidate relationship before formal outreach.\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What is Scala employer branding?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Scala employer branding is the process of promoting your company\u2019s culture, values, and technical expertise to appeal to Scala developers and enhance candidate experience.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How do you attract top Scala talent?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"You attract top Scala talent by sharing authentic developer stories, offering learning budgets, and engaging in Scala communities to position yourself as an employer of choice.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What is Scala recruitment marketing?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Scala recruitment marketing uses targeted content, events, and ads to build awareness among Scala developers and strengthen your talent pipeline.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Why is employer branding important for Scala recruitment?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Strong employer branding differentiates your company and reduces time to hire by drawing interest from qualified Scala candidates, improving brand advocacy.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How do you measure employer brand success?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Measure brand success by tracking application rates, candidate source quality, social engagement, and employee retention, plus monitoring Glassdoor ratings.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"CreativeWork\\",\\n      \\"name\\": \\"Building a Strong Scala Employer Brand - TLDR\\",\\n      \\"abstract\\": \\"TLDR Building a Strong Scala Employer Brand involves clear messaging, authentic culture showcases, targeted recruitment marketing, and data-driven refinement to attract and retain top Scala talent, and craft a compelling Employee Value Proposition.\\"\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/golang-engineer-recruitment-los-angeles/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/golang-engineer-recruitment-los-angeles/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"golang-engineer-recruitment-los-angeles"}},{"id":"title","body":"Golang Engineer Recruitment Los Angeles | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire senior Golang engineers in Los Angeles Metro. Signify Technology covers Silicon Beach, El Segundo and the aerospace corridor with Go-specific technical vetting."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"golang engineer recruitment Los Angeles, go developer jobs LA, hire golang engineer Silicon Beach, go engineer aerospace LA\\n"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Go Recruitment\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/our-specialisms/go/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Golang Engineer Recruitment Los Angeles\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"serviceType\\": \\"Go Engineer Recruitment\\",\\n      \\"provider\\": {\\n        \\"@type\\": \\"EmploymentAgency\\",\\n        \\"name\\": \\"Signify Technology\\",\\n        \\"url\\": \\"https://www.signifytechnology.com\\"\\n      },\\n      \\"areaServed\\": {\\n        \\"@type\\": \\"City\\",\\n        \\"name\\": \\"Los Angeles Metro\\",\\n        \\"containsPlace\\": [\\n          {\\n            \\"@type\\": \\"Place\\",\\n            \\"name\\": \\"Santa Monica / Silicon Beach\\"\\n          },\\n          {\\n            \\"@type\\": \\"Place\\",\\n            \\"name\\": \\"El Segundo / Aerospace Corridor\\"\\n          }\\n        ]\\n      },\\n      \\"name\\": \\"Senior Golang Engineer Recruitment - Los Angeles Metro\\"\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What do senior Go engineers earn in Los Angeles in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Senior Go engineers in the LA metro earn $175,000-$235,000 in base salary. Gaming companies like Riot Games and consumer technology firms like Snap set the compensation ceiling - Riot\'s confirmed staff-level Go roles run $183,300-$256,600. Total compensation including bonus and equity can exceed $300,000 for the strongest candidates.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Which companies in Los Angeles hire Golang engineers?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Confirmed LA-area Golang employers include Snap Inc. (Santa Monica), Riot Games (staff Go roles at $183,300-$256,600), Tapcart, Aiva Health, Vast Space (Long Beach), Picogrid (El Segundo) and Northwood Space. As of March 2026, 34 open Golang roles were listed on Glassdoor LA.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What is the aerospace corridor Go market in Los Angeles?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"The El Segundo and Long Beach aerospace corridor is an emerging Go employer cluster driven by commercial space companies. Vast Space, Picogrid and Northwood Space all use Go for infrastructure and control systems. This cluster is growing fast but is not yet well-covered by specialist Go recruiters, meaning employers who move early have access to engineering profiles that are not heavily contested.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Does Signify Technology recruit Golang engineers in Los Angeles?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Signify Technology places senior Go engineers across Silicon Beach, El Segundo and greater Los Angeles. The Signify team runs Go-specific technical vetting and has engaged the aerospace and commercial space cluster in El Segundo and Long Beach, which most specialist recruiters have not yet reached.\\"\\n          }\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/golang-job-market-2026-what-hiring-managers-are-paying/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/golang-job-market-2026-what-hiring-managers-are-paying/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"golang-job-market-2026-what-hiring-managers-are-paying"}},{"id":"title","body":"The Golang Job Market in 2026: What Are You Paying?","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Senior Go engineers in the US earn $165,000-$300,000 in 2026. Signify Technology breaks down salaries, contract rates and market trends by city."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"golang job market 2026, go engineer salary, golang hiring trends, go developer pay, golang market analysis"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Article\\",\\n      \\"headline\\": \\"The Golang Job Market in 2026: What Hiring Managers Are Actually Paying\\",\\n      \\"description\\": \\"Senior Go engineers in the US earn $165,000-$300,000 in 2026. Full salary breakdown by city, contract rates, skills premium data and market forecast.\\",\\n      \\"author\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"[placeholder]\\"\\n      },\\n      \\"publisher\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"Signify Technology\\",\\n        \\"url\\": \\"https://www.signifytechnology.com\\"\\n      },\\n      \\"datePublished\\": \\"2026-05-23\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/news/golang-job-market-2026-what-hiring-managers-are-paying/\\"\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Go Recruitment\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/our-specialisms/go/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"The Golang Job Market in 2026\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What is the average Go engineer salary in the US in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"The US national average for a Golang Software Engineer is $147,524 per year, per ZipRecruiter data from January 2026. Senior engineers earn $165,000-$230,000. Total compensation at FAANG companies regularly exceeds $300,000 when equity and bonus are included. Glassdoor\'s 90th percentile for Senior Golang Engineers sits at $360,081 as of December 2025.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Which US city pays Go engineers the most in 2026?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"San Francisco Bay Area pays the most, with senior Go engineers earning $200,000-$270,000 in base salary and total compensation at FAANG companies regularly exceeding $300,000. New York is the only market where fintech demand pushes salaries above San Francisco equivalents for the same seniority level, particularly in trading technology and financial systems infrastructure roles.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Is the Go engineering market candidate-driven or employer-driven in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"The market is firmly candidate-driven at the senior level. Go roles take 30% longer to fill than Java or Python backend roles because genuine concurrency proficiency is rare. Counter-offers are near-universal at the $200,000+ band. Engineers with Kubernetes specialisation and distributed systems experience command particular leverage and typically receive multiple approaches per quarter.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What Go specialisation commands the highest salary uplift?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"AI inference platform infrastructure commands a 25-30% uplift above the senior baseline in 2026, per Lemon.io\'s May 2026 rate guide. Engineers building Go services at the ML boundary face very high demand and very limited supply. Kubernetes operator-level experience adds 20-25%. The premium for infrastru
1cture-boundary work over generalist CRUD Go is widening and is projected to continue through 2027.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How long does it take to hire a senior Go engineer in 2026?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Senior Go roles take 30% longer to fill than equivalent Java or Python backend positions. Most experienced candidates are passive - employed, well-compensated and receiving multiple approaches per quarter. A specialist recruiter with warm Go community networks reduces time-to-shortlist meaningfully. Employers who delay search or rely on generalist recruiters consistently lose candidates to faster-moving competitors.\\"\\n          }\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/what-is-a-rust-engineer/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/what-is-a-rust-engineer/"},"staticAttributes":{"rel":"canonical"}},{"id":"title","body":"What Is a Rust Engineer? Role, Skills and Career Guide","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"What a Rust engineer does, the skills and tools they use, the career path from junior to principal, and how the role differs from a C++ engineer."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"what is a rust engineer, rust engineer role, rust engineer career path, rust vs c++ engineer\\n"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"what-is-a-rust-engineer"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"name\\": \\"Rust Engineer Recruitment\\",\\n      \\"serviceType\\": \\"Technology staffing and recruitment\\",\\n      \\"provider\\": {\\n        \\"@type\\": \\"EmploymentAgency\\",\\n        \\"name\\": \\"Signify Technology\\",\\n        \\"url\\": \\"https://www.signifytechnology.com/\\"\\n      },\\n      \\"areaServed\\": \\"United States\\",\\n      \\"description\\": \\"Placement of Rust engineers across application, systems, blockchain and embedded roles in the US market.\\"\\n    },\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"description\\": \\"Global technology staffing agency specialising in Scala, Rust, Go and AI engineering talent across the US and UK.\\"\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"name\\": \\"How to Become a Rust Engineer\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Build systems fundamentals\\",\\n          \\"text\\": \\"Gain a computer-science degree or equivalent production experience with solid systems-programming fundamentals.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Master ownership and borrowing\\",\\n          \\"text\\": \\"Develop demonstrated Rust proficiency in ownership, borrowing and lifetimes.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Ship and contribute publicly\\",\\n          \\"text\\": \\"Build production-grade projects and contribute to open-source crates to evidence real Rust on GitHub.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Target an adopting domain\\",\\n          \\"text\\": \\"Focus on defence, aerospace, gaming, embedded, blockchain or infrastru
1cture teams adopting Rust.\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How much does a Rust engineer make in the US?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"A Rust engineer averages roughly $147,500 in the US, with most between $115,000 and $191,000. Juniors earn $75,000 to $120,000, seniors $170,000 to $280,000, and staff or principal engineers $250,000 to $320,000-plus base. Blockchain, fintech and AI-infrastructure roles pay the most.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Is Rust a good career in 2026?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Rust is a strong career in 2026, having ranked the most admired programming language at 72.4 per cent in the 2025 Stack Overflow Developer Survey. Demand outpaces supply, enterprise adoption is expanding roles, and BLS projects 15 per cent growth for software developers through 2034.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Do Rust engineers work remotely?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Rust engineers work remotely often, and a large share of the pool works fully remote regardless of address. Remote roles pay roughly 85 to 95 per cent of on-site US salaries, and remote policy is the single biggest lever on the candidate pipeline.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Is being a Rust engineer hard?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Rust has a famously steep learning curve, and engineers wrestle with the compiler until ownership and borrowing become intuitive. That strictness is the payoff, since it forces safe, reliable code and fewer runtime errors and production incidents.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What is the difference between a Rust developer and a Rust engineer?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"The titles are used interchangeably in US postings, though engineer often signals broader architecture and systems-design scope, while developer can imply an implementation focus. Job scope, application versus systems versus blockchain, matters far more than the noun.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"What Is a Rust Engineer?\\"\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/how-to-hire-a-senior-rust-engineer-in-2026/":[{"id":"title","body":"How to Hire a Senior Rust Engineer in 2026","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire a Senior Rust Engineer in 4-6 weeks. Application vs systems profiles, screening rubrics and salary bands for London, NYC and Berlin."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"hire senior Rust engineer, Rust recruitment, senior Rust developer hiring, Rust hiring 2026\\n"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/how-to-hire-a-senior-rust-engineer-in-2026/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"how-to-hire-a-senior-rust-engineer-in-2026"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"WebPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/how-to-hire-a-senior-rust-engineer-in-2026/\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/news/how-to-hire-a-senior-rust-engineer-in-2026/\\",\\n      \\"name\\": \\"How to Hire a Senior Rust Engineer in 2026\\",\\n      \\"description\\": \\"Hire a Senior Rust Engineer in 4-6 weeks. Application vs systems profiles, screening rubrics and salary bands for London, NYC and Berlin.\\",\\n      \\"inLanguage\\": \\"en-GB\\",\\n      \\"datePublished\\": \\"2026-06-23\\",\\n      \\"dateModified\\": \\"2026-06-23\\",\\n      \\"isPartOf\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#website\\"\\n      },\\n      \\"about\\": {\\n        \\"@type\\": \\"Thing\\",\\n        \\"name\\": \\"Senior Rust Engineer Recruitment\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/our-specialisms/rust/#service\\",\\n      \\"name\\": \\"Senior Rust Engineer Recruitment\\",\\n      \\"serviceType\\": \\"Specialist Rust Recruitment\\",\\n      \\"provider\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      },\\n      \\"areaServed\\": [\\n        {\\n          \\"@type\\": \\"City\\",\\n          \\"name\\": \\"London\\"\\n        },\\n        {\\n          \\"@type\\": \\"City\\",\\n          \\"name\\": \\"New York\\"\\n        },\\n        {\\n          \\"@type\\": \\"City\\",\\n          \\"name\\": \\"Berlin\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"areaServed\\": [\\n        \\"GB\\",\\n        \\"US\\",\\n        \\"DE\\"\\n      ],\\n      \\"knowsAbout\\": [\\n        \\"Rust\\",\\n        \\"Senior Rust Engineer Recruitment\\",\\n        \\"Systems Rust\\",\\n        \\"Application Rust\\",\\n        \\"Tokio\\",\\n        \\"Unsafe Rust\\",\\n        \\"FFI\\"\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What\'s the difference between application-Rust and systems-Rust senior engineers?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Application-Rust engineers build production web services with Axum, Tokio and sqlx, rarely touching unsafe blocks. Systems-Rust engineers write FFI bindings, audit unsafe code, and port C++ services into safe Rust. The base salary gap runs 15-25% per KORE1 May 2026.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How long does a Senior Rust placement take through a specialist recruiter?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Specialist Rust recruitment closes senior application-layer roles in 4-6 weeks and senior systems-layer roles in 6-10 weeks. In-house equivalent searches typically run 8-14 weeks per KORE1 May 2026.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Should we demand 10 years of Rust experience for a senior role?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"No. Rust 1.0 shipped in May 2015. Demanding 10+ years narrows the realistic candidate pool to perhaps a few hundred engineers globally, most already employed at Mozilla, Cloudflare, Parity and AWS. Rewrite to \'8+ years systems programming, 2+ years production Rust\'.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What salary band closes a Senior Rust offer in London in 2026?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Senior Rust London base salaries run \xa395,000-\xa3130,000 typical, with the 90th percentile at \xa3169,086 per Glassdoor London June 2026. Systems-Rust positions price 15-25% above application-Rust at the same seniority.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How do crypto counter-offers affect non-crypto Rust hiring?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Crypto and Web3 employers regularly clear $200,000-$300,000 base for senior Rust. Two Sigma NYC publicly posts $165,000-$300,000 base. Non-crypto employers reframe around stability, regulated-industry exposure and IC ladder progression, and pre-negotiate at week one.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What single question separates senior from mid-level Rust signal?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Ask candidates to describe the last unsafe block they wrote. Senior engineers name a specific use case, state the safety contract, describe the isolation strategy, and mention audit tooling. Mid-level engineers either cannot recall a case or treat unsafe as forbidden.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"How to Hire a Senior Rust Engineer in 2026\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"name\\": \\"How to Hire a Senior Rust Engineer in 2026\\",\\n      \\"totalTime\\": \\"P28D\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Name the profile, not the language\\",\\n          \\"text\\": \\"Write the brief to name what the engineer will build in their first quarter. Application-Rust and systems-Rust profiles differ by $50,000-$100,000 in base salary.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Engage a specialist Rust recruitment partner\\",\\n          \\"text\\": \\"Specialist partners maintain relationships across Rust London, Berlin, NYC meetups, RustJobs.dev and the GitHub contributor surface for tokio, serde, hyper and axum.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Calibrate the compensation band with current 2026 data\\",\\n          \\"text\\": \\"Senior Rust London \xa395,000-\xa3130,000 typical. US senior $170,000-$280,000 base. Berlin \u20ac95,000-\u20ac135,000 typical. Systems Rust runs 15-25% above application Rust.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Build a screening rubric for unsafe, async and ownership\\",\\n          \\"text\\": \\"Replace leetcode-style screens with a real PR code review, a system design problem grounded in production constraints, and a discussion of the candidate\'s last unsafe block.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 5,\\n          \\"name\\": \\"Run a three-round technical loop with calibrated interviewers\\",\\n          \\"text\\": \\"System design (45 min), real PR code review with concurrency and lifetime bugs (60 min), incident response walk-through (30 min). Calibrate before the loop opens.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 6,\\n          \\"name\\": \\"Pre-empt the counter-offer in week one\\",\\n          \\"text\\": \\"Surface the candidate\'s current package, equity vesting, refresher grant timing and competing offers during the first conversation. Crypto and FAANG counters regularly clear $280,000.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 7,\\n          \\"name\\": \\"Close on a defined timeline with named decision-makers\\",\\n          \\"text\\": \\"Pre-agree offer-issuance timeline, name the executive who signs off, and hit it. Offers within 48 hours of final interview accept at roughly twice the rate of offers taking more than a week.\\"\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/hire-senior-rust-engineer-london/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/hire-senior-rust-engineer-london/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"hire-senior-rust-engineer-london"}},{"id":"title","body":"Hire a Senior Rust Engineer in London","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire a Senior Rust Engineer in London across Shoreditch fintech, Cloudflare South Bank and the King\'s Cross AI cluster. 4-6 week closes."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"hire Senior Rust Engineer London, Rust recruitment London, London Rust developer\\n"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"WebPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/hire-senior-rust-engineer-london/\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/news/hire-senior-rust-engineer-london/\\",\\n      \\"name\\": \\"Hire a Senior Rust Engineer in London\\",\\n      \\"description\\": \\"Hire a Senior Rust Engineer in London across Shoreditch fintech, Cloudflare South Bank and the King\'s Cross AI cluster. 4-6 week closes.\\",\\n      \\"inLanguage\\": \\"en-GB\\",\\n      \\"datePublished\\": \\"2026-06-23\\",\\n      \\"dateModified\\": \\"2026-06-23\\"\\n    },\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"name\\": \\"Senior Rust Engineer Recruitment London\\",\\n      \\"serviceType\\": \\"Specialist Rust Recruitment\\",\\n      \\"provider\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      },\\n      \\"areaServed\\": {\\n        \\"@type\\": \\"City\\",\\n        \\"name\\": \\"London\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"areaServed\\": \\"London\\",\\n      \\"address\\": {\\n        \\"@type\\": \\"PostalAddress\\",\\n        \\"addressLocality\\": \\"London\\",\\n        \\"addressCountry\\": \\"GB\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What does a Senior Rust Engineer earn in London in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Senior Rust London base salaries run \xa395,000-\xa3130,000 typical with the 90th percentile at \xa3169,086 per Glassdoor London June 2026. Systems-Rust prices 15-25% above application-Rust.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Which London neighbourhoods cluster Rust hiring?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Shoreditch and Old Street (fintech and crypto), South Bank and Westminster (infrastructure, Cloudflare), and King\'s Cross Knowledge Quarter (AI inference and developer tooling, DeepMind and Vercel).\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How long does a senior London Rust placement take?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Specialist Rust recruitment closes senior London application-layer roles in 4-6 weeks and senior systems-layer roles in 6-10 weeks per KORE1 May 2026. In-house equivalent runs 8-14 weeks.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Which London employers use Rust at scale?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Wise in FX pricing, Monzo in cryptography, Cloudflare across Pingora, Workers and Quiche, Wintermute and Tether in low-latency crypto, DeepMind in inference, Meta London in source control, Vercel London in Turbopack and SWC.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Is the London Rust market candidate-driven in 2026?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Yes. ManpowerGroup UK 2025 reports 94% of tech employers facing skills shortages. The senior London Rust pool runs particularly tight at the systems end, with elevated counter-offers from Cloudflare and crypto employers.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Hire a Senior Rust Engineer in London\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"name\\": \\"How to Hire a Senior Rust Engineer in London\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Decide application vs systems profile\\",\\n          \\"text\\": \\"Application-Rust (Axum, sqlx, Tokio web services) versus systems-Rust (unsafe, FFI, custom allocators). The two pools differ by \xa320,000-\xa340,000 in base salary.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Map the cluster\\",\\n          \\"text\\": \\"Shoreditch fintech, South Bank Cloudflare, or King\'s Cross AI. Each cluster has distinct candidate-pool characteristics and commute corridors.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Calibrate compensation\\",\\n          \\"text\\": \\"Senior Rust London \xa395,000-\xa3130,000 typical, 90th percentile \xa3169,086 per Glassdoor June 2026. Apply skills premium (unsafe + FFI +18-35%, Web3 +29-76%).\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Source through specialist channels\\",\\n          \\"text\\": \\"Rust London meetup, EuroRust alumni, RustJobs.dev plus GitHub contribution graphs for tokio, serde, hyper, axum.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 5,\\n          \\"name\\": \\"Pre-empt counter-offers\\",\\n          \\"text\\": \\"Cloudflare and crypto counters regularly clear \xa3150,000+ base. Surface current package and competing offers at first conversation.\\"\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/our-specialisms/go/hire-senior-devops-engineer-kubernetes-austin/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/our-specialisms/go/hire-senior-devops-engineer-kubernetes-austin/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"hire-senior-devops-engineer-kubernetes-austin"}},{"id":"title","body":"Hire a Senior DevOps Engineer for Kubernetes in Austin","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire a Senior DevOps Engineer for Kubernetes platforms in Austin for applied AI, SaaS and enterprise cloud roles in 2026. Book a Signify call."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"hire senior devops engineer kubernetes austin, austin kubernetes platform engineer, sre kubernetes austin, austin devops go engineer, applied ai devops austin"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/our-specialisms/go/hire-senior-devops-engineer-kubernetes-austin/#service\\",\\n      \\"name\\": \\"Senior Kubernetes DevOps Engineer Recruitment in Austin\\",\\n      \\"serviceType\\": \\"Specialist Senior DevOps Engineer Recruitment\\",\\n      \\"description\\": \\"Specialist Senior Kubernetes DevOps Engineer recruitment across Austin\'s Big Tech, applied AI and enterprise SaaS clusters, calibrated to Q2 2026 compensation bands.\\",\\n      \\"provider\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      },\\n      \\"areaServed\\": {\\n        \\"@type\\": \\"City\\",\\n        \\"name\\": \\"Austin\\",\\n        \\"containedInPlace\\": {\\n          \\"@type\\": \\"State\\",\\n          \\"name\\": \\"Texas\\"\\n        }\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/logo.png\\",\\n      \\"address\\": {\\n        \\"@type\\": \\"PostalAddress\\",\\n        \\"streetAddress\\": \\"Prominent Pointe 1, Suite 295, 8310-1 N. Capital of Texas Highway\\",\\n        \\"addressLocality\\": \\"Austin\\",\\n        \\"addressRegion\\": \\"TX\\",\\n        \\"postalCode\\": \\"78731\\",\\n        \\"addressCountry\\": \\"US\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/our-specialisms/go/hire-senior-devops-engineer-kubernetes-austin/#faq\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What does a Senior Kubernetes DevOps Engineer earn in Austin in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Base salary runs $160,000 to $230,000 for senior tier with 6 to 10 years\' production Kubernetes experience. Kubernetes specialism adds a 10% to 15% premium. Google Austin senior DevOps sits at $210K to $290K base plus RSUs. Applied AI scale-ups pay $170K to $230K base plus meaningful equity upside.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Which Austin employers hire Senior Kubernetes DevOps Engineers?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Google (Downtown), Meta (Downtown), Oracle (Waterloo Park HQ) and Indeed (Domain) anchor the Big Tech demand. Applied AI scale-ups building on Anthropic and OpenAI production APIs drive the fastest-growing segment. Enterprise SaaS platforms building Kubernetes multi-tenant infrastructure round out the top employer categories.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Why does Kubernetes DevOps sit under the Go specialism at Signify?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Kubernetes itself is written in Go, and the wider CNCF ecosystem (Prometheus, Helm, Terraform, Docker, Istio) is Go. Senior DevOps engineers moving beyond Bash, YAML and existing tooling to build Kubernetes operators, custom controllers and Prometheus exporters work in Go.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What Kubernetes specialisms are in demand in Austin in 2026?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Kubernetes operator development, custom controller design, Helm chart authoring, Prometheus and observability tooling, service mesh (Istio, Linkerd, Cilium) and Kubernetes networking (CNI, eBPF) anchor the top Austin Kubernetes DevOps specialisms. Cilium Tetragon eBPF-based security observability is the fastest-growing niche.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How long does it take Signify to place a Senior Kubernetes DevOps Engineer in Austin?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Median time-to-hire runs 25 to 35 days across the Signify Austin desk against the 114-day industry average for equivalent seniority. The desk runs proactive outbound at 70% of sourcing volume against passive senior candidates.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/our-specialisms/go/hire-senior-devops-engineer-kubernetes-austin/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Our Specialisms\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/our-specialisms/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Go\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/our-specialisms/go/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Hire a Senior DevOps Engineer for Kubernetes Platforms in Austin\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/our-specialisms/go/hire-senior-devops-engineer-kubernetes-austin/#howto\\",\\n      \\"name\\": \\"How Signify Places a Senior Kubernetes DevOps Engineer in Austin\\",\\n      \\"description\\": \\"Signify Technology\'s process for placing a Senior Kubernetes DevOps Engineer across Austin\'s three named employer categories inside a 25-day sprint.\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Map the profile to the correct Austin employer category\\",\\n          \\"text\\": \\"Big Tech Go platform engineering to Google, Meta, Oracle, Indeed. Applied AI scale-ups building on Anthropic and OpenAI APIs for the fastest-growing segment. Enterprise SaaS multi-tenant Kubernetes infrastructure.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Calibrate compensation against Austin bands\\",\\n          \\"text\\": \\"Senior base $160K-$230K with Kubernetes specialism adding 10% to 15% premium. Google Austin senior DevOps $210K-$290K base plus RSUs. Applied AI scale-ups $170K-$230K base plus equity.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Run proactive outbound at 70% of sourcing\\",\\n          \\"text\\": \\"Target passive senior candidates facing continuous outbound from Google, Meta, Oracle, Indeed and Series B-D applied AI scale-ups.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Close inside a 25-day sprint\\",\\n          \\"text\\": \\"Cap the loop at three rounds and 15 working days. Pre-empt counter-offers in week one against Big Tech RSU packages.\\"\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/hire-senior-rust-engineer-berlin/":[{"id":"title","body":"Hire a Senior Rust Engineer in Berlin","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/hire-senior-rust-engineer-berlin/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"hire-senior-rust-engineer-berlin"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"WebPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/hire-senior-rust-engineer-berlin/\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/news/hire-senior-rust-engineer-berlin/\\",\\n      \\"name\\": \\"Hire a Senior Rust Engineer in Berlin\\",\\n      \\"description\\": \\"Hire a Senior Rust Engineer in Berlin across Mitte Web3, Friedrichshain climate-tech and Charlottenburg enterprise. \u20ac95,000-\u20ac135,000 base.\\",\\n      \\"inLanguage\\": \\"en-GB\\",\\n      \\"datePublished\\": \\"2026-06-23\\",\\n      \\"dateModified\\": \\"2026-06-23\\"\\n    },\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"name\\": \\"Senior Rust Engineer Recruitment Berlin\\",\\n      \\"serviceType\\": \\"Specialist Rust Recruitment\\",\\n      \\"provider\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      },\\n      \\"areaServed\\": {\\n        \\"@type\\": \\"City\\",\\n        \\"name\\": \\"Berlin\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"areaServed\\": \\"Berlin\\",\\n      \\"address\\": {\\n        \\"@type\\": \\"PostalAddress\\",\\n        \\"addressLocality\\": \\"Berlin\\",\\n        \\"addressCountry\\": \\"DE\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What does a Senior Rust Engineer earn in Berlin 
1in 2026?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Senior Rust Berlin base salaries run \u20ac95,000-\u20ac135,000 typical. Jobicy Germany senior band reaches \u20ac98,000-\u20ac147,000. Salary trajectory across seniority levels reaches \u20ac120,099-\u20ac339,785 per Glassdoor Berlin.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Which Berlin neighbourhoods cluster Rust hiring?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Mitte and Kreuzberg (Web3, Parity, Ferrous Systems), Friedrichshain and Prenzlauer Berg (climate tech and scaleups), Charlottenburg and City West (enterprise R&D, Mozilla, AWS Berlin, Microsoft Berlin).\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Which Berlin employers use Rust at scale?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Parity Technologies Deutschland GmbH across Polkadot and Substrate, Ferrous Systems across Ferrocene, Langfuse, deepset, Jina AI and n8n in AI infrastructure, Mozilla, AWS Firecracker and Microsoft Berlin in corporate R&D.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How long does a senior Berlin Rust placement take?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Specialist Rust recruitment closes senior Berlin roles in 6-10 weeks against 12-20 weeks via in-house process. In-house searches frequently stall due to candidate scarcity at the systems-Rust end.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Is Rust adoption in Berlin growing or static?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Growing but from a small base. Wolf-Tech 2026 confirms Rust adoption remains a minority choice in Berlin. Parity Technologies, Ferrous Systems and 190+ AI startups drive continued expansion at the systems and Web3 ends.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Hire a Senior Rust Engineer in Berlin\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"name\\": \\"How to Hire a Senior Rust Engineer in Berlin\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Decide the cluster\\",\\n          \\"text\\": \\"Mitte-Kreuzberg Web3 and developer tooling, Friedrichshain climate tech, or Charlottenburg enterprise R&D. Each cluster runs a distinct compensation and candidate-pool profile.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Calibrate against Parity and Ferrous Systems anchors\\",\\n          \\"text\\": \\"Parity Technologies sets the European Web3 Rust anchor. Ferrous Systems sets the safety-critical toolchain anchor. Berlin senior base \u20ac95,000-\u20ac135,000 typical.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Source via Rust Berlin and EuroRust alumni\\",\\n          \\"text\\": \\"Specialist meetups plus the EuroRust alumni network surface senior systems-Rust candidates active in the European open-source contributor pool.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Plan for 6-10 week close timelines\\",\\n          \\"text\\": \\"Berlin Rust adoption remains a minority choice with thin senior pool. Specialist searches close in 6-10 weeks against 12-20 weeks in-house.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 5,\\n          \\"name\\": \\"Manage EU labour mobility advantage\\",\\n          \\"text\\": \\"Berlin\'s EU labour mobility, GDPR-driven architecture pressure and cost base 40-60% below San Francisco support compelling value propositions against US counter-offers.\\"\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire a Senior Rust Engineer in Berlin across Mitte Web3, Friedrichshain climate-tech and Charlottenburg enterprise. \u20ac95,000-\u20ac135,000 base."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"hire Senior Rust Engineer Berlin, Rust recruitment Berlin, Berlin Rust developer, Parity Technologies"}}],"/news/hire-senior-ai-engineer-new-york/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/hire-senior-ai-engineer-new-yor
1k/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"hire-senior-ai-engineer-new-york"}},{"id":"title","body":"Hire a Senior AI Engineer in New York City for LLM Systems","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire a Senior AI Engineer in New York across Hudson Square, Hudson Yards, Flatiron and Wall Street clusters in 2026. Book a Signify call."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"hire senior ai engineer new york, nyc ai recruitment, hudson square ai hiring, silicon alley llm engineer, ai engineer salary nyc"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/hire-senior-ai-engineer-new-york/#service\\",\\n      \\"name\\": \\"Senior AI Engineer Recruitment in New York City\\",\\n      \\"serviceType\\": \\"Specialist Senior AI Engineer Recruitment\\",\\n      \\"description\\": \\"Specialist Senior AI Engineer recruitment across Hudson Square, Hudson Yards, Flatiron, Wall Street, DUMBO and Cornell Tech clusters in New York City, calibrated to Q2 2026 compensation bands.\\",\\n      \\"provider\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      },\\n      \\"areaServed\\": {\\n        \\"@type\\": \\"City\\",\\n        \\"name\\": \\"New York\\",\\n        \\"containedInPlace\\": {\\n          \\"@type\\": \\"State\\",\\n          \\"name\\": \\"New York\\"\\n        }\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/logo.png\\",\\n      \\"address\\": {\\n        \\"@type\\": \\"PostalAddress\\",\\n        \\"streetAddress\\": \\"Prominent Pointe 1, Suite 295, 8310-1 N. Capital of Texas Highway\\",\\n        \\"addressLocality\\": \\"Austin\\",\\n        \\"addressRegion\\": \\"TX\\",\\n        \\"postalCode\\": \\"78731\\",\\n        \\"addressCountry\\": \\"US\\"\\n      },\\n      \\"areaServed\\": [\\n        {\\n          \\"@type\\": \\"City\\",\\n          \\"name\\": \\"New York\\"\\n        },\\n        {\\n          \\"@type\\": \\"City\\",\\n          \\"name\\": \\"Brooklyn\\"\\n        },\\n        {\\n          \\"@type\\": \\"City\\",\\n          \\"name\\": \\"Jersey City\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/hire-senior-ai-engineer-new-york/#faq\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What does a Senior AI Engineer earn in New York City in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Base salary runs $195,000 to $312,000+ per MRJ Zone 1 January 2026 and Acceler8 Talent June 2026. Median AI/ML Engineer NYC sits at $166,930 per Nucamp March 2026, with senior roles at Bloomberg reaching $223,000 to $373,000+. Wall Street quant ML pays cash-heavy total comp reaching $400,000 to $1,000,000+.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Where do NYC\'s Senior AI Engineer roles concentrate geographically?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Six named clusters: Hudson Square (10013) for Anthropic and OpenAI; Hudson Yards and Chelsea (10001, 10018) for Google, Meta, Palantir and Bloomberg; Flatiron and Silicon Alley (10001, 10010, 10011) for AI-native scale-ups; Financial District (10005, 10038) for Wall Street quant ML; DUMBO (11201) for creative AI at Runway; and Cornell Tech (10044) for research pipeline.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Why is New York the fastest-growing US AI hiring market after San Francisco?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Three drivers: Anthropic\'s 466,000 sq ft Hudson Square lease doubling headcount to 1,000+ by end-2026 per Yahoo Finance July 2026; 845,000 sq ft of AI-company office leases signed in 2025 per CRE Daily; and NYCEDC\'s positioning of NYC as the global leader for Applied AI in 2025. Wall Street AI spending drives a 15% to 25% base premium over the US national average.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How much do Wall Street quant firms pay Senior AI Engineers?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Base salary runs $200,000 to $400,000+ with total compensation reaching $400,000 to $1,000,000+ at Two Sigma, Jane Street, Citadel and Hudson River Trading per Acceler8 Talent 2026 and KORE1 April 2026. Contract day rates hit $1,500 to $2,200, the highest single-domain contract rate in the US market.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How long does Signify take to place a Senior AI Engineer in NYC?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Median time-to-hire across the NYC desk runs 25 to 35 days against the 114-day industry average for equivalent seniority. The Signify NYC desk runs proactive outbound at 70% of sourcing volume against passive candidates who face continuous outbound from Anthropic, OpenAI, Google, Bloomberg and quant finance firms.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/hire-senior-ai-engineer-new-york/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Hire a Senior AI Engineer in New York City\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/hire-senior-ai-engineer-new-york/#howto\\",\\n      \\"name\\": \\"How Signify Places a Senior AI Engineer in New York City\\",\\n      \\"description\\": \\"Signify Technology\'s process for placing a Senior AI Engineer across NYC\'s six named talent clusters inside a 25-day sprint.\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Map the profile to the correct NYC cluster\\",\\n          \\"text\\": \\"Frontier AI to Hudson Square, enterprise AI to Hudson Yards, AI-native scale-ups to Flatiron, quant ML to Wall Street, creative AI to DUMBO, research pipeline to Cornell Tech.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Calibrate compensation against NYC bands\\",\\n          \\"text\\": \\"Senior base $195K-$312K+. Bloomberg senior $223K-$373K. Wall Street quant ML total comp $400K-$1,000,000+. Contract quant ML $1,500-$2,200/day.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Run proactive outbound at 70% of sourcing\\",\\n          \\"text\\": \\"Target passive senior candidates facing continuous outbound from Anthropic, OpenAI, Google, Bloomberg and Wall Street quant firms.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Close inside a 25-day sprint\\",\\n          \\"text\\": \\"Cap the loop at three rounds and 15 working days. Pre-empt counter-offers in week one.\\"\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/hire-nearshore-software-developers-mexico-us-time-zones/":[{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"hire-nearshore-software-developers-mexico-us-time-zones"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/hire-nearshore-software-developers-mexico-us-time-zones/"},"staticAttributes":{"rel":"canonical"}},{"id":"title","body":"Hire Nearshore Developers in Mexico for US Time Zones","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire nearshore software developers in Mexico on US time zones. Senior engineers at $50 to $90 an hour with full workday overlap and USMCA IP protection."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"hire nearshore developers mexico, nearshore software development mexico, mexico developers us time zone, nearshore staff augmentation, latam softw
1are developers\\n"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"name\\": \\"Nearshore Software Development Recruitment in Mexico\\",\\n      \\"serviceType\\": \\"Nearshore staff augmentation and recruitment\\",\\n      \\"provider\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"Signify Technology\\"\\n      },\\n      \\"areaServed\\": [\\n        \\"United States\\",\\n        \\"Mexico\\"\\n      ],\\n      \\"description\\": \\"Placement of nearshore software developers in Mexico on US time zones, via staff augmentation and managed pods with USMCA IP protection.\\"\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How much do nearshore developers in Mexico cost in 2026?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Senior nearshore developers in Mexico cost $50 to $90 an hour in 2026, and mid-level engineers $40 to $60. Fully loaded annual cost runs $55,000 to $85,000, against $150,000 to $180,000 for a US hire, a 40 to 60 per cent saving.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Do Mexican developers work US time zones?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Yes. Most of Mexico runs on Central Time, so developers in Mexico City, Guadalajara and Monterrey share a schedule with Dallas, Chicago and Denver, and sit within an hour of the East Coast, supporting live standups and same-day review.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Is IP protected when hiring developers in Mexico?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Yes. The USMCA trade agreement gives US companies a clear legal framework for IP protection when engaging Mexican engineers. Nearshore contracts assign work product to the client, and month-to-month billing keeps commercial risk low.\\"\\n          }\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/hire-senior-ai-engineer-san-francisco/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/hire-senior-ai-engineer-san-francisco/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"hire-senior-ai-engineer-san-francisco"}},{"id":"title","body":"Hire a Senior AI Engineer in San Francisco Across AI Alley ","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire a Senior AI Engineer in San Francisco across SoMa AI Alley, Mission Bay, Mission District and FiDi clusters in 2026. Book a Signify call."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"hire senior ai engineer san francisco, sf ai recruitment, soma ai alley hiring, mission bay llm engineer, frontier lab ai engineer"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/hire-senior-ai-engineer-san-francisco/#service\\",\\n      \\"name\\": \\"Senior AI Engineer Recruitment in San Francisco\\",\\n      \\"serviceType\\": \\"Specialist Senior AI Engineer Recruitment\\",\\n      \\"description\\": \\"Specialist Senior AI Engineer recruitment across SoMa AI Alley, Mission Bay, Mission District and Financial District clusters in San Francisco, calibrated to Q2 2026 compensation bands.\\",\\n      \\"provider\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      },\\n      \\"areaServed\\": {\\n        \\"@type\\": \\"City\\",\\n        \\"name\\": \\"San Francisco\\",\\n        \\"containedInPlace\\": {\\n          \\"@type\\": \\"State\\",\\n          \\"name\\": \\"California\\"\\n        }\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/logo.png\\",\\n      \\"address\\": {\\n        \\"@type\\": \\"PostalAddress\\",\\n        \\"streetAddress\\": \\"Prominent Pointe 1, Suite 295, 8310-1 N. Capital of Texas Highway\\",\\n        \\"addressLocality\\": \\"Austin\\",\\n        \\"addressRegion\\": \\"TX\\",\\n        \\"postalCode\\": \\"78731\\",\\n        \\"addressCountry\\": \\"US\\"\\n      },\\n      \\"areaServed\\": [\\n        {\\n          \\"@type\\": \\"City\\",\\n          \\"name\\": \\"San Francisco\\"\\n        },\\n        {\\n          \\"@type\\": \\"City\\",\\n          \\"name\\": \\"Oakland\\"\\n        },\\n        {\\n          \\"@type\\": \\"City\\",\\n          \\"name\\": \\"Berkeley\\"\\n        },\\n        {\\n          \\"@type\\": \\"City\\",\\n          \\"name\\": \\"Palo Alto\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/hire-senior-ai-engineer-san-francisco/#faq\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What does a Senior AI Engineer earn in San Francisco in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Base salary runs $200,000 to $400,000+ per Acceler8 Talent May 2026, with senior Bay Area base averaging $252,000. Median AI Engineer total comp sits at $242,507 per Levels.fyi. Frontier labs reach $500,000 to $943,000+ at OpenAI, Anthropic and xAI inclusive of equity.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Where do San Francisco\'s Senior AI Engineer roles concentrate geographically?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Four named clusters: SoMa AI Alley (94105, 94103) for Anthropic\'s 900,000+ sq ft along Howard Street, Databricks, Salesforce and Harvey AI; Mission Bay (94158) for OpenAI\'s 1 million sq ft campus; the Mission District (94110) for Thinking Machines Lab and 20+ AI companies; and the Financial District (94104, 94111) for enterprise and cybersecurity AI.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Which SF employers pay the highest total compensation for Senior AI Engineers?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Frontier labs OpenAI, Anthropic and xAI reach $500,000 to $943,000+ per Acceler8 Talent May 2026. Anthropic base runs $300K to $490K for senior with staff exceeding $600K. OpenAI specialised researchers frequently cross $900,000. L6 at Google gets $285,000 base plus $350,000 RSUs.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How does SF compare to New York and Austin for Senior AI Engineer roles?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"SF sets the global compensation ceiling. SF senior base of $200K to $400K+ sits 15% to 25% above NYC ($195K to $312K+) and 20% to 40% above Austin ($175K to $240K). Frontier-lab total comp packages of $500K to $943K+ exist only in SF at scale. Every other US city\'s Senior AI Engineer band is anchored downward against SF frontier-lab totals.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How long does Signify take to place a Senior AI Engineer in San Francisco?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Median time-to-hire across the SF desk runs 25 to 35 days against the 114-day industry average for equivalent seniority per Korn Ferry via Acceler8 Talent April 2026. The Signify SF desk runs proactive outbound at 70% of sourcing volume against passive senior candidates who face continuous outbound from every frontier lab and Series C+ scale-up in the cluster.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/hire-senior-ai-engineer-san-francisco/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Hire a Senior AI Engineer in San Francisco\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/hire-senior-ai-engineer-san-francisco/#howto\\",\\n      \\"name\\": \\"How Signify Places a Senior AI Engineer in San Francisco\\",\\n      \\"description\\": \\"Signify Technology\'s process for placing a Senior AI Engineer across San Francisco\'s four named talent clusters inside a 25-day sprint.\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Map the profile to the correct SF cluster\\",\\n          \\"text\\": \\"Frontier AI foundation model work to SoMa AI Alley or Mission Bay, applied AI to the Mission District, enterprise AI to the Financial District.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Calibrate compensation against SF bands\\",\\n          \\"text\\": \\"Senior base $200K-$400K+, senior average $252K. Frontier labs OpenAI, Anthropic, xAI reach $500K-$943K+ inclusive of equity. Anthropic senior base $300K-$490K.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Run proactive outbound at 70% of sourcing\\",\\n          \\"text\\": \\"Target passive senior candidates facing continuous outbound from every frontier lab and Series C+ scale-up in the cluster.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Close inside a 25-day sprint\\",\\n          \\"text\\": \\"Cap the loop at three rounds and 15 working days. Pre-empt counter-offers in week one against frontier-lab total-comp ceilings.\\"\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/hire-go-developers-denver-cloud-native-backends/":[{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"hire-go-developers-denver-cloud-native-backends"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/hire-go-developers-denver-cloud-native-backends/"},"staticAttributes":{"rel":"canonical"}},{"id":"title","body":"Hire Go Developers in Denver for Cloud Native Backends\\n","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire Go developers in Denver for cloud native backends. Senior Golang engineers at $115k to $150k base, skilled in Kubernetes and distributed systems.\\n"}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"hire go developers denver, golang developer denver, 
1cloud native backend engineer, go kubernetes developer, denver golang jobs\\n"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"name\\": \\"Go Developer Recruitment in Denver\\",\\n      \\"serviceType\\": \\"Cloud native backend technology staffing\\",\\n      \\"provider\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"Signify Technology\\"\\n      },\\n      \\"areaServed\\": \\"Denver, Colorado, United States\\",\\n      \\"description\\": \\"Recruitment of Go (Golang) developers in Denver for cloud native backend and platform engineering, skilled in Kubernetes and distributed systems.\\"\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How much does a Go developer earn in Denver?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"A Go developer in Denver earns $123,602 a year on average, or $59.42 an hour, per 2026 ZipRecruiter data. Senior base pay runs $115,000 to $150,000, below Bay Area rates for the same skill, with a lower cost of living.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What skills should a cloud native Go developer have?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"A cloud native Go developer should bring managed Kubernetes across EKS, GKE or AKS, distributed-systems experience, and observability tooling like Prometheus, OpenTelemetry and Jaeger. Denver employers rank systems thinking ahead of framework knowledge.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Can you hire Go developers remotely from Denver?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Yes. Cloud-infrastructure companies that use Go heavily are often remote-friendly, and remote Go developers earn 85 to 95 per cent of on-site US pay per Golang.cafe 2026 data. Denver engineers also overlap cleanly with both coasts.\\"\\n          }\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/hire-high-performance-computing-engineers-simulation/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/hire-high-performance-computing-engineers-simulation/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"hire-high-performance-computing-engineers-simulation"}},{"id":"title","body":"Hire High Performance Computing Engineers for Simulation","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire high performance computing engineers for simulation workloads. Parallel-programming specialists in MPI, OpenMP and CUDA from $107k to $188k a year.\\n"}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"hire high performance computing engineers, hpc engineer for simulation, mpi openmp developer, parallel computing engineer, hpc simulation workloads"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"name\\": \\"High Performance Computing Engineer Recruitment\\",\\n      \\"serviceType\\": \\"HPC and simulation technology staffing\\",\\n      \\"provider\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"Signify Technology\\"\\n      },\\n      \\"areaServed\\": \\"United States\\",\\n      \\"description\\": \\"Recruitment of high performance computing engineers for simulation workloads, skilled in MPI, OpenMP, CUDA and parallel C or C++ on permanent and contract terms.\\"\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How much does an HPC engineer for simulation cost?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"An HPC engineer for simulation costs $107,956 to $188,314 a year in the US in 2026. HPC system engineers average $127,215, and hourly rates run $52 to $91, with cleared and GPU-fluent specialists commanding the top of the band.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What skills matter most for simulation workloads?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"MPI, OpenMP, CUDA and parallel C or C++ matter most, alongside SLURM or PBS scheduling and Linux cluster management. GPU acceleration through CUDA is central to AI-driven simulation and carries the steepest skill premium in 2026.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Where are HPC simulation engineers in demand?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"HPC simulation engineers are in demand across chip firms, aerospace, national labs and finance in 2026. NVIDIA, SpaceX and national labs including NERSC and Idaho National Laboratory hire steadily, with Indeed listing 9,212 HPC roles nationally.\\"\\n          }\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/how-nearshoring-cuts-delivery-risk-us-software-projects/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/how-nearshoring-cuts-delivery-risk-us-software-projects/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"how-nearshoring-cuts-delivery-risk-us-software-projects"}},{"id":"title","body":"How Nearshoring Cuts US Software Delivery Risk ","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Nearshore LATAM teams sit at 0-3 hour US offset versus 10-12 hours offshore. 2-3x faster project completion and 60% lower failure rate."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"nearshoring vs offshoring, LATAM software development, nearshore US tech, time zone overlap\\n"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Article\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/how-nearshoring-cuts-delivery-risk-us-software-projects/\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/news/how-nearshoring-cuts-delivery-risk-us-software-projects/\\",\\n      \\"headline\\": \\"How Nearshoring Cuts Delivery Risk on US Software Projects That Offshoring Cannot Match\\",\\n      \\"description\\": \\"Nearshore LATAM teams sit at 0-3 hour US offset versus 10-12 hours offshore. 2-3x faster project completion and 60% lower failure rate.\\",\\n      \\"inLanguage\\": \\"en-GB\\",\\n      \\"datePublished\\": \\"2026-06-23\\",\\n      \\"dateModified\\": \\"2026-06-23\\",\\n      \\"author\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"Signify Technology\\"\\n      },\\n      \\"publisher\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"areaServed\\": [\\n        \\"US\\",\\n        \\"MX\\",\\n        \\"BR\\",\\n        \\"AR\\",\\n        \\"CO\\"\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What\'s the time-zone overlap between US and LATAM nearshore teams?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"0-3 hours. Mexico at GMT-6 (US Central/Mountain). Colombia at GMT-5 (US Eastern). Brazil and Argentina at GMT-3 (1-2 hours ahead of US Eastern). This preserves 5-6 hours of overlapping business hours daily.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How much do US companies save hiring nearshore LATAM engineers vs US-based?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"50-65% on fully-loaded labour costs per Mismo February 2026. A US senior engineer at $150,000 base runs $212,000-$230,000 all-in year one; a LATAM senior runs roughly a third of that.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Why is LATAM nearshoring growing faster than Eastern European outsourcing?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Geopolitical disruption raised Eastern European compliance overhead since 2022. LATAM infrastructure matured. Eastern European rates dropped 9-16% in 2024; LATAM held steady.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Which LATAM country has the best English-speaking engineers?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Argentina ranks EF EPI #1 in the region at score 562. Costa Rica and Uruguay also strong. Brazil and Colombia tech professionals typically run B2-C1 English proficiency.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Is IP protection enforceable in LATAM software development contracts?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Yes. Argentina, Brazil, Colombia and Mexico are signatories to the Berne Convention, TRIPS Agreement and WIPO Copyright Treaty. Domestic IP laws provide protection comparable to European standards.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How long does it take to build a nearshore LATAM engineering team?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"48 hours to matched candidates and 1-3 weeks to start through a managed staff augmentation partner. 4-8 weeks via traditional in-house recruiting.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"How Nearshoring Cuts US Software Delivery Risk\\"\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/our-specialisms/rust/hire-senior-rust-engineer-austin/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/our-specialisms/rust/hire-senior-rust-engineer-austin/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"hire-senior-rust-engineer-austin"}},{"id":"title","body":"Hire a Senior Rust Engineer in Austin for Systems Roles","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire a Senior Rust Engineer in Austin for semiconductor, physical AI, robotics and defence tech roles in 2026. Book a Signify scoping call."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"hire senior rust engineer austin, austin rust engineer salary, rust engineer semiconductor austin, senior rust developer texas, rust engineer physical ai"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/our-specialisms/rust/hire-senior-rust-engineer-austin/#service\\",\\n      \\"name\\": \\"Senior Rust Engineer Recruitment in Austin\\",\\n      \\"serviceType\\": \\"Specialist Senior Rust Engineer Recruitment\\",\\n      \\"description\\": \\"Specialist Senior Rust Engineer recruitment across Austin\'s semiconductor, physical AI, robotics and defence tech clusters, calibrated to Q2 2026 compensation bands.\\",\\n      \\"provider\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      },\\n      \\"areaServed\\": {\\n        \\"@type\\": \\"City\\",\\n        \\"name\\": \\"Austin\\",\\n        \\"containedInPlace\\": {\\n          \\"@type\\": \\"State\\",\\n          \\"name\\": \\"Texas\\"\\n        }\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/logo.png\\",\\n      \\"address\\": {\\n        \\"@type\\": \\"PostalAddress\\",\\n        \\"streetAddress\\": \\"Prominent Pointe 1, Suite 295, 8310-1 N. Capital of Texas Highway\\",\\n        \\"addressLocality\\": \\"Austin\\",\\n        \\"addressRegion\\": \\"TX\\",\\n        \\"postalCode\\": \\"78731\\",\\n        \\"addressCountry\\": \\"US\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/our-specialisms/rust/hire-senior-rust-engineer-austin/#faq\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What does a Senior Rust Engineer earn in Austin in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Base salary runs $180,000 to $290,000 for senior tier with 6 to 10 years\' production Rust experience per NVIDIA Austin postings May 2026 and Indeed May 2026. Total compensation at Apple, Tesla and NVIDIA reaches $350,000 to $500,000+ inclusive of RSUs.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Which Austin employers hire Senior Rust Engineers?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"The semiconductor cluster (Apple, AMD, Intel, NVIDIA, Tesla) anchors the largest Rust demand at Parmer Lane and Gigafactory postcodes. The physical AI and robotics cluster (Apptronik, Saronic Technologies, adjacent Series B-D scale-ups) drives the fastest-growing segment.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What Rust specialisms are in demand in Austin in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Systems programming (kernel, device drivers, embedded firmware), production inference infrastructure (vLLM, TensorRT bindings, cuBLAS wrappers), WebAssembly runtimes, high-performance networking, and cryptography and security-sensitive applications anchor the top five Austin Rust specialisms in 2026.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How does Austin Rust engineer pay compare to San Francisco or New York?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Austin runs 20% to 40% below San Francisco frontier lab total compensation but competitive with New York non-quant engineering roles. NYC Wall Street quant Rust engineers exceed both markets at $300K to $500K+ base with cash-heavy total comp reaching $700K to $1M+ at Hudson River Trading, Citadel and Two Sigma.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How long does it take Signify to place a Senior Rust Engineer in Austin?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Median time-to-hire runs 25 to 35 days across the Signify Austin desk against the 114-day industry average for equivalent seniority per Korn Ferry via Acceler8 Talent April 2026. The desk runs proactive outbound at 70% of sourcing volume against passive senior candidates.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/our-specialisms/rust/hire-senior-rust-engineer-austin/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Our Specialisms\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/our-specialisms/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Rust\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/our-specialisms/rust/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Hire a Senior Rust Engineer in Austin\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/our-specialisms/rust/hire-senior-rust-engineer-austin/#howto\\",\\n      \\"name\\": \\"How Signify Places a Senior Rust Engineer in Austin\\",\\n      \\"description\\": \\"Signify Technology\'s process for placing a Senior Rust Engineer across Austin\'s four named employer categories inside a 25-day sprint.\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Map the profile to the correct Austin employer category\\",\\n          \\"text\\": \\"Systems and semiconductor to Apple, AMD, Intel, NVIDIA, Tesla. Physical AI to Apptronik and Series B-D scale-ups. Defence tech to Saronic and adjacent autonomous systems firms.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Calibrate compensation against Austin bands\\",\\n          \\"text\\": \\"Senior base $180K-$290K. NVIDIA L4 $184K-$287K, L5 $224K-$356K plus equity. Total comp at Apple, Tesla, NVIDIA $350K-$500K+ with RSUs.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Run proactive outbound at 70% of sourcing\\",\\n          \\"text\\": \\"Target passive senior Rust candidates facing continuous outbound from NVIDIA, Tesla and Series B-D physical AI scale-ups.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Close inside a 25-day sprint\\",\\n          \\"text\\": \\"Cap the loop at three rounds and 15 working days. Pre-empt counter-offers in week one against semiconductor and physical AI scale-up total-comp ceilings.\\"\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/permanent-solutions/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Signify Technology\u2019s resourcing solutions connect you with long-term tech talent to build a stable and dynamic workforce aligned to your vision."}},{"id":"title","body":"Resourcing Solutions","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/join-us/internal-jobs-austin/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Internal job openings in Austin for professionals specializing in tech recruitment."}},{"id":"title","body":"Internal Jobs Austin | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/join-us/internal-jobs-austin/"},"staticAttributes":{"rel":"canonical"}}],"/leave-a-review/":[{"id":"title","body":"Leave A Review","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Share your experience with Signify Technology. Leave a review to help us improve and show others why we\u2019re trusted tech recruitment experts."}},{"id":"robots","body":null,"name":"robots","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"noindex, follow"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/leave-a-review/"},"staticAttributes":{"rel":"canonical"}}],"/meet-the-team/abu-miah/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Abu Miah \u2013 a dedicated professional focused on connecting top tech talent with opportunities."}},{"id":"title","body":"Abu Miah | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/meet-the-team/abu-miah/"},"staticAttributes":{"rel":"canonical"}}],"/meet-the-team/cengiz-jaffer/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Cengiz Jaffer is focused on driving innovation and excellence in tech recruitment."}},{"id":"title","body":"Cengiz Jaffer | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/meet-the-team/cengiz-jaffer/"},"staticAttributes":{"rel":"canonical"}}],"/meet-the-team/chloe-gray-upton/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Chloe Gray Upton enhances candidate experiences through expert tech recruitment strategies."}},{"id":"title","body":"Chloe Gray Upton | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/meet-the-team/chloe-gray-upton/"},"staticAttributes":{"rel":"canonical"}}],"/meet-the-team/chris-morris/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Chris Morris provides personalized tech recruitment and effective staffing solutions."}},{"id":"title","body":"Chris Morris | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/meet-the-team/chris-morris/"},"staticAttributes":{"rel":"canonical"}}],"/meet-the-team/zach-vertz/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/meet-the-team/zach-vertz/"},"staticAttributes":{"rel":"canonical"}}],"/meet-the-team/chris-thompson/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Chris Thompson delivers seasoned tech recruitment expertise for optimal talent matching."}},{"id":"title","body":"Chris Thompson | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/meet-the-team/chris-thompson/"},"staticAttributes":{"rel":"canonical"}}],"/meet-the-team/erica-sener/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/meet-the-team/erica-sener/"},"staticAttributes":{"rel":"canonical"}}],"/meet-the-team/euan-roche/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Euan Roche is committed to excellence in tech recruitment and strategic talent placement."}},{"id":"title","body":"Euan Roche | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/meet-the-team/euan-roche/"},"staticAttributes":{"rel":"canonical"}}
1],"/meet-the-team/iqbal-miah/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Iqbal Miah, a seasoned recruiter, excels in technology staffing and placement."}},{"id":"title","body":"Iqbal Miah | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/meet-the-team/iqbal-miah/"},"staticAttributes":{"rel":"canonical"}}],"/meet-the-team/jack-stevens/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Meet Jack Stevens, Principal Consultant at Signify Technology focused on sourcing and placing high calibre engineers in emerging tech sectors."}},{"id":"title","body":"Jack Stevens","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/meet-the-team/jack-stevens/"},"staticAttributes":{"rel":"canonical"}}],"/meet-the-team/jenna-cohen/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Jenna Cohen ensures strategic candidate placements within the tech recruitment space."}},{"id":"title","body":"Jenna Cohen | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/meet-the-team/jenna-cohen/"},"staticAttributes":{"rel":"canonical"}}],"/meet-the-team/lauren-palmer/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Lauren Palmer provides expert support in tech recruitment and candidate engagement."}},{"id":"title","body":"Lauren Palmer | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/meet-the-team/lauren-palmer/"},"staticAttributes":{"rel":"canonical"}}],"/meet-the-team/sam-davis/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/meet-the-team/sam-davis/"},"staticAttributes":{"rel":"canonical"}}],"/meet-the-team/samantha-smylie/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Samantha Smylie specializes in precise matching of tech professionals to roles."}},{"id":"title","body":"Samantha Smylie | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/meet-the-team/samantha-smylie/"},"staticAttributes":{"rel":"canonical"}}],"/meet-the-team/tana-mushambadope/":[{"id":"title","body":"Tana Mushambadope","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Get to know Tana Mushambadope, Consultant at Signify Technology, working across London, Los Angeles and Austin in tech talent acquisition."}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/meet-the-team/tana-mushambadope/"},"staticAttributes":{"rel":"canonical"}}],"/locations/austin/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Austin office offering localized tech recruitment expertise and personalized staffing."}},{"id":"title","body":"Austin Office | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/locations/austin/"},"staticAttributes":{"rel":"canonical"}}],"/locations/london/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"London office providing specialized tech recruitment services with market expertise."}},{"id":"title","body":"London Office | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/locations/london/"},"staticAttributes":{"rel":"canonical"}}],"/news/hire-performance-engineers-to-optimise-core-systems/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire performance engineers who improve load handling, reduce latency and increase throughput so your core systems stay stable during traffic spikes."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"performance engineers, load testing, latency reduction, throughput optimisation, core systems performance, SRE support, Signify Technology, high traffic platforms"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/hire-performance-engineers-to-optimise-core-systems/"},"staticAttributes":{"rel":"canonical"}}],"/news/hire-principal-software-engineers-for-platform-leadership/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire principal software engineers who guide platform architecture, improve system stability and help CTOs make strong long term technical decisions."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"principal software engineer, platform architecture, system design leadership, engineering governance, distributed systems, Signify Technology"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/hire-principal-software-engineers-for-platform-leadership/"},"staticAttributes":{"rel":"canonical"}}],"/news/hire-senior-distributed-systems-engineers/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire senior distributed systems engineers for event driven, horizontally scalable platforms that boost performance, reliability, and throughput."}},{"id":"title","body":"Hire Senior Distributed Systems Engineers | Signify Technology \\n","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"senior distributed systems engineer, event driven architecture, scalable systems\\n"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/hire-senior-distributed-systems-engineers/"},"staticAttributes":{"rel":"canonical"}}],"/news/how-to-find-ai-engineers-with-vllm-and-tensorrt-expertise-in-boston/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire AI engineers in Boston with real vLLM and TensorRT expertise to cut latency, improve inference performance and speed up production deployment."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"vLLM engineers Boston, TensorRT developer hiring, inference optimisation, low latency AI engineers, Boston AI recruitment, Signify Technology"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/how-to-find-ai-engineers-with-vllm-and-tensorrt-expertise-in-boston/"},"staticAttributes":{"rel":"canonical"}}],"/events/scala-in-the-city-sky-hello-self/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Scala in the City event with expert sessions and networking for the Scala community."}},{"id":"title","body":"Scala in the City Event | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/events/scala-in-the-city-sky-hello-self/"},"staticAttributes":{"rel":"canonical"}}],"/news/golang-developer-job-market-analysis-what-the-rest-of-2025-looks-like/":[{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@type\\": \\"FAQPage\\",\\n  \\"mainEntity\\": [\\n    {\\n      \\"@type\\": \\"Question\\",\\n      \\"name\\": \\"Is Go a smart skill to learn in 2025?\\",\\n      \\"acceptedA
1nswer\\": {\\n        \\"@type\\": \\"Answer\\",\\n        \\"text\\": \\"Yes. More companies are switching to Go, and jobs often pay more than other backend roles.\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"Question\\",\\n      \\"name\\": \\"What roles need Go the most?\\",\\n      \\"acceptedAnswer\\": {\\n        \\"@type\\": \\"Answer\\",\\n        \\"text\\": \\"Backend developers, platform engineers, and DevOps teams building cloud-native systems.\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"Question\\",\\n      \\"name\\": \\"Can I get a Go job if I live outside the US?\\",\\n      \\"acceptedAnswer\\": {\\n        \\"@type\\": \\"Answer\\",\\n        \\"text\\": \\"Yes. Many Go roles are remote, especially if your workday overlaps with the US or Europe.\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"Question\\",\\n      \\"name\\": \\"How much do Go developers make?\\",\\n      \\"acceptedAnswer\\": {\\n        \\"@type\\": \\"Answer\\",\\n        \\"text\\": \\"In the US, about $135,000 on average; senior roles can pay $180,000+; remote developers earn around $100,000\u2013$120,000.\\"\\n      }\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/golang-developer-job-market-analysis-what-the-rest-of-2025-looks-like/"},"staticAttributes":{"rel":"canonical"}}],"/":[{"id":"title","body":"Signify Technology ","single":true,"hasBody":true,"tagName":"title","attributes":{},"staticAttributes":{}},{"id":"description","name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"We\'re a global staffing agency providing exceptional talent in emerging technologies across Leadership, Software Engineering, Data, and Cloud."},"staticAttributes":{}},{"id":"keywords","name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"cloud,data,ML,AI,leadership,staffing,recruitment,hiring,experts,community,"},"staticAttributes":{}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/"},"staticAttributes":{"rel":"canonical"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"WebSite\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#website\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"publisher\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n      },\\n      \\"inLanguage\\": \\"en-GB\\"\\n    },\\n    {\\n      \\"@type\\": \\"WebPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#webpage\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"description\\": \\"We\'re a global staffing agency providing exceptional talent in emerging technologies across Leadership, Software Engineering, Data, and Cloud.\\",\\n      \\"isPartOf\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#website\\"\\n      },\\n      \\"about\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n      },\\n      \\"inLanguage\\": \\"en-GB\\"\\n    },\\n    {\\n      \\"@type\\": \\"Organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/logo/signify-logo.png\\",\\n      \\"description\\": \\"Signify Technology is a global staffing agency connecting exceptional talent in emerging technologies across leadership, software engineering, data, and cloud. We are minority-owned (MSDUK certified) with offices in London and Austin.\\",\\n      \\"foundingDate\\": \\"2016\\",\\n      \\"founder\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"Ryan Adams\\",\\n        \\"jobTitle\\": \\"Founder & CEO\\",\\n        \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n      },\\n      \\"employee\\": [\\n        {\\n          \\"@type\\": \\"Person\\",\\n          \\"name\\": \\"Ryan Adams\\",\\n          \\"jobTitle\\": \\"Founder & CEO\\",\\n          \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n        }\\n      ],\\n      \\"address\\": [\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"3 Moorgate Place, 1st Floor\\",\\n          \\"addressLocality\\": \\"London\\",\\n          \\"postalCode\\": \\"EC2R 6EA\\",\\n          \\"addressCountry\\": \\"GB\\"\\n        },\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"Prominent Pointe 1, Suite 295, 8310-1 N. Capital of Texas Highway\\",\\n          \\"addressLocality\\": \\"Austin\\",\\n          \\"addressRegion\\": \\"TX\\",\\n          \\"postalCode\\": \\"78731\\",\\n          \\"addressCountry\\": \\"US\\"\\n        }\\n      ],\\n      \\"contactPoint\\": [\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+44 (0) 20 3865 0621\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"GB\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        },\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+1 (346) 374 0300\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"US\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        }\\n      ],\\n      \\"sameAs\\": [\\n        \\"https://www.linkedin.com/company/signify-technology\\",\\n        \\"https://twitter.com/signifytech\\",\\n        \\"https://www.facebook.com/signifytechnology\\"\\n      ],\\n      \\"knowsAbout\\": [\\n        \\"Scala recruitment\\",\\n        \\"Functional programming staffing\\",\\n        \\"Software engineering recruitment\\",\\n        \\"Data and cloud hiring\\",\\n        \\"Tech leadership placements\\"\\n      ],\\n      \\"memberOf\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"MSDUK\\",\\n        \\"url\\": \\"https://www.msduk.org.uk/\\"\\n      },\\n      \\"award\\": [\\n        \\"2023 Best Recruitment Company to Work For\\",\\n        \\"2022 Recruiter Awards Finalist\\"\\n      ],\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/get-in-touch/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Contact our tech recruitment team for customized hiring solutions and expert support."}},{"id":"title","body":"Contact Us | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"ContactPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/get-in-touch/#webpage\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/get-in-touch/\\",\\n      \\"name\\": \\"Get in touch\\",\\n      \\"description\\": \\"Contact our tech recruitment team for customized hiring solutions and expert support.\\",\\n      \\"isPartOf\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#website\\"\\n      },\\n      \\"about\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n      },\\n      \\"breadcrumb\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/get-in-touch/#breadcrumb\\"\\n      },\\n      \\"inLanguage\\": \\"en-GB\\"\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/get-in-touch/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Get in touch\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"Organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/logo/signify-logo.png\\",\\n      \\"description\\": \\"Signify Technology is a global staffing agency connecting exceptional talent in emerging technologies across leadership, software engineering, data, and cloud. We are minority-owned (MSDUK certified) with offices in London and Austin.\\",\\n      \\"foundingDate\\": \\"2016\\",\\n      \\"founder\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"Ryan Adams\\",\\n        \\"jobTitle\\": \\"Founder & CEO\\",\\n        \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n      },\\n      \\"employee\\": [\\n        {\\n          \\"@type\\": \\"Person\\",\\n          \\"name\\": \\"Ryan Adams\\",\\n          \\"jobTitle\\": \\"Founder & CEO\\",\\n          \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n        }\\n      ],\\n      \\"address\\": [\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"3 Moorgate Place, 1st Floor\\",\\n          \\"addressLocality\\": \\"London\\",\\n          \\"postalCode\\": \\"EC2R 6EA\\",\\n          \\"addressCountry\\": \\"GB\\"\\n        },\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"Prominent Pointe 1, Suite 295, 8310-1 N. Capital of Texas Highway\\",\\n          \\"addressLocality\\": \\"Austin\\",\\n          \\"addressRegion\\": \\"TX\\",\\n          \\"postalCode\\": \\"78731\\",\\n          \\"addressCountry\\": \\"US\\"\\n        }\\n      ],\\n      \\"contactPoint\\": [\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+44 (0) 20 3865 0621\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"GB\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        },\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+1 (346) 374 0300\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"US\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        }\\n      ],\\n      \\"sameAs\\": [\\n        \\"https://www.linkedin.com/company/signify-technology\\",\\n        \\"https://twitter.com/signifytech\\",\\n        \\"https://www.facebook.com/signifytechnology\\"\\n      ],\\n      \\"knowsAbout\\": [\\n        \\"Scala recruitment\\",\\n        \\"Functional programming staffing\\",\\n        \\"Software engineering recruitment\\",\\n        \\"Data and cloud hiring\\",\\n        \\"Tech leadership placements\\"\\n      ],\\n      \\"memberOf\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"MSDUK\\",\\n        \\"url\\": \\"https://www.msduk.org.uk/\\"\\n      },\\n      \\"award\\": [\\n        \\"2023 Best Recruitment Company to Work For\\",\\n        \\"2022 Recruiter Awards Finalist\\"\\n      ],\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/get-in-touch/"},"staticAttributes":{"rel":"canonical"}}],"/jobs/":[{"id":"title","body":"Job Search","single":true,"hasBody":true,"tagName":"title","attributes":{},"staticAttributes":{}},{"id":"description","name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Explore endless career opportunities with our comprehensive job search page. "},"staticAttributes":{}},{"id":"keywords","name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"jobs, scala, frontend, developer, golang, java, rust, ML, AI, "},"staticAttributes":{}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"CollectionPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/jobs/#webpage\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/jobs/\\",\\n      \\"name\\": \\"Job Search\\",\\n      \\"description\\": \\"Explore endless career opportunities with our comprehensive job search page.\\",\\n      \\"isPartOf\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#website\\"\\n      },\\n      \\"about\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n      },\\n      \\"breadcrumb\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/jobs/#breadcrumb\\"\\n      },\\n      \\"inLanguage\\": \\"en-GB\\"\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/jobs/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Job Search\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"Organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/logo/signify-logo.png\\",\\n      \\"description\\": \\"Signify Technology is a global staffing agency connecting exceptional talent in emerging technologies across leadership, software engineering, data, and cloud. We are minority-owned (MSDUK certified) with offices in London and Austin.\\",\\n      \\"foundingDate\\": \\"2016\\",\\n      \\"founder\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"Ryan Adams\\",\\n        \\"jobTitle\\": \\"Founder & CEO\\",\\n        \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n      },\\n      \\"employee\\": [\\n        {\\n          \\"@type\\": \\"Person\\",\\n          \\"name\\": \\"Ryan Adams\\",\\n          \\"jobTitle\\": \\"Founder & CEO\\",\\n          \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n        }\\n      ],\\n      \\"address\\": [\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"3 Moorgate Place, 1st Floor\\",\\n          \\"addressLocality\\": \\"London\\",\\n          \\"postalCode\\": \\"EC2R 6EA\\",\\n          \\"addressCountry\\": \\"GB\\"\\n        },\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"Prominent Pointe 1, Suite 295, 8310-1 N. Capital of Texas Highway\\",\\n          \\"addressLocality\\": \\"Austin\\",\\n          \\"addressRegion\\": \\"TX\\",\\n          \\"postalCode\\": \\"78731\\",\\n          \\"addressCountry\\": \\"US\\"\\n        }\\n      ],\\n      \\"contactPoint\\": [\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+44 (0) 20 3865 0621\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"GB\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        },\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+1 (346) 374 0300\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"US\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        }\\n      ],\\n      \\"sameAs\\": [\\n        \\"https://www.linkedin.com/company/signify-technology\\",\\n        \\"https://twitter.com/signifytech\\",\\n        \\"https://www.facebook.com/signifytechnology\\"\\n      ],\\n      \\"knowsAbout\\": [\\n        \\"Scala re
1cruitment\\",\\n        \\"Functional programming staffing\\",\\n        \\"Software engineering recruitment\\",\\n        \\"Data and cloud hiring\\",\\n        \\"Tech leadership placements\\"\\n      ],\\n      \\"memberOf\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"MSDUK\\",\\n        \\"url\\": \\"https://www.msduk.org.uk/\\"\\n      },\\n      \\"award\\": [\\n        \\"2023 Best Recruitment Company to Work For\\",\\n        \\"2022 Recruiter Awards Finalist\\"\\n      ],\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/jobs/"},"staticAttributes":{"rel":"canonical"}}],"/news/golang-engineer-recruitment-seattle/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/golang-engineer-recruitment-seattle/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"golang-engineer-recruitment-seattle"}},{"id":"title","body":"Golang Engineer Recruitment Seattle | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire senior Golang engineers in Seattle. Signify Technology covers South Lake Union, Bellevue and the Amazon corridor with Go-specific technical vetting."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"golang engineer recruitment Seattle, go developer jobs Seattle, hire golang engineer South Lake Union, go engineer Bellevue"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Go Recruitment\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/our-specialisms/go/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Golang Engineer Recruitment Seattle\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"serviceType\\": \\"Go Engineer Recruitment\\",\\n      \\"provider\\": {\\n        \\"@type\\": \\"EmploymentAgency\\",\\n        \\"name\\": \\"Signify Technology\\",\\n        \\"url\\": \\"https://www.signifytechnology.com\\"\\n      },\\n      \\"areaServed\\": {\\n        \\"@type\\": \\"City\\",\\n        \\"name\\": \\"Seattle\\",\\n        \\"containsPlace\\": [\\n          {\\n            \\"@type\\": \\"Place\\",\\n            \\"name\\": \\"South Lake Union\\"\\n          },\\n          {\\n            \\"@type\\": \\"Place\\",\\n            \\"name\\": \\"Bellevue\\"\\n          }\\n        ]\\n      },\\n      \\"name\\": \\"Senior Golang Engineer Recruitment - Seattle\\"\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What do senior Go engineers earn in Seattle in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Senior Go engineers in Seattle earn $185,000-$250,000 in base salary. AWS-adjacent roles sit at the top of that range. Total compensation including RSUs and bonus at Amazon and AWS regularly pushes senior engineer packages to $300,000+ annually, setting the effective compensation ceiling for the entire Seattle Go market.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Which companies in Seattle hire Golang engineers?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Confirmed Seattle-area Golang employers include Amazon, AWS, Twitch Interactive, Lyft Engineering, Amazon Kuiper Manufacturing Enterprises and Expedia Group. As of May 2026, 342 Golang roles were listed on LinkedIn Seattle.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How does Amazon\'s presence affect Go hiring in Seattle?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Amazon sets the compensation floor for senior Go engineers in Seattle. Total compensation packages at Amazon and AWS regularly exceed $300,000 for senior engineers. Any employer competing for the same talent must calibrate their offer to that ceiling before going to market.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Does Signify Technology recruit Golang engineers in Seattle?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Signify Technology places senior Go engineers across South Lake Union and the Bellevue corridor. The Signify team runs Go-specific technical vetting including concurrency challenges and live system design sessions, and maintains warm candidate relationships through Go community events.\\"\\n          }\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/when-statement-of-work-beats-staff-augmentation-us-tech-projects/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/when-statement-of-work-beats-staff-augmentation-us-tech-projects/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"when-statement-of-work-beats-staff-augmentation-us-tech-projects"}},{"id":"title","body":"When Statement of Work Beats Staff Augmentation ","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Statement of Work or staff augmentation for critical US tech projects? Fixed-scope work, change-order cost, and the 20-40% cost gap explained. "}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"statement of work vs staff augmentation, SOW tech projects, staff augmentation US, software engagement model"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Article\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/when-statement-of-work-beats-staff-augmentation-us-tech-projects/\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/news/when-statement-of-work-beats-staff-augmentation-us-tech-projects/\\",\\n      \\"headline\\": \\"When Statement of Work Beats Staff Augmentation on Critical US Tech Projects\\",\\n      \\"description\\": \\"Statement of Work or staff augmentation for critical US tech projects? Fixed-scope work, change-order cost, and the 20-40% cost gap explained.\\",\\n      \\"inLanguage\\": \\"en-GB\\",\\n      \\"datePublished\\": \\"2026-06-23\\",\\n      \\"dateModified\\": \\"2026-06-23\\",\\n      \\"author\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"Signify Technology\\"\\n      },\\n      \\"publisher\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"areaServed\\": [\\n        \\"US\\",\\n        \\"GB\\",\\n        \\"DE\\"\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"When should a US company use Statement of Work instead of staff augmentation?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"When scope is fixed, when vendor process accountability outweighs daily oversight value, when work is non-core to product differentiation, and when budget predictability matters more than scope flexibility.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How much does staff augmentation cost compared to SOW in 2026?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Staff augmentation costs 20-40% more per resource than SOW on knowledge-intensive projects. For projects longer than 6 months, staff augmentation often costs 20-40% less overall by avoiding change-order markup.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What\'s the difference between staff augmentation and project outsourcing?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Staff augmentation embeds individual external developers into the buyer\'s team under the buyer\'s management. Project outsourcing transfers responsibility for a defined deliverable to a vendor.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Why do fixed-scope SOW contracts fail on product development work?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Because product development is requirements discovery, not requirements execution. Vendor-locked SOW contracts disincentivise the vendor from surfacing when the spec is wrong.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Can I switch from SOW to staff augmentation mid-project?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Yes. A common pattern is SOW for the initial MVP build then transition to staff augmentation once the buyer has an internal tech lead. Plan the handoff at SOW signing.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What\'s the typical SOW change-order cost for a US tech project?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Change orders typically add 20-50% to the original SOW budget. Three change orders typically equalise SOW and staff augmentation on cost.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"When SOW Beats Staff Augmentation\\"\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/resourcing-solutions/":[{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"WebPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/resourcing-solutions/#webpage\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/resourcing-solutions/\\",\\n      \\"name\\": \\"Resourcing Solutions\\",\\n      \\"description\\": \\"Signify Technology, is a global staffing agency committed to connecting diverse and innovative talent within the Rust, Scala and Go markets to the companies.\\",\\n      \\"isPartOf\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#website\\"\\n      },\\n      \\"about\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n      },\\n      \\"breadcrumb\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/resourcing-solutions/#breadcrumb\\"\\n      },\\n      \\"inLanguage\\": \\"en-GB\\"\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/resourcing-solutions/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Resourcing Solutions\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"Organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/logo/signify-logo.png\\",\\n      \\"description\\": \\"Signify Technology is a global staffing agency connecting exceptional talent in emerging technologies across leadership, software engineering, data, and cloud. We are minority-owned (MSDUK certified) with offices in London and Austin.\\",\\n      \\"foundingDate\\": \\"2016\\",\\n      \\"founder\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"Ryan Adams\\",\\n        \\"jobTitle\\": \\"Founder & CEO\\",\\n        \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n      },\\n      \\"employee\\": [\\n        {\\n          \\"@type\\": \\"Person\\",\\n          \\"name\\": \\"Ryan Adams\\",\\n          \\"jobTitle\\": \\"Founder & CEO\\",\\n          \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n        }\\n      ],\\n      \\"address\\": [\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"3 Moorgate Place, 1st Floor\\",\\n          \\"addressLocality\\": \\"London\\",\\n          \\"postalCode\\": \\"EC2R 6EA\\",\\n          \\"addressCountry\\": \\"GB\\"\\n        },\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"Prominent Pointe 1, Suite 295, 8310-1 N. Capital of Texas Highway\\",\\n          \\"addressLocality\\": \\"Austin\\",\\n          \\"addressRegion\\": \\"TX\\",\\n          \\"postalCode\\": \\"78731\\",\\n          \\"addressCountry\\": \\"US\\"\\n        }\\n      ],\\n      \\"contactPoint\\": [\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+44 (0) 20 3865 0621\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"GB\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        },\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+1 (346) 374 0300\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"US\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        }\\n      ],\\n      \\"sameAs\\": [\\n        \\"https://www.linkedin.com/company/signify-technology\\",\\n        \\"https://twitter.com/signifytech\\",\\n        \\"https://www.facebook.com/signifytechnology\\"\\n      ],\\n      \\"knowsAbout\\": [\\n        \\"Scala recruitment\\",\\n        \\"Functional programming staffing\\",\\n        \\"Software engineering recruitment\\",\\n        \\"Data and cloud hiring\\",\\n        \\"Tech leadership placements\\"\\n      ],\\n      \\"memberOf\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"MSDUK\\",\\n        \\"url\\": \\"https://www.msduk.org.uk/\\"\\n      },\\n      \\"award\\": [\\n        \\"2023 Best Recruitment Company to Work For\\",\\n        \\"2022 Recruiter Awards Finalist\\"\\n      ],\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/resourcing-solutions/"},"staticAttributes":{"rel":"canonical"}}],"/consulting-solutions/":[{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"WebPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/consulting-solutions/#webpage\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/consulting-solutions/\\",\\n      \\"name\\": \\"Consulting Solutions\\",\\n      \\"description\\": \\"Signify Technology, is a global staffing agency committed to connecting diverse and innovative talent within the Rust, Scala and Go markets to the companies.\\",\\n      \\"isPartOf\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#website\\"\\n      },\\n      \\"about\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n      },\\n      \\"breadcrumb\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/consulting-solutions/#breadcrumb\\"\\n      },\\n      \\"inLanguage\\": \\"en-GB\\"\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/consulting-solutions/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Consulting Solutions\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"Organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/logo/signify-logo.png\\",\\n      \\"description\\": \\"Signify Technology is a global staffing agency connecting exceptional talent in emerging technologies across leadership, software engineering, data, and cloud. We are minority-owned (MSDUK certified) with offices in London and Austin.\\",\\n      \\"foundingDate\\": \\"2016\\",\\n      \\"founder\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"Ryan Adams\\",\\n        \\"jobTitle\\": \\"Founder & CEO\\",\\n        \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n      },\\n      \\"employee\\": [\\n        {\\n          \\"@type\\": \\"Person\\",\\n          \\"name\\": \\"Ryan Adams\\",\\n          \\"jobTitle\\": \\"Founder & CEO\\",\\n          \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n        }\\n      ],\\n      \\"address\\": [\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"3 Moorgate Place, 1st Floor\\",\\n          \\"addressLocality\\": \\"London\\",\\n          \\"postalCode\\": \\"EC2R 6EA\\",\\n          \\"addressCountry\\": \\"GB\\"\\n        },\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"Prominent Pointe 1, Suite 295, 8310-1 N. Capital of Texas Highway\\",\\n          \\"addressLocality\\": \\"Austin\\",\\n          \\"addressRegion\\": \\"TX\\",\\n          \\"postalCode\\": \\"78731\\",\\n          \\"addressCountry\\": \\"US\\"\\n        }\\n      ],\\n      \\"contactPoint\\": [\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+44 (0) 20 3865 0621\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"GB\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        },\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+1 (346) 374 0300\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"US\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        }\\n      ],\\n      \\"sameAs\\": [\\n        \\"https://www.linkedin.com/company/signify-technology\\",\\n        \\"https://twitter.com/signifytech\\",\\n        \\"https://www.facebook.com/signifytechnology\\"\\n      ],\\n      \\"knowsAbout\\": [\\n        \\"Scala recruitment\\",\\n        \\"Functional programming staffing\\",\\n        \\"Software engineering recruitment\\",\\n        \\"Data and cloud hiring\\",\\n        \\"Tech leadership placements\\"\\n      ],\\n      \\"memberOf\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"MSDUK\\",\\n        \\"url\\": \\"https://www.msduk.org.uk/\\"\\n      },\\n      \\"award\\": [\\n        \\"2023 Best Recruitment Company to Work For\\",\\n        \\"2022 Recruiter Awards Finalist\\"\\n      ],\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/consulting-solutions/"},"staticAttributes":{"rel":"canonical"}}],"/client-solutions/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Client solutions driving recruitment success for technology companies with innovative staffing."}},{"id":"title","body":"Client Solutions | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"WebPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/client-solutions/#webpage\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/client-solutions/\\",\\n      \\"name\\": \\"Client Solutions\\",\\n      \\"description\\": \\"Client solutions driving recruitment success for technology companies with innovative staffing.\\",\\n      \\"isPartOf\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#website\\"\\n      },\\n      \\"about\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n      },\\n      \\"breadcrumb\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/client-solutions/#breadcrumb\\"\\n      },\\n      \\"inLanguage\\": \\"en-GB\\"\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/client-solutions/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Client Solutions\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"Organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/logo/signify-logo.png\\",\\n      \\"description\\": \\"Signify Technology is a global staffing agency connecting exceptional talent in emerging technologies across leadership, software engineering, data, and cloud. We are minority-owned (MSDUK certified) with offices in London and Austin.\\",\\n      \\"foundingDate\\": \\"2016\\",\\n      \\"founder\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"Ryan Adams\\",\\n        \\"jobTitle\\": \\"Founder & CEO\\",\\n        \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n      },\\n      \\"employee\\": [\\n        {\\n          \\"@type\\": \\"Person\\",\\n          \\"name\\": \\"Ryan Adams\\",\\n          \\"jobTitle\\": \\"Founder & CEO\\",\\n          \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n        }\\n      ],\\n      \\"address\\": [\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"3 Moorgate Place, 1st Floor\\",\\n          \\"addressLocality\\": \\"London\\",\\n          \\"postalCode\\": \\"EC2R 6EA\\",\\n          \\"addressCountry\\": \\"GB\\"\\n        },\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"Prominent Pointe 1, Suite 295, 8310-1 N. Capital of Texas Highway\\",\\n          \\"addressLocality\\": \\"Austin\\",\\n          \\"addressRegion\\": \\"TX\\",\\n          \\"postalCode\\": \\"78731\\",\\n          \\"addressCountry\\": \\"US\\"\\n        }\\n      ],\\n      \\"contactPoint\\": [\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+44 (0) 20 3865 0621\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"GB\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        },\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+1 (346) 374 0300\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"US\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        }\\n      ],\\n      \\"sameAs\\": [\\n        \\"https://www.linkedin.com/company/signify-technology\\",\\n        \\"https://twitter.com/signifytech\\",\\n        \\"https://www.facebook.com/signifytechnology\\"\\n      ],\\n      \\"knowsAbout\\": [\\n        \\"Scala recruitment\\",\\n        \\"Functional programming staffing\\",\\n        \\"Software engineerin
1g recruitment\\",\\n        \\"Data and cloud hiring\\",\\n        \\"Tech leadership placements\\"\\n      ],\\n      \\"memberOf\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"MSDUK\\",\\n        \\"url\\": \\"https://www.msduk.org.uk/\\"\\n      },\\n      \\"award\\": [\\n        \\"2023 Best Recruitment Company to Work For\\",\\n        \\"2022 Recruiter Awards Finalist\\"\\n      ],\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/client-solutions/"},"staticAttributes":{"rel":"canonical"}}],"/join-us/":[{"id":"description","name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"We are looking for exceptional people to join Signify Technology to help us continue our ambitious growth targets and continue to be the pioneering..."},"staticAttributes":{}},{"id":"title","body":"Join us","single":true,"hasBody":true,"tagName":"title","attributes":{},"staticAttributes":{}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"WebPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/join-us/#webpage\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/join-us/\\",\\n      \\"name\\": \\"Join Us\\",\\n      \\"description\\": \\"We are looking for exceptional people to join Signify Technology to help us continue our ambitious growth targets and continue to be the pioneering...\\",\\n      \\"isPartOf\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#website\\"\\n      },\\n      \\"about\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n      },\\n      \\"breadcrumb\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/join-us/#breadcrumb\\"\\n      },\\n      \\"inLanguage\\": \\"en-GB\\"\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/join-us/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Join Us\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"Organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/logo/signify-logo.png\\",\\n      \\"description\\": \\"Signify Technology is a global staffing agency connecting exceptional talent in emerging technologies across leadership, software engineering, data, and cloud. We are minority-owned (MSDUK certified) with offices in London and Austin.\\",\\n      \\"foundingDate\\": \\"2016\\",\\n      \\"founder\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"Ryan Adams\\",\\n        \\"jobTitle\\": \\"Founder & CEO\\",\\n        \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n      },\\n      \\"employee\\": [\\n        {\\n          \\"@type\\": \\"Person\\",\\n          \\"name\\": \\"Ryan Adams\\",\\n          \\"jobTitle\\": \\"Founder & CEO\\",\\n          \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n        }\\n      ],\\n      \\"address\\": [\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"3 Moorgate Place, 1st Floor\\",\\n          \\"addressLocality\\": \\"London\\",\\n          \\"postalCode\\": \\"EC2R 6EA\\",\\n          \\"addressCountry\\": \\"GB\\"\\n        },\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"Prominent Pointe 1, Suite 295, 8310-1 N. Capital of Texas Highway\\",\\n          \\"addressLocality\\": \\"Austin\\",\\n          \\"addressRegion\\": \\"TX\\",\\n          \\"postalCode\\": \\"78731\\",\\n          \\"addressCountry\\": \\"US\\"\\n        }\\n      ],\\n      \\"contactPoint\\": [\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+44 (0) 20 3865 0621\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"GB\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        },\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+1 (346) 374 0300\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"US\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        }\\n      ],\\n      \\"sameAs\\": [\\n        \\"https://www.linkedin.com/company/signify-technology\\",\\n        \\"https://twitter.com/signifytech\\",\\n        \\"https://www.facebook.com/signifytechnology\\"\\n      ],\\n      \\"knowsAbout\\": [\\n        \\"Scala recruitment\\",\\n        \\"Functional programming staffing\\",\\n        \\"Software engineering recruitment\\",\\n        \\"Data and cloud hiring\\",\\n        \\"Tech leadership placements\\"\\n      ],\\n      \\"memberOf\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"MSDUK\\",\\n        \\"url\\": \\"https://www.msduk.org.uk/\\"\\n      },\\n      \\"award\\": [\\n        \\"2023 Best Recruitment Company to Work For\\",\\n        \\"2022 Recruiter Awards Finalist\\"\\n      ],\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/join-us/"},"staticAttributes":{"rel":"canonical"}}],"/news/senior-rust-engineer-career-path-junior-to-principal-2026/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/senior-rust-engineer-career-path-junior-to-principal-2026/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"senior-rust-engineer-career-path-junior-to-principal-2026"}},{"id":"title","body":"Senior Rust Engineer Career Path: Junior to Principal 2026","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"What a Senior Rust Engineer does day-to-day, the career path from junior to principal, and how the role compares to Senior C++ and Senior Go."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Senior Rust Engineer career path, Rust developer career, Rust vs C++, Rust vs Go\\n"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"WebPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/senior-rust-engineer-career-path-junior-to-principal-2026/\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/news/senior-rust-engineer-career-path-junior-to-principal-2026/\\",\\n      \\"name\\": \\"Senior Rust Engineer Career Path: From Junior to Principal in 2026\\",\\n      \\"description\\": \\"What a Senior Rust Engineer does day-to-day, the career path from junior to principal, and how the role compares to Senior C++ and Senior Go.\\",\\n      \\"inLanguage\\": \\"en-GB\\",\\n      \\"datePublished\\": \\"2026-06-23\\",\\n      \\"dateModified\\": \\"2026-06-23\\"\\n    },\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"name\\": \\"Senior Rust Engineer Career Guidance\\",\\n      \\"serviceType\\": \\"Specialist Rust Recruitment\\",\\n      \\"provider\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"areaServed\\": [\\n        \\"GB\\",\\n        \\"US\\",\\n        \\"DE\\"\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What qualifications does a Senior Rust Engineer need?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"A bachelor\'s degree in Computer Science is the typical baseline. Production experience with unsafe, async Tokio and the borrow checker consistently outranks formal qualifications in 2026 senior Rust hiring.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How long does it take to become a Senior Rust Engineer?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Typically 6-8 years of progressive systems experience, of which 2-4 years in production Rust. A competent C++ engineer reaches productive Rust proficiency in three to six months per KORE1.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What\'s the career ceiling for a Senior Rust Engineer on the IC track?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Principal or Distinguished Engineer at $250,000-$355,000+ base US, \xa3155,000-\xa3220,000+ London, \u20ac145,000-\u20ac200,000+ Berlin. Total comp at Distinguished tier regularly clears $500,000-$800,000 with equity.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Do Senior Rust Engineers earn more than senior Go, Java or Python engineers?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Yes. Senior Rust engineers command a $25,000-$30,000 premium over senior Go per Tech-Insider 2026 benchmarks. Systems-Rust runs 15-25% above application-Rust at the same seniority.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Can a Senior Rust Engineer work fully remotely?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Yes. Remote Rust roles typically pay 85-95% of equivalent on-site US salaries. UK senior Rust remote roles cluster at \xa385,000-\xa3120,000 base plus equity, healthcare and pension.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Do I need to learn unsafe Rust as a senior engineer?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Yes, at minimum for code review purposes. Systems-layer roles require active unsafe proficiency including FFI, custom allocators and audit tooling. Inability to review unsafe correctly is the biggest disqualifier for senior systems-Rust roles.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Senior Rust Engineer Career Path\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"name\\": \\"How to Become a Senior Rust Engineer\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Junior Rust Developer\\",\\n          \\"text\\": \\"0-3 years. Ship a service end-to-end without senior intervention and carry primary on-call for a quarter without major incident.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Rust Developer / Backend Engineer\\",\\n          \\"text\\": \\"3-6 years. Lead the design of a new service from kickoff to launch and on-call ownership. Audit at least one team unsafe block.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Senior Rust Engineer\\",\\n          \\"text\\": \\"6-10 years. Make architectural decisions other senior engineers reference. Recruit at least one mid-level engineer who reaches senior under your mentorship.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Staff / Lead Rust Engineer\\",\\n          \\"text\\": \\"10-15 years. Lead a platform-level migration or rebuild without becoming the bottleneck. Serve as reviewer on an open-source Rust crate.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 5,\\n          \\"name\\": \\"Principal Engineer / Software Architect\\",\\n          \\"text\\": \\"15+ years. Make a multi-year bet (language migration, platform consolidation, regulatory certification) later validated by business outcomes.\\"\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/when-retained-tech-recruitment-saves-us-hiring-managers-more-money/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/when-retained-tech-recruitment-saves-us-hiring-managers-more-money/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"when-retained-tech-recruitment-saves-us-hiring-managers-more-money"}},{"id":"title","body":"When Retained Tech Recruitment Saves US Hiring Money","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Retained search completes at 95% versus 20-30% contingent. For senior US engineering roles above $200K total comp, retained pays back on completion certainty alone."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"retained search tech recruitment, retained vs contingent, executive search US, senior engineering recruitment"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Article\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/when-retained-tech-recruitment-saves-us-hiring-managers-more-money/\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/news/when-retained-tech-recruitment-saves-us-hiring-managers-more-money/\\",\\n      \\"headline\\": \\"When Retained Tech Recruitment Saves US Hiring Managers More Money Than Contingent\\",\\n      \\"description\\": \\"Retained search completes at 95% versus 20-30% contingent. For senior US engineering roles above $200K total comp, retained pays back on completion certainty alone.\\",\\n      \\"inLanguage\\": \\"en-GB\\",\\n      \\"datePublished\\": \\"2026-06-23\\",\\n      \\"dateModified\\": \\"2026-06-23\\",\\n      \\"author\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"Signify Technology\\"\\n      },\\n      \\"publisher\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"areaServed\\": [\\n        \\"US\\",\\n        \\"GB\\",\\n        \\"DE\\"\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"When should US hiring managers use retained search instead of contingent recruitment?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"When the role is above $200,000 total comp, when the talent pool is passive, when confidentiality matters, when the role is mission-critical, and when the buyer can commit to a single search partner.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What\'s the success rate gap between retained and contingent recruitment?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Retained search completes at ~95%. Contingent search completes at 10-35% across multiple 2026 sources. The gap is structural.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What does retained search cost compared to contingent for a senior US engineering role?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Retained fees 30-35% of first-year total compensation. Contingent fees 20-25% of first-year base salary. The bad-hire risk on contingent failure eclipses the fee gap.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Can multiple contingent recruiters work the same senior engineering role?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Yes by default, but multiple firms typically surface duplicate candidates, create brand confusion and lose the buyer time. Most buyers convert to retained after one such experience.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Why do contingent recruiters move on from difficult-to-fill roles?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"They only get paid on placement and rationally allocate hours to easy-to-fill roles where they have the best earn probability. Hard roles get filed behind easier ones.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What is a Container or hybrid recruitment model and when does it work?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"A Container model has the buyer pay a small upfront commitment fee ($3,000-$5,000), with the balance contingent on placement. Middle ground between retained and contingent.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"When Retained Tech Recruitment Saves Money\\"\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/what-us-engineering-leaders-should-know-about-sourcing-nearshore-latam-talent-2026/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/what-us-engineering-leaders-should-know-about-sourcing-nearshore-latam-talent-2026/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"what-us-engineering-leaders-should-know-about-sourcing-nearshore-latam-talent-2026"}},{"id":"title","body":"What US Engineering Leaders Should Know About Nearshore LATAM","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"What US engineering leaders need to know about sourcing nearshore LATAM talent in 2026. Time zones, rates, hubs and retention. Book a Signify call."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"nearshore latam talent 2026, us engineering leaders latam, latam software developers, mexico city tech hiring, buenos aires software talent"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Article\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/what-us-engineering-leaders-should-know-about-sourcing-nearshore-latam-talent-2026/#article\\",\\n      \\"headline\\": \\"What US Engineering Leaders Should Know About Sourcing Nearshore LATAM Talent in 2026\\",\\n      \\"description\\": \\"What US engineering leaders need to know about sourcing nearshore LATAM talent in 2026. Time zones, rates, hubs and retention. Book a Signify call.\\",\\n      \\"datePublished\\": \\"2026-07-19\\",\\n      \\"dateModified\\": \\"2026-07-19\\",\\n      \\"author\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/meet-the-team/lauren-dubery/#person\\"\\n      },\\n      \\"publisher\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      },\\n      \\"mainEntityOfPage\\": {\\n        \\"@type\\": \\"WebPage\\",\\n        \\"@id\\": \\"https://www.signifytechnology.com/news/what-us-engineering-leaders-should-know-about-sourcing-nearshore-latam-talent-2026/\\"\\n      },\\n      \\"keywords\\": [\\n        \\"nearshore LATAM talent 2026\\",\\n        \\"US engineering leaders LATAM\\",\\n        \\"LATAM software developers\\",\\n        \\"Mexico City tech hiring\\",\\n        \\"Buenos Aires s
1oftware talent\\"\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/logo.png\\",\\n      \\"address\\": {\\n        \\"@type\\": \\"PostalAddress\\",\\n        \\"streetAddress\\": \\"Prominent Pointe 1, Suite 295, 8310-1 N. Capital of Texas Highway\\",\\n        \\"addressLocality\\": \\"Austin\\",\\n        \\"addressRegion\\": \\"TX\\",\\n        \\"postalCode\\": \\"78731\\",\\n        \\"addressCountry\\": \\"US\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"Person\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/meet-the-team/lauren-dubery/#person\\",\\n      \\"name\\": \\"Lauren Dubery\\",\\n      \\"jobTitle\\": \\"Senior Director\\",\\n      \\"worksFor\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      },\\n      \\"url\\": \\"https://www.signifytechnology.com/meet-the-team/\\"\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/what-us-engineering-leaders-should-know-about-sourcing-nearshore-latam-talent-2026/#faq\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What is the actual fully-loaded cost of a senior LATAM engineer in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Senior LATAM engineer rates run $50 to $85 per hour fully loaded, translating to $6,500 to $11,000 per engineer per month for a 40-hour week per BairesDev 2026. This runs 40% to 60% of US onshore equivalent senior engineer rates at $150 to $220 per hour.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Which LATAM hub should a US engineering leader target first?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Mexico City for the largest volume and USMCA IP protection. Buenos Aires for the strongest currency arbitrage against senior Rust, Scala, Go and applied AI ecosystems. Medell\xedn for US East Coast time zone overlap and a mature English-fluent developer community. San Jos\xe9, Costa Rica for smaller-scale higher-quality nearshore with CAFTA-DR IP protection.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How does LATAM English fluency compare to Eastern European sourcing markets?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"English fluency at senior tier across primary LATAM hubs runs C1 to C2 per BairesDev 2026, matching or exceeding equivalent Eastern European markets. Buenos Aires, Medell\xedn and San Jos\xe9 typically deliver the strongest senior-tier English fluency.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Does the US-Mexico USMCA framework cover IP protection for US engineering buyers?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Yes. USMCA covers IP protection under bilateral trade rules at a US-adjacent standard. The US-Colombia Trade Promotion Agreement covers Colombia. CAFTA-DR covers Costa Rica. Argentina and Uruguay hold WIPO membership plus bilateral US investment protection agreements.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How long does it take to mobilise a nearshore LATAM engineering team in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Median LATAM senior engineer contract mobilisation runs 15 to 25 working days from initial brief through signed engagement, against 25 to 35 days for equivalent US onshore Senior AI Engineer permanent placement per Korn Ferry via Acceler8 Talent April 2026.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/what-us-engineering-leaders-should-know-about-sourcing-nearshore-latam-talent-2026/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"What US Engineering Leaders Should Know About Sourcing Nearshore LATAM Talent in 2026\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/what-us-engineering-leaders-should-know-about-sourcing-nearshore-latam-talent-2026/#howto\\",\\n      \\"name\\": \\"How to Source Nearshore LATAM Engineering Talent for a US Team in 2026\\",\\n      \\"description\\": \\"The 4-step process for US engineering leaders sourcing nearshore LATAM engineering talent across Mexico, Colombia, Argentina, Uruguay and Costa Rica in 2026.\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Pick the LATAM hub against team profile\\",\\n          \\"text\\": \\"Mexico City for volume and USMCA IP. Buenos Aires for currency arbitrage on Rust and Scala. Medell\xedn for US East Coast overlap. San Jos\xe9 for smaller-scale higher-quality nearshore with CAFTA-DR IP protection.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Calibrate against fully-loaded rate anchors\\",\\n          \\"text\\": \\"Senior LATAM engineer rates $50-$85 per hour fully loaded, $6,500-$11,000 per engineer per month. This runs 40% to 60% of US onshore at $150-$220 per hour.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Price total cost of ownership, not rate card alone\\",\\n          \\"text\\": \\"Turnover replacement ($75K-$150K per senior engineer at 8% to 15% LATAM annual turnover), buyer-side engineering management overhead (25% to 35% of a US manager\'s week per 10-contractor team), and currency and political risk across multi-year engagements.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Hedge exposure across two or three hubs\\",\\n          \\"text\\": \\"For engagements over 10 engineers, diversify across two or three LATAM hubs rather than concentrating in a single country. Currency and political risk are non-zero even in stable markets.\\"\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/candidate-experience/":[{"id":"title","body":"Candidate Tech Hub","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Candidate experience services that connect top tech talent with leading employers."}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"WebPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/candidate-experience/#webpage\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/candidate-experience/\\",\\n      \\"name\\": \\"Candidate Tech Hub\\",\\n      \\"description\\": \\"Candidate experience services that connect top tech talent with leading employers.\\",\\n      \\"isPartOf\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#website\\"\\n      },\\n      \\"about\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n      },\\n      \\"breadcrumb\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/candidate-experience/#breadcrumb\\"\\n      },\\n      \\"inLanguage\\": \\"en-GB\\"\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/candidate-experience/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Candidate Tech Hub\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"Organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/logo/signify-logo.png\\",\\n      \\"description\\": \\"Signify Technology is a global staffing agency connecting exceptional talent in emerging technologies across leadership, software engineering, data, and cloud. We are minority-owned (MSDUK certified) with offices in London and Austin.\\",\\n      \\"foundingDate\\": \\"2016\\",\\n      \\"founder\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"Ryan Adams\\",\\n        \\"jobTitle\\": \\"Founder & CEO\\",\\n        \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n      },\\n      \\"employee\\": [\\n        {\\n          \\"@type\\": \\"Person\\",\\n          \\"name\\": \\"Ryan Adams\\",\\n          \\"jobTitle\\": \\"Founder & CEO\\",\\n          \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n        }\\n      ],\\n      \\"address\\": [\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"3 Moorgate Place, 1st Floor\\",\\n          \\"addressLocality\\": \\"London\\",\\n          \\"postalCode\\": \\"EC2R 6EA\\",\\n          \\"addressCountry\\": \\"GB\\"\\n        },\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"Prominent Pointe 1, Suite 295, 8310-1 N. Capital of Texas Highway\\",\\n          \\"addressLocality\\": \\"Austin\\",\\n          \\"addressRegion\\": \\"TX\\",\\n          \\"postalCode\\": \\"78731\\",\\n          \\"addressCountry\\": \\"US\\"\\n        }\\n      ],\\n      \\"contactPoint\\": [\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+44 (0) 20 3865 0621\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"GB\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        },\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+1 (346) 374 0300\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"US\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        }\\n      ],\\n      \\"sameAs\\": [\\n        \\"https://www.linkedin.com/company/signify-technology\\",\\n        \\"https://twitter.com/signifytech\\",\\n        \\"https://www.facebook.com/signifytechnology\\"\\n      ],\\n      \\"knowsAbout\\": [\\n        \\"Scala recruitment\\",\\n        \\"Functional programming staffing\\",\\n        \\"Software engineering recruitment\\",\\n        \\"Data and cloud hiring\\",\\n        \\"Tech leadership placements\\"\\n      ],\\n      \\"memberOf\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"MSDUK\\",\\n        \\"url\\": \\"https://www.msduk.org.uk/\\"\\n      },\\n      \\"award\\": [\\n        \\"2023 Best Recruitment Company to Work For\\",\\n        \\"2022 Recruiter Awards Finalist\\"\\n      ],\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/candidate-experience/"},"staticAttributes":{"rel":"canonical"}}],"/meet-the-team/":[{"id":"description","name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"To empower every person, regardless of their background or circumstances, with an equal chance to achieve the careers they deserve. Building a diverse future, one placement at a time."},"staticAttributes":{}},{"id":"title","body":"Meet the team","single":true,"hasBody":true,"tagName":"title","attributes":{},"staticAttributes":{}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"AboutPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/meet-the-team/#webpage\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/meet-the-team/\\",\\n      \\"name\\": \\"Meet our Team\\",\\n      \\"description\\": \\"To empower every person, regardless of their background or circumstances, with an equal chance to achieve the careers they deserve.\\",\\n      \\"isPartOf\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#website\\"\\n      },\\n      \\"about\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n      },\\n      \\"breadcrumb\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/meet-the-team/#breadcrumb\\"\\n      },\\n      \\"inLanguage\\": \\"en-GB\\"\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/meet-the-team/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Meet our Team\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"Organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/logo/signify-logo.png\\",\\n      \\"description\\": \\"Signify Technology is a global staffing agency connecting exceptional talent in emerging technologies across leadership, software engineering, data, and cloud. We are minority-owned (MSDUK certified) with offices in London and Austin.\\",\\n      \\"foundingDate\\": \\"2016\\",\\n      \\"founder\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"Ryan Adams\\",\\n        \\"jobTitle\\": \\"Founder & CEO\\",\\n        \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n      },\\n      \\"employee\\": [\\n        {\\n          \\"@type\\": \\"Person\\",\\n          \\"name\\": \\"Ryan Adams\\",\\n          \\"jobTitle\\": \\"Founder & CEO\\",\\n          \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n        }\\n      ],\\n      \\"address\\": [\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"3 Moorgate Place, 1st Floor\\",\\n          \\"addressLocality\\": \\"London\\",\\n          \\"postalCode\\": \\"EC2R 6EA\\",\\n          \\"addressCountry\\": \\"GB\\"\\n        },\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"Prominent Pointe 1, Suite 295, 8310-1 N. Capital of Texas Highway\\",\\n          \\"addressLocality\\": \\"Austin\\",\\n          \\"addressRegion\\": \\"TX\\",\\n          \\"postalCode\\": \\"78731\\",\\n          \\"addressCountry\\": \\"US\\"\\n        }\\n      ],\\n      \\"contactPoint\\": [\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+44 (0) 20 3865 0621\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"GB\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        },\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+1 (346) 374 0300\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"US\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        }\\n      ],\\n      \\"sameAs\\": [\\n        \\"https://www.linkedin.com/company/signify-technology\\",\\n        \\"https://twitter.com/signifytech\\",\\n        \\"https://www.facebook.com/signifytechnology\\"\\n      ],\\n      \\"knowsAbout\\": [\\n        \\"Scala recruitment\\",\\n        \\"Functional programming staffing\\",\\n        \\"Software engineering recruitment\\",\\n        \\"Data and cloud hiring\\",\\n        \\"Tech leadership placements\\"\\n      ],\\n      \\"memberOf\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"MSDUK\\",\\n        \\"url\\": \\"https://www.msduk.org.uk/\\"\\n      },\\n      \\"award\\": [\\n        \\"2023 Best Recruitment Company to Work For\\",\\n        \\"2022 Recruiter Awards Finalist\\"\\n      ],\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/meet-the-team/"},"staticAttributes":{"rel":"canonical"}}],"/community-events/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Community events that foster networking and provide industry insights in technology."}},{"id":"title","body":"Community Events | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"WebPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/community-events/#webpage\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/community-events/\\",\\n      \\"name\\": \\"Community Events\\",\\n      \\"description\\": \\"Community events that foster networking and provide industry insights in technology.\\",\\n      \\"isPartOf\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#website\\"\\n      },\\n      \\"about\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n      },\\n      \\"breadcrumb\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/community-events/#breadcrumb\\"\\n      },\\n      \\"inLanguage\\": \\"en-GB\\"\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/community-events/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Community Events\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"Organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/logo/signify-logo.png\\",\\n      \\"description\\": \\"Signify Technology is a global staffing agency connecting exceptional talent in emerging technologies across leadership, software engineering, data, and cloud. We are minority-owned (MSDUK certified) with offices in London and 
1Austin.\\",\\n      \\"foundingDate\\": \\"2016\\",\\n      \\"founder\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"Ryan Adams\\",\\n        \\"jobTitle\\": \\"Founder & CEO\\",\\n        \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n      },\\n      \\"employee\\": [\\n        {\\n          \\"@type\\": \\"Person\\",\\n          \\"name\\": \\"Ryan Adams\\",\\n          \\"jobTitle\\": \\"Founder & CEO\\",\\n          \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n        }\\n      ],\\n      \\"address\\": [\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"3 Moorgate Place, 1st Floor\\",\\n          \\"addressLocality\\": \\"London\\",\\n          \\"postalCode\\": \\"EC2R 6EA\\",\\n          \\"addressCountry\\": \\"GB\\"\\n        },\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"Prominent Pointe 1, Suite 295, 8310-1 N. Capital of Texas Highway\\",\\n          \\"addressLocality\\": \\"Austin\\",\\n          \\"addressRegion\\": \\"TX\\",\\n          \\"postalCode\\": \\"78731\\",\\n          \\"addressCountry\\": \\"US\\"\\n        }\\n      ],\\n      \\"contactPoint\\": [\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+44 (0) 20 3865 0621\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"GB\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        },\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+1 (346) 374 0300\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"US\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        }\\n      ],\\n      \\"sameAs\\": [\\n        \\"https://www.linkedin.com/company/signify-technology\\",\\n        \\"https://twitter.com/signifytech\\",\\n        \\"https://www.facebook.com/signifytechnology\\"\\n      ],\\n      \\"knowsAbout\\": [\\n        \\"Scala recruitment\\",\\n        \\"Functional programming staffing\\",\\n        \\"Software engineering recruitment\\",\\n        \\"Data and cloud hiring\\",\\n        \\"Tech leadership placements\\"\\n      ],\\n      \\"memberOf\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"MSDUK\\",\\n        \\"url\\": \\"https://www.msduk.org.uk/\\"\\n      },\\n      \\"award\\": [\\n        \\"2023 Best Recruitment Company to Work For\\",\\n        \\"2022 Recruiter Awards Finalist\\"\\n      ],\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/community-events/"},"staticAttributes":{"rel":"canonical"}}],"/news/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Up-to-date news on tech recruitment trends, industry insights, and company milestones."}},{"id":"title","body":"Tech Recruitment Insights | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"CollectionPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/#webpage\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/news/\\",\\n      \\"name\\": \\"Insights\\",\\n      \\"description\\": \\"Up-to-date news on tech recruitment trends, industry insights, and company milestones.\\",\\n      \\"isPartOf\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#website\\"\\n      },\\n      \\"about\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n      },\\n      \\"breadcrumb\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/news/#breadcrumb\\"\\n      },\\n      \\"inLanguage\\": \\"en-GB\\"\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Insights\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"Organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/logo/signify-logo.png\\",\\n      \\"description\\": \\"Signify Technology is a global staffing agency connecting exceptional talent in emerging technologies across leadership, software engineering, data, and cloud. We are minority-owned (MSDUK certified) with offices in London and Austin.\\",\\n      \\"foundingDate\\": \\"2016\\",\\n      \\"founder\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"Ryan Adams\\",\\n        \\"jobTitle\\": \\"Founder & CEO\\",\\n        \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n      },\\n      \\"employee\\": [\\n        {\\n          \\"@type\\": \\"Person\\",\\n          \\"name\\": \\"Ryan Adams\\",\\n          \\"jobTitle\\": \\"Founder & CEO\\",\\n          \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n        }\\n      ],\\n      \\"address\\": [\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"3 Moorgate Place, 1st Floor\\",\\n          \\"addressLocality\\": \\"London\\",\\n          \\"postalCode\\": \\"EC2R 6EA\\",\\n          \\"addressCountry\\": \\"GB\\"\\n        },\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"Prominent Pointe 1, Suite 295, 8310-1 N. Capital of Texas Highway\\",\\n          \\"addressLocality\\": \\"Austin\\",\\n          \\"addressRegion\\": \\"TX\\",\\n          \\"postalCode\\": \\"78731\\",\\n          \\"addressCountry\\": \\"US\\"\\n        }\\n      ],\\n      \\"contactPoint\\": [\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+44 (0) 20 3865 0621\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"GB\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        },\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+1 (346) 374 0300\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"US\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        }\\n      ],\\n      \\"sameAs\\": [\\n        \\"https://www.linkedin.com/company/signify-technology\\",\\n        \\"https://twitter.com/signifytech\\",\\n        \\"https://www.facebook.com/signifytechnology\\"\\n      ],\\n      \\"knowsAbout\\": [\\n        \\"Scala recruitment\\",\\n        \\"Functional programming staffing\\",\\n        \\"Software engineering recruitment\\",\\n        \\"Data and cloud hiring\\",\\n        \\"Tech leadership placements\\"\\n      ],\\n      \\"memberOf\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"MSDUK\\",\\n        \\"url\\": \\"https://www.msduk.org.uk/\\"\\n      },\\n      \\"award\\": [\\n        \\"2023 Best Recruitment Company to Work For\\",\\n        \\"2022 Recruiter Awards Finalist\\"\\n      ],\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/"},"staticAttributes":{"rel":"canonical"}}],"/news/how-to-choose-a-specialist-tech-recruitment-partner-for-functional-programming-hires/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/how-to-choose-a-specialist-tech-recruitment-partner-for-functional-programming-hires/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"how-to-choose-a-specialist-tech-recruitment-partner-for-functional-programming-hires"}},{"id":"title","body":"How to Choose a Specialist Tech Recruitment Partner","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Choose a specialist tech recruitment partner for Scala, Rust and Go hires. Median 17-21 day placements versus 45-60 days generalist. "}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"specialist tech recruitment, functional programming hiring, Scala Rust Go recruiter, tech recruitment partner\\n"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Article\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/how-to-choose-a-specialist-tech-recruitment-partner-for-functional-programming-hires/\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/news/how-to-choose-a-specialist-tech-recruitment-partner-for-functional-programming-hires/\\",\\n      \\"headline\\": \\"How to Choose a Specialist Tech Recruitment Partner for Functional Programming Hires\\",\\n      \\"description\\": \\"Choose a specialist tech recruitment partner for Scala, Rust and Go hires. Median 17-21 day placements versus 45-60 days generalist.\\",\\n      \\"inLanguage\\": \\"en-GB\\",\\n      \\"datePublished\\": \\"2026-06-23\\",\\n      \\"dateModified\\": \\"2026-06-23\\",\\n      \\"author\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"Signify Technology\\"\\n      },\\n      \\"publisher\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"areaServed\\": [\\n        \\"US\\",\\n        \\"GB\\",\\n        \\"DE\\"\\n      ],\\n      \\"knowsAbout\\": [\\n        \\"Scala recruitment\\",\\n        \\"Rust recruitment\\",\\n        \\"Go recruitment\\",\\n        \\"Functional programming hiring\\"\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What does a specialist tech recruitment partner do differently to a generalist agency?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"A specialist screens on proof of work, sources passive candidates through community channels generalists can\'t access, and frames briefs against the right profile at intake. KORE1 reports a median 17-21 day senior placement against 45-60 days generalist per April 2026 data.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How long should hiring a senior Scala, Rust or Go engineer take with a specialist?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Senior application-layer roles close in 4-6 weeks via specialist partners. Senior systems-layer roles run 6-10 weeks. In-house equivalent runs 8-14 weeks.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What questions should I ask a tech recruitment partner before signing?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Ask the consultant to explain a current technical concept in the target language. Ask which GitHub repos they source against. Ask for senior placement counts in the last 12 months in the specific specialism.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Can a generalist staffing agency place senior functional programming engineers?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Sometimes, with longer timelines and lower fill rates. Contingent firm completion rates run 20-30% per the Pin May 2026 analysis. For senior Scala, Rust or Go, generalist sourcing misses the majority of the market by design.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How do specialist recruiters source senior engineers who don\'t respond to LinkedIn?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Through GitHub contribution graph analysis, conference and meetup community relationships, language-specific Slack and Discord channels, and warm referrals from previously placed candidates.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What\'s the typical fee structure for specialist tech recruitment in the US?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"US specialist recruitment fees typically run 25-30% of first-year base salary on contingent placements and 30-35% of first-year total compensation on retained search for senior IC roles above $200,000.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"How to Choose a Specialist Tech Recruitment Partner\\"\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/diversity-and-inclusion/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"A commitment to diversity and inclusion, strengthening tech recruitment and workplace culture."}},{"id":"title","body":"Diversity & Inclusion | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"WebPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/diversity-and-inclusion/#webpage\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/diversity-and-inclusion/\\",\\n      \\"name\\": \\"Diversity, Equity & Inclusion\\",\\n      \\"description\\": \\"A commitment to diversity and inclusion, strengthening tech recruitment and workplace culture.\\",\\n      \\"isPartOf\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#website\\"\\n      },\\n      \\"about\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n      },\\n      \\"breadcrumb\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/diversity-and-inclusion/#breadcrumb\\"\\n      },\\n      \\"inLanguage\\": \\"en-GB\\"\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/diversity-and-inclusion/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Diversity, Equity & Inclusion\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"Organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/logo/signify-logo.png\\",\\n      \\"description\\": \\"Signify Technology is a global staffing agency connecting exceptional talent in emerging technologies across leadership, software engineering, data, and cloud. We are minority-owned (MSDUK certified) with offices in London and Austin.\\",\\n      \\"foundingDate\\": \\"2016\\",\\n      \\"founder\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"Ryan Adams\\",\\n        \\"jobTitle\\": \\"Founder & CEO\\",\\n        \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n      },\\n      \\"employee\\": [\\n        {\\n          \\"@type\\": \\"Person\\",\\n          \\"name\\": \\"Ryan Adams\\",\\n          \\"jobTitle\\": \\"Founder & CEO\\",\\n          \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n        }\\n      ],\\n      \\"address\\": [\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"3 Moorgate Place, 1st Floor\\",\\n          \\"addressLocality\\": \\"London\\",\\n          \\"postalCode\\": \\"EC2R 6EA\\",\\n          \\"addressCountry\\": \\"GB\\"\\n        },\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"Prominent Pointe 1, Suite 295, 8310-1 N. Capital of Texas Highway\\",\\n          \\"addressLocality\\": \\"Austin\\",\\n          \\"addressRegion\\": \\"TX\\",\\n          \\"postalCode\\": \\"78731\\",\\n          \\"addressCountry\\": \\"US\\"\\n        }\\n      ],\\n      \\"contactPoint\\": [\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+44 (0) 20 3865 0621\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"GB\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        },\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+1 (346) 374 0300\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"US\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        }\\n      ],\\n      \\"sameAs\\": [\\n        \\"https://www.linkedin.com/company/signify-technology\\",\\n        \\"https://twitter.com/signifytech\\",\\n        \\"https://www.facebook.com/signifytechnology\\"\\n      ],\\n      \\"knowsAbout\\": [\\n        \\"Scala recruitment\\",\\n        \\"Functional programming staffing\\",\\n        \\"Software engineering recruitment\\",\\n        \\"Data and cloud hiring\\",\\n        \\"Tech leadership placements\\"\\n      ],\\n      \\"memberOf\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"MSDUK\\",\\n        \\"url\\": \\"https://www.msduk.org.uk/\\"\\n      },\\n      \\"award\\": [\\n        \\"2023 Best Recruitment Company to Work For\\",\\n        \\"2022 Recruiter Awards Finalist\\"\\n      ],\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/diversity-and-inclusion/"},"staticAttributes":{"rel":"canonical"}}],"/locations/":[{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Global offices delivering expert technology recruitment and local market insight."}},{"id":"title","body":"Our Locations | Signify Technology","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"WebPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/locations/#webpage\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/locations/\\",\\n      \\"name\\": \\"Locations\\",\\n      \\"description\\": \\"Global offices delivering expert technology recruitment and local market insight.\\",\\n      \\"isPartOf\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#website\\"\\n      },\\n      \\"about\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n      },\\n      \\"breadcrumb\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/locations/#breadcrumb\\"\\n      },\\n      \\"inLanguage\\": \\"en-GB\\"\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/locations/#breadcrumb\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Locations\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"Organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"logo\\": \\"https://www.signifytechnology.com/logo/signify-logo.png\\",\\n      \\"description\\": \\"Signify Technology is a global staffing agency connecting exceptional talent in emerging technologies across leadership, software engineering, data, and cloud. We are minority-owned (MSDUK certified) with offices in London and Austin.\\",\\n      \\"foundingDate\\": \\"2016\\",\\n      \\"founder\\": {\\n        \\"@type\\": \\"Person\\",\\n        \\"name\\": \\"Ryan Adams\\",\\n        \\"jobTitle\\": \\"Founder & CEO\\",\\n        \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n      },\\n      \\"employee\\": [\\n        {\\n          \\"@type\\": \\"Person\\",\\n          \\"name\\": \\"Ryan Adams\\",\\n          \\"jobTitle\\": \\"Founder & CEO\\",\\n          \\"url\\": \\"https://www.linkedin.com/in/ryan-adams-signify/\\"\\n        }\\n      ],\\n      \\"address\\": [\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"3 Moorgate Place, 1st Floor\\",\\n          \\"addressLocality\\": \\"London\\",\\n          \\"postalCode\\": \\"EC2R 6EA\\",\\n          \\"addressCountry\\": \\"GB\\"\\n        },\\n        {\\n          \\"@type\\": \\"PostalAddress\\",\\n          \\"streetAddress\\": \\"Prominent Pointe 1, Suite 295, 8310-1 N. Capital of Texas Highway\\",\\n          \\"addressLocality\\": \\"Austin\\",\\n          \\"addressRegion\\": \\"TX\\",\\n          \\"postalCode\\": \\"78731\\",\\n          \\"addressCountry\\": \\"US\\"\\n        }\\n      ],\\n      \\"contactPoint\\": [\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+44 (0) 20 3865 0621\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"GB\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        },\\n        {\\n          \\"@type\\": \\"ContactPoint\\",\\n          \\"telephone\\": \\"+1 (346) 374 0300\\",\\n          \\"contactType\\": \\"customer service\\",\\n          \\"areaServed\\": \\"US\\",\\n          \\"availableLanguage\\": \\"English\\"\\n        }\\n      ],\\n      \\"sameAs\\": [\\n        \\"https://www.linkedin.com/company/signify-technology\\",\\n        \\"https://twitter.com/signifytech\\",\\n        \\"https://www.facebook.com/signifytechnology\\"\\n      ],\\n      \\"knowsAbout\\": [\\n        \\"Scala recruitment\\",\\n        \\"Functional programming staffing\\",\\n        \\"Software engineering recruitment\\",\\n        \\"Data and cloud hiring\\",\\n        \\"Tech leadership placements\\"\\n      ],\\n      \\"memberOf\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"MSDUK\\",\\n        \\"url\\": \\"https://www.msduk.org.uk/\\"\\n      },\\n      \\"award\\": [\\n        \\"2023 Best Recruitment Company to Work For\\",\\n        \\"2022 Recruiter Awards Finalist\\"\\n      ],\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organisation\\"\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/locations/"},"staticAttributes":{"rel":"canonical"}}],"/news/hire-senior-golang-engineer-go-developer-recruitment-us/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/hire-senior-golang-engineer-go-developer-recruitment-us/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"hire-senior-golang-engineer-go-developer-recruitment-us"}},{"id":"title","body":"Hire a Senior Golang Engineer | Go Recruitment US","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire senior Golang engineers across the US with Signify Technology. Go-specific technical vetting, pre-engaged candidate networks and fast time-to-shortlist."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"hire senior golang engineer, hire go developer US, golang engineer recruitment, go engineer staffing, senior go developer"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"WebPage\\",\\n      \\"name\\": \\"Hire a Senior Golang Engineer | Go Developer Recruitment US\\",\\n      \\"description\\": \\"Hire senior Golang engineers across the US with Signify Technology. Go-specific technical vetting, pre-engaged candidate networks and fast time-to-shortlist.\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/news/hire-senior-golang-engineer-go-developer-recruitment-us/\\"\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Go Recruitment\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/our-specialisms/go/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Hire a Senior Golang Engineer\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How long does it take to hire a senior Golang engineer?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Senior Go roles take 30% longer to fill than equivalent Java or Python backend positions. Most experienced candidates are passive - currently employed, well-compensated and receiving multiple approaches per quarter. Signify Technology\'s pre-engaged Go community networks reduce time-to-shortlist meaningfully compared to a cold-start generalist search.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What salary should we offer a senior Go engineer in 2026?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Senior Golang engineers in the US earn $165,000-$300,000 in base salary depending on city and specialisation. San Francisco and New York sit at the top of the range. Total compensation at FAANG companies often exceeds $300,000 when equity and bonus are included. Calibrate the range before going to market - not during the offer stage.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Does Signify Technology recruit Go engineers on contract as well as permanently?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Signify Technology places senior Go engineers on both permanent and contract engagements across all five US target markets. Contract rates for senior Go engineers sit at $100-$140/hr for independent or corp-to-corp arrangements. Contact the Signify Technology Go recruitment team to discuss the right engagement model for your brief.\\"\\n          }\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/senior-rust-engineer-salary-2026-london-nyc-berlin-bands/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/senior-rust-engineer-salary-2026-london-nyc-berlin-bands/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"senior-rust-engineer-salary-2026-london-nyc-berlin-bands"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"WebPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/senior-rust-engineer-salary-2026-london-nyc-berlin-bands/\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/news/senior-rust-engineer-salary-2026-london-nyc-berlin-bands/\\",\\n      \\"name\\": \\"Senior Rust Engineer Salary 2026: London, NYC and Berlin Pay Bands\\",\\n      \\"description\\": \\"Senior Rust Engineer salary 2026: \xa395,000-\xa3130,000 London, $170,000-$280,000 US, \u20ac95,000-\u20ac135,000 Berlin. Bands, premiums and IR35 rates.\\",\\n      \\"inLanguage\\": \\"en-GB\\",\\n      \\"datePublished\\": \\"2026-06-23\\",\\n      \\"dateModified\\": \\"2026-06-23\\"\\n    },\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"name\\": \\"Senior Rust Engineer Salary Benchmarking\\",\\n      \\"serviceType\\": \\"Salary Benchmarking and Compensation Calibration\\",\\n      \\"provider\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      },\\n      \\"areaServed\\": [\\n        {\\n          \\"@type\\": \\"City\\",\\n          \\"name\\": \\"London\\"\\n        },\\n        {\\n          \\"@type\\": \\"City\\",\\n          \\"name\\": \\"New York\\"\\n        },\\n        {\\n          \\"@type\\": \\"City\\",\\n          \\"name\\": \\"Berlin\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"Dataset\\",\\n      \\"name\\": \\"Senior Rust Engineer Salary Benchmarks 2026\\",\\n      \\"description\\": \\"Senior Rust Engineer base salary bands, regional breakdown, skills premium, employer-type comparison and contract day rates for London, New York and Berlin, November 2025 to June 2026.\\",\\n      \\"keywords\\": [\\n        \\"Senior Rust Engineer salary\\",\\n        \\"Rust day rate\\",\\n        \\"Rust IR35\\",\\n        \\"Rust salary 2026\\",\\n        \\"Rust London\\",\\n        \\"Rust NYC\\",\\n        \\"Rust Berlin\\"\\n      ],\\n      \\"creator\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      },\\n      \\"datePublished\\": \\"2026-06-23\\",\\n      \\"spatialCoverage\\": [\\n        \\"United Kingdom\\",\\n        \\"United States\\",\\n        \\"Germany\\"\\n      ],\\n      \\"temporalCoverage\\": \\"2025-11/2026-06\\",\\n      \\"variableMeasured\\": [\\n        \\"Base salary\\",\\n        \\"Day rate\\",\\n        \\"Bonus\\",\\n        \\"Employer pension contribution\\",\\n        \\"Skills premium %\\"\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"areaServed\\": [\\n        \\"GB\\",\\n        \\"US\\",\\n        \\"DE\\"\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What does a Senior Rust Engineer earn in London in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Senior Rust London base salaries run \xa395,000-\xa3130,000 typical with the 90th percentile at \xa3169,086 per Glassdoor London June 2026. Systems-Rust prices 15-25% above application-Rust at the same seniority.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How much do crypto Rust roles pay over standard senior bands?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Web3 and blockchain Rust roles command a 29-76% premium over standard senior base, clearing $220,000-$300,000 in US tier-one markets per KORE1 May 2026.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What\'s the contract day rate for Senior Rust in the UK?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"UK senior Rust contracts run \xa3650-\xa3800/day inside IR35 and \xa3700-\xa3900/day outside IR35. Infrastructure-Rust contracts price toward \xa3750-\xa3900/day for AI inference and crypto settlement work.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How does Senior Rust pay compare to Senior Go in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Senior Rust commands a $25,000-$30,000 premium over senior Go per Tech-Insider 2026 benchmarks, widening at the systems-Rust end. Systems-Rust runs 15-25% above application-Rust.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Will Senior Rust salaries keep growing through 2026?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Yes. Senior Rust salary inflation runs 10-15% in London and 12-18% in US tier-one markets through Q4 2026, driven by Linux kernel adoption, Microsoft Windows rewrites, Google Android and AI inference platforms shipping in Rust.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Senior Rust Engineer Salary 2026\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"name\\": \\"How to Calibrate a Senior Rust Engineer Salary in 2026\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Identify the profile\\",\\n          \\"text\\": \\"Decide whether the role is application-Rust or systems-Rust. Systems-Rust prices 15-25% above application-Rust at the same seniority.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Apply the regional base\\",\\n          \\"text\\": \\"London \xa395,000-\xa3130,000, US $170,000-$280,000, Berlin \u20ac95,000-\u20ac135,000 for senior. Adjust for UK region using Table 1.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Layer the skills premium\\",\\n          \\"text\\": \\"Add unsafe + FFI (18-35%), embedded + regulated (24-47%), Web3 (29-76%), compiler contribution (35-65%) where the role requires.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Decide contract or permanent\\",\\n          \\"text\\": \\"Permanent senior London \xa395,000-\xa3130,000 base + employer NI 15% + pension + benefits. Outside IR35 \xa3700-\xa3900/day. Inside IR35 \xa3650-\xa3800/day with 22-23% uplift required.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 5,\\n          \\"name\\": \\"Stress-test against counter-offers\\",\\n          \\"text\\": \\"Crypto and FAANG regularly clear $280,000 base. Pre-negotiate at week one and surface current package, equity vesting and competing offers.\\"\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}},{"id":"title","body":"Senior Rust Engineer Salary 2026: London, NYC, Berlin","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Senior Rust Engineer salary 2026: \xa395,000-\xa3130,000 London, $170,000-$280,000 US, \u20ac95,000-\u20ac135,000 Berlin. Bands, premiums and IR35 rates."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Senior Rust Engineer salary 2026, Rust developer salary, Rust contract day rate, IR35 Rust\\n"}}
1],"/news/hire-senior-rust-engineer-new-york/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/hire-senior-rust-engineer-new-york/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"hire-senior-rust-engineer-new-york"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"WebPage\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/news/hire-senior-rust-engineer-new-york/\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/news/hire-senior-rust-engineer-new-york/\\",\\n      \\"name\\": \\"Hire a Senior Rust Engineer in New York\\",\\n      \\"description\\": \\"Hire a Senior Rust Engineer in New York across Tribeca quant, Times Square cloud-observability and DUMBO developer tooling. $170,000-$280,000 base.\\",\\n      \\"inLanguage\\": \\"en-GB\\",\\n      \\"datePublished\\": \\"2026-06-23\\",\\n      \\"dateModified\\": \\"2026-06-23\\"\\n    },\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"name\\": \\"Senior Rust Engineer Recruitment New York\\",\\n      \\"serviceType\\": \\"Specialist Rust Recruitment\\",\\n      \\"provider\\": {\\n        \\"@id\\": \\"https://www.signifytechnology.com/#organization\\"\\n      },\\n      \\"areaServed\\": {\\n        \\"@type\\": \\"City\\",\\n        \\"name\\": \\"New York\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"EmploymentAgency\\",\\n      \\"@id\\": \\"https://www.signifytechnology.com/#organization\\",\\n      \\"name\\": \\"Signify Technology\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/\\",\\n      \\"areaServed\\": \\"New York\\",\\n      \\"address\\": {\\n        \\"@type\\": \\"PostalAddress\\",\\n        \\"addressLocality\\": \\"New York\\",\\n        \\"addressRegion\\": \\"NY\\",\\n        \\"addressCountry\\": \\"US\\"\\n      }\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What does a Senior Rust Engineer earn in New York in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Senior Rust NY base salaries run $170,000-$280,000. Two Sigma publicly posts $165,000-$300,000. ZipRecruiter February 2026 median $161,396, 90th percentile $224,276.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Which NYC neighbourhoods cluster Rust hiring?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Tribeca and SoHo (quant finance, Two Sigma at 100 Avenue of the Americas), Times Square and Hudson Square (Datadog, MongoDB, Bloomberg), DUMBO and Brooklyn Tech Triangle (Etsy, Discord NYC, scaleups).\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Which NYC employers use Rust at scale?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Two Sigma in low-latency feature construction, Jane Street in market data, Datadog in observability agents, MongoDB in Atlas internals, Bloomberg in Terminal components, Figma in multiplayer sync, Discord in read-states.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How long does a senior NYC Rust placement take?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Specialist Rust recruitment closes senior application-layer roles in 4-6 weeks and senior systems-layer roles in 6-10 weeks. In-house equivalent runs 8-14 weeks per KORE1 May 2026.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Do NYC Rust engineers earn more than Bay Area Rust engineers?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Comparable at the top end. Two Sigma NYC at $165,000-$300,000 matches Bay Area tier-one quant. Cloud infra and dev tooling Rust in NYC runs 5-10% below Bay Area at senior IC, with the gap closing at staff and principal.\\"\\n          }\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"News\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/news/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Hire a Senior Rust Engineer in New York\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"HowTo\\",\\n      \\"name\\": \\"How to Hire a Senior Rust Engineer in New York\\",\\n      \\"step\\": [\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Decide the cluster\\",\\n          \\"text\\": \\"Tribeca quant finance, Times Square observability, or DUMBO developer tooling. Each cluster has distinct compensation and candidate pool characteristics.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Calibrate against Two Sigma\'s public band\\",\\n          \\"text\\": \\"$165,000-$300,000 base sets the upper anchor for senior quant Rust. Cloud infra and dev tooling clusters run 10-20% below this band.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Source via Rust NYC and rusteastcoast.com\\",\\n          \\"text\\": \\"Specialist meetups plus GitHub contribution graphs for tokio, serde, hyper, axum and sqlx surface candidates that don\'t respond to standard LinkedIn outreach.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 4,\\n          \\"name\\": \\"Manage concurrent quant hiring\\",\\n          \\"text\\": \\"Two Sigma, Jane Street, Hudson River Trading and Citadel hire concurrently. Pre-empt competing offers from week one of conversation.\\"\\n        },\\n        {\\n          \\"@type\\": \\"HowToStep\\",\\n          \\"position\\": 5,\\n          \\"name\\": \\"Close inside 48 hours of final interview\\",\\n          \\"text\\": \\"Senior Rust engineers in NYC receive enough inbound interest that offers issued within 48 hours accept at roughly twice the rate of offers taking more than a week.\\"\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":" Hire a Senior Rust Engineer in New York across Tribeca quant, Times Square cloud-observability and DUMBO developer tooling. $170,000-$280,000 base."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"hire Senior Rust Engineer New York, Rust recruitment NYC, NYC Rust developer, Two Sigma Rust"}},{"id":"title","body":"Hire a Senior Rust Engineer in New York","single":true,"hasBody":true,"tagName":"title","attributes":{}}],"/news/hire-salesforce-commerce-cloud-developers-enterprise-ecommerce/":[{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/hire-salesforce-commerce-cloud-developers-enterprise-ecommerce/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"hire-salesforce-commerce-cloud-developers-enterprise-ecommerce"}},{"id":"title","body":"Hire Salesforce Commerce Cloud Developers for Ecommerce\\n","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Hire certified Salesforce Commerce Cloud developers for enterprise ecommerce. B2C and B2B Commerce specialists on permanent, contract and nearshore terms."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"hire salesforce commerce cloud developers, sfcc developer hire, b2c commerce developer, enterprise ecommerce developer, demandware developer\\n"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"Service\\",\\n      \\"name\\": \\"Salesforce Commerce Cloud Developer Recruitment\\",\\n      \\"serviceType\\": \\"Enterprise ecommerce technology staffing\\",\\n      \\"provider\\": {\\n        \\"@type\\": \\"Organization\\",\\n        \\"name\\": \\"Signify Technology\\"\\n      },\\n      \\"areaServed\\": [\\n        \\"United States\\",\\n        \\"United Kingdom\\"\\n      ],\\n      \\"description\\": \\"Recruitment of certified Salesforce Commerce Cloud (B2C and B2B) developers for enterprise ecommerce on permanent, contract and nearshore terms.\\"\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"How much does it cost to hire a Salesforce Commerce Cloud developer?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"A certified Salesforce Commerce Cloud developer costs $118,368 a year on average in the US, rising to $181,171 for top earners per Glassdoor\'s May 2026 data. Contract rates run $53 to $81 an hour, and onshore enterprise specialists reach $180 an hour.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What certifications should an enterprise SFCC developer hold?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Enterprise developers should hold the Salesforce B2C Commerce Developer certification, proving production competence in SFRA, Business Manager and Demandware Script. For composable builds, look for Open Commerce API and headless experience plus MuleSoft integration.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Can you hire Commerce Cloud developers on contract?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Yes. Contract and nearshore Commerce Cloud developers suit fixed migrations, replatforming and peak-trading windows, billing $53 to $81 an hour onshore or 40 to 60 per cent less nearshore. Contract fits a defined window, permanent suits ongoing maintenance.\\"\\n          }\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/llm-engineer-jobs-large-language-model-recruitment/":[{"id":"title","body":"LLM Engineer Jobs | Large Language Model Recruitment","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Find LLM engineer jobs or hire large language model engineers with Signify Technology. We place LLM engineers across the US with specialist technical vetting."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"LLM engineer jobs, large language model engineer, hire LLM engineer, LLM engineer salary 2026, large language model recruitment"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/llm-engineer-jobs-large-language-model-recruitment/"},"staticAttributes":{"rel":"canonical"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"llm-engineer-jobs-large-language-model-recruitment"}},{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"WebPage\\",\\n      \\"name\\": \\"LLM Engineer Jobs | Large Language Model Engineer Recruitment\\",\\n      \\"description\\": \\"Find LLM engineer jobs or hire large language model engineers with Signify Technology. We place LLM engineers across the US with specialist technical vetting.\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/news/llm-engineer-jobs-large-language-model-recruitment/\\"\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Tech Recruitment Specialisms\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/our-specialisms/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"LLM Engineer Jobs\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What is an LLM engineer?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"An LLM engineer builds, fine-tunes and maintains the infrastructure that puts large language models into production at scale. Daily work covers RAG pipeline architecture, vector database management, LLM fine-tuning, inference serving optimisation and model performance monitoring. The role sits at the intersection of machine learning engineering and AI infrastructure.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What do LLM engineers earn in 2026?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Senior LLM engineers in the US earn $175,000-$260,000 in base salary. Engineers with production inference optimisation experience - vLLM, TensorRT - sit at the top of the range at $220,000-$260,000. RAG architecture experience at scale adds 15-20% above the senior baseline. Engineers whose LLM experience is primarily API integration without infrastructure depth earn at the lower end of the senior range.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What is the hardest LLM engineering skill to hire for?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Inference optimisation is the hardest LLM sub-skill to source in 2026. Engineers who can run large models efficiently in production using vLLM or TensorRT are in very high demand and very limited supply. This profile commands the top of the LLM engineer salary range in every US market and is the most consistently under-supplied profile in active LLM searches.\\"\\n          }\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}}],"/news/senior-ai-engineer-jobs-new-york/":[{"id":"jsonSchema","body":"{\\n  \\"@context\\": \\"https://schema.org\\",\\n  \\"@graph\\": [\\n    {\\n      \\"@type\\": \\"WebPage\\",\\n      \\"name\\": \\"Senior AI Engineer Jobs in New York | Signify Technology\\",\\n      \\"description\\": \\"Senior AI engineer jobs in New York City with Signify Technology. We place AI engineers across Midtown, Hudson Yards and the Financial District in 2026.\\",\\n      \\"url\\": \\"https://www.signifytechnology.com/news/senior-ai-engineer-jobs-new-york/\\"\\n    },\\n    {\\n      \\"@type\\": \\"BreadcrumbList\\",\\n      \\"itemListElement\\": [\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 1,\\n          \\"name\\": \\"Home\\",\\n          \\"item\\": \\"https://www.signifytechnology.com\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 2,\\n          \\"name\\": \\"Tech Recruitment Specialisms\\",\\n          \\"item\\": \\"https://www.signifytechnology.com/our-specialisms/\\"\\n        },\\n        {\\n          \\"@type\\": \\"ListItem\\",\\n          \\"position\\": 3,\\n          \\"name\\": \\"Senior AI Engineer Jobs in New York\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\"@type\\": \\"FAQPage\\",\\n      \\"mainEntity\\": [\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What do senior AI engineers earn in New York in 2026?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Senior AI engineers in New York earn $195,000-$265,000 in base salary at 6-10 years\' experience. Financial services AI roles sit at the top of the range. Total compensation including equity and bonus at late-stage AI-backed companies and financial services institutions regularly exceeds $320,000. Inference optimisation experience commands a 25-30% premium above the senior baseline.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"Which companies in New York hire senior AI engineers?\\",\\n          \\"acceptedAnswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"Confirmed active NYC AI engineering employers include Palantir Technologies, Google NYC, Goldman Sachs Technology, JPMorgan, Warner Bros. Discovery and Disney Entertainment and ESPN Product and Technology. Multiple AI-backed startups across Midtown and Hudson Yards are actively hiring senior AI engineers as of May 2026.\\"\\n          }\\n        },\\n        {\\n          \\"@type\\": \\"Question\\",\\n          \\"name\\": \\"What makes New York\'s AI engineering market different from other US cities?\\",\\n          \\"acceptedA
1nswer\\": {\\n            \\"@type\\": \\"Answer\\",\\n            \\"text\\": \\"New York is the only US AI engineering market where financial services demand drives salaries above San Francisco equivalents for the same seniority level. AI systems for trading infrastructure, real-time risk calculation and compliance automation require reliability and latency standards that exceed those of most consumer technology applications. Engineers with production experience in financial AI systems command a premium unique to the New York market.\\"\\n          }\\n        }\\n      ]\\n    }\\n  ]\\n}","single":true,"hasBody":true,"tagName":"script","attributes":{},"staticAttributes":{"type":"application/ld+json"}},{"id":"title","body":"Senior AI Engineer Jobs in New York | Signify Tech","single":true,"hasBody":true,"tagName":"title","attributes":{}},{"id":"description","body":null,"name":"description","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"Senior AI engineer jobs in New York City with Signify Technology. We place AI engineers across Midtown, Hudson Yards and the Financial District in 2026."}},{"id":"keywords","body":null,"name":"keywords","single":true,"hasBody":false,"tagName":"meta","attributes":{"content":"senior AI engineer jobs New York, AI engineer NYC, hire AI engineer New York, senior AI engineer salary New York, AI engineering recruitment NYC"}},{"id":"alternates","body":null,"name":"alternates","single":false,"hasBody":false,"tagName":"meta","attributes":{"url":"senior-ai-engineer-jobs-new-york"}},{"id":"canonical","body":null,"single":true,"hasBody":false,"tagName":"link","attributes":{"href":"https://www.signifytechnology.com/news/senior-ai-engineer-jobs-new-york/"},"staticAttributes":{"rel":"canonical"}}]}')}},function(e){var n=function(n){return e(e.s=n)};e.O(0,[9774,179],(function(){return n(23837),n(69898)}));var t=e.O();_N_E=t}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.