LOG IN
SIGN UP
Canary Wharfian - Online Investment Banking & Finance Community.
Sign In
Forgot password?
Don't have an account?
or
Join Canary Wharfian
By signing up, you agree to our Terms & Conditions and Privacy Policy.
or

Software Engineer - Data & AI

ExperiencedNo visa sponsorship
Point72 logo

at Point72

Hedge Funds

Posted 15 days ago

No clicks

The JavaScript code provided is tracking a user's activity on a careers website using Twitter's Ads Conversion Tracking script. When a user views the job detail page for the role of Software Engineer - Data and AI, the following events are tracked: 1. **Pageview**: This event occurs when the user loads the job detail page. It provides information about the user's session such as the referrer, location, and device details. Here's the data sent for the Pageview event: ```json { "event": "pageview", "event_time": 1666553562000, "/adct/ei": "d76bb9fc-eb68-4e7c-96c9-75f412fa8440", "adct/ecid": 2, "adct/pid": "Twitter", "adct/p_user_id": 0, "adct/plid": "11b2b514-55c9-4831-b882-8ab447519f5c", "adct/tw_document_href": "https://careers.point72.com/CSJobDetail?jobName=software-engineer-data-and-ai&jobCode=IVS-0015389&retURL=%2FCSCareerSearch", "adct/twpid": "tw.1793228828652.331664834614575966", "

Compensation
Not specified

Currency: Not specified

City
Bengaluru
Country
India

Full Job Description

@font-face { font-family: 'WistiaPlayerInterNumbersSemiBold'; font-feature-settings: 'tnum' 1; src: url(data:application/x-font-woff;charset=utf-8;base64,d09GMk9UVE8AAAaMAAwAAAAACgAAAAZBAAMD1wAAAAAAAAAAAAAAAAAAAAAAAAAADYpwGhQbIBwqBmAAgTIBNgIkAzAEBgWDGgcgGykJEZWkARP8KHCbm2tEznyIN98tPTUk9Ig3oiVV3pbDIzXa+f/fZgXpALFTZhBoMVFC9cp036dXvRKVmVnsxe+D+1NDQI5lG7ikZWEINIElTeBIdnxlhauQ5GQtoLHA/wN0riVdSx5xgbxF3KTbgnjVQ4B9P7YqCx7FpEZK+6ilx0AoopUh4aExJEKmkU+0ncdr4iFfKhdSFD9y91LCRaxNbVqvi0dND3rxI7ndUDR7EiwT3bhiua9krFA0oepCy2hCjwmjnjDjKjNTDz2ZuHtN8820Wfw/l8u4w4yV/f8/6uscs5rmiN00LcP4hAofyZUSyS3WinX0RGFFtnGrjj36x6dlNa57+PLTlrUisH2n9orfgd+R34XfDd0NsWDXwfwhvKHpbs3UBni37dBlPvO4KYn/PgylilcgSdw6sjsSSxsRGfIJgqhi14bKZCHcQvjUh/+3HMotTYrGLVYCxyMFjEnYC98yTAp6atAKVxaZ9eu2NMji8WTj4w/Y34elD60PPwb5bEywLqAX/amwmUo6TBCy14N/TL44jb3sE5JdUIPXXI0RBSoGt3BUObn4agKGIxxQhlyQacbstK4fS2mZoBtFNQ1bd+4zND2vQu6anl7gWFOj8MV2DVMtU44xMhpwElrrjA7zO5IqWojd/v1Vso6cqp91zC2YrGhDOy07Iqyza2q9smDIwUYek0AWbCt/8x78QmrzayQ6xtpmqfCYsLfgU9HdeP3UqutZTTNd/9Q8k08XzXzIxSdvLPda8YaeeZnkxUwql0nDKyUYdaWZjGAy7UDLHpVqBVHTxSV0wBy21El9u/491ik2J3YkdiP2LPZL41RBeeNUWtp97Bbn0Ee1g9wr9qqV/X+4R9nlPX03743dylnaXZyNp8v58yLOsFYCbUnCVQzjN+5QhlmKccO7aMkueWJggROd4qnw2x5LydUcg/NRamE3XMlkGovpRWPKWEavP74P2O1RANM/3gIIPJj7TX+lqU2geQuaBx4B/7cWAOx0ucTiEHYJU9y5DBuUMYNIHeHZz9tn+Fw2G5EBTqUlHRfRi4eB5wNlJsRsv5k4b6HyFkhIC6BO4LzPbWhW7rbCcxubeKHOc6UaBKZBMMd4j8XuRUynOCCa4EMfF9grkI1NcTaSAVtk1nrIOwFfeEBlQw4f4phb6zHzBOm0ZZ0dBcaZRVdYIo5xYiyOMEWONwQHmjKGE//VuRBgul1QrpyxmMvF4vGj0xfuuQrNt4tVTsRhEnjY9AuKa1FVLSEneQWzFd5WbO7hasX08ONUOVQgwQuVqACFXkSoIoUgK1hJEkAgbkG5CjqBS5wrRFuY2IfVwhRnLsVyZTZpatveGR4yEbYqbE6J80nM4aa+LD7Oqmr8PdSJFUQVynmgN4lerGQV1+uLdYzdOFWHPW/iK2gIQayhizQ0NMwyvBEBlrDczRfmU40CTtAHqLQGnjQG8MYkxm1MwJuTqjHwVCu9iRJ1C8ojWGHxUYowH0c5X57zpXquvlw0wzHHGMTfufxiJ1psFJTzq6nGeDvHF4LgmHHWCUViZBaInRn+cswnBi460RBPRYg9TRUQ0CZUC5LAT0qLLu50FpdTeBhjGf7/h4dg9hE0uqsBx/saOcYRDIfnOhfzGFBHyizcJK3p2edUjWrC0rn1aGjXtfVUCHMAKKhlxV8eTEIcV2jCOdKiqahv/MisrfRQVnxPJoOU62mR6pu2ZllIzo8zOZqQB7kWJXW2/c0aihata5PcIVJKfFRgHAETmEQVTCELptGMGcyigTnMJ1voUVN6uCZS9pV2hrwl7FYMvBwtUSd7L7E5qP9t7BIPRF7EcmA9ct2nIPHrxgWajtDltbXuBLuaY6qRZGa5ZlX5anfR0lYXaHUzVSFjZa8rfdhZ8rKXFZg21LVL5LFjI5TlDIbwnFGHE2dypHs6Q50N015dpOgLONEUlOqoiQgIaeCsjMq9gITDKwRMieQgKUy9UQY1BTFYZU2KpE2SkILMIjW8IdFwIKmMaK8oClJVssAEtFnz5dQ1s+w6EZoNGtPGQfzx+aoE8ikiP8GCYOWtgB+HBdWDaxACAZInVq14dZI85RRDvZGIghyONw59KV/BBEQ02P1ER8hmNGiURT2hQP8WfAY=); }
{ "@context": "https://schema.org", "@graph": [ { "@type": "WebSite", "@id": "http://careers.point72.com/#website", "url": "http://careers.point72.com/", "name": "Point72", "description": "", "potentialAction": [ ], "inLanguage": "en-US" }, , ] }
img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--duotone--dark-grayscale: url('#wp-duotone-dark-grayscale');--wp--preset--duotone--grayscale: url('#wp-duotone-grayscale');--wp--preset--duotone--purple-yellow: url('#wp-duotone-purple-yellow');--wp--preset--duotone--blue-red: url('#wp-duotone-blue-red');--wp--preset--duotone--midnight: url('#wp-duotone-midnight');--wp--preset--duotone--magenta-yellow: url('#wp-duotone-magenta-yellow');--wp--preset--duotone--purple-green: url('#wp-duotone-purple-green');--wp--preset--duotone--blue-orange: url('#wp-duotone-blue-orange');--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} try { Typekit.load({ async: true }); } catch (e) {}
Software Engineer - Data & AI Career
!function(e,t,n,s,u,a){e.twq||(s=e.twq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments); },s.version='1.1',s.queue=[],u=t.createElement(n),u.async=!0,u.src='//static.ads-twitter.com/uwt.js', a=t.getElementsByTagName(n)[0],a.parentNode.insertBefore(u,a))}(window,document,'script'); // Insert Twitter Pixel ID and Standard Event data below twq('init','o38l9'); twq('track','PageView'); _linkedin_partner_id = "592849"; window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || []; window._linkedin_data_partner_ids.push(_linkedin_partner_id); (function() {var s = document.getElementsByTagName("script")[0]; var b = document.createElement("script"); b.type = "text/javascript";b.async = true; b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js"; s.parentNode.insertBefore(b, s);} )(); (function(e,a){if(!a.__SV){var b=window;try{var c,l,i,j=b.location,g=j.hash;c=function(a,b){return(l=a.match(RegExp(b+"=([^&]*)")))?l[1]:null};g&&c(g,"state")&&(i=JSON.parse(decodeURIComponent(c(g,"state"))),"mpeditor"===i.action&&(b.sessionStorage.setItem("_mpcehash",g),history.replaceState(i.desiredHash||"",e.title,j.pathname+j.search)))}catch(m){}var k,h;window.mixpanel=a;a._i=[];a.init=function(b,c,f){function e(b,a){var c=a.split(".");2==c.length&&(b=b[c[0]],a=c[1]);b[a]=function(){b.push([a].concat(Array.prototype.slice.call(arguments, 0)))}}var d=a;"undefined"!==typeof f?d=a[f]=[]:f="mixpanel";d.people=d.people||[];d.toString=function(b){var a="mixpanel";"mixpanel"!==f&&(a+="."+f);b||(a+=" (stub)");return a};d.people.toString=function(){return d.toString(1)+".people (stub)"};k="disable time_event track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config reset people.set people.set_once people.increment people.append people.union people.track_charge people.clear_charges people.delete_user".split(" "); for(h=0;h
if(!window.sfdcPage) { window.sfdcPage = new ApexPage(); }UserContext.initialize();
(function enforceAnalyticsDelayGateEarly() { if (window.__p72AnalyticsDelayGateInstalled) { return; } window.__p72AnalyticsDelayGateInstalled = true; const ANALYTICS_DELAY_MS = 10000; const releaseAt = Date.now() + ANALYTICS_DELAY_MS; let gateOpen = false; const queuedScripts = []; const pendingScriptSrc = new WeakMap(); const pendingConnectedScripts = []; function isAnalyticsUrl(url) { if (!url) { return false; } try { const parsed = new URL(url, window.location.href); const host = parsed.hostname.toLowerCase(); return host === "www.googletagmanager.com" || host === "googletagmanager.com" || host === "www.google-analytics.com" || host === "google-analytics.com"; } catch (error) { return false; } } function queueScript(parent, node, referenceNode, mode) { queuedScripts.push({ parent, node, referenceNode, mode, }); } function rememberDeferredSrc(scriptNode, srcValue) { pendingScriptSrc.set(scriptNode, srcValue); if (scriptNode.isConnected) { pendingConnectedScripts.push(scriptNode); } } function getScriptSrc(scriptNode) { if (!scriptNode || scriptNode.tagName !== "SCRIPT") { return ""; } return pendingScriptSrc.get(scriptNode) || scriptNode.getAttribute("src") || scriptNode.src || ""; } const originalAppendChild = Node.prototype.appendChild; const originalInsertBefore = Node.prototype.insertBefore; const originalSetAttribute = Element.prototype.setAttribute; const originalScriptSrcDescriptor = Object.getOwnPropertyDescriptor(HTMLScriptElement.prototype, "src"); function applyPendingSrc(scriptNode) { if (!scriptNode || scriptNode.tagName !== "SCRIPT") { return; } const deferredSrc = pendingScriptSrc.get(scriptNode); if (!deferredSrc) { return; } pendingScriptSrc.delete(scriptNode); if (originalScriptSrcDescriptor && typeof originalScriptSrcDescriptor.set === "function") { originalScriptSrcDescriptor.set.call(scriptNode, deferredSrc); } else { originalSetAttribute.call(scriptNode, "src", deferredSrc); } } Node.prototype.appendChild = function patchedAppendChild(node) { const src = getScriptSrc(node); if (!gateOpen && src && isAnalyticsUrl(src)) { queueScript(this, node, null, "append"); return node; } return originalAppendChild.call(this, node); }; Node.prototype.insertBefore = function patchedInsertBefore(node, referenceNode) { const src = getScriptSrc(node); if (!gateOpen && src && isAnalyticsUrl(src)) { queueScript(this, node, referenceNode, "insert"); return node; } return originalInsertBefore.call(this, node, referenceNode); }; Element.prototype.setAttribute = function patchedSetAttribute(name, value) { if (!gateOpen && this.tagName === "SCRIPT" && typeof name === "string" && name.toLowerCase() === "src") { const src = String(value || ""); if (src && isAnalyticsUrl(src)) { rememberDeferredSrc(this, src); return; } } return originalSetAttribute.call(this, name, value); }; if (originalScriptSrcDescriptor && typeof originalScriptSrcDescriptor.get === "function" && typeof originalScriptSrcDescriptor.set === "function") { Object.defineProperty(HTMLScriptElement.prototype, "src", { configurable: true, enumerable: originalScriptSrcDescriptor.enumerable, get: function patchedScriptSrcGet() { if (pendingScriptSrc.has(this)) { return pendingScriptSrc.get(this); } return originalScriptSrcDescriptor.get.call(this); }, set: function patchedScriptSrcSet(value) { const src = String(value || ""); if (!gateOpen && src && isAnalyticsUrl(src)) { rememberDeferredSrc(this, src); return src; } pendingScriptSrc.delete(this); return originalScriptSrcDescriptor.set.call(this, src); }, }); } function flushQueuedScripts() { gateOpen = true; if (pendingConnectedScripts.length > 0) { const uniqueConnectedScripts = Array.from(new Set(pendingConnectedScripts)); uniqueConnectedScripts.forEach((scriptNode) => { try { applyPendingSrc(scriptNode); } catch (error) { // Ignore failures from stale nodes; other script paths may retry safely. } }); } while (queuedScripts.length > 0) { const item = queuedScripts.shift(); try { if (!item || !item.parent || !item.node) { continue; } applyPendingSrc(item.node); if (item.mode === "insert" && item.referenceNode && item.referenceNode.parentNode === item.parent) { originalInsertBefore.call(item.parent, item.node, item.referenceNode); } else { originalAppendChild.call(item.parent, item.node); } } catch (error) { // Ignore failures from stale nodes; other script paths may retry safely. } } } const remainingDelay = Math.max(releaseAt - Date.now(), 0); window.setTimeout(flushQueuedScripts, remainingDelay); })();
P72 Careers - Header
.c-cookie-consent{ opacity:1; position:relative; top:0; transform:translateY(0); transition:transform .4s cubic-bezier(.65,0,.35,1); transition:transform var(--p72-animation-duration) var(--p72-animation-timing); } .c-cookie-consent__container{ align-items:flex-start; display:flex;gap:1rem; gap:var(--p72-space); padding-bottom: .5rem; padding-bottom:var(--p72-space-xs); padding-top:.5rem; padding-top:var(--p72-space-xs) } .c-cookie-consent__content>:last-child{ /* margin-bottom:0*/ } /* .c-cookie-consent__content a{ -webkit-text-decoration:underline; text-decoration:underline }*/ .c-cookie-consent__close{ position:relative; right:-.75rem; right:calc(var(--p72-space-sm)*-1); top:-.75rem; top:calc(var(--p72-space-sm)*-1) } .c-cookie-consent.is-hidden{ opacity:0;transform:translateY(-100%) } .c-menu-mobile__menu-item > a, .c-menu-mobile__menu-item > a span { color: #18181a; /* matches your current inline color */ } .c-menu-mobile__button:hover { background: #f5f4ee !important; border-color: #18181a !important; color: #18181a !important; } .c-menu-mega-careers ul a:focus, .c-menu-mega-careers ul a:hover { color: #b08725 !important; color: var(--p72-color-content-stronger) !important; } li.c-menu-mobile__menu-item > a.c-menu-mobile__link, li.c-menu-mobile__menu-item > a.c-menu-mobile__link span { color: #18181a !important; } li.c-menu-mobile__menu-item > a.c-menu-mobile__link:hover, li.c-menu-mobile__menu-item > a.c-menu-mobile__link:hover span { color: var(--p72-color-content-stronger, #b08725) !important; } li.c-menu-mobile__menu-item > a.c-menu-mobile__link, li.c-menu-mobile__menu-item > a.c-menu-mobile__link span { color: #18181a !important; } li.o-icon > a.o-icon:hover, li.o-icon > a.o-icon:hover span { color: var(--p72-color-content-stronger, #b08725) !important; } .o-button--outlined { background-color: transparent; color: black; border: 1px solid black; transition: all 0.3s ease; } .o-button--outlined:focus, .o-button--outlined:hover { background-color: var(--p72-color-button-background, #b08725); border-color: var(--p72-color-button-background, #b08725); color: var(--p72-color-button-text, #f5f4ee); } .c-menu-mega { opacity: 0; visibility: hidden; transform: translateY(5px); transition: opacity 0.15s ease-out, transform 0.15s ease-out; will-change: opacity, transform; } body.header-scrolled .c-header { top: var(--p72-cookie-consent-height, 0px) !important; } body.header-scrolled .c-menu-mobile { /*top: 0 !important;*/ } /* Header common style */ .c-header, .c-header.l-wrap, .c-header .l-wrap { transition: none !important; will-change: auto; } /* Optional: reset header when scrolled */ body.header-scrolled .c-header, body.header-scrolled .c-header.l-wrap, body.header-scrolled .c-header .l-wrap { top: 0 !important; } @media only screen and (max-width:768px) { .c-cookie-consent__container { padding: 8px 10px !important; } body.header-scrolled .c-header, body.header-scrolled .c-header.l-wrap { padding-top: 13px; !important; } body.header-scrolled .c-header .l-wrap { padding-top: 13px; !important; } .c-cookie-consent__content p,.c-cookie-consent__content a { max-width: 100% !important; font-family:"Aptos", sans-serif; font-size:14px !important; line-height:18.2px !important; } } /* ========================================================= Combined CSS: c-menu-mobile + u-hide-after--md + u-spacing--lg Includes required variables + hamburger related CSS ========================================================= */ /* ========================================================= Required Variables ========================================================= */ :root { --p72-header-height: 100px; --p72-space-xxs: 0.25rem; --p72-space-xs: 0.5rem; --p72-space-sm: 0.75rem; --p72-space: 1rem; --p72-space-md: 1.5rem; --p72-space-lg: 2rem; --p72-animation-duration: 0.4s; --p72-animation-duration-long: 0.6s; --p72-animation-timing: cubic-bezier(0.65, 0, 0.35, 1); --p72-z-index-5: 5; --p72-border-width: 1px; --p72-font-family-secondary: Aptos, sans-serif; --p72-font-weight-bold: 700; --p72-font-size-heading-xs: 1.25rem; --p72-line-height-tight: 1.1; --p72-letter-spacing-wide: 0.06em; --p72-typography-heading-xs: var(--p72-font-weight-bold) var(--p72-font-size-heading-xs) / var(--p72-line-height-tight) var(--p72-font-family-secondary); --p72-color-brand-cream: #f5f4ee; --p72-color-brand-gold: #b08725; --p72-color-brand-slate: #505a6b; --p72-color-brand-charcoal: #18181a; --p72-color-background: var(--p72-color-brand-charcoal); --p72-color-content: var(--p72-color-brand-cream); --p72-color-content-stronger: var(--p72-color-brand-gold); --p72-color-border: var(--p72-color-brand-slate); --p72-cookie-consent-height: 0px; --p72-icon-size-sm: 0.9375rem; } /* ========================================================= Utility: u-hide-after--md Hidden after medium breakpoint ========================================================= */ @media (min-width: 769px) { .u-hide-after--md { display: none !important; } } /* ========================================================= Utility: u-spacing--lg Adds large vertical spacing between direct children ========================================================= */ .u-spacing--lg > * + * { margin-top: 2rem; margin-top: var(--p72-space-lg); } /* ========================================================= Mobile Menu Container ========================================================= */ .c-menu-mobile { bottom: 0; height: calc(100% - var(--p72-cookie-consent-height)); overflow-y: scroll; padding: calc(100px + 1.5rem) 1.5rem 1.5rem; padding: calc(var(--p72-header-height) + var(--p72-space-md)) var(--p72-space-md) var(--p72-space-md) var(--p72-space-md); position: fixed; right: 0; top: var(--p72-cookie-consent-height) !important; transform: translate3d(100%, 0, 0); transition: all 0.6s cubic-bezier(0.65, 0, 0.35, 1); transition: all var(--p72-animation-duration-long) var(--p72-animation-timing); visibility: hidden; width: 100%; z-index: 5; z-index: var(--p72-z-index-5); background-color: var(--p72-color-background); color: var(--p72-color-content); } /* ========================================================= Mobile Menu Open State Add class c-menu-mobile-is-active to body or parent ========================================================= */ @media (max-width: 767px) { .c-menu-mobile-is-active .c-menu-mobile { transform: translateZ(0); visibility: visible; } body.c-menu-mobile-is-active { overflow: hidden; } } /* ========================================================= Mobile Menu Item ========================================================= */ .c-menu-mobile__menu-item { border-bottom: 1px solid #505a6b; border-bottom: var(--p72-border-width) solid var(--p72-color-border); display: flex; flex-flow: column nowrap; gap: 0.25rem; gap: var(--p72-space-xxs); overflow: hidden; width: 100%; } /* ========================================================= Mobile Menu Link / Button ========================================================= */ .c-menu-mobile__link { align-items: center; background: transparent; border: none; color: #f5f4ee; color: var(--p72-color-content); cursor: pointer; display: flex; font: 700 1.25rem/1.1 Aptos, sans-serif; font: var(--p72-typography-heading-xs); gap: 0.25rem; gap: var(--p72-space-xxs); justify-content: space-between; letter-spacing: 0.06em; letter-spacing: var(--p72-letter-spacing-wide); padding: 0.75rem 0; padding: var(--p72-space-sm) 0; text-transform: uppercase; transition: color 0.4s cubic-bezier(0.65, 0, 0.35, 1); transition: color var(--p72-animation-duration) var(--p72-animation-timing); width: 100%; text-align: left; } @media (max-width: 768px) { .c-menu-mobile__link { font-size: 1.0625rem; } } .c-menu-mobile__link:focus, .c-menu-mobile__link:hover { color: #b08725; color: var(--p72-color-content-stronger); } .c-menu-mobile__link svg { height: var(--p72-icon-size-sm); min-width: var(--p72-icon-size-sm); width: var(--p72-icon-size-sm); } /* ========================================================= Mobile Sub Menu ========================================================= */ .c-menu-mobile--sub-menu { display: none; } .c-menu-mobile--sub-menu ul { display: flex; flex-direction: column; gap: 0.25rem; gap: var(--p72-space-xxs); margin-bottom: 0.75rem; margin-bottom: var(--p72-space-sm); list-style: none; padding: 0; } .c-menu-mobile--sub-menu a { color: #f5f4ee; color: var(--p72-color-content); text-decoration: none; } @media (max-width: 768px) { .c-menu-mobile--sub-menu a { font-size: 0.875rem; } } .c-menu-mobile--sub-menu a:focus, .c-menu-mobile--sub-menu a:hover { color: #b08725; color: var(--p72-color-content-stronger); } /* Show submenu when menu item is active */ .c-menu-mobile__menu-item.this-is-active .c-menu-mobile--sub-menu { display: block; } /* ========================================================= Header Style When Mobile Menu Is Active ========================================================= */ .c-menu-mobile-is-active .c-header { backdrop-filter: blur(0); border-color: #505a6b; border-color: var(--p72-color-border); } /* ========================================================= Hamburger Button Base ========================================================= */ .o-button-hamburger { align-items: center; -webkit-appearance: none; -moz-appearance: none; appearance: none; background: transparent; border: none; color: #f5f4ee; color: var(--p72-color-content); cursor: pointer; display: flex; height: 50px; padding: 0; --p72-hamburger-line-height: 1px; --p72-hamburger-line-spacing: 6px; --p72-hamburger-line-width: 25px; --p72-hamburger-lines-total-height: calc( var(--p72-hamburger-line-spacing) * 2 + var(--p72-hamburger-line-height) * 3 ); } .o-button-hamburger__label { font: 700 1rem/1.1 Aptos, sans-serif; letter-spacing: 0.06em; letter-spacing: var(--p72-letter-spacing-wide); text-transform: uppercase; } .o-button-hamburger__lines { height: var(--p72-hamburger-lines-total-height); margin-left: 0.25rem; margin-left: var(--p72-space-xxs); position: relative; transition: transform 0.5s ease-in-out; width: var(--p72-hamburger-line-width); } .o-button-hamburger__line { background-color: currentcolor; height: var(--p72-hamburger-line-height); left: 0; position: absolute; transition: transform 0.3s ease, top 0.3s ease, opacity 0.3s ease; width: 100%; } .o-button-hamburger__line:first-child { top: 0; } .o-button-hamburger__line:nth-child(2) { top: calc( var(--p72-hamburger-line-spacing) + var(--p72-hamburger-line-height) ); } .o-button-hamburger__line:nth-child(3) { top: calc( (var(--p72-hamburger-line-spacing) + var(--p72-hamburger-line-height)) * 2 ); } /* ========================================================= Hamburger Active Animation Triggered by .c-menu-mobile-is-active ========================================================= */ .c-menu-mobile-is-active .o-button-hamburger__line:first-child { top: 50%; transform: rotate(45deg); } .c-menu-mobile-is-active .o-button-hamburger__line:nth-child(2) { opacity: 0; } .c-menu-mobile-is-active .o-button-hamburger__line:nth-child(3) { top: 50%; transform: rotate(-45deg); } /** * Extracted scroll-related functionality from the bundled app. * * Requires: * - GSAP * - ScrollTrigger * - Optional: jQuery if using the jQuery-based class add below * * If you are using ES modules: * * import gsap from "gsap"; * import ScrollTrigger from "gsap/ScrollTrigger"; * * gsap.registerPlugin(ScrollTrigger); */ /* ========================================================================== Cookie consent scroll/resize height tracking ========================================================================== */ const COOKIE_NOTICE_KEY = "p72_cookie_notice_dismissed"; /** * Global analytics gate: defer GA/GTM script injection attempts until 10s. * This catches third-party code paths that try to load tags before our * CookieConsentTracking delay executes. */ (function enforceAnalyticsDelayGate() { if (window.__p72AnalyticsDelayGateInstalled) { return; } window.__p72AnalyticsDelayGateInstalled = true; const ANALYTICS_DELAY_MS = 10000; const releaseAt = Date.now() + ANALYTICS_DELAY_MS; let gateOpen = false; const queuedScripts = []; function isAnalyticsUrl(url) { if (!url) { return false; } try { const parsed = new URL(url, window.location.href); const host = parsed.hostname.toLowerCase(); return host === "www.googletagmanager.com" || host === "googletagmanager.com" || host === "www.google-analytics.com" || host === "google-analytics.com"; } catch (error) { return false; } } function queueScript(parent, node, referenceNode, mode) { queuedScripts.push({ parent, node, referenceNode, mode, }); } const originalAppendChild = Node.prototype.appendChild; const originalInsertBefore = Node.prototype.insertBefore; Node.prototype.appendChild = function patchedAppendChild(node) { const src = node && node.tagName === "SCRIPT" ? node.src : ""; if (!gateOpen && src && isAnalyticsUrl(src)) { queueScript(this, node, null, "append"); return node; } return originalAppendChild.call(this, node); }; Node.prototype.insertBefore = function patchedInsertBefore(node, referenceNode) { const src = node && node.tagName === "SCRIPT" ? node.src : ""; if (!gateOpen && src && isAnalyticsUrl(src)) { queueScript(this, node, referenceNode, "insert"); return node; } return originalInsertBefore.call(this, node, referenceNode); }; function flushQueuedScripts() { gateOpen = true; while (queuedScripts.length > 0) { const item = queuedScripts.shift(); try { if (!item || !item.parent || !item.node) { continue; } if (item.mode === "insert" && item.referenceNode && item.referenceNode.parentNode === item.parent) { originalInsertBefore.call(item.parent, item.node, item.referenceNode); } else { originalAppendChild.call(item.parent, item.node); } } catch (error) { // Ignore failures from stale nodes; other script paths may retry safely. } } } const remainingDelay = Math.max(releaseAt - Date.now(), 0); window.setTimeout(flushQueuedScripts, remainingDelay); })(); const cookieConsentScroll = { _raf: null, _scrollBound: false, _onScroll: null, isDismissed() { try { return sessionStorage.getItem(COOKIE_NOTICE_KEY) === "1"; } catch (error) { return false; } }, setDismissed() { try { sessionStorage.setItem(COOKIE_NOTICE_KEY, "1"); } catch (error) {} }, showBanner() { const banner = document.querySelector(".js-cookie-consent"); if (banner) { banner.classList.remove("is-hidden"); banner.classList.add("is-visible"); this.updateHeightVar(); this.bindScroll(); } }, hideBanner() { const banner = document.querySelector(".js-cookie-consent"); if (banner) { banner.classList.remove("is-visible"); banner.classList.add("is-hidden"); this.unbindScroll(); this.updateHeightVar(); } }, updateHeightVar() { const banner = document.querySelector(".js-cookie-consent"); let height = 0; if (banner && !banner.classList.contains("is-hidden")) { const rect = banner.getBoundingClientRect(); height = Math.min( Math.max(rect.bottom, 0), banner.offsetHeight ); } document.documentElement.style.setProperty( "--p72-cookie-consent-height", `${height}px` ); }, onScroll() { if (!this._raf) { this._raf = window.requestAnimationFrame(() => { this._raf = null; this.updateHeightVar(); }); } }, bindScroll() { if (!this._scrollBound) { this._scrollBound = true; this._onScroll = this.onScroll.bind(this); window.addEventListener("scroll", this._onScroll, { passive: true, }); window.addEventListener("resize", this._onScroll, { passive: true, }); } }, unbindScroll() { if (this._scrollBound) { this._scrollBound = false; window.removeEventListener("scroll", this._onScroll); window.removeEventListener("resize", this._onScroll); } }, observeHeight() { const banner = document.querySelector(".js-cookie-consent"); if (!banner || typeof ResizeObserver === "undefined") return; new ResizeObserver(() => this.updateHeightVar()).observe(banner); }, handleClose() { this.setDismissed(); this.hideBanner(); }, init() { const banner = document.querySelector(".js-cookie-consent"); if (banner) { if (this.isDismissed()) { this.updateHeightVar(); } else { this.showBanner(); } this.observeHeight(); } else { document.documentElement.style.setProperty( "--p72-cookie-consent-height", "0px" ); } }, }; const CookieConsentTracking = { gaConfig: null, getGAConfig() { if (this.gaConfig !== null) { return this.gaConfig; } const cookieConsentEl = document.querySelector(".js-cookie-consent"); const gaConfigRaw = cookieConsentEl && (cookieConsentEl.dataset.p72GaConfig || cookieConsentEl.dataset.gaConfig); if (gaConfigRaw) { try { const config = JSON.parse(gaConfigRaw); this.gaConfig = Array.isArray(config) ? config.filter((item) => item.tracking_id && item.tag_type) : []; } catch (error) { console.warn("Cookie Consent: Invalid GA config", error); this.gaConfig = []; } } else { this.gaConfig = []; } return this.gaConfig; }, isDismissed() { try { return sessionStorage.getItem(COOKIE_NOTICE_KEY) === "1"; } catch (error) { return false; } }, setDismissed() { try { sessionStorage.setItem(COOKIE_NOTICE_KEY, "1"); } catch (error) { // Ignore sessionStorage errors } }, loadGTM(trackingId) , loadGtagAnalytics(configs) { if (configs.length === 0) { return; } window.dataLayer = window.dataLayer || []; function gtag() { window.dataLayer.push(arguments); } window.gtag = gtag; const primaryConfig = configs.find((item) => item.tag_type === "ga4") || configs[0]; const script = document.createElement("script"); script.async = true; script.src = `https://www.googletagmanager.com/gtag/js?id=${primaryConfig.tracking_id}`; document.head.appendChild(script); gtag("js", new Date()); configs.forEach((item) => { gtag("config", item.tracking_id); }); }, loadCustomScripts() { const template = document.querySelector("template.js-tracking-scripts"); if (!template) { return; } const clonedContent = template.content.cloneNode(true); clonedContent.querySelectorAll("script").forEach((script) => { const newScript = document.createElement("script"); for (const attr of script.attributes) { newScript.setAttribute(attr.name, attr.value); } if (script.textContent) { newScript.textContent = script.textContent; } script.parentNode.replaceChild(newScript, script); }); document.body.appendChild(clonedContent); }, loadTrackingPixels() { if (window.p72PixelsLoaded) { return; } window.p72PixelsLoaded = true; const gaConfig = this.getGAConfig(); const gtmConfigs = gaConfig.filter((item) => item.tag_type === "gtm"); const analyticsConfigs = gaConfig.filter( (item) => item.tag_type === "ga4" || item.tag_type === "ua" ); gtmConfigs.forEach((item) => { this.loadGTM(item.tracking_id); }); this.loadGtagAnalytics(analyticsConfigs); this.loadCustomScripts(); }, scheduleTrackingPixels() { if (window.p72PixelsScheduled) { return; } window.p72PixelsScheduled = true; window.setTimeout(() => { this.loadTrackingPixels(); }, 10000); }, updateHeightVar() { const cookieConsentEl = document.querySelector(".js-cookie-consent"); let height = 0; if (cookieConsentEl && !cookieConsentEl.classList.contains("is-hidden")) { const rect = cookieConsentEl.getBoundingClientRect(); height = Math.min(Math.max(rect.bottom, 0), cookieConsentEl.offsetHeight); } document.documentElement.style.setProperty( "--p72-cookie-consent-height", `${height}px` ); }, showBanner() { const cookieConsentEl = document.querySelector(".js-cookie-consent"); if (!cookieConsentEl) { return; } cookieConsentEl.classList.remove("is-hidden"); cookieConsentEl.classList.add("is-visible"); this.updateHeightVar(); this.bindScroll(); }, hideBanner() { const cookieConsentEl = document.querySelector(".js-cookie-consent"); if (!cookieConsentEl) { return; } cookieConsentEl.classList.remove("is-visible"); cookieConsentEl.classList.add("is-hidden"); this.unbindScroll(); this.updateHeightVar(); }, onScroll() { if (this._raf) { return; } this._raf = window.requestAnimationFrame(() => { this._raf = null; this.updateHeightVar(); }); }, bindScroll() { if (this._scrollBound) { return; } this._scrollBound = true; this._onScroll = this.onScroll.bind(this); window.addEventListener("scroll", this._onScroll, { passive: true }); window.addEventListener("resize", this._onScroll, { passive: true }); }, unbindScroll() { if (!this._scrollBound) { return; } this._scrollBound = false; window.removeEventListener("scroll", this._onScroll); window.removeEventListener("resize", this._onScroll); }, observeHeight() { const cookieConsentEl = document.querySelector(".js-cookie-consent"); if (!cookieConsentEl || typeof ResizeObserver === "undefined") { return; } new ResizeObserver(() => { this.updateHeightVar(); }).observe(cookieConsentEl); }, handleClose() { this.setDismissed(); this.hideBanner(); }, init() { const cookieConsentEl = document.querySelector(".js-cookie-consent"); if (cookieConsentEl) { this.scheduleTrackingPixels(); if (this.isDismissed()) { this.updateHeightVar(); } else { this.showBanner(); } this.observeHeight(); } else { document.documentElement.style.setProperty( "--p72-cookie-consent-height", "0px" ); } }, }; /* ========================================================================== Smooth anchor scrolling with header offset ========================================================================== */ function getAnchorTarget(hash) { if (!hash || hash === "#") return null; const id = hash.startsWith("#") ? hash.substring(1) : hash; let target = document.getElementById(id); if (!target) { try { target = document.querySelector(hash); } catch (error) { return null; } } return target; } function scrollToElementWithHeaderOffset(element) { const headerHeight = parseInt( getComputedStyle(document.documentElement) .getPropertyValue("--p72-header-height") ) || 0; const top = element.getBoundingClientRect().top + window.pageYOffset - headerHeight; window.scrollTo({ top, behavior: "smooth", }); } function initSmoothAnchorScrolling() { document.addEventListener("click", function (event) { const link = event.target.closest( 'a[href^="#"]:not([href="#"])' ); if (!link) return; const href = link.getAttribute("href"); const target = getAnchorTarget(href); if (target) { event.preventDefault(); scrollToElementWithHeaderOffset(target); if (history.pushState) { history.pushState(null, null, href); } } }); if (window.location.hash) { setTimeout(() => { const target = getAnchorTarget(window.location.hash); if (target) { scrollToElementWithHeaderOffset(target); } }, 100); } } /* ========================================================================== GSAP ScrollTrigger animations ========================================================================== */ function initGsapScrollAnimations() { if (typeof gsap === "undefined" || typeof ScrollTrigger === "undefined") { console.warn("GSAP or ScrollTrigger is not available."); return; } gsap.registerPlugin(ScrollTrigger); document.querySelectorAll(".js-gsap-trigger").forEach((trigger) => { /** * Fade in on scroll */ const fadeItems = trigger.querySelectorAll(".js-gsap-fade-in"); if (fadeItems.length > 0) { fadeItems.forEach((item, index) => { gsap.to(item, { opacity: 1, duration: 0.8, ease: "power1.in", scrollTrigger: item, delay: 0.1 * index, }); }); } /** * Scale in on scroll */ const scaleItems = trigger.querySelectorAll(".js-gsap-scale-in"); if (scaleItems.length > 0) { scaleItems.forEach((item, index) => { gsap.to(item, { scale: 1, opacity: 1, duration: 0.8, ease: "power1.in", scrollTrigger: item, delay: 0.1 * index, transformOrigin: "center center", }); }); } /** * Slide up on scroll */ const slideUpItems = trigger.querySelectorAll(".js-gsap-slide-in-up"); if (slideUpItems.length > 0) { slideUpItems.forEach((item, index) => { gsap.to(item, { opacity: 1, y: 0, duration: 0.8, ease: "power1.in", scrollTrigger: item, delay: 0.1 * index, }); }); } /** * Card entrance animation * * Note: * In the original bundle this is inside `.js-gsap-trigger`, * but it is not actually tied to ScrollTrigger. It runs immediately. */ const cards = trigger.querySelectorAll(".js-card-animate"); if (cards.length > 0) { console.log("Found cards to animate:", cards.length); gsap.set(cards, { opacity: 0, y: 12, filter: "blur(0.5px)", clearProps: "none", }); gsap.to(cards, { opacity: 1, y: 0, filter: "blur(0px)", duration: 0.3, ease: "power2.out", stagger: 0.03, delay: 0.05, }); } }); /** * Generic scroll class trigger */ gsap.utils.toArray(".u-scroll-animation").forEach((element) => { ScrollTrigger.create({ trigger: element, start: "top 90%", onEnter: () => { element.classList.add("u-scroll-animate"); }, }); }); } /* ========================================================================== Load-more card animation ========================================================================== */ function initLoadMoreScrollRelatedAnimation() { if (typeof jQuery === "undefined") { console.warn("jQuery is not available."); return; } if (typeof gsap === "undefined") { console.warn("GSAP is not available."); return; } const $ = jQuery; $(".js-button-load-more").on("click", () => { const hiddenItems = $(".js-filter-item.u-display--none").not(".ft-hidden"); const itemsToShow = hiddenItems.slice(0, 8); if (itemsToShow.length > 0) { const animatedCards = itemsToShow.find(".js-card-animate").get(); if (animatedCards.length > 0) { gsap.set(animatedCards, { opacity: 0, y: 12, filter: "blur(0.5px)", }); } itemsToShow.removeClass("u-display--none"); const filterContainer = $(".js-filter-container"); try { if (filterContainer.data("isotope")) { filterContainer.isotope("layout"); } } catch (error) {} if (animatedCards.length > 0) { gsap.to(animatedCards, { opacity: 1, y: 0, filter: "blur(0px)", duration: 0.4, ease: "power2.out", stagger: 0.04, }); } $(".js-button-load-more") .blur() .removeClass("active focus"); if (hiddenItems.length <= 8) { $(".js-button-load-more").hide(); } } }); } /* ========================================================================== Optional: Swiper timeline with horizontal scroll/drag behavior ========================================================================== */ /** * The bundle initializes a horizontal Swiper timeline. * * Requires Swiper and Navigation module. * * In the original minified code: * - fl = Swiper * - ml = Navigation module */ function initTimelineSwiper() { if (typeof Swiper === "undefined") { console.warn("Swiper is not available."); return; } // If using Swiper modules globally, adjust as needed. // Swiper.use([Navigation]); new Swiper(".js-timeline", { slidesPerView: 1, spaceBetween: "-10%", breakpoints: { 640: { slidesPerView: 2, }, 768: { slidesPerView: 3, }, 1024: { slidesPerView: 4, }, 1200: { slidesPerView: 5, }, }, direction: "horizontal", freeMode: true, navigation: { nextEl: ".swiper-button-next", prevEl: ".swiper-button-prev", }, }); } /* ========================================================================== Optional: Posts slider horizontal drag/scroll behavior ========================================================================== */ class PostsSlider { constructor() { this.sliders = document.querySelectorAll(".js-posts-slider"); this.swiperInstances = []; this.init(); } init() { if (!this.sliders.length) return; if (typeof Swiper === "undefined") { console.warn("Swiper is not available."); return; } // If using Swiper modules globally, adjust as needed. // Swiper.use([Navigation]); this.sliders.forEach((slider) => { const container = slider.querySelector(".js-posts-slider-container"); if (!container) return; const prevButton = slider.querySelector(".js-posts-slider-prev"); const nextButton = slider.querySelector(".js-posts-slider-next"); const swiper = new Swiper(container, { slidesPerView: "auto", spaceBetween: 0, grabCursor: true, watchSlidesProgress: true, wrapperClass: "js-posts-slider-wrapper", slideClass: "js-posts-slider-card", navigation: { nextEl: nextButton, prevEl: prevButton, }, on: { init: function () { if (prevButton) { prevButton.classList.add("swiper-button-disabled"); prevButton.setAttribute("disabled", "disabled"); } }, slideChange: function () { if (prevButton) { if (this.isBeginning) { prevButton.classList.add("swiper-button-disabled"); prevButton.setAttribute("disabled", "disabled"); } else { prevButton.classList.remove("swiper-button-disabled"); prevButton.removeAttribute("disabled"); } } if (nextButton) { if (this.isEnd) { nextButton.classList.add("swiper-button-disabled"); nextButton.setAttribute("disabled", "disabled"); } else { nextButton.classList.remove("swiper-button-disabled"); nextButton.removeAttribute("disabled"); } } }, }, }); this.swiperInstances.push(swiper); }); } } /* ========================================================================== Main initializer ========================================================================== */ function initExtractedScrollFunctionality() { cookieConsentScroll.init(); CookieConsentTracking.init(); initSmoothAnchorScrolling(); initGsapScrollAnimations(); initLoadMoreScrollRelatedAnimation(); initTimelineSwiper(); new PostsSlider(); } /* ========================================================================== DOM ready ========================================================================== */ document.addEventListener("DOMContentLoaded", () => { initExtractedScrollFunctionality(); });

Point72, L.P. and its affiliates and our third-party partners use cookies and similar technologies to view and retain your site interactions to perform analytics, enable site functionality and assist our marketing efforts exclusively for recruiting purposes. By continuing to use our site, you consent to these data practices, as described in our Privacy Policy.

  • About Us
  • Careers
  • Perspectives
Browse Open Roles
Menu
  • About Us
    • What We Do
    • Our Values
    • Leadership
    • Locations
  • Careers
    • Working Here
    • Students & Early-Career
    • Point72 Academy
    • Fundamental Equities
    • Cubist Systematic
    • Point72 LaunchPoint
    • Global Macro
    • Private Investments
    • Investment Services
    • Proprietary Research
  • Perspectives
Browse Open Roles
What We Do
Learn about the strategies and asset classes that make up our global business.
Our Values
See how we support our people, communities, and the planet through our ESG efforts.
Leadership
Meet the team responsible for shaping our firm.
Locations
Find us in financial hubs across the globe as we pursue the worlds best talent.

Working Here

Learn about the culture and community you can expect when you join us.
Define Your Path

Students & Early-Career

  • All Programs
  • Point72 Academy

Experienced Professionals

  • Fundamental Equities
  • Cubist Systematic
  • Point72 LaunchPoint
  • Global Macro
  • Private Investments
  • Investment Services
  • Proprietary Research
if (window.innerWidth > 768) { document.write(' /* rules */ <\/script>'); } /* rules */ !function(){"use strict";var r,n={},e={};function t(r){var o=e[r];if(void 0!==o)return o.exports;var u=e[r]={exports:{}};return n[r].call(u.exports,u,u.exports,t),u.exports}t.m=n,r=[],t.O=function(n,e,o,u){if(!e){var i=1/0;for(s=0;s
=u)&&Object.keys(t.O).every(function(r){return t.O[r](e[a])})?e.splice(a--,1):(f=!1,u0&&r[s-1][2]>u;s--)r[s]=r[s-1];r[s]=[e,o,u]},t.n=function(r){var n=r&&r.__esModule?function(){return r.default}:function(){return r};return t.d(n,{a:n}),n},t.d=function(r,n){for(var e in n)t.o(n,e)&&!t.o(r,e)&&Object.defineProperty(r,e,{enumerable:!0,get:n[e]})},t.o=function(r,n){return Object.prototype.hasOwnProperty.call(r,n)},function(){var r={666:0};t.O.j=function(n){return 0===r[n]};var n=function(n,e){var o,u,i=e[0],f=e[1],a=e[2],c=0;if(i.some(function(n){return 0!==r[n]})){for(o in f)t.o(f,o)&&(t.m[o]=f[o]);if(a)var s=a(t)}for(n&&n(e);c console.log("Custom tracking script loaded after consent tracking delay");

Software Engineer - Data & AI

Apply Now
Experience

Experienced Professionals

Location

Bengaluru, India

Focus

Software & System Engineering

Business

Point72

A CAREER WITH POINT72S PROPRIETARY RESEARCH

On our proprietary research teamMarket Intelligenceyoull partner with our Investment Professionals and Compliance team to uncover insights about companies, industries, and the broader economy through deep fundamental research and applying data science and engineering techniques to alternative data sets. Youll work alongside a talented team with diverse skills, backgrounds, and perspectives. Our industry researchers, product managers, and data scientists and engineers work together to build compliant research products that answer the questions our investment professionals care about most. We look for other bright, motivated, and collaborative people to join our team and grow with usmore than 90% of the leaders in our group were promoted from within.


What youll do

Software Engineer - Data & AI on the Proprietary Research team design and build Data & AI Platform to transform structured and unstructured data into actionable insights. As a member of our Data Engineering team, you will work closely with investment professionals, researchers, and data scientists to design, build, and launch robust end-to-end business solutions including data pipelines, products and tools that help extract the most value out of Point72s data assets. In this role, you will:

Design and build big data pipelines for ingestion, transformation, trend creation, and delivery of AI-ready data assets.

Develop reusable software components, libraries, and APIs to support experimentation and production deployment.

Implement data quality, lineage, and governance controls to ensure datasets are reliable, auditable, and compliant.

Build scalable, AI-native, cloud-based infrastructure using distributed systems and modern cloud technologies.

Optimize system performance, cost, and reliability through benchmarking and continuous improvement.

Explore emerging Data and AI technologies, run proof of concepts, and convert successful ideas into business deliverables.

Partner with investment, research, data science, and compliance teams to turn research needs into production-ready data products and analytics.

Provide hands-on technical leadership, influence architecture and team processes, and support development efforts across engineers and stakeholders.

Use AI as a core operating layer by deploying LLM-based tools and building agentic workflows for business impact.

Demonstrate strong project management, business intuition, collaboration, ethical standards, and a solution-oriented mindset in a fast-paced environment.


Whats required

5+ years of experience in Data Engineering, Software Engineering, or a related field.

2+ years of strong hands-on Python development experience.

Experience in system design and leading development efforts involving multiple contributors.

Strong knowledge of distributed data processing frameworks such as Spark.

Experience building scalable APIs, backend infrastructure, and software applications.

Hands-on experience with cloud platforms and services for data storage and compute, such as AWS, Google Cloud Platform, or Azure.

Experience with workflow orchestration technologies such as Airflow.

Exposure to LangGraph, LangChain, embedding models, vector databases, or graph databases is a plus.

Strong interest in staying current with AI advancements and applying emerging techniques to real-world use cases.

Demonstrates key values including integrity, ownership, commerciality, humility, adaptability, and the ability to elevate the team through strong work ethic and domain knowledge.

Commitment to the highest ethical standards


We take care of our people

We invest in our people, their careers, their health, and their well-being. When you work here, we provide:

Health care benefits

Maternity, Adoption & related leave policies

Generous paternity and family care leave policies

Employee Assistance Program & Mental wellness programs

Transportation support

Tuition assistance


About Point72

Point72 is a leading global alternative investment firm led by Steven A. Cohen. Building on more than 30 years of investing experience, Point72 seeks to deliver superior returns for its investors through fundamental and systematic investing strategies across asset classes and geographies. We aim to attract and retain the industrys brightest talent by cultivating an investor-led culture and committing to our peoples long-term growth. For more information, visit https://point72.com.



Apply Now

Job Application Checklist

  • Rsum
  • Education background
Apply Now

Still Exploring?

Browse Open Roles

P72 Careers - Footer
/* Main footer padding control */ @media (min-width: 1921px) { .c-menu-footer__graphic{ margin-bottom: -85px !important; } .c-footer{ padding-top:40px !important; } .c-footer__upper{ /*padding-top:100px;*/ } .c-menu-footer__menu{ padding-top:20px !important; } .c-footer__branding{ margin-bottom:0px !important; } .c-menu-footer__link{ line-height:1.3 !important; font-size:1.127rem !important; } .c-menu-footer__title{ line-height:1.4 !important; } } @media (max-width: 1920px) { .c-menu-footer__graphic{ margin-bottom: -65px !important; } .c-menu-footer__title{ line-height:1.4 !important; } .c-menu-footer__link{ line-height:1.3 !important; font-size:1.127rem !important; } .c-menu-footer__menu{ padding-top:20px; } .c-footer__branding{ margin-bottom:0px !important; } } .c-menu-footer__title{ color:#f5f4ee; } @media (max-width: 1024px) { .c-footer__graphic { display: none; } } @media (max-width: 768px) { .c-footer{ padding-top:25px; } .c-footer__upper{ margin-bottom:-20px; } .c-footer__branding{ margin-top:20px; } .c-menu-utility__menu-item { padding-top:3px; } } @media (min-width: 769px) { .c-menu-utility__menu-item { padding-top:0; } }

Point72

  • About Us
    • What We Do
    • Our Values
    • Leadership
    • Locations
  • Join Our Team
    • Working Here
    • Students & Early-Career
    • Asia-Pacific Offices
    • Warsaw Office
  • Career Paths
    • Fundamental Equities
    • Point72 Academy
    • Point72 LaunchPoint
    • Cubist Systematic
    • Global Macro
    • Point72 Private Investments
    • Proprietary Research
    • Investment Services
  • Resources
    • Perspectives
    • General Inquiries
    • Press Inquiries
    • Investor Login
  • 2026 Point72. All Rights Reserved
  • | Global Privacy Policy
  • | Terms of Use
  • | Disclosures
  • | Brand Misuse Fraudulent Schemes Notice
// Mixpanel ignore tracking for known IPs var excludeIPS = '[65.213.72.30, 185.142.16.9, 203.176.115.9, 208.68.197.6, 208.68.197.9, 208.68.199.6, 208.68.199.9, 208.85.160.9, 208.85.161.9]'; $.getJSON('//api.ipify.org?format=json', function(data) { try{ if(true && excludeIPS.indexOf(data.ip) > -1)else{ mixpanel.unregister("$ignore"); mixpanel.track("View Page", ); mixpanel.people.set_once({ 'First Career Page Visit' : new Date().toISOString() }); mixpanel.people.set({ 'Last Career Page Visit' : new Date().toISOString() }); // Only for Careers Site mixpanel.people.increment("# of Career Page Visits"); (function(){ var links = document.querySelectorAll('a'); [].forEach.call(links, function(link) ); })(); } }catch(e){} }); jQuery(document).ready(function(){ var str = navigator.userAgent; if (str.toLowerCase().indexOf("firefox") >= 0) { jQuery('body').addClass("gecko"); } }); CSJobDetailModule.init('{\"lastModifiedDateFormatted\":\"2026-10-23\",\"job\":,\"friendlyJobName\":\"software-engineer-data-and-ai\",\"formattedTeam\":\"Software & System Engineering\",\"formattedLocation\":\"Bengaluru, India\",\"formattedArea\":\"Technology & Engineering\"}');

Software Engineer - Data & AI

Compensation

Not specified

City: Bengaluru

Country: India

Point72 logo
Hedge Funds

15 days ago

No clicks

at Point72

ExperiencedNo visa sponsorship

The JavaScript code provided is tracking a user's activity on a careers website using Twitter's Ads Conversion Tracking script. When a user views the job detail page for the role of Software Engineer - Data and AI, the following events are tracked: 1. **Pageview**: This event occurs when the user loads the job detail page. It provides information about the user's session such as the referrer, location, and device details. Here's the data sent for the Pageview event: ```json { "event": "pageview", "event_time": 1666553562000, "/adct/ei": "d76bb9fc-eb68-4e7c-96c9-75f412fa8440", "adct/ecid": 2, "adct/pid": "Twitter", "adct/p_user_id": 0, "adct/plid": "11b2b514-55c9-4831-b882-8ab447519f5c", "adct/tw_document_href": "https://careers.point72.com/CSJobDetail?jobName=software-engineer-data-and-ai&jobCode=IVS-0015389&retURL=%2FCSCareerSearch", "adct/twpid": "tw.1793228828652.331664834614575966", "

Full Job Description

@font-face { font-family: 'WistiaPlayerInterNumbersSemiBold'; font-feature-settings: 'tnum' 1; src: url(data:application/x-font-woff;charset=utf-8;base64,d09GMk9UVE8AAAaMAAwAAAAACgAAAAZBAAMD1wAAAAAAAAAAAAAAAAAAAAAAAAAADYpwGhQbIBwqBmAAgTIBNgIkAzAEBgWDGgcgGykJEZWkARP8KHCbm2tEznyIN98tPTUk9Ig3oiVV3pbDIzXa+f/fZgXpALFTZhBoMVFC9cp036dXvRKVmVnsxe+D+1NDQI5lG7ikZWEINIElTeBIdnxlhauQ5GQtoLHA/wN0riVdSx5xgbxF3KTbgnjVQ4B9P7YqCx7FpEZK+6ilx0AoopUh4aExJEKmkU+0ncdr4iFfKhdSFD9y91LCRaxNbVqvi0dND3rxI7ndUDR7EiwT3bhiua9krFA0oepCy2hCjwmjnjDjKjNTDz2ZuHtN8820Wfw/l8u4w4yV/f8/6uscs5rmiN00LcP4hAofyZUSyS3WinX0RGFFtnGrjj36x6dlNa57+PLTlrUisH2n9orfgd+R34XfDd0NsWDXwfwhvKHpbs3UBni37dBlPvO4KYn/PgylilcgSdw6sjsSSxsRGfIJgqhi14bKZCHcQvjUh/+3HMotTYrGLVYCxyMFjEnYC98yTAp6atAKVxaZ9eu2NMji8WTj4w/Y34elD60PPwb5bEywLqAX/amwmUo6TBCy14N/TL44jb3sE5JdUIPXXI0RBSoGt3BUObn4agKGIxxQhlyQacbstK4fS2mZoBtFNQ1bd+4zND2vQu6anl7gWFOj8MV2DVMtU44xMhpwElrrjA7zO5IqWojd/v1Vso6cqp91zC2YrGhDOy07Iqyza2q9smDIwUYek0AWbCt/8x78QmrzayQ6xtpmqfCYsLfgU9HdeP3UqutZTTNd/9Q8k08XzXzIxSdvLPda8YaeeZnkxUwql0nDKyUYdaWZjGAy7UDLHpVqBVHTxSV0wBy21El9u/491ik2J3YkdiP2LPZL41RBeeNUWtp97Bbn0Ee1g9wr9qqV/X+4R9nlPX03743dylnaXZyNp8v58yLOsFYCbUnCVQzjN+5QhlmKccO7aMkueWJggROd4qnw2x5LydUcg/NRamE3XMlkGovpRWPKWEavP74P2O1RANM/3gIIPJj7TX+lqU2geQuaBx4B/7cWAOx0ucTiEHYJU9y5DBuUMYNIHeHZz9tn+Fw2G5EBTqUlHRfRi4eB5wNlJsRsv5k4b6HyFkhIC6BO4LzPbWhW7rbCcxubeKHOc6UaBKZBMMd4j8XuRUynOCCa4EMfF9grkI1NcTaSAVtk1nrIOwFfeEBlQw4f4phb6zHzBOm0ZZ0dBcaZRVdYIo5xYiyOMEWONwQHmjKGE//VuRBgul1QrpyxmMvF4vGj0xfuuQrNt4tVTsRhEnjY9AuKa1FVLSEneQWzFd5WbO7hasX08ONUOVQgwQuVqACFXkSoIoUgK1hJEkAgbkG5CjqBS5wrRFuY2IfVwhRnLsVyZTZpatveGR4yEbYqbE6J80nM4aa+LD7Oqmr8PdSJFUQVynmgN4lerGQV1+uLdYzdOFWHPW/iK2gIQayhizQ0NMwyvBEBlrDczRfmU40CTtAHqLQGnjQG8MYkxm1MwJuTqjHwVCu9iRJ1C8ojWGHxUYowH0c5X57zpXquvlw0wzHHGMTfufxiJ1psFJTzq6nGeDvHF4LgmHHWCUViZBaInRn+cswnBi460RBPRYg9TRUQ0CZUC5LAT0qLLu50FpdTeBhjGf7/h4dg9hE0uqsBx/saOcYRDIfnOhfzGFBHyizcJK3p2edUjWrC0rn1aGjXtfVUCHMAKKhlxV8eTEIcV2jCOdKiqahv/MisrfRQVnxPJoOU62mR6pu2ZllIzo8zOZqQB7kWJXW2/c0aihata5PcIVJKfFRgHAETmEQVTCELptGMGcyigTnMJ1voUVN6uCZS9pV2hrwl7FYMvBwtUSd7L7E5qP9t7BIPRF7EcmA9ct2nIPHrxgWajtDltbXuBLuaY6qRZGa5ZlX5anfR0lYXaHUzVSFjZa8rfdhZ8rKXFZg21LVL5LFjI5TlDIbwnFGHE2dypHs6Q50N015dpOgLONEUlOqoiQgIaeCsjMq9gITDKwRMieQgKUy9UQY1BTFYZU2KpE2SkILMIjW8IdFwIKmMaK8oClJVssAEtFnz5dQ1s+w6EZoNGtPGQfzx+aoE8ikiP8GCYOWtgB+HBdWDaxACAZInVq14dZI85RRDvZGIghyONw59KV/BBEQ02P1ER8hmNGiURT2hQP8WfAY=); }
{ "@context": "https://schema.org", "@graph": [ { "@type": "WebSite", "@id": "http://careers.point72.com/#website", "url": "http://careers.point72.com/", "name": "Point72", "description": "", "potentialAction": [ ], "inLanguage": "en-US" }, , ] }
img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--duotone--dark-grayscale: url('#wp-duotone-dark-grayscale');--wp--preset--duotone--grayscale: url('#wp-duotone-grayscale');--wp--preset--duotone--purple-yellow: url('#wp-duotone-purple-yellow');--wp--preset--duotone--blue-red: url('#wp-duotone-blue-red');--wp--preset--duotone--midnight: url('#wp-duotone-midnight');--wp--preset--duotone--magenta-yellow: url('#wp-duotone-magenta-yellow');--wp--preset--duotone--purple-green: url('#wp-duotone-purple-green');--wp--preset--duotone--blue-orange: url('#wp-duotone-blue-orange');--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} try { Typekit.load({ async: true }); } catch (e) {}
Software Engineer - Data & AI Career
!function(e,t,n,s,u,a){e.twq||(s=e.twq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments); },s.version='1.1',s.queue=[],u=t.createElement(n),u.async=!0,u.src='//static.ads-twitter.com/uwt.js', a=t.getElementsByTagName(n)[0],a.parentNode.insertBefore(u,a))}(window,document,'script'); // Insert Twitter Pixel ID and Standard Event data below twq('init','o38l9'); twq('track','PageView'); _linkedin_partner_id = "592849"; window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || []; window._linkedin_data_partner_ids.push(_linkedin_partner_id); (function() {var s = document.getElementsByTagName("script")[0]; var b = document.createElement("script"); b.type = "text/javascript";b.async = true; b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js"; s.parentNode.insertBefore(b, s);} )(); (function(e,a){if(!a.__SV){var b=window;try{var c,l,i,j=b.location,g=j.hash;c=function(a,b){return(l=a.match(RegExp(b+"=([^&]*)")))?l[1]:null};g&&c(g,"state")&&(i=JSON.parse(decodeURIComponent(c(g,"state"))),"mpeditor"===i.action&&(b.sessionStorage.setItem("_mpcehash",g),history.replaceState(i.desiredHash||"",e.title,j.pathname+j.search)))}catch(m){}var k,h;window.mixpanel=a;a._i=[];a.init=function(b,c,f){function e(b,a){var c=a.split(".");2==c.length&&(b=b[c[0]],a=c[1]);b[a]=function(){b.push([a].concat(Array.prototype.slice.call(arguments, 0)))}}var d=a;"undefined"!==typeof f?d=a[f]=[]:f="mixpanel";d.people=d.people||[];d.toString=function(b){var a="mixpanel";"mixpanel"!==f&&(a+="."+f);b||(a+=" (stub)");return a};d.people.toString=function(){return d.toString(1)+".people (stub)"};k="disable time_event track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config reset people.set people.set_once people.increment people.append people.union people.track_charge people.clear_charges people.delete_user".split(" "); for(h=0;h
if(!window.sfdcPage) { window.sfdcPage = new ApexPage(); }UserContext.initialize();
(function enforceAnalyticsDelayGateEarly() { if (window.__p72AnalyticsDelayGateInstalled) { return; } window.__p72AnalyticsDelayGateInstalled = true; const ANALYTICS_DELAY_MS = 10000; const releaseAt = Date.now() + ANALYTICS_DELAY_MS; let gateOpen = false; const queuedScripts = []; const pendingScriptSrc = new WeakMap(); const pendingConnectedScripts = []; function isAnalyticsUrl(url) { if (!url) { return false; } try { const parsed = new URL(url, window.location.href); const host = parsed.hostname.toLowerCase(); return host === "www.googletagmanager.com" || host === "googletagmanager.com" || host === "www.google-analytics.com" || host === "google-analytics.com"; } catch (error) { return false; } } function queueScript(parent, node, referenceNode, mode) { queuedScripts.push({ parent, node, referenceNode, mode, }); } function rememberDeferredSrc(scriptNode, srcValue) { pendingScriptSrc.set(scriptNode, srcValue); if (scriptNode.isConnected) { pendingConnectedScripts.push(scriptNode); } } function getScriptSrc(scriptNode) { if (!scriptNode || scriptNode.tagName !== "SCRIPT") { return ""; } return pendingScriptSrc.get(scriptNode) || scriptNode.getAttribute("src") || scriptNode.src || ""; } const originalAppendChild = Node.prototype.appendChild; const originalInsertBefore = Node.prototype.insertBefore; const originalSetAttribute = Element.prototype.setAttribute; const originalScriptSrcDescriptor = Object.getOwnPropertyDescriptor(HTMLScriptElement.prototype, "src"); function applyPendingSrc(scriptNode) { if (!scriptNode || scriptNode.tagName !== "SCRIPT") { return; } const deferredSrc = pendingScriptSrc.get(scriptNode); if (!deferredSrc) { return; } pendingScriptSrc.delete(scriptNode); if (originalScriptSrcDescriptor && typeof originalScriptSrcDescriptor.set === "function") { originalScriptSrcDescriptor.set.call(scriptNode, deferredSrc); } else { originalSetAttribute.call(scriptNode, "src", deferredSrc); } } Node.prototype.appendChild = function patchedAppendChild(node) { const src = getScriptSrc(node); if (!gateOpen && src && isAnalyticsUrl(src)) { queueScript(this, node, null, "append"); return node; } return originalAppendChild.call(this, node); }; Node.prototype.insertBefore = function patchedInsertBefore(node, referenceNode) { const src = getScriptSrc(node); if (!gateOpen && src && isAnalyticsUrl(src)) { queueScript(this, node, referenceNode, "insert"); return node; } return originalInsertBefore.call(this, node, referenceNode); }; Element.prototype.setAttribute = function patchedSetAttribute(name, value) { if (!gateOpen && this.tagName === "SCRIPT" && typeof name === "string" && name.toLowerCase() === "src") { const src = String(value || ""); if (src && isAnalyticsUrl(src)) { rememberDeferredSrc(this, src); return; } } return originalSetAttribute.call(this, name, value); }; if (originalScriptSrcDescriptor && typeof originalScriptSrcDescriptor.get === "function" && typeof originalScriptSrcDescriptor.set === "function") { Object.defineProperty(HTMLScriptElement.prototype, "src", { configurable: true, enumerable: originalScriptSrcDescriptor.enumerable, get: function patchedScriptSrcGet() { if (pendingScriptSrc.has(this)) { return pendingScriptSrc.get(this); } return originalScriptSrcDescriptor.get.call(this); }, set: function patchedScriptSrcSet(value) { const src = String(value || ""); if (!gateOpen && src && isAnalyticsUrl(src)) { rememberDeferredSrc(this, src); return src; } pendingScriptSrc.delete(this); return originalScriptSrcDescriptor.set.call(this, src); }, }); } function flushQueuedScripts() { gateOpen = true; if (pendingConnectedScripts.length > 0) { const uniqueConnectedScripts = Array.from(new Set(pendingConnectedScripts)); uniqueConnectedScripts.forEach((scriptNode) => { try { applyPendingSrc(scriptNode); } catch (error) { // Ignore failures from stale nodes; other script paths may retry safely. } }); } while (queuedScripts.length > 0) { const item = queuedScripts.shift(); try { if (!item || !item.parent || !item.node) { continue; } applyPendingSrc(item.node); if (item.mode === "insert" && item.referenceNode && item.referenceNode.parentNode === item.parent) { originalInsertBefore.call(item.parent, item.node, item.referenceNode); } else { originalAppendChild.call(item.parent, item.node); } } catch (error) { // Ignore failures from stale nodes; other script paths may retry safely. } } } const remainingDelay = Math.max(releaseAt - Date.now(), 0); window.setTimeout(flushQueuedScripts, remainingDelay); })();
P72 Careers - Header
.c-cookie-consent{ opacity:1; position:relative; top:0; transform:translateY(0); transition:transform .4s cubic-bezier(.65,0,.35,1); transition:transform var(--p72-animation-duration) var(--p72-animation-timing); } .c-cookie-consent__container{ align-items:flex-start; display:flex;gap:1rem; gap:var(--p72-space); padding-bottom: .5rem; padding-bottom:var(--p72-space-xs); padding-top:.5rem; padding-top:var(--p72-space-xs) } .c-cookie-consent__content>:last-child{ /* margin-bottom:0*/ } /* .c-cookie-consent__content a{ -webkit-text-decoration:underline; text-decoration:underline }*/ .c-cookie-consent__close{ position:relative; right:-.75rem; right:calc(var(--p72-space-sm)*-1); top:-.75rem; top:calc(var(--p72-space-sm)*-1) } .c-cookie-consent.is-hidden{ opacity:0;transform:translateY(-100%) } .c-menu-mobile__menu-item > a, .c-menu-mobile__menu-item > a span { color: #18181a; /* matches your current inline color */ } .c-menu-mobile__button:hover { background: #f5f4ee !important; border-color: #18181a !important; color: #18181a !important; } .c-menu-mega-careers ul a:focus, .c-menu-mega-careers ul a:hover { color: #b08725 !important; color: var(--p72-color-content-stronger) !important; } li.c-menu-mobile__menu-item > a.c-menu-mobile__link, li.c-menu-mobile__menu-item > a.c-menu-mobile__link span { color: #18181a !important; } li.c-menu-mobile__menu-item > a.c-menu-mobile__link:hover, li.c-menu-mobile__menu-item > a.c-menu-mobile__link:hover span { color: var(--p72-color-content-stronger, #b08725) !important; } li.c-menu-mobile__menu-item > a.c-menu-mobile__link, li.c-menu-mobile__menu-item > a.c-menu-mobile__link span { color: #18181a !important; } li.o-icon > a.o-icon:hover, li.o-icon > a.o-icon:hover span { color: var(--p72-color-content-stronger, #b08725) !important; } .o-button--outlined { background-color: transparent; color: black; border: 1px solid black; transition: all 0.3s ease; } .o-button--outlined:focus, .o-button--outlined:hover { background-color: var(--p72-color-button-background, #b08725); border-color: var(--p72-color-button-background, #b08725); color: var(--p72-color-button-text, #f5f4ee); } .c-menu-mega { opacity: 0; visibility: hidden; transform: translateY(5px); transition: opacity 0.15s ease-out, transform 0.15s ease-out; will-change: opacity, transform; } body.header-scrolled .c-header { top: var(--p72-cookie-consent-height, 0px) !important; } body.header-scrolled .c-menu-mobile { /*top: 0 !important;*/ } /* Header common style */ .c-header, .c-header.l-wrap, .c-header .l-wrap { transition: none !important; will-change: auto; } /* Optional: reset header when scrolled */ body.header-scrolled .c-header, body.header-scrolled .c-header.l-wrap, body.header-scrolled .c-header .l-wrap { top: 0 !important; } @media only screen and (max-width:768px) { .c-cookie-consent__container { padding: 8px 10px !important; } body.header-scrolled .c-header, body.header-scrolled .c-header.l-wrap { padding-top: 13px; !important; } body.header-scrolled .c-header .l-wrap { padding-top: 13px; !important; } .c-cookie-consent__content p,.c-cookie-consent__content a { max-width: 100% !important; font-family:"Aptos", sans-serif; font-size:14px !important; line-height:18.2px !important; } } /* ========================================================= Combined CSS: c-menu-mobile + u-hide-after--md + u-spacing--lg Includes required variables + hamburger related CSS ========================================================= */ /* ========================================================= Required Variables ========================================================= */ :root { --p72-header-height: 100px; --p72-space-xxs: 0.25rem; --p72-space-xs: 0.5rem; --p72-space-sm: 0.75rem; --p72-space: 1rem; --p72-space-md: 1.5rem; --p72-space-lg: 2rem; --p72-animation-duration: 0.4s; --p72-animation-duration-long: 0.6s; --p72-animation-timing: cubic-bezier(0.65, 0, 0.35, 1); --p72-z-index-5: 5; --p72-border-width: 1px; --p72-font-family-secondary: Aptos, sans-serif; --p72-font-weight-bold: 700; --p72-font-size-heading-xs: 1.25rem; --p72-line-height-tight: 1.1; --p72-letter-spacing-wide: 0.06em; --p72-typography-heading-xs: var(--p72-font-weight-bold) var(--p72-font-size-heading-xs) / var(--p72-line-height-tight) var(--p72-font-family-secondary); --p72-color-brand-cream: #f5f4ee; --p72-color-brand-gold: #b08725; --p72-color-brand-slate: #505a6b; --p72-color-brand-charcoal: #18181a; --p72-color-background: var(--p72-color-brand-charcoal); --p72-color-content: var(--p72-color-brand-cream); --p72-color-content-stronger: var(--p72-color-brand-gold); --p72-color-border: var(--p72-color-brand-slate); --p72-cookie-consent-height: 0px; --p72-icon-size-sm: 0.9375rem; } /* ========================================================= Utility: u-hide-after--md Hidden after medium breakpoint ========================================================= */ @media (min-width: 769px) { .u-hide-after--md { display: none !important; } } /* ========================================================= Utility: u-spacing--lg Adds large vertical spacing between direct children ========================================================= */ .u-spacing--lg > * + * { margin-top: 2rem; margin-top: var(--p72-space-lg); } /* ========================================================= Mobile Menu Container ========================================================= */ .c-menu-mobile { bottom: 0; height: calc(100% - var(--p72-cookie-consent-height)); overflow-y: scroll; padding: calc(100px + 1.5rem) 1.5rem 1.5rem; padding: calc(var(--p72-header-height) + var(--p72-space-md)) var(--p72-space-md) var(--p72-space-md) var(--p72-space-md); position: fixed; right: 0; top: var(--p72-cookie-consent-height) !important; transform: translate3d(100%, 0, 0); transition: all 0.6s cubic-bezier(0.65, 0, 0.35, 1); transition: all var(--p72-animation-duration-long) var(--p72-animation-timing); visibility: hidden; width: 100%; z-index: 5; z-index: var(--p72-z-index-5); background-color: var(--p72-color-background); color: var(--p72-color-content); } /* ========================================================= Mobile Menu Open State Add class c-menu-mobile-is-active to body or parent ========================================================= */ @media (max-width: 767px) { .c-menu-mobile-is-active .c-menu-mobile { transform: translateZ(0); visibility: visible; } body.c-menu-mobile-is-active { overflow: hidden; } } /* ========================================================= Mobile Menu Item ========================================================= */ .c-menu-mobile__menu-item { border-bottom: 1px solid #505a6b; border-bottom: var(--p72-border-width) solid var(--p72-color-border); display: flex; flex-flow: column nowrap; gap: 0.25rem; gap: var(--p72-space-xxs); overflow: hidden; width: 100%; } /* ========================================================= Mobile Menu Link / Button ========================================================= */ .c-menu-mobile__link { align-items: center; background: transparent; border: none; color: #f5f4ee; color: var(--p72-color-content); cursor: pointer; display: flex; font: 700 1.25rem/1.1 Aptos, sans-serif; font: var(--p72-typography-heading-xs); gap: 0.25rem; gap: var(--p72-space-xxs); justify-content: space-between; letter-spacing: 0.06em; letter-spacing: var(--p72-letter-spacing-wide); padding: 0.75rem 0; padding: var(--p72-space-sm) 0; text-transform: uppercase; transition: color 0.4s cubic-bezier(0.65, 0, 0.35, 1); transition: color var(--p72-animation-duration) var(--p72-animation-timing); width: 100%; text-align: left; } @media (max-width: 768px) { .c-menu-mobile__link { font-size: 1.0625rem; } } .c-menu-mobile__link:focus, .c-menu-mobile__link:hover { color: #b08725; color: var(--p72-color-content-stronger); } .c-menu-mobile__link svg { height: var(--p72-icon-size-sm); min-width: var(--p72-icon-size-sm); width: var(--p72-icon-size-sm); } /* ========================================================= Mobile Sub Menu ========================================================= */ .c-menu-mobile--sub-menu { display: none; } .c-menu-mobile--sub-menu ul { display: flex; flex-direction: column; gap: 0.25rem; gap: var(--p72-space-xxs); margin-bottom: 0.75rem; margin-bottom: var(--p72-space-sm); list-style: none; padding: 0; } .c-menu-mobile--sub-menu a { color: #f5f4ee; color: var(--p72-color-content); text-decoration: none; } @media (max-width: 768px) { .c-menu-mobile--sub-menu a { font-size: 0.875rem; } } .c-menu-mobile--sub-menu a:focus, .c-menu-mobile--sub-menu a:hover { color: #b08725; color: var(--p72-color-content-stronger); } /* Show submenu when menu item is active */ .c-menu-mobile__menu-item.this-is-active .c-menu-mobile--sub-menu { display: block; } /* ========================================================= Header Style When Mobile Menu Is Active ========================================================= */ .c-menu-mobile-is-active .c-header { backdrop-filter: blur(0); border-color: #505a6b; border-color: var(--p72-color-border); } /* ========================================================= Hamburger Button Base ========================================================= */ .o-button-hamburger { align-items: center; -webkit-appearance: none; -moz-appearance: none; appearance: none; background: transparent; border: none; color: #f5f4ee; color: var(--p72-color-content); cursor: pointer; display: flex; height: 50px; padding: 0; --p72-hamburger-line-height: 1px; --p72-hamburger-line-spacing: 6px; --p72-hamburger-line-width: 25px; --p72-hamburger-lines-total-height: calc( var(--p72-hamburger-line-spacing) * 2 + var(--p72-hamburger-line-height) * 3 ); } .o-button-hamburger__label { font: 700 1rem/1.1 Aptos, sans-serif; letter-spacing: 0.06em; letter-spacing: var(--p72-letter-spacing-wide); text-transform: uppercase; } .o-button-hamburger__lines { height: var(--p72-hamburger-lines-total-height); margin-left: 0.25rem; margin-left: var(--p72-space-xxs); position: relative; transition: transform 0.5s ease-in-out; width: var(--p72-hamburger-line-width); } .o-button-hamburger__line { background-color: currentcolor; height: var(--p72-hamburger-line-height); left: 0; position: absolute; transition: transform 0.3s ease, top 0.3s ease, opacity 0.3s ease; width: 100%; } .o-button-hamburger__line:first-child { top: 0; } .o-button-hamburger__line:nth-child(2) { top: calc( var(--p72-hamburger-line-spacing) + var(--p72-hamburger-line-height) ); } .o-button-hamburger__line:nth-child(3) { top: calc( (var(--p72-hamburger-line-spacing) + var(--p72-hamburger-line-height)) * 2 ); } /* ========================================================= Hamburger Active Animation Triggered by .c-menu-mobile-is-active ========================================================= */ .c-menu-mobile-is-active .o-button-hamburger__line:first-child { top: 50%; transform: rotate(45deg); } .c-menu-mobile-is-active .o-button-hamburger__line:nth-child(2) { opacity: 0; } .c-menu-mobile-is-active .o-button-hamburger__line:nth-child(3) { top: 50%; transform: rotate(-45deg); } /** * Extracted scroll-related functionality from the bundled app. * * Requires: * - GSAP * - ScrollTrigger * - Optional: jQuery if using the jQuery-based class add below * * If you are using ES modules: * * import gsap from "gsap"; * import ScrollTrigger from "gsap/ScrollTrigger"; * * gsap.registerPlugin(ScrollTrigger); */ /* ========================================================================== Cookie consent scroll/resize height tracking ========================================================================== */ const COOKIE_NOTICE_KEY = "p72_cookie_notice_dismissed"; /** * Global analytics gate: defer GA/GTM script injection attempts until 10s. * This catches third-party code paths that try to load tags before our * CookieConsentTracking delay executes. */ (function enforceAnalyticsDelayGate() { if (window.__p72AnalyticsDelayGateInstalled) { return; } window.__p72AnalyticsDelayGateInstalled = true; const ANALYTICS_DELAY_MS = 10000; const releaseAt = Date.now() + ANALYTICS_DELAY_MS; let gateOpen = false; const queuedScripts = []; function isAnalyticsUrl(url) { if (!url) { return false; } try { const parsed = new URL(url, window.location.href); const host = parsed.hostname.toLowerCase(); return host === "www.googletagmanager.com" || host === "googletagmanager.com" || host === "www.google-analytics.com" || host === "google-analytics.com"; } catch (error) { return false; } } function queueScript(parent, node, referenceNode, mode) { queuedScripts.push({ parent, node, referenceNode, mode, }); } const originalAppendChild = Node.prototype.appendChild; const originalInsertBefore = Node.prototype.insertBefore; Node.prototype.appendChild = function patchedAppendChild(node) { const src = node && node.tagName === "SCRIPT" ? node.src : ""; if (!gateOpen && src && isAnalyticsUrl(src)) { queueScript(this, node, null, "append"); return node; } return originalAppendChild.call(this, node); }; Node.prototype.insertBefore = function patchedInsertBefore(node, referenceNode) { const src = node && node.tagName === "SCRIPT" ? node.src : ""; if (!gateOpen && src && isAnalyticsUrl(src)) { queueScript(this, node, referenceNode, "insert"); return node; } return originalInsertBefore.call(this, node, referenceNode); }; function flushQueuedScripts() { gateOpen = true; while (queuedScripts.length > 0) { const item = queuedScripts.shift(); try { if (!item || !item.parent || !item.node) { continue; } if (item.mode === "insert" && item.referenceNode && item.referenceNode.parentNode === item.parent) { originalInsertBefore.call(item.parent, item.node, item.referenceNode); } else { originalAppendChild.call(item.parent, item.node); } } catch (error) { // Ignore failures from stale nodes; other script paths may retry safely. } } } const remainingDelay = Math.max(releaseAt - Date.now(), 0); window.setTimeout(flushQueuedScripts, remainingDelay); })(); const cookieConsentScroll = { _raf: null, _scrollBound: false, _onScroll: null, isDismissed() { try { return sessionStorage.getItem(COOKIE_NOTICE_KEY) === "1"; } catch (error) { return false; } }, setDismissed() { try { sessionStorage.setItem(COOKIE_NOTICE_KEY, "1"); } catch (error) {} }, showBanner() { const banner = document.querySelector(".js-cookie-consent"); if (banner) { banner.classList.remove("is-hidden"); banner.classList.add("is-visible"); this.updateHeightVar(); this.bindScroll(); } }, hideBanner() { const banner = document.querySelector(".js-cookie-consent"); if (banner) { banner.classList.remove("is-visible"); banner.classList.add("is-hidden"); this.unbindScroll(); this.updateHeightVar(); } }, updateHeightVar() { const banner = document.querySelector(".js-cookie-consent"); let height = 0; if (banner && !banner.classList.contains("is-hidden")) { const rect = banner.getBoundingClientRect(); height = Math.min( Math.max(rect.bottom, 0), banner.offsetHeight ); } document.documentElement.style.setProperty( "--p72-cookie-consent-height", `${height}px` ); }, onScroll() { if (!this._raf) { this._raf = window.requestAnimationFrame(() => { this._raf = null; this.updateHeightVar(); }); } }, bindScroll() { if (!this._scrollBound) { this._scrollBound = true; this._onScroll = this.onScroll.bind(this); window.addEventListener("scroll", this._onScroll, { passive: true, }); window.addEventListener("resize", this._onScroll, { passive: true, }); } }, unbindScroll() { if (this._scrollBound) { this._scrollBound = false; window.removeEventListener("scroll", this._onScroll); window.removeEventListener("resize", this._onScroll); } }, observeHeight() { const banner = document.querySelector(".js-cookie-consent"); if (!banner || typeof ResizeObserver === "undefined") return; new ResizeObserver(() => this.updateHeightVar()).observe(banner); }, handleClose() { this.setDismissed(); this.hideBanner(); }, init() { const banner = document.querySelector(".js-cookie-consent"); if (banner) { if (this.isDismissed()) { this.updateHeightVar(); } else { this.showBanner(); } this.observeHeight(); } else { document.documentElement.style.setProperty( "--p72-cookie-consent-height", "0px" ); } }, }; const CookieConsentTracking = { gaConfig: null, getGAConfig() { if (this.gaConfig !== null) { return this.gaConfig; } const cookieConsentEl = document.querySelector(".js-cookie-consent"); const gaConfigRaw = cookieConsentEl && (cookieConsentEl.dataset.p72GaConfig || cookieConsentEl.dataset.gaConfig); if (gaConfigRaw) { try { const config = JSON.parse(gaConfigRaw); this.gaConfig = Array.isArray(config) ? config.filter((item) => item.tracking_id && item.tag_type) : []; } catch (error) { console.warn("Cookie Consent: Invalid GA config", error); this.gaConfig = []; } } else { this.gaConfig = []; } return this.gaConfig; }, isDismissed() { try { return sessionStorage.getItem(COOKIE_NOTICE_KEY) === "1"; } catch (error) { return false; } }, setDismissed() { try { sessionStorage.setItem(COOKIE_NOTICE_KEY, "1"); } catch (error) { // Ignore sessionStorage errors } }, loadGTM(trackingId) , loadGtagAnalytics(configs) { if (configs.length === 0) { return; } window.dataLayer = window.dataLayer || []; function gtag() { window.dataLayer.push(arguments); } window.gtag = gtag; const primaryConfig = configs.find((item) => item.tag_type === "ga4") || configs[0]; const script = document.createElement("script"); script.async = true; script.src = `https://www.googletagmanager.com/gtag/js?id=${primaryConfig.tracking_id}`; document.head.appendChild(script); gtag("js", new Date()); configs.forEach((item) => { gtag("config", item.tracking_id); }); }, loadCustomScripts() { const template = document.querySelector("template.js-tracking-scripts"); if (!template) { return; } const clonedContent = template.content.cloneNode(true); clonedContent.querySelectorAll("script").forEach((script) => { const newScript = document.createElement("script"); for (const attr of script.attributes) { newScript.setAttribute(attr.name, attr.value); } if (script.textContent) { newScript.textContent = script.textContent; } script.parentNode.replaceChild(newScript, script); }); document.body.appendChild(clonedContent); }, loadTrackingPixels() { if (window.p72PixelsLoaded) { return; } window.p72PixelsLoaded = true; const gaConfig = this.getGAConfig(); const gtmConfigs = gaConfig.filter((item) => item.tag_type === "gtm"); const analyticsConfigs = gaConfig.filter( (item) => item.tag_type === "ga4" || item.tag_type === "ua" ); gtmConfigs.forEach((item) => { this.loadGTM(item.tracking_id); }); this.loadGtagAnalytics(analyticsConfigs); this.loadCustomScripts(); }, scheduleTrackingPixels() { if (window.p72PixelsScheduled) { return; } window.p72PixelsScheduled = true; window.setTimeout(() => { this.loadTrackingPixels(); }, 10000); }, updateHeightVar() { const cookieConsentEl = document.querySelector(".js-cookie-consent"); let height = 0; if (cookieConsentEl && !cookieConsentEl.classList.contains("is-hidden")) { const rect = cookieConsentEl.getBoundingClientRect(); height = Math.min(Math.max(rect.bottom, 0), cookieConsentEl.offsetHeight); } document.documentElement.style.setProperty( "--p72-cookie-consent-height", `${height}px` ); }, showBanner() { const cookieConsentEl = document.querySelector(".js-cookie-consent"); if (!cookieConsentEl) { return; } cookieConsentEl.classList.remove("is-hidden"); cookieConsentEl.classList.add("is-visible"); this.updateHeightVar(); this.bindScroll(); }, hideBanner() { const cookieConsentEl = document.querySelector(".js-cookie-consent"); if (!cookieConsentEl) { return; } cookieConsentEl.classList.remove("is-visible"); cookieConsentEl.classList.add("is-hidden"); this.unbindScroll(); this.updateHeightVar(); }, onScroll() { if (this._raf) { return; } this._raf = window.requestAnimationFrame(() => { this._raf = null; this.updateHeightVar(); }); }, bindScroll() { if (this._scrollBound) { return; } this._scrollBound = true; this._onScroll = this.onScroll.bind(this); window.addEventListener("scroll", this._onScroll, { passive: true }); window.addEventListener("resize", this._onScroll, { passive: true }); }, unbindScroll() { if (!this._scrollBound) { return; } this._scrollBound = false; window.removeEventListener("scroll", this._onScroll); window.removeEventListener("resize", this._onScroll); }, observeHeight() { const cookieConsentEl = document.querySelector(".js-cookie-consent"); if (!cookieConsentEl || typeof ResizeObserver === "undefined") { return; } new ResizeObserver(() => { this.updateHeightVar(); }).observe(cookieConsentEl); }, handleClose() { this.setDismissed(); this.hideBanner(); }, init() { const cookieConsentEl = document.querySelector(".js-cookie-consent"); if (cookieConsentEl) { this.scheduleTrackingPixels(); if (this.isDismissed()) { this.updateHeightVar(); } else { this.showBanner(); } this.observeHeight(); } else { document.documentElement.style.setProperty( "--p72-cookie-consent-height", "0px" ); } }, }; /* ========================================================================== Smooth anchor scrolling with header offset ========================================================================== */ function getAnchorTarget(hash) { if (!hash || hash === "#") return null; const id = hash.startsWith("#") ? hash.substring(1) : hash; let target = document.getElementById(id); if (!target) { try { target = document.querySelector(hash); } catch (error) { return null; } } return target; } function scrollToElementWithHeaderOffset(element) { const headerHeight = parseInt( getComputedStyle(document.documentElement) .getPropertyValue("--p72-header-height") ) || 0; const top = element.getBoundingClientRect().top + window.pageYOffset - headerHeight; window.scrollTo({ top, behavior: "smooth", }); } function initSmoothAnchorScrolling() { document.addEventListener("click", function (event) { const link = event.target.closest( 'a[href^="#"]:not([href="#"])' ); if (!link) return; const href = link.getAttribute("href"); const target = getAnchorTarget(href); if (target) { event.preventDefault(); scrollToElementWithHeaderOffset(target); if (history.pushState) { history.pushState(null, null, href); } } }); if (window.location.hash) { setTimeout(() => { const target = getAnchorTarget(window.location.hash); if (target) { scrollToElementWithHeaderOffset(target); } }, 100); } } /* ========================================================================== GSAP ScrollTrigger animations ========================================================================== */ function initGsapScrollAnimations() { if (typeof gsap === "undefined" || typeof ScrollTrigger === "undefined") { console.warn("GSAP or ScrollTrigger is not available."); return; } gsap.registerPlugin(ScrollTrigger); document.querySelectorAll(".js-gsap-trigger").forEach((trigger) => { /** * Fade in on scroll */ const fadeItems = trigger.querySelectorAll(".js-gsap-fade-in"); if (fadeItems.length > 0) { fadeItems.forEach((item, index) => { gsap.to(item, { opacity: 1, duration: 0.8, ease: "power1.in", scrollTrigger: item, delay: 0.1 * index, }); }); } /** * Scale in on scroll */ const scaleItems = trigger.querySelectorAll(".js-gsap-scale-in"); if (scaleItems.length > 0) { scaleItems.forEach((item, index) => { gsap.to(item, { scale: 1, opacity: 1, duration: 0.8, ease: "power1.in", scrollTrigger: item, delay: 0.1 * index, transformOrigin: "center center", }); }); } /** * Slide up on scroll */ const slideUpItems = trigger.querySelectorAll(".js-gsap-slide-in-up"); if (slideUpItems.length > 0) { slideUpItems.forEach((item, index) => { gsap.to(item, { opacity: 1, y: 0, duration: 0.8, ease: "power1.in", scrollTrigger: item, delay: 0.1 * index, }); }); } /** * Card entrance animation * * Note: * In the original bundle this is inside `.js-gsap-trigger`, * but it is not actually tied to ScrollTrigger. It runs immediately. */ const cards = trigger.querySelectorAll(".js-card-animate"); if (cards.length > 0) { console.log("Found cards to animate:", cards.length); gsap.set(cards, { opacity: 0, y: 12, filter: "blur(0.5px)", clearProps: "none", }); gsap.to(cards, { opacity: 1, y: 0, filter: "blur(0px)", duration: 0.3, ease: "power2.out", stagger: 0.03, delay: 0.05, }); } }); /** * Generic scroll class trigger */ gsap.utils.toArray(".u-scroll-animation").forEach((element) => { ScrollTrigger.create({ trigger: element, start: "top 90%", onEnter: () => { element.classList.add("u-scroll-animate"); }, }); }); } /* ========================================================================== Load-more card animation ========================================================================== */ function initLoadMoreScrollRelatedAnimation() { if (typeof jQuery === "undefined") { console.warn("jQuery is not available."); return; } if (typeof gsap === "undefined") { console.warn("GSAP is not available."); return; } const $ = jQuery; $(".js-button-load-more").on("click", () => { const hiddenItems = $(".js-filter-item.u-display--none").not(".ft-hidden"); const itemsToShow = hiddenItems.slice(0, 8); if (itemsToShow.length > 0) { const animatedCards = itemsToShow.find(".js-card-animate").get(); if (animatedCards.length > 0) { gsap.set(animatedCards, { opacity: 0, y: 12, filter: "blur(0.5px)", }); } itemsToShow.removeClass("u-display--none"); const filterContainer = $(".js-filter-container"); try { if (filterContainer.data("isotope")) { filterContainer.isotope("layout"); } } catch (error) {} if (animatedCards.length > 0) { gsap.to(animatedCards, { opacity: 1, y: 0, filter: "blur(0px)", duration: 0.4, ease: "power2.out", stagger: 0.04, }); } $(".js-button-load-more") .blur() .removeClass("active focus"); if (hiddenItems.length <= 8) { $(".js-button-load-more").hide(); } } }); } /* ========================================================================== Optional: Swiper timeline with horizontal scroll/drag behavior ========================================================================== */ /** * The bundle initializes a horizontal Swiper timeline. * * Requires Swiper and Navigation module. * * In the original minified code: * - fl = Swiper * - ml = Navigation module */ function initTimelineSwiper() { if (typeof Swiper === "undefined") { console.warn("Swiper is not available."); return; } // If using Swiper modules globally, adjust as needed. // Swiper.use([Navigation]); new Swiper(".js-timeline", { slidesPerView: 1, spaceBetween: "-10%", breakpoints: { 640: { slidesPerView: 2, }, 768: { slidesPerView: 3, }, 1024: { slidesPerView: 4, }, 1200: { slidesPerView: 5, }, }, direction: "horizontal", freeMode: true, navigation: { nextEl: ".swiper-button-next", prevEl: ".swiper-button-prev", }, }); } /* ========================================================================== Optional: Posts slider horizontal drag/scroll behavior ========================================================================== */ class PostsSlider { constructor() { this.sliders = document.querySelectorAll(".js-posts-slider"); this.swiperInstances = []; this.init(); } init() { if (!this.sliders.length) return; if (typeof Swiper === "undefined") { console.warn("Swiper is not available."); return; } // If using Swiper modules globally, adjust as needed. // Swiper.use([Navigation]); this.sliders.forEach((slider) => { const container = slider.querySelector(".js-posts-slider-container"); if (!container) return; const prevButton = slider.querySelector(".js-posts-slider-prev"); const nextButton = slider.querySelector(".js-posts-slider-next"); const swiper = new Swiper(container, { slidesPerView: "auto", spaceBetween: 0, grabCursor: true, watchSlidesProgress: true, wrapperClass: "js-posts-slider-wrapper", slideClass: "js-posts-slider-card", navigation: { nextEl: nextButton, prevEl: prevButton, }, on: { init: function () { if (prevButton) { prevButton.classList.add("swiper-button-disabled"); prevButton.setAttribute("disabled", "disabled"); } }, slideChange: function () { if (prevButton) { if (this.isBeginning) { prevButton.classList.add("swiper-button-disabled"); prevButton.setAttribute("disabled", "disabled"); } else { prevButton.classList.remove("swiper-button-disabled"); prevButton.removeAttribute("disabled"); } } if (nextButton) { if (this.isEnd) { nextButton.classList.add("swiper-button-disabled"); nextButton.setAttribute("disabled", "disabled"); } else { nextButton.classList.remove("swiper-button-disabled"); nextButton.removeAttribute("disabled"); } } }, }, }); this.swiperInstances.push(swiper); }); } } /* ========================================================================== Main initializer ========================================================================== */ function initExtractedScrollFunctionality() { cookieConsentScroll.init(); CookieConsentTracking.init(); initSmoothAnchorScrolling(); initGsapScrollAnimations(); initLoadMoreScrollRelatedAnimation(); initTimelineSwiper(); new PostsSlider(); } /* ========================================================================== DOM ready ========================================================================== */ document.addEventListener("DOMContentLoaded", () => { initExtractedScrollFunctionality(); });

Point72, L.P. and its affiliates and our third-party partners use cookies and similar technologies to view and retain your site interactions to perform analytics, enable site functionality and assist our marketing efforts exclusively for recruiting purposes. By continuing to use our site, you consent to these data practices, as described in our Privacy Policy.

  • About Us
  • Careers
  • Perspectives
Browse Open Roles
Menu
  • About Us
    • What We Do
    • Our Values
    • Leadership
    • Locations
  • Careers
    • Working Here
    • Students & Early-Career
    • Point72 Academy
    • Fundamental Equities
    • Cubist Systematic
    • Point72 LaunchPoint
    • Global Macro
    • Private Investments
    • Investment Services
    • Proprietary Research
  • Perspectives
Browse Open Roles
What We Do
Learn about the strategies and asset classes that make up our global business.
Our Values
See how we support our people, communities, and the planet through our ESG efforts.
Leadership
Meet the team responsible for shaping our firm.
Locations
Find us in financial hubs across the globe as we pursue the worlds best talent.

Working Here

Learn about the culture and community you can expect when you join us.
Define Your Path

Students & Early-Career

  • All Programs
  • Point72 Academy

Experienced Professionals

  • Fundamental Equities
  • Cubist Systematic
  • Point72 LaunchPoint
  • Global Macro
  • Private Investments
  • Investment Services
  • Proprietary Research
if (window.innerWidth > 768) { document.write(' /* rules */ <\/script>'); } /* rules */ !function(){"use strict";var r,n={},e={};function t(r){var o=e[r];if(void 0!==o)return o.exports;var u=e[r]={exports:{}};return n[r].call(u.exports,u,u.exports,t),u.exports}t.m=n,r=[],t.O=function(n,e,o,u){if(!e){var i=1/0;for(s=0;s
=u)&&Object.keys(t.O).every(function(r){return t.O[r](e[a])})?e.splice(a--,1):(f=!1,u0&&r[s-1][2]>u;s--)r[s]=r[s-1];r[s]=[e,o,u]},t.n=function(r){var n=r&&r.__esModule?function(){return r.default}:function(){return r};return t.d(n,{a:n}),n},t.d=function(r,n){for(var e in n)t.o(n,e)&&!t.o(r,e)&&Object.defineProperty(r,e,{enumerable:!0,get:n[e]})},t.o=function(r,n){return Object.prototype.hasOwnProperty.call(r,n)},function(){var r={666:0};t.O.j=function(n){return 0===r[n]};var n=function(n,e){var o,u,i=e[0],f=e[1],a=e[2],c=0;if(i.some(function(n){return 0!==r[n]})){for(o in f)t.o(f,o)&&(t.m[o]=f[o]);if(a)var s=a(t)}for(n&&n(e);c console.log("Custom tracking script loaded after consent tracking delay");

Software Engineer - Data & AI

Apply Now
Experience

Experienced Professionals

Location

Bengaluru, India

Focus

Software & System Engineering

Business

Point72

A CAREER WITH POINT72S PROPRIETARY RESEARCH

On our proprietary research teamMarket Intelligenceyoull partner with our Investment Professionals and Compliance team to uncover insights about companies, industries, and the broader economy through deep fundamental research and applying data science and engineering techniques to alternative data sets. Youll work alongside a talented team with diverse skills, backgrounds, and perspectives. Our industry researchers, product managers, and data scientists and engineers work together to build compliant research products that answer the questions our investment professionals care about most. We look for other bright, motivated, and collaborative people to join our team and grow with usmore than 90% of the leaders in our group were promoted from within.


What youll do

Software Engineer - Data & AI on the Proprietary Research team design and build Data & AI Platform to transform structured and unstructured data into actionable insights. As a member of our Data Engineering team, you will work closely with investment professionals, researchers, and data scientists to design, build, and launch robust end-to-end business solutions including data pipelines, products and tools that help extract the most value out of Point72s data assets. In this role, you will:

Design and build big data pipelines for ingestion, transformation, trend creation, and delivery of AI-ready data assets.

Develop reusable software components, libraries, and APIs to support experimentation and production deployment.

Implement data quality, lineage, and governance controls to ensure datasets are reliable, auditable, and compliant.

Build scalable, AI-native, cloud-based infrastructure using distributed systems and modern cloud technologies.

Optimize system performance, cost, and reliability through benchmarking and continuous improvement.

Explore emerging Data and AI technologies, run proof of concepts, and convert successful ideas into business deliverables.

Partner with investment, research, data science, and compliance teams to turn research needs into production-ready data products and analytics.

Provide hands-on technical leadership, influence architecture and team processes, and support development efforts across engineers and stakeholders.

Use AI as a core operating layer by deploying LLM-based tools and building agentic workflows for business impact.

Demonstrate strong project management, business intuition, collaboration, ethical standards, and a solution-oriented mindset in a fast-paced environment.


Whats required

5+ years of experience in Data Engineering, Software Engineering, or a related field.

2+ years of strong hands-on Python development experience.

Experience in system design and leading development efforts involving multiple contributors.

Strong knowledge of distributed data processing frameworks such as Spark.

Experience building scalable APIs, backend infrastructure, and software applications.

Hands-on experience with cloud platforms and services for data storage and compute, such as AWS, Google Cloud Platform, or Azure.

Experience with workflow orchestration technologies such as Airflow.

Exposure to LangGraph, LangChain, embedding models, vector databases, or graph databases is a plus.

Strong interest in staying current with AI advancements and applying emerging techniques to real-world use cases.

Demonstrates key values including integrity, ownership, commerciality, humility, adaptability, and the ability to elevate the team through strong work ethic and domain knowledge.

Commitment to the highest ethical standards


We take care of our people

We invest in our people, their careers, their health, and their well-being. When you work here, we provide:

Health care benefits

Maternity, Adoption & related leave policies

Generous paternity and family care leave policies

Employee Assistance Program & Mental wellness programs

Transportation support

Tuition assistance


About Point72

Point72 is a leading global alternative investment firm led by Steven A. Cohen. Building on more than 30 years of investing experience, Point72 seeks to deliver superior returns for its investors through fundamental and systematic investing strategies across asset classes and geographies. We aim to attract and retain the industrys brightest talent by cultivating an investor-led culture and committing to our peoples long-term growth. For more information, visit https://point72.com.



Apply Now

Job Application Checklist

  • Rsum
  • Education background
Apply Now

Still Exploring?

Browse Open Roles

P72 Careers - Footer
/* Main footer padding control */ @media (min-width: 1921px) { .c-menu-footer__graphic{ margin-bottom: -85px !important; } .c-footer{ padding-top:40px !important; } .c-footer__upper{ /*padding-top:100px;*/ } .c-menu-footer__menu{ padding-top:20px !important; } .c-footer__branding{ margin-bottom:0px !important; } .c-menu-footer__link{ line-height:1.3 !important; font-size:1.127rem !important; } .c-menu-footer__title{ line-height:1.4 !important; } } @media (max-width: 1920px) { .c-menu-footer__graphic{ margin-bottom: -65px !important; } .c-menu-footer__title{ line-height:1.4 !important; } .c-menu-footer__link{ line-height:1.3 !important; font-size:1.127rem !important; } .c-menu-footer__menu{ padding-top:20px; } .c-footer__branding{ margin-bottom:0px !important; } } .c-menu-footer__title{ color:#f5f4ee; } @media (max-width: 1024px) { .c-footer__graphic { display: none; } } @media (max-width: 768px) { .c-footer{ padding-top:25px; } .c-footer__upper{ margin-bottom:-20px; } .c-footer__branding{ margin-top:20px; } .c-menu-utility__menu-item { padding-top:3px; } } @media (min-width: 769px) { .c-menu-utility__menu-item { padding-top:0; } }

Point72

  • About Us
    • What We Do
    • Our Values
    • Leadership
    • Locations
  • Join Our Team
    • Working Here
    • Students & Early-Career
    • Asia-Pacific Offices
    • Warsaw Office
  • Career Paths
    • Fundamental Equities
    • Point72 Academy
    • Point72 LaunchPoint
    • Cubist Systematic
    • Global Macro
    • Point72 Private Investments
    • Proprietary Research
    • Investment Services
  • Resources
    • Perspectives
    • General Inquiries
    • Press Inquiries
    • Investor Login
  • 2026 Point72. All Rights Reserved
  • | Global Privacy Policy
  • | Terms of Use
  • | Disclosures
  • | Brand Misuse Fraudulent Schemes Notice
// Mixpanel ignore tracking for known IPs var excludeIPS = '[65.213.72.30, 185.142.16.9, 203.176.115.9, 208.68.197.6, 208.68.197.9, 208.68.199.6, 208.68.199.9, 208.85.160.9, 208.85.161.9]'; $.getJSON('//api.ipify.org?format=json', function(data) { try{ if(true && excludeIPS.indexOf(data.ip) > -1)else{ mixpanel.unregister("$ignore"); mixpanel.track("View Page", ); mixpanel.people.set_once({ 'First Career Page Visit' : new Date().toISOString() }); mixpanel.people.set({ 'Last Career Page Visit' : new Date().toISOString() }); // Only for Careers Site mixpanel.people.increment("# of Career Page Visits"); (function(){ var links = document.querySelectorAll('a'); [].forEach.call(links, function(link) ); })(); } }catch(e){} }); jQuery(document).ready(function(){ var str = navigator.userAgent; if (str.toLowerCase().indexOf("firefox") >= 0) { jQuery('body').addClass("gecko"); } }); CSJobDetailModule.init('{\"lastModifiedDateFormatted\":\"2026-10-23\",\"job\":,\"friendlyJobName\":\"software-engineer-data-and-ai\",\"formattedTeam\":\"Software & System Engineering\",\"formattedLocation\":\"Bengaluru, India\",\"formattedArea\":\"Technology & Engineering\"}');