{"version":3,"sources":["client_contexts.tsx","../../../util_ts/src/assert.ts","../../../util_ts/src/time.ts","clients/base_client.ts","clients/company_website_client.ts","config.ts","img/binder.jpg","Presentation.tsx","scroll_magic.tsx","flask.svg","scalable-system.svg","molecule.svg","use-of-artificial-intelligence-and-internet-technologies.svg","test.svg","science-research.svg","Technology.tsx","img/Pythia_black_text.svg","img/Pythia_black_picto_outer.svg","img/Pythia_black_picto_inner.svg","CanvasBg.tsx","Hero.tsx","img/bio/joshua.jpg","img/bio/julien.jpg","img/bio/matthias.jpg","img/bio/wesley.jpg","img/bio/katty.jpg","img/bio/mohamed.jpg","img/bio/thibault.jpg","img/bio/ramin.jpg","img/bio/lucas.jpg","img/bio/hadrien.jpg","img/bio/todd.jpg","img/bio/ray.jpg","img/bio/quin.jpg","img/bio/kyle.jpg","img/bio/tim.jpg","img/bio/mohit.jpg","img/bio/peter.jpg","img/bio/robin.jpg","People.tsx","navigation.tsx","Main.tsx","CareersForm.tsx","JobContainer.tsx","test-tube-cropped.jpg","Careers.tsx","routes.ts","Menu.tsx","use_breakpoints.ts","NewsletterForm.tsx","Footer.tsx","Container.tsx","contact.svg","Contact.tsx","App.tsx","reportWebVitals.ts","index.tsx"],"names":["CompanyWebsiteClientContext","React","createContext","assert","condition","message","messageStr","Function","Error","sleep","ms","abortController","Promise","resolve","handleAbort","id","setTimeout","undefined","signal","removeEventListener","clearTimeout","addEventListener","ForbiddenError","BaseError","ServiceUnavailableError","BaseClient","url","authorizer","path","controller","startsWith","this","fetch","mode","resp","name","console","error","status","json","body","method","options","retry","json_body","JSON","stringify","headers","resp_body","init","CompanyWebsiteClient","contactRequest","httpPost","application","newsletterSubscriptionRequest","APP_CONFIG","window","PYTHIA_ENV","Presentation","forwardRef","_","ref","className","style","position","d","stroke","strokeDasharray","fill","cx","cy","r","fontSize","src","binder","marginLeft","ScrollMagicControllerContext","ScrollMagicControllerProvider","children","useMemo","ScrollMagic","Controller","Provider","value","PlatformItem","icon","title","marginBottom","flex","display","alignItems","gap","width","height","verticalAlign","Technology","scalableAnimationRef","useRef","useEffect","current","setSpeed","textAlign","paddingTop","useOf","background","borderRadius","padding","maxWidth","scienceResearch","dataServer","scalableSystem","molecule","flask","CanvasBg","canvasRef","canvasAnimated","canvas","context","getContext","alpha","fillStyle","font","fillText","sprite","frame","lastFrame","totalFrames","textures","animation","TimelineMax","repeat","repeatDelay","yoyo","paused","onUpdate","drawImage","to","roundProps","ease","Linear","easeNone","numTextures","promises","i","index","push","loadTexture","baseURL","all","loadTextures","then","texture","naturalHeight","naturalWidth","innerHeight","innerWidth","classList","add","play","catch","reason","log","reject","img","Image","onload","onerror","Hero","onLogoTop","navigate","useNavigate","logoRef","initialHeight","observer","IntersectionObserver","e","intersectionRatio","rootMargin","threshold","observe","disconnect","pythiaBlackText","pythiaBlackPictoOuter","pythiaBlackPictoInner","href","target","minWidth","faArrowRight","size","onClick","faChevronDown","beat","MUGSHOT_DIM","MUGSHOT_PADDING","Person","mugshot","flexDirection","border","margin","objectFit","flexGrow","marginTop","People","flexWrap","columnGap","rowGap","bioJoshua","bioPeter","bioJulien","bioMohamed","bioHadrien","bioMatthias","bioThibault","bioRamin","bioLucas","bioWesley","bioKatty","bioQuin","bioKyle","bioTim","bioMohit","bioRobin","flexBasis","bioTodd","bioRay","NavigationContext","Main","location","useLocation","heroRef","createRef","presentationRef","technologyRef","peopleRef","setMiniNavbar","useContext","useState","suspend","setSuspend","state","disableScrolling","scrollTimeout","onScroll","pathname","scrollIntoView","positions","offsetTop","nextPathname","Object","entries","scrollY","top","CareersForm","job","client","enqueueSnackbar","useSnackbar","useForm","register","handleSubmit","formState","isSubmitting","errors","setValue","required","handleResumeChange","files","length","file","convertBase64","base64","submit","data","sendApplication","variant","autoHideDuration","marginRight","onSubmit","type","placeholder","faBriefcase","faUser","faEnvelope","email","faPhone","phone_number","accept","onChange","faFile","classNames","fileReader","FileReader","readAsDataURL","result","test","substring","indexOf","JobContainer","jobTitle","jobDescriptionShort","items","jobDetails","onApply","onToggleJobDetails","jobDetailsOpen","map","item","Careers","setJob","activeJobDetails","setActiveJobDetails","positionsRef","formRef","scrollTo","left","behavior","toggleActiveJobDetails","testTube","ROUTES","Menu","miniNavbar","navOpened","setNavOpened","setWidth","setHeight","handleWindowSizeChange","mobile","touchScreen","useBreakpoints","menuRef","clearAllBodyScrollLocks","disableBodyScroll","enableBodyScroll","zIndex","bottom","right","alt","opacity","transform","faXmark","faBars","mini","NewsletterForm","subscribeToNewsletter","Footer","color","faLinkedin","faSquareTwitter","getComputedStyle","document","getColor","cssVariable","getPropertyValue","trim","replace","MUI_THEME","createTheme","typography","fontFamily","join","palette","primary","main","warning","info","success","Container","ThemeProvider","theme","maxSnack","anchorOrigin","horizontal","vertical","minHeight","Contact","sendContactRequest","subject","contact","ROUTER","createBrowserRouter","element","basename","App","companyWebsiteClient","backend_url","router","reportWebVitals","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","createRoot","render"],"mappings":"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","file":"static/js/main.acd89a0c.chunk.js","sourcesContent":["import React from \"react\";\nimport { CompanyWebsiteClient } from \"./clients/company_website_client\";\n\nexport const CompanyWebsiteClientContext = React.createContext(\n null as unknown as CompanyWebsiteClient\n);\n","export function assert(\n condition: boolean,\n message?: string | (() => string)\n): asserts condition {\n if (!condition) {\n let messageStr: string;\n if (!message) {\n messageStr = \"assertion error\";\n } else if (message instanceof Function) {\n messageStr = `${message()}`; // Cast to string just in case\n } else {\n messageStr = `${message}`; // Cast to string just in case\n }\n throw new Error(messageStr);\n }\n}\n\nexport function unknownType(object: never): never {\n throw new Error(`unknown type ${object}`);\n}\n","import { assert } from \"./assert\";\n\nexport const sleep = async function (\n ms: number,\n abortController?: AbortController\n) {\n await new Promise((resolve) => {\n let handleAbort: () => void;\n const id = setTimeout(() => {\n if (abortController !== undefined) {\n assert(handleAbort !== undefined);\n abortController.signal.removeEventListener(\"abort\", handleAbort);\n }\n resolve();\n }, ms);\n if (abortController !== undefined) {\n handleAbort = () => {\n clearTimeout(id);\n resolve();\n };\n abortController.signal.addEventListener(\"abort\", handleAbort);\n }\n });\n};\n\nexport const sleepUntilVisible = async function (\n abortController?: AbortController\n) {\n if (document.hidden) {\n console.log(\"hidden\");\n await new Promise((resolve) => {\n const handleVisibilityChange = () => {\n console.log(\"handleVisibilityChange\");\n if (!document.hidden) {\n console.log(\"not hidden\");\n document.removeEventListener(\n \"visibilitychange\",\n handleVisibilityChange\n );\n resolve();\n }\n };\n document.addEventListener(\n \"visibilitychange\",\n handleVisibilityChange,\n false\n );\n if (abortController) {\n abortController.signal.addEventListener(\"abort\", () => {\n console.log(\"aborted here\");\n document.removeEventListener(\n \"visibilitychange\",\n handleVisibilityChange\n );\n resolve();\n });\n }\n });\n }\n};\n\nexport const POLL_LARGE_INTERVAL_MS = 10_000;\nexport const POLL_MEDIUM_INTERVAL_MS = 4_000;\nexport const POLL_DEFAULT_INTERVAL_MS = 1_000;\n\nexport const poll = (\n abortController: AbortController,\n func: () => Promise,\n intervalMs: number = POLL_DEFAULT_INTERVAL_MS\n) => {\n async function run() {\n try {\n while (!abortController.signal.aborted) {\n await func();\n await sleep(intervalMs, abortController);\n await sleepUntilVisible(abortController);\n console.log(\"again\");\n }\n } catch (err: any) {\n if (err.name !== \"AbortError\") {\n throw err;\n }\n console.log(\"aborted\");\n }\n }\n run();\n};\n","import { BaseError } from \"make-error\";\nimport { sleep } from \"@pythia/util_ts/src/time\";\nimport { assert } from \"@pythia/util_ts/src/assert\";\n\nexport class ForbiddenError extends BaseError {}\n\nexport class ServiceUnavailableError extends BaseError {}\n\nexport type Authorizer = (\n url: string | URL,\n init?: RequestInit\n) => Promise<[string | URL, RequestInit | undefined]>;\n\nexport class BaseClient {\n constructor(\n private readonly url: string,\n private readonly authorizer?: Authorizer\n ) {}\n\n protected async httpGet(\n path: string,\n controller?: AbortController\n ): Promise {\n assert(path.startsWith(\"/\"));\n // Loop to retry in case of transient connection errors\n let resp: any;\n while (true) {\n try {\n resp = await this.fetch(`${this.url}${path}`, {\n signal: controller?.signal,\n mode: \"cors\",\n });\n break;\n } catch (err: any) {\n if (err.name === \"AbortError\") {\n throw err;\n }\n console.error(err);\n await sleep(1_000, controller);\n }\n }\n if (resp.status === 403) {\n throw new ForbiddenError();\n }\n if (resp.status === 503) {\n throw new ServiceUnavailableError();\n }\n if (resp.status !== 200) {\n throw new Error(`unexpected status ${resp.status}`);\n }\n const body = await resp.json();\n return body;\n }\n\n protected async httpDelete(\n path: string,\n controller?: AbortController\n ): Promise {\n assert(path.startsWith(\"/\"));\n // Loop to retry in case of transient connection errors\n let resp: any;\n while (true) {\n try {\n resp = await this.fetch(`${this.url}${path}`, {\n method: \"DELETE\",\n signal: controller?.signal,\n mode: \"cors\",\n });\n break;\n } catch (err: any) {\n if (err.name === \"AbortError\") {\n throw err;\n }\n console.error(err);\n await sleep(1_000, controller);\n }\n }\n if (resp.status === 403) {\n throw new ForbiddenError();\n }\n if (resp.status === 503) {\n throw new ServiceUnavailableError();\n }\n if (resp.status !== 200) {\n throw new Error(`unexpected status ${resp.status}`);\n }\n const body = await resp.json();\n return body;\n }\n\n protected async httpPost(\n path: string,\n body: any,\n controller?: AbortController,\n options: {\n retry: boolean;\n } = { retry: false }\n ): Promise {\n assert(path.startsWith(\"/\"));\n const json_body = JSON.stringify(body);\n // Loop to retry in case of transient connection errors\n let resp: any;\n while (true) {\n try {\n resp = await this.fetch(`${this.url}${path}`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: json_body,\n signal: controller?.signal,\n mode: \"cors\",\n });\n break;\n } catch (err: any) {\n if (err.name === \"AbortError\" || !options.retry) {\n throw err;\n }\n console.error(err);\n await sleep(1_000, controller);\n }\n }\n if (resp.status === 403) {\n throw new ForbiddenError();\n }\n if (resp.status === 503) {\n throw new ServiceUnavailableError();\n }\n if (resp.status !== 200) {\n throw new Error(`unexpected status ${resp.status}`);\n }\n const resp_body = await resp.json();\n return resp_body;\n }\n\n private async fetch(\n url: string | URL,\n init?: RequestInit\n ): Promise {\n if (this.authorizer) {\n [url, init] = await this.authorizer(url, init);\n }\n return fetch(url, init);\n }\n}\n","import { BaseClient } from \"./base_client\";\n\nexport interface ContactRequest {\n name: string;\n email: string;\n subject: string;\n message: string;\n}\n\nexport interface Application {\n position_title: string;\n name: string;\n email: string;\n phone_number: string;\n resume: string;\n cover_letter: string;\n}\n\nexport interface NewsletterSubscriptionRequest {\n email: string;\n}\n\nexport class CompanyWebsiteClient extends BaseClient {\n async sendContactRequest(\n contactRequest: ContactRequest,\n abortController?: AbortController | undefined\n ): Promise {\n return this.httpPost(\"/contact_request\", contactRequest, abortController, {\n retry: true,\n });\n }\n\n async sendApplication(\n application: Application,\n abortController?: AbortController | undefined\n ): Promise {\n return this.httpPost(\"/application\", application, abortController, {\n retry: true,\n });\n }\n\n async subscribeToNewsletter(\n newsletterSubscriptionRequest: NewsletterSubscriptionRequest,\n abortController?: AbortController | undefined\n ): Promise {\n return this.httpPost(\n \"/newsletter\",\n newsletterSubscriptionRequest,\n abortController,\n {\n retry: true,\n }\n );\n }\n}\n","declare global {\n interface Window {\n PYTHIA_ENV: string;\n APP_CONFIG: {\n basename: string;\n backend_url: string;\n };\n }\n}\n\nexport const PYTHIA_ENV = window.PYTHIA_ENV;\nexport const APP_CONFIG = window.APP_CONFIG;\n","export default __webpack_public_path__ + \"static/media/binder.1e1e40d7.jpg\";","import React from \"react\";\nimport { useScrollMagicController } from \"./scroll_magic\";\nimport binder from \"./img/binder.jpg\";\nimport \"./Presentation.scss\";\n\nexport const Presentation = React.forwardRef((_, ref) => {\n return (\n
\n
\n

\n Our mission\n \n \n \n \n \n

\n

\n Pythia Labs develops advanced AI and computational biology\n technologies to accelerate the design of innovative therapeutics.\n

\n
\n
\n \n
\n
\n

\n \n \n \n \n \n Our vision\n

\n

\n We are unlocking a future where groundbreaking experiments are\n conducted on a computer, saving precious time in the lab.\n

\n
\n
\n );\n});\n","import React from \"react\";\n\nconst ScrollMagicControllerContext = React.createContext(null);\n\nexport const ScrollMagicControllerProvider = ({\n children,\n}: {\n children: React.ReactNode;\n}) => {\n const controller = React.useMemo(\n () => new (window as any).ScrollMagic.Controller(),\n []\n );\n return (\n \n {children}\n \n );\n};\n\nexport const useScrollMagicController = () => {\n const context = React.useContext(ScrollMagicControllerContext);\n\n React.useEffect(() => {\n return () => {\n context.destroy();\n };\n }, []);\n\n return context;\n};\n","export default __webpack_public_path__ + \"static/media/flask.68eebdba.svg\";","export default __webpack_public_path__ + \"static/media/scalable-system.31faa08d.svg\";","export default __webpack_public_path__ + \"static/media/molecule.d53a08b0.svg\";","export default __webpack_public_path__ + \"static/media/use-of-artificial-intelligence-and-internet-technologies.4a326df1.svg\";","export default __webpack_public_path__ + \"static/media/test.999f36b6.svg\";","export default __webpack_public_path__ + \"static/media/science-research.7ac29368.svg\";","import React from \"react\";\nimport LottiePlayer, { LottieRefCurrentProps, LottieRef } from \"lottie-react\";\nimport dbAnimation from \"./img/DB_animation.json\";\nimport platformAnimation from \"./img/platform_animation.json\";\nimport scalableAnimation from \"./img/scalable.json\";\nimport physicsAnimation from \"./img/physics_animation.json\";\nimport tubeAnimation from \"./img/tube_animation.json\";\nimport aiCore from \"./img/AI_core.png\";\nimport flask from \"./flask.svg\";\nimport scalableSystem from \"./scalable-system.svg\";\nimport molecule from \"./molecule.svg\";\nimport useOf from \"./use-of-artificial-intelligence-and-internet-technologies.svg\";\n// import dataServer from \"./data-server-branch-network.svg\";\nimport dataServer from \"./test.svg\";\nimport scienceResearch from \"./science-research.svg\";\nimport \"./Technology.scss\";\n\nconst PlatformItem: React.FC<{\n icon: string;\n title: string;\n children?: React.ReactNode;\n}> = ({ icon, title, children }) => {\n return (\n
\n
\n
\n
\n \n
\n \n
\n

\n {title}\n

\n
\n\n
{children}
\n
\n
\n \n );\n};\n\nexport const Technology = React.forwardRef((_, ref) => {\n const scalableAnimationRef = React.useRef();\n\n React.useEffect(() => {\n if (scalableAnimationRef.current) {\n scalableAnimationRef.current.setSpeed(0.5);\n }\n }, [scalableAnimationRef.current]);\n\n return (\n
\n \n Technology\n \n
\n
\n
\n \n
\n \n

Deep Learning at the core

\n

\n We harness the power of cutting-edge deep learning techniques and\n draw inspiration from diverse fields such as physics, quantum\n mechanics, and mathematics to develop innovative model\n architectures that are tailored for biological applications,\n enabling us to achieve unparalleled breakthroughs in biomolecular\n design.\n

\n
\n
\n \n
\n
\n \n

Data.assemble()

\n

\n Pythia's proprietary data pipeline processes massive amounts of\n biological data. It automatically assembles high-quality datasets\n providing the necessary foundation to train our models.\n

\n
\n
\n \n
\n \n
\n
\n
\n
\n \n
\n \n

A next-gen platform for next-gen AI

\n

\n We believe that a world-class infrastructure is essential to\n unleash the full potential of our AI models, which is why we are\n creating a next-gen platform to enhance their capabilities.\n

\n
\n \n
\n
\n
\n \n We designed a platform that can harness the power of thousands of\n GPUs concurrently, allowing our models to operate effortlessly at\n scale.\n \n \n The platform includes a range of safety measures and tools that\n guarantee the quality of our AI-generated outputs from a biophysical\n standpoint.\n \n \n The modular nature of our platform allows for a wide range of\n applications. As we continue to push the boundaries of AI and\n computational biology, we strive to solve problems beyond\n therapeutics and have a lasting impact on fields such as\n diagnostics, agriculture, energy and sustainability.\n \n
\n
\n \n );\n});\n","export default __webpack_public_path__ + \"static/media/Pythia_black_text.6e82763e.svg\";","export default __webpack_public_path__ + \"static/media/Pythia_black_picto_outer.13f4f549.svg\";","export default __webpack_public_path__ + \"static/media/Pythia_black_picto_inner.214783eb.svg\";","import { assert } from \"@pythia/util_ts/src/assert\";\nimport React from \"react\";\n// import \"./CanvasBg.scss\";\n\nexport const CanvasBg: React.FC<{}> = () => {\n const canvasRef = React.useRef(null);\n const canvasAnimated = React.useRef(false);\n\n React.useEffect(() => {\n if (canvasRef.current == null || canvasAnimated.current) {\n return;\n }\n\n const canvas = canvasRef.current;\n\n var baseURL = \"../img/binder-anim/\";\n\n const context = canvas.getContext(\"2d\", { alpha: false });\n assert(context != null);\n\n context.fillStyle = \"#fff\";\n context.font = \"24px Quicksand, Roboto, Tahoma, sans-serif\";\n context.fillText(\"Loading...\", 15, 40);\n const sprite = {\n frame: 0,\n lastFrame: -1,\n totalFrames: 13,\n textures: [],\n };\n\n var animation = new (window as any).TimelineMax({\n repeat: 0,\n repeatDelay: 1,\n yoyo: false,\n paused: true,\n onUpdate: drawSprite,\n }).to(sprite, 1, {\n frame: sprite.totalFrames - 1,\n roundProps: \"frame\",\n ease: (window as any).Linear.easeNone,\n });\n\n loadTextures(sprite.totalFrames)\n .then(resizeCanvas)\n .catch(function (reason) {\n console.log(reason);\n });\n\n function drawSprite() {\n // No changes\n if (sprite.frame === sprite.lastFrame) {\n return;\n }\n\n assert(context != null);\n context.drawImage(sprite.textures[sprite.frame], 0, 0);\n sprite.lastFrame = sprite.frame;\n }\n\n function resizeCanvas(textures: any) {\n var texture = textures[0];\n sprite.textures = textures;\n\n const height = texture.naturalHeight || texture.height;\n const width = texture.naturalWidth || texture.width;\n const innerHeight = window.innerHeight > 600 ? window.innerHeight : 600;\n if (innerHeight / window.innerWidth < height / width) {\n canvas.width = width;\n canvas.height = (innerHeight / window.innerWidth) * width;\n } else {\n canvas.width = (window.innerWidth / innerHeight) * height;\n canvas.height = height;\n }\n canvas.classList.add(\"is-loaded\");\n canvas.classList.add(\"active\");\n canvas.classList.add(\"stop\");\n\n // We're ready to go!\n animation.play();\n }\n\n function loadTextures(numTextures: number) {\n var promises = [];\n\n for (var i = 0; i < numTextures; i++) {\n var index = i < 10 ? \"0\" + i : i;\n\n // loadTexture returns a promise. It resolves when image is loaded\n promises.push(loadTexture(baseURL + \"binder-anim\" + index + \".jpg\"));\n }\n\n // Resolves when all the promises are resolved\n return Promise.all(promises);\n }\n\n function loadTexture(path: string) {\n return new Promise(function (resolve, reject) {\n var img = new Image();\n\n img.onload = function () {\n resolve(img);\n };\n\n img.onerror = function () {\n reject(\"Error loading \" + path);\n };\n\n img.src = path;\n });\n }\n\n canvasAnimated.current = true;\n }, [canvasRef.current]);\n\n return ;\n};\n","import { faChevronDown, faArrowRight } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport pythiaBlackText from \"./img/Pythia_black_text.svg\";\nimport pythiaBlackPictoOuter from \"./img/Pythia_black_picto_outer.svg\";\nimport pythiaBlackPictoInner from \"./img/Pythia_black_picto_inner.svg\";\nimport scrollDown from \"./img/scroll-down.json\";\nimport { CanvasBg } from \"./CanvasBg\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport React from \"react\";\nimport \"./Hero.scss\";\n\nexport const Hero = React.forwardRef<\n HTMLDivElement,\n { onLogoTop?: (top: boolean) => void }\n>(({ onLogoTop }, ref) => {\n const navigate = useNavigate();\n const logoRef = React.useRef(null);\n // We do not do dynamic updates, and that's on purpose\n // See https://nicolas-hoizey.com/articles/2015/02/18/viewport-height-is-taller-than-the-visible-part-of-the-document-in-some-mobile-browsers/#february-23rd-update\n // for the quirks of viewports on mobile.\n const initialHeight = React.useMemo(() => window.innerHeight, []);\n\n React.useEffect(() => {\n if (logoRef?.current == null) return;\n const observer = new IntersectionObserver(\n (e) => {\n onLogoTop?.(e[0].intersectionRatio < 1);\n },\n {\n rootMargin: \"-1px 0px 0px 0px\",\n threshold: [1],\n }\n );\n\n observer.observe(logoRef.current);\n\n return () => {\n observer.disconnect();\n };\n }, [logoRef]);\n\n return (\n \n \n
\n
\n
\n \n
\n
\n
\n \n
\n
\n \n
\n
\n

Generating the Molecules of Tomorrow

\n \n DEMO\n \n \n \n \n
\n
\n
\n navigate(\"/presentation\")}\n className=\"button is-white hero-button\"\n >\n \n \n
\n \n );\n});\n","export default __webpack_public_path__ + \"static/media/joshua.deb45c6a.jpg\";","export default __webpack_public_path__ + \"static/media/julien.1d19e976.jpg\";","export default __webpack_public_path__ + \"static/media/matthias.27266080.jpg\";","export default __webpack_public_path__ + \"static/media/wesley.a7964e8a.jpg\";","export default __webpack_public_path__ + \"static/media/katty.a7753071.jpg\";","export default __webpack_public_path__ + \"static/media/mohamed.bb8c56c9.jpg\";","export default __webpack_public_path__ + \"static/media/thibault.7b76af4d.jpg\";","export default __webpack_public_path__ + \"static/media/ramin.408220dc.jpg\";","export default __webpack_public_path__ + \"static/media/lucas.3f8b124d.jpg\";","export default __webpack_public_path__ + \"static/media/hadrien.85e1f4a1.jpg\";","export default __webpack_public_path__ + \"static/media/todd.100ae233.jpg\";","export default __webpack_public_path__ + \"static/media/ray.29d5a3eb.jpg\";","export default __webpack_public_path__ + \"static/media/quin.12f1dde9.jpg\";","export default __webpack_public_path__ + \"static/media/kyle.f323e907.jpg\";","export default __webpack_public_path__ + \"static/media/tim.4b21f735.jpg\";","export default __webpack_public_path__ + \"static/media/mohit.7ed8b3a1.jpg\";","export default __webpack_public_path__ + \"static/media/peter.2fc9907a.jpg\";","export default __webpack_public_path__ + \"static/media/robin.2d9cf734.jpg\";","import bioJoshua from \"./img/bio/joshua.jpg\";\nimport bioJulien from \"./img/bio/julien.jpg\";\nimport bioMatthias from \"./img/bio/matthias.jpg\";\nimport bioWesley from \"./img/bio/wesley.jpg\";\nimport bioKatty from \"./img/bio/katty.jpg\";\nimport bioMohamed from \"./img/bio/mohamed.jpg\";\nimport bioThibault from \"./img/bio/thibault.jpg\";\nimport bioRamin from \"./img/bio/ramin.jpg\";\nimport bioLucas from \"./img/bio/lucas.jpg\";\nimport bioHadrien from \"./img/bio/hadrien.jpg\";\nimport bioTodd from \"./img/bio/todd.jpg\";\nimport bioRay from \"./img/bio/ray.jpg\";\nimport bioQuin from \"./img/bio/quin.jpg\";\nimport bioKyle from \"./img/bio/kyle.jpg\";\nimport bioTim from \"./img/bio/tim.jpg\";\nimport bioMohit from \"./img/bio/mohit.jpg\";\nimport bioPeter from \"./img/bio/peter.jpg\";\nimport bioRobin from \"./img/bio/robin.jpg\";\nimport React from \"react\";\nimport \"./People.scss\";\n\nconst MUGSHOT_DIM = \"90px\";\nconst MUGSHOT_PADDING = \"3px\";\n\nconst Person: React.FC<{\n mugshot: string;\n name: string;\n title: React.ReactNode;\n children?: React.ReactNode;\n}> = ({ mugshot, name, title, children }) => {\n return (\n
\n \n \n \n
\n
\n

{name}

\n

{title}

\n
\n \n \n {children}\n \n \n );\n};\n\nexport const People = React.forwardRef((_, ref) => {\n return (\n
\n \n Meet our scientists\n \n
\n \n \n Joshua holds a Ph.D. in Molecular Biology from UCLA. During his time\n at UCLA he directed his attention to the computational design and\n experimental characterization of protein nanomaterials.\n \n\n \n Peter comes with 20+ years of leadership in the discovery of\n biotherapeutics. He has provided oversight for therapeutic programs\n yielding 11 approved and clinical stage antibodies including\n Imsidolimab, Dostarlimab, Cobolimab, Etokimab, Encelimab, and\n Rosnilimab. He is the author of over 40 papers and patents in the\n field of protein engineering and antibody discovery.\n \n\n \n Julien holds a Ph.D. in Computational Biology and Bioinformatics\n from Montpellier University. He further specialized as a\n postdoctoral researcher at UCLA where he developed strategies for\n predicting and designing protein assemblies and tackled theoretical\n problems in structural biology.\n \n\n \n Mohamed has a double M.S. in Management Science and Engineering from\n Columbia University and in General Engineering from ENSAM ParisTech.\n His research interests include advanced Deep Learning, Analytical\n Modeling and Business Intelligence.\n \n\n \n Hadrien holds a M.S. in Systems Biology from Imperial College London\n and a M.S. in Mathematics from Ecole Centrale Paris. Previously, he\n built clinical trial and genomic platforms for various\n pharmaceutical companies and worked on NLP and expert system\n products.\n \n\n \n Matthias holds a M.S. in Systems Biology from Imperial College\n London. He works at the intersection of the research teams and\n engineering team. He develops tools to address the researchers'\n needs and incorporates their technology, algorithms, and models into\n Pythia's product.\n \n\n \n Thibault holds a M.S. in Operations Research from Columbia\n University and a M.S. in Mathematical Statistics from ENSAE. His\n research interests include advanced Mathematics and their\n application to Deep Learning.\n \n\n \n Ramin holds a Ph.D. in Computational Chemistry from University of\n Michigan. During his Ph.D. studies, he focused on applying\n computational chemistry and Deep Learning techniques for various\n molecular property prediction projects.\n \n\n \n Lucas holds a M.S. in Mathematical Statistics from ENSAE Paris and a\n M.S. in Machine Learning from ENS Paris-Saclay. His interests\n include Natural Language Processing, Generative Modeling and\n Computational Statistics.\n \n\n \n Wesley holds a Ph.D. in Chemistry from University of California\n Irvine. His postdoctoral work at the Western University of Health\n Sciences in Pomona included a number of modeling, simulation, and\n computational structural biology projects.\n \n\n \n Katty holds a B.S. in Bioengineering from Binghamton University.\n Previously, she developed large-scale backend systems at Spotify and\n conducted Computational Biology research at Cold Spring Harbor\n Laboratory. She currently engineers tools that enhance efficiency\n for Pythia's AI and Computational Biology teams.\n \n\n \n Quin holds a B.S. in Computer Engineering from the University of\n Virginia. He works to ensure that the researchers' cutting edge\n algorithms and models are seamlessly integrated into Pythia's\n product.\n \n\n \n Kyle earned his Ph.D. in Biochemistry at the University of\n California Los Angeles, applying protein design to create new\n nanomaterials including protein cages and scaffolds for high\n resolution election microscopy.\n \n\n \n Tim holds a Ph.D. in Mathematics from ETH Zürich. He was a\n postdoctoral scholar at Caltech where he worked on the theory and\n applications of Geometric Deep Learning and Representation Learning\n on graphs and manifolds.\n \n\n \n Mohit holds a Ph.D. in Computer Science from the University of\n Massachusetts Amherst. His research concentrates on the fundamentals\n of Machine Learning and its various applications, with a focus on\n enhancing computational efficiency. His expertise spans Gaussian\n processes, Deep Learning, and NLP.\n \n\n \n Robin holds a Ph.D. in Chemistry and Chemical Biology from the\n University of California San Francisco and completed an industry\n postdoc at Genentech, establishing broad expertise in protein\n structure and function. Since then, she has focused on antibody\n discovery, engineering, and lead candidate development at\n early-stage startups.\n \n\n
\n
\n\n \n Our Scientific Advisory Board\n \n
\n \n Todd Yeates, Ph.D., is currently a Distinguished Professor at UCLA\n in the Department of Chemistry and Biochemistry, and the Director of\n the Institute for Genomics and Proteomics.\n
\n
\n Todd earned his Ph.D. at UCLA working on the atomic structures of\n early transmembrane proteins, and then did postdoctoral training on\n virus structure at The Scripps Research Institute. His research\n spans computational biology, structural biology, and protein design.\n
\n
\n His equations for analyzing complex diffraction data are widely used\n in modern crystallographic methods. In the area of cryo-electron\n microscopy, his laboratory has developed a general solution to the\n problem of imaging small proteins using designed binding scaffolds.\n
\n
\n In 2001, his laboratory pioneered principles and methods for\n designing novel protein cages, creating the first such molecular\n assemblies. Designed protein cages are emerging as powerful\n platforms for diverse applications in biotechnology, from vaccine\n design to T-cell therapeutics.\n
\n
\n Dr. Yeates has authored over 200 peer-reviewed articles.\n \n \n Raymond Schinazi, Ph.D., Hon DSc, FAASLD, is the Frances Winship\n Walters Professor of Pediatrics and Director of the Laboratory of\n Biochemical Pharmacology at Emory University (which he joined in\n 1978).\n
\n
\n Raymond holds a Ph.D. in Chemistry from the University of Bath,\n England. A world leader in nucleoside chemistry, he is best known\n for his pioneering work on HIV, HBV and HCV drugs including FTC\n (emtricitabine), LdT (telbivudine), and sofosbuvir (Sovaldi). In the\n U.S.A., more than 94% of HIV-infected individuals on combination\n therapy take at least one of the drugs he invented. He is also the\n inventor of the use of baricitinib, a JAK inhibitor, for the\n treatment of COVID-19 patients.\n
\n
\n Dr. Schinazi has authored over 600 peer-reviewed articles and 7\n books. He holds over 100 issued US patents, which have resulted in\n 28 New Drug Applications (NDA).\n
\n
\n Dr. Schinazi is a Charter Fellow of the National Academy of\n Inventors. He is the recipient of numerous awards, including: 2018\n France's highest civilian honor, the Légion D'honneur, for saving\n millions of lives globally. In 2020, he became Fellow of the\n American Association for the Advancement of Science (AAAS), and in\n 2021, he received the AASLD Distinguished Achievement Award.\n \n
\n \n \n );\n});\n","import React from \"react\";\n\nexport const NavigationContext = React.createContext<{\n miniNavbar: boolean;\n setMiniNavbar: (mini: boolean) => void;\n // setActive: (pathname: string | null) => void;\n // active: string | null;\n}>(null as any);\n","import React from \"react\";\nimport { Presentation } from \"./Presentation\";\nimport { ScrollMagicControllerProvider } from \"./scroll_magic\";\nimport { Technology } from \"./Technology\";\nimport { useLocation, useNavigate } from \"react-router\";\nimport { Hero } from \"./Hero\";\nimport { People } from \"./People\";\nimport { Footer } from \"./Footer\";\nimport { NavigationContext } from \"./navigation\";\n\nexport const Main: React.FC<{}> = () => {\n const location = useLocation();\n const navigate = useNavigate();\n const heroRef = React.createRef();\n const presentationRef = React.createRef();\n const technologyRef = React.createRef();\n const peopleRef = React.createRef();\n const { setMiniNavbar } = React.useContext(NavigationContext);\n const [suspend, setSuspend] = React.useState(false);\n\n React.useEffect(() => {\n console.log(\"SUSPEND\", suspend);\n if (suspend || location.state?.disableScrolling) {\n return;\n }\n\n // Wait until we are finished scrolling\n let scrollTimeout = setTimeout(function () {\n console.log(\"HERE\");\n window.removeEventListener(\"scroll\", onScroll);\n setSuspend(false);\n }, 100);\n setSuspend(true);\n const onScroll = () => {\n clearTimeout(scrollTimeout);\n scrollTimeout = setTimeout(function () {\n console.log(\"HERE\");\n window.removeEventListener(\"scroll\", onScroll);\n setSuspend(false);\n }, 100);\n };\n window.addEventListener(\"scroll\", onScroll);\n console.log(\"SCROLL TO\", location.pathname);\n\n switch (location.pathname) {\n case \"/presentation\":\n presentationRef.current?.scrollIntoView();\n // setActive(\"/presentation\");\n break;\n\n case \"/technology\":\n technologyRef.current?.scrollIntoView();\n // setActive(\"/technology\");\n break;\n\n case \"/team\":\n console.log(\"SCROLL TO TEAM\", peopleRef.current);\n peopleRef.current?.scrollIntoView();\n // setActive(\"/team\");\n break;\n\n case \"/\":\n heroRef.current?.scrollIntoView();\n // setActive(null);\n break;\n }\n\n return () => {\n // window.removeEventListener('scroll', onScroll);\n };\n }, [location.pathname]);\n\n React.useEffect(() => {\n if (technologyRef.current == null) return;\n if (presentationRef.current == null) return;\n if (peopleRef.current == null) return;\n\n const observer = new IntersectionObserver(\n () => {\n if (suspend) return;\n const positions = {\n \"/presentation\": presentationRef.current?.offsetTop,\n \"/technology\": technologyRef.current?.offsetTop,\n \"/team\": peopleRef.current?.offsetTop,\n };\n let nextPathname = \"/\";\n for (const [pathname, offsetTop] of Object.entries(positions)) {\n // console.log(pathname, offsetTop, window.scrollY);\n if (offsetTop != null && offsetTop - 100 < window.scrollY) {\n nextPathname = pathname;\n }\n }\n if (nextPathname !== location.pathname) {\n navigate(nextPathname, { state: { disableScrolling: true } });\n // console.log(\"Navigate\", nextPathname);\n // window.history.replaceState(null, document.title, nextPathname);\n // setActive(nextPathname);\n }\n },\n {\n rootMargin: \"-100px\",\n threshold: [0, 0.25, 0.5, 0.95, 1],\n }\n );\n\n observer.observe(presentationRef.current);\n observer.observe(technologyRef.current);\n observer.observe(peopleRef.current);\n\n return () => {\n // console.log(\"DISC\", location);\n observer.disconnect();\n };\n }, [suspend, location, technologyRef, presentationRef, peopleRef]);\n\n return (\n \n setMiniNavbar(top)} />\n \n \n \n \n );\n};\n","import { assert } from \"@pythia/util_ts/src/assert\";\nimport classNames from \"classnames\";\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { useSnackbar } from \"notistack\";\nimport {\n faBriefcase,\n faUser,\n faEnvelope,\n faPhone,\n faFile,\n} from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { CompanyWebsiteClientContext } from \"./client_contexts\";\n\ninterface FormValues {\n position_title: string;\n name: string;\n email: string;\n phone_number: string;\n resume: string;\n cover_letter: string;\n}\n\nexport const CareersForm = React.forwardRef(\n ({ job }, ref) => {\n const client = React.useContext(CompanyWebsiteClientContext);\n const { enqueueSnackbar } = useSnackbar();\n const {\n register,\n handleSubmit,\n formState: { isSubmitting, errors },\n setValue,\n } = useForm();\n\n React.useEffect(() => {\n setValue(\"position_title\", job);\n }, [job]);\n\n React.useEffect(() => {\n register(\"resume\", { required: true });\n }, [register]);\n\n const handleResumeChange = async (files: FileList | null) => {\n assert(files != null && files.length === 1);\n const file = files[0];\n\n const base64 = await convertBase64(file);\n setValue(\"resume\", base64);\n };\n\n const submit = handleSubmit(async (data) => {\n try {\n await client.sendApplication(data);\n } catch (err: any) {\n enqueueSnackbar(\n \"Could not send application. Please try again later or send an email directly to contact@pythialabs.com\",\n { variant: \"error\", autoHideDuration: 5000 }\n );\n return;\n }\n enqueueSnackbar(\n \"Application successfully sent! We will get back to you as soon as possible.\",\n { variant: \"success\", autoHideDuration: 5000 }\n );\n });\n\n return (\n
\n \n Send an Application\n \n \n
\n \n
\n \n \n \n \n
\n
\n
\n \n
\n \n \n \n \n
\n

{errors.name?.message}

\n
\n
\n \n
\n \n \n \n \n
\n

{errors.email?.message}

\n
\n
\n \n
\n \n \n \n \n
\n

{errors.phone_number?.message}

\n
\n
\n \n
\n handleResumeChange(e.target.files)}\n />\n \n \n \n
\n
\n
\n \n
\n \n
\n
\n
\n
\n \n Submit Application\n \n
\n
\n \n
\n );\n }\n);\n\nasync function convertBase64(file: File): Promise {\n return new Promise((resolve, reject) => {\n const fileReader = new FileReader();\n fileReader.readAsDataURL(file);\n fileReader.onload = () => {\n assert(typeof fileReader.result === \"string\");\n assert(/^data:[^;]+;base64,/.test(fileReader.result));\n resolve(fileReader.result.substring(fileReader.result.indexOf(\",\") + 1));\n };\n fileReader.onerror = (error) => {\n reject(error);\n };\n });\n}\n","import classNames from \"classnames\";\n\nexport const JobContainer: React.FC<{\n jobTitle: string;\n jobDescriptionShort: React.ReactNode;\n items: React.ReactNode[];\n jobDetails: React.ReactNode;\n onToggleJobDetails: () => void;\n jobDetailsOpen: boolean;\n onApply: (jobTitle: string) => void;\n}> = ({\n jobTitle,\n jobDescriptionShort,\n items,\n jobDetails,\n onApply,\n onToggleJobDetails,\n jobDetailsOpen,\n}) => {\n return (\n \n \n

{jobTitle}

\n
{jobDescriptionShort}
\n
\n {items.map((item, index) => (\n
  • \n {item}\n
  • \n ))}\n
    \n
    \n onApply(jobTitle)}\n className=\"button is-primary is-rounded\"\n >\n Apply\n \n onToggleJobDetails()}\n className=\"button is-dark is-outlined is-rounded\"\n >\n {!jobDetailsOpen ? \"View Details\" : \"Hide Details\"}\n \n
    \n \n {jobDetails}\n \n \n \n );\n};\n","export default __webpack_public_path__ + \"static/media/test-tube-cropped.c33cbf68.jpg\";","import React from \"react\";\nimport { faChevronDown } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { CareersForm } from \"./CareersForm\";\nimport { JobContainer } from \"./JobContainer\";\nimport testTube from \"./test-tube-cropped.jpg\";\nimport \"./Careers.scss\";\n\nexport const Careers: React.FC<{}> = () => {\n const [job, setJob] = React.useState(\"\");\n const [activeJobDetails, setActiveJobDetails] =\n React.useState(null);\n const positionsRef = React.createRef();\n const formRef = React.createRef();\n\n React.useEffect(() => {\n window.scrollTo({\n left: 0,\n top: 0,\n behavior: \"instant\" as any,\n });\n }, []);\n\n const scroll = () => {\n if (positionsRef.current) {\n positionsRef.current.scrollIntoView({ behavior: \"smooth\" });\n }\n };\n\n const onApply = (jobTitle: string) => {\n setJob(jobTitle);\n if (formRef.current) {\n formRef.current.scrollIntoView({ behavior: \"smooth\" });\n }\n };\n\n const toggleActiveJobDetails = (name: string) => {\n if (activeJobDetails === name) {\n setActiveJobDetails(null);\n } else {\n setActiveJobDetails(name);\n }\n };\n\n return (\n <>\n
    \n
    \n
    \n \n

    \n JOIN US TO SHAPE THE MOLECULES OF TOMORROW\n

    \n

    \n As we enter the golden age of AI in biology, our mission is to\n accelerate the discovery and engineering of next-generation\n therapeutics. Come help us redefine and shape the future of\n biomolecules!\n

    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n \n Available Positions\n \n \n Join our Product & Engineering team where you will be using your\n expertise to turn research into production-ready code.\n \n }\n items={[\n \"+3 years of experience\",\n \"Data pipelines\",\n \"Bioinformatics tools\",\n \"MLOps\",\n \"Cloud Computing\",\n \"Python\",\n \"US-authorized\",\n ]}\n jobDetails={\n <>\n

    Your impact

    \n

    \n You will be part of our team of Research Scientists and\n Engineers and will be using your technical expertise to\n design, build, test, optimize, and maintain the pipelines that\n integrate our cutting-edge bioinformatics tools and feed our\n deep learning models.\n

    \n

    What you will do

    \n

    \n

      \n
    • \n Use our data platform to develop, maintain and test\n complex data pipelines that process terabytes of data\n
    • \n
    • \n Collaborate closely with the Computational Biology team to\n turn research into production-ready code\n
    • \n
    • \n Implement and optimize algorithms efficiently, scale them,\n and integrate them into larger systems\n
    • \n
    • \n Identify bottlenecks and performance issues in existing\n pipelines and propose and implement solutions for\n optimization\n
    • \n
    • \n Ensure that the data we use is well-structured, versioned,\n reliable, and discoverable\n
    • \n
    \n

    \n

    Who we are looking for

    \n\n

    Essential Qualifications

    \n\n

    \n

      \n
    • \n MSc with at least 3 years of professional experience in\n Software Engineering, Computer Science, Bioinformatics, or\n Computational Biology (but do not hesitate to apply if you\n think you're the right fit)\n
    • \n
    • \n Demonstrated ability to build robust applications capable\n of handling complex, large volumes of data\n
    • \n
    • \n Experience with Amazon Web Services (AWS) or Google Cloud\n Platform (GCP)\n
    • \n
    • \n Proficiency in Python and data analysis tools such as\n Numpy, Pandas and Jupyter notebooks\n
    • \n
    • \n Experience with containerization solutions such as Docker\n
    • \n
    • \n Experience with workflow orchestration systems such as\n Argo Workflow, Kubeflow, Snakemake, Airflow, Prefect, or\n Dagster\n
    • \n
    • \n Effective written and oral communication skills and the\n ability to present to technical and non-technical\n audiences\n
    • \n
    • Must be authorized to work in the U.S.
    • \n
    \n

    \n\n

    Nice to have

    \n\n

    \n

      \n
    • \n Experience with bioinformatics tools such as MMseqs,\n FoldSEEK, AlphaFold, ESMFold\n
    • \n
    • \n Experience with computational biology libraries such as\n BioPython\n
    • \n
    • \n Experience with scientific computing libraries such as\n SciPy and scikit-learn\n
    • \n
    • \n Experience with machine learning frameworks such as\n PyTorch or Tensorflow\n
    • \n
    • Experience with GPU-based code optimization
    • \n
    \n

    \n\n

    Personal

    \n

    \n

      \n
    • \n Team player, willingness to collaborate and communicate\n with other team members\n
    • \n
    • \n Passionate, highly self-motivated and able to operate with\n significant autonomy\n
    • \n
    • Healthy skepticism and detail-oriented
    • \n
    • \n You define yourself as a generalist problem solver, not by\n the technologies that you know\n
    • \n
    • Willingness to keep updated on new technologies
    • \n
    • An urge to automate everything 🙂
    • \n
    \n

    \n\n

    A few reasons to join us

    \n

    \n

      \n
    • \n Innovate at the frontier of Computational Biology and AI\n
    • \n
    • \n Solve important scientific problems for the benefit of\n humanity\n
    • \n
    • \n Develop impactful technology that has real-world\n applications\n
    • \n
    • Be part of an exceptional interdisciplinary team
    • \n
    • World Renowned Scientific Advisory Board
    • \n
    • Opportunity for growth
    • \n
    • Hybrid (home/office) work is encouraged
    • \n
    • Work/life balance
    • \n
    • \n Attractive location close to a lot of amenities and\n restaurants in the heart of Culver City\n
    • \n
    • Diverse and international team
    • \n
    • \n Hybrid High Performance Computing infrastructure on AWS\n and on premises, with state-of-the-art GPU servers,\n terabytes of data and a trove of interesting engineering\n challenges to tackle\n
    • \n
    \n

    \n

    \n

    Strong compensation package

    \n
      \n
    • A competitive base salary (D.O.E)
    • \n
    • Excellent medical, dental and health benefits
    • \n
    • Excellent 401K retirement plan
    • \n
    \n

    \n \n }\n onToggleJobDetails={() => toggleActiveJobDetails(\"dataeng\")}\n jobDetailsOpen={activeJobDetails === \"dataeng\"}\n onApply={onApply}\n />\n \n Join our Product & Engineering team where you will be using your\n expertise to develop our advanced data platform and cutting-edge\n software suite.\n \n }\n items={[\n \"+3 years of experience\",\n \"Backend Development\",\n \"DevOps\",\n \"MLOps\",\n \"Cloud Computing\",\n \"Python\",\n \"US-authorized\",\n ]}\n jobDetails={\n <>\n

    Your impact

    \n

    \n You will be part of our team of Research Scientists and\n Engineers and will be using your technical expertise to\n develop our advanced data platform and cutting-edge software\n suite that have far reaching applications in Biotechnology.\n

    \n

    What you will do

    \n

    \n

      \n
    • \n Build an advanced platform to facilitate state-of-the-art\n AI research in biology by automating an entire data\n curation pipeline, optimizing distributed model training,\n and developing cost-effective inference capabilities\n
    • \n
    • \n Collaborate with experts in Deep Learning, Computational\n Biology and Software Engineering to build products aimed\n at reducing the time and cost required to develop novel\n therapeutics\n
    • \n
    \n

    \n

    Who we are looking for

    \n\n

    Essential Qualifications

    \n\n

    \n

      \n
    • \n MSc with at least 3 years of professional experience in\n Software Engineering (but do not hesitate to apply if you\n think you're the right fit)\n
    • \n
    • \n Experience with Amazon Web Services (AWS) or Google Cloud\n Platform (GCP)\n
    • \n
    • \n Experience in one of the following areas: containerization\n solutions such as Docker, infrastructure-as-a-code\n solutions such as Terraform, backend development (API\n documentation and implementation, authentication and\n authorization)\n
    • \n
    • Proficiency in Python
    • \n
    • \n Effective written and oral communication skills and the\n ability to present to technical and non-technical\n audiences\n
    • \n
    • Must be authorized to work in the U.S.
    • \n
    \n

    \n\n

    Nice to have

    \n\n

    \n

      \n
    • \n Experience with ML Ops, machine learning frameworks\n (PyTorch, Tensorflow, …), GPU frameworks (e.g., CUDA)\n
    • \n
    • \n Experience with container orchestration systems such as\n Kubernetes\n
    • \n
    • \n Experience with workflow orchestration systems such as\n Argo Workflow\n
    • \n
    \n

    \n\n

    Personal

    \n

    \n

      \n
    • \n Team player, willingness to collaborate and communicate\n with other team members\n
    • \n
    • \n Passionate, highly self-motivated and able to operate with\n significant autonomy\n
    • \n
    • Healthy skepticism and detail-oriented
    • \n
    • \n You define yourself as a generalist problem solver, not by\n the technologies that you know\n
    • \n
    • Willingness to keep updated on new technologies
    • \n
    • An urge to automate everything 🙂
    • \n
    \n

    \n\n

    A few reasons to join us

    \n

    \n

      \n
    • \n Innovate at the frontier of Computational Biology and AI\n
    • \n
    • \n Solve important scientific problems for the benefit of\n humanity\n
    • \n
    • \n Develop impactful technology that has real-world\n applications\n
    • \n
    • Be part of an exceptional interdisciplinary team
    • \n
    • World Renowned Scientific Advisory Board
    • \n
    • Opportunity for growth
    • \n
    • Hybrid (home/office) work is encouraged
    • \n
    • Work/life balance
    • \n
    • \n Attractive location close to a lot of amenities and\n restaurants in the heart of Culver City\n
    • \n
    • Diverse and international team
    • \n
    • \n Hybrid High Performance Computing infrastructure on AWS\n and on premises, with state-of-the-art GPU servers,\n terabytes of data and a trove of interesting engineering\n challenges to tackle\n
    • \n
    \n

    \n

    \n

    Strong compensation package

    \n
      \n
    • A competitive base salary (D.O.E)
    • \n
    • Excellent medical, dental and health benefits
    • \n
    • Excellent 401K retirement plan
    • \n
    \n

    \n \n }\n onToggleJobDetails={() => toggleActiveJobDetails(\"swe\")}\n jobDetailsOpen={activeJobDetails === \"swe\"}\n onApply={onApply}\n />\n \n Join our team of Research Scientists where you will be using\n your expertise in AI and Computer Science to develop our\n next-gen platform.\n \n }\n items={[\n \"+2 years AI\",\n \"Pytorch\",\n \"Graph Neural Networks\",\n \"Transformers\",\n \"Generative AI\",\n \"US-authorized\",\n ]}\n jobDetails={\n <>\n

    Your impact

    \n

    \n Are you looking to solve complex biological problems using\n cutting-edge fundamental and applied AI research? Do you want\n to make a difference in the field of Drug Development? Come\n and join us! You will be part of our team of Research\n Scientists and will be using your technical expertise to\n develop our software suite that has a wide range of\n applications in Biotechnology.\n

    \n

    What you will do

    \n

    \n

      \n
    • \n Apply state-of-the-art Deep Learning approaches to solve\n long-standing problems in Biology and Drug Development\n
    • \n
    • \n Develop novel Deep Learning architectures that power the\n core of our software\n
    • \n
    • \n Work with complex biological data to train and evaluate\n Neural Networks\n
    • \n
    • \n Collaborate with experts in Deep Learning, Computational\n Biology, Computational Chemistry and Software Engineering\n
    • \n
    • \n Build highly sophisticated models to reduce the time and\n cost required to develop novel therapeutics\n
    • \n
    \n

    \n

    Who we are looking for

    \n\n

    Essential Qualifications

    \n\n

    \n

      \n
    • \n PhD or MSc with at least 2 years of professional\n experience in Computer Science, Mathematics, Data Science,\n Statistics, Physics or other quantitative disciplines\n
    • \n
    • \n Strong background in Mathematics with focus in disciplines\n relevant to AI\n
    • \n
    • \n Formal training in Deep Learning and experience with two\n or more of the following: Graph Neural Networks,\n Convolutional Neural Networks, Transformers, Transfer\n Learning, Natural Language Processing, Generative Neural\n Networks\n
    • \n
    • \n Proven record of productivity, and independence in the\n field of Deep Learning as evidenced by scientific\n publications or publicly available projects\n
    • \n
    • \n Proficiency with Python and Machine Learning frameworks\n (eg. PyTorch or TensorFlow)\n
    • \n
    • \n Effective written and oral communication skills and the\n ability to present to technical and non-technical\n audiences\n
    • \n
    • Comfortable with Linux
    • \n
    • Must be authorized to work in the U.S.
    • \n
    \n

    \n\n

    Nice to have

    \n\n

    \n

      \n
    • Experience with biomolecular data
    • \n
    • Experience with version control tools
    • \n
    • Experience with noSQL databases
    • \n
    • Experience with DevOps tools (eg. Docker, Cloud)
    • \n
    • Experience with GPU frameworks (eg. CUDA)
    • \n
    • Familiarity with Group Theory
    • \n
    • Peer reviewed publications
    • \n
    \n

    \n\n

    Personal

    \n

    \n

      \n
    • \n Team player, willingness to collaborate and communicate\n with other team members\n
    • \n
    • \n Passionate, highly self-motivated and able to operate with\n significant autonomy\n
    • \n
    • \n Scientific rigor, healthy skepticism, and detail-oriented\n
    • \n
    \n

    \n\n

    A few reasons to join us

    \n

    \n

      \n
    • \n Innovate at the frontier of Computational Biology and AI\n
    • \n
    • \n Solve important scientific problems for the benefit of\n humanity\n
    • \n
    • \n Develop impactful technology that has real-world\n applications\n
    • \n
    • \n Be part of an interdisciplinary team of exceptionally\n talented individuals\n
    • \n
    • World Renowned Scientific Advisory Board
    • \n
    • Opportunity for growth
    • \n
    • Hybrid on-premises / remote work is encouraged
    • \n
    • Work/life balance
    • \n
    • \n Attractive location close to a lot of amenities and\n restaurants in the heart of Culver City\n
    • \n
    • Diverse and international team
    • \n
    • State of the art GPU servers on premises
    • \n
    \n

    \n

    \n

    Strong compensation package

    \n
      \n
    • A competitive base salary (D.O.E)
    • \n
    • Excellent medical, dental and health benefits
    • \n
    • Excellent 401K retirement plan
    • \n
    \n

    \n \n }\n onToggleJobDetails={() => toggleActiveJobDetails(\"ai\")}\n jobDetailsOpen={activeJobDetails === \"ai\"}\n onApply={onApply}\n />\n \n We are hiring a Computational Biologist to expand our Bio team\n and work on cutting-edge fundamental and applied Computational\n Biology research.\n \n }\n items={[\n \"+4 years Comp. Biology\",\n \"Ph.D / MSc\",\n \"Structural Biology\",\n \"Protein Biophysics\",\n \"Protein Design\",\n \"Python\",\n \"US-authorized\",\n ]}\n jobDetails={\n <>\n

    Your impact

    \n

    \n Are you looking to solve complex biological problems using\n cutting-edge fundamental and applied Computational Biology\n research? Do you want to make a difference in the field of\n Drug Development? Come and join us! You will be part of our\n team of Research Scientists and will be using your technical\n expertise to develop our platform that has a wide range of\n applications in Biotechnology.\n

    \n

    What you will do

    \n

    \n

      \n
    • \n Develop groundbreaking computational tools aimed at\n reducing the time and cost required to develop novel\n therapeutics\n
    • \n
    • \n Build automated data processing pipelines that generate\n high value proprietary datasets used to train\n state-of-the-art AI models\n
    • \n
    • \n Collaborate with experts in Deep Learning, Computational\n Biology, Computational Chemistry and Software Engineering\n
    • \n
    • \n Devise innovative approaches to solve long standing\n problems in Biology\n
    • \n
    • \n Organize and present data to support decisions in\n cross-functional teams\n
    • \n
    \n

    \n

    Who we are looking for

    \n\n

    Essential Qualifications

    \n\n

    \n

      \n
    • \n PhD or MSc with 4-5 years of professional experience in\n Computational Biology, Bioinformatics, Computational\n Protein Design, Structural Biology or related fields\n
    • \n
    • \n Solid theoretical background in Biophysics and Structural\n Biology\n
    • \n
    • \n Experience in two or more of the following areas: Protein\n Design, Molecular Modeling, Docking, Stability, Solubility\n or Affinity predictions\n
    • \n
    • Experience with standard bioinformatics tools
    • \n
    • \n Proven record of productivity, scientific creativity and\n independence in the field of Protein Sciences as evidenced\n by scientific publications and external presentations\n
    • \n
    • \n Proficiency with Python and relevant scientific libraries\n (eg. Biopython, SciPy, NumPy)\n
    • \n
    • \n Effective written and oral communication skills and the\n ability to present to technical and non-technical\n audiences\n
    • \n
    • Comfortable with Linux
    • \n
    • Must be authorized to work in the U.S.
    • \n
    \n

    \n\n

    Nice to have

    \n\n

    \n

      \n
    • \n Experience with modern AI or ML approaches such as\n AlphaFold\n
    • \n
    • Experience with multiprocessing libraries
    • \n
    • Experience with version control tools
    • \n
    • Familiarity with noSQL databases
    • \n
    • Familiarity with dockerization concepts
    • \n
    • Peer reviewed publications
    • \n
    \n

    \n\n

    Personal

    \n

    \n

      \n
    • \n Team player, willingness to collaborate and communicate\n with other team members\n
    • \n
    • \n Passionate, highly self-motivated and able to operate with\n significant autonomy\n
    • \n
    • \n Scientific rigor, healthy skepticism, and detail-oriented\n
    • \n
    • Pragmatic and output-focused
    • \n
    \n

    \n\n

    A few reasons to join us

    \n

    \n

      \n
    • \n Innovate at the frontier of Computational Biology and AI\n
    • \n
    • \n Solve important scientific problems for the benefit of\n humanity\n
    • \n
    • \n Develop impactful technology that has real-world\n applications\n
    • \n
    • \n Be part of an interdisciplinary team of exceptionally\n talented individuals\n
    • \n
    • World Renowned Scientific Advisory Board
    • \n
    • Opportunity for growth
    • \n
    • Hybrid on-premises / remote work is encouraged
    • \n
    • Work/life balance
    • \n
    • \n Attractive location close to a lot of amenities and\n restaurants in the heart of Culver City\n
    • \n
    • Diverse and international team
    • \n
    • State of the art GPU servers on premises
    • \n
    \n

    \n

    \n

    Strong compensation package

    \n
      \n
    • A competitive base salary (D.O.E)
    • \n
    • Excellent medical, dental and health benefits
    • \n
    • Excellent 401K retirement plan
    • \n
    \n

    \n \n }\n onToggleJobDetails={() => toggleActiveJobDetails(\"bio\")}\n jobDetailsOpen={activeJobDetails === \"bio\"}\n onApply={onApply}\n />\n
    \n
    \n \n \n );\n};\n","export const ROUTES = {\n home: () => \"/\",\n careers: () => \"/careers\",\n} as const;\n","import React from \"react\";\nimport { faBars, faXmark } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { Link, useLocation } from \"react-router-dom\";\nimport { ROUTES } from \"./routes\";\nimport pythiaBlackText from \"./img/Pythia_black_text.svg\";\nimport classNames from \"classnames\";\nimport {\n disableBodyScroll,\n enableBodyScroll,\n clearAllBodyScrollLocks,\n} from \"body-scroll-lock\";\nimport { NavigationContext } from \"./navigation\";\nimport { useBreakpoints } from \"./use_breakpoints\";\nimport \"./Menu.scss\";\nimport backgroundImg from \"./background-spot.svg\";\n\nexport const Menu: React.FC<{}> = () => {\n const location = useLocation();\n const { miniNavbar } = React.useContext(NavigationContext);\n const [navOpened, setNavOpened] = React.useState(false);\n const { mobile } = useBreakpoints();\n const menuRef = React.useRef(null);\n\n React.useEffect(() => {\n if (menuRef.current == null) {\n clearAllBodyScrollLocks();\n } else {\n if (navOpened) {\n disableBodyScroll(menuRef.current);\n } else {\n enableBodyScroll(menuRef.current);\n }\n }\n }, [navOpened, menuRef]);\n\n if (mobile()) {\n if (!navOpened) {\n return (\n
    \n setNavOpened(true)}\n >\n \n \n \n Menu\n \n
    \n );\n }\n\n return (\n \n \n setNavOpened(false)}\n >\n \n \n \n Close\n \n \n \n );\n }\n\n return (\n \n \n \n \n \n \n \n );\n};\n","import React from \"react\";\n\n// export const TABLET = 769;\nexport const TABLET = 922;\n\nexport interface Breakpoints {\n mobile(): boolean;\n touchScreen(): boolean;\n width: number;\n height: number;\n}\n\nexport const useBreakpoints = (): Breakpoints => {\n const [width, setWidth] = React.useState(window.innerWidth);\n const [height, setHeight] = React.useState(window.innerHeight);\n\n function handleWindowSizeChange() {\n setWidth(window.innerWidth);\n setHeight(window.innerHeight);\n }\n React.useEffect(() => {\n window.addEventListener(\"resize\", handleWindowSizeChange);\n return () => {\n window.removeEventListener(\"resize\", handleWindowSizeChange);\n };\n }, []);\n\n return React.useMemo(\n () => ({\n mobile: () => width < TABLET,\n touchScreen: () => width < TABLET,\n width,\n height,\n }),\n [width, height]\n );\n};\n","import React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { useSnackbar } from \"notistack\";\nimport { CompanyWebsiteClientContext } from \"./client_contexts\";\nimport classNames from \"classnames\";\n\ninterface FormValues {\n email: string;\n}\n\nexport const NewsletterForm: React.FC<{}> = () => {\n const client = React.useContext(CompanyWebsiteClientContext);\n const {\n register,\n handleSubmit,\n formState: { errors, isSubmitting },\n setValue,\n } = useForm();\n const { enqueueSnackbar } = useSnackbar();\n\n const submit = handleSubmit(async (data) => {\n try {\n await client.subscribeToNewsletter(data);\n } catch (err: any) {\n console.error(err);\n enqueueSnackbar(\n \"We are currently unable to add you to the subscription list. Please try later.\",\n { variant: \"error\", autoHideDuration: 5000 }\n );\n return;\n }\n enqueueSnackbar(\"You're now subscribed to Pythia's updates!\", {\n variant: \"success\",\n autoHideDuration: 5000,\n });\n });\n\n return (\n \n \n
    \n

    \n \n

    \n

    \n \n Submit\n \n

    \n

    {errors.email?.message}

    \n
    \n \n );\n};\n","import { Link } from \"react-router-dom\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport {\n faLinkedin,\n faSquareTwitter,\n} from \"@fortawesome/free-brands-svg-icons\";\nimport \"./Footer.scss\";\nimport { NewsletterForm } from \"./NewsletterForm\";\n\nexport const Footer = () => {\n return (\n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n © 2023 Pythia Labs, Inc.\n
    \n
    \n 8800 Venice Blvd\n
    \n Los Angeles, CA 90034\n
    \n
    \n
    \n \n \n
  • \n \n Privacy Notice\n \n
  • \n
  • \n \n Disclaimer\n \n
  • \n \n
    \n \n \n );\n};\n","import React from \"react\";\nimport { Outlet } from \"react-router\";\nimport { SnackbarProvider } from \"notistack\";\nimport { createTheme, ThemeProvider } from \"@mui/material\";\nimport { Menu } from \"./Menu\";\nimport { NavigationContext } from \"./navigation\";\nimport { Footer } from \"./Footer\";\nimport { ScrollRestoration } from \"react-router-dom\";\n\nconst style = getComputedStyle(document.body);\n\nconst getColor = (cssVariable: string) =>\n style.getPropertyValue(cssVariable).trim().replace(\"deg\", \"\");\n\nconst MUI_THEME = createTheme({\n typography: {\n fontFamily: ['\"Quicksand\"', \"sans-serif\"].join(\",\"),\n },\n palette: {\n primary: { main: getColor(\"--primary\") },\n error: { main: getColor(\"--danger\") },\n warning: { main: getColor(\"--warning\") },\n info: { main: getColor(\"--info\") },\n success: { main: getColor(\"--success\") },\n },\n});\n\nexport const Container: React.FC<{}> = () => {\n const [contactFormOpened, setContactFormOpened] = React.useState(false);\n const [miniNavbar, setMiniNavbar] = React.useState(false);\n\n return (\n \n \n \n {/* */}\n \n\n \n
    \n \n {/* setContactFormOpened(!contactFormOpened)}\n >\n \n \n \n */}\n {/* */}\n
    \n