<!doctype html>
<html>
  <head>
    <title>Gomah | I like to design and build software &amp; products</title><meta data-n-head="1" charset="utf-8"><meta data-n-head="1" name="viewport" content="width=device-width,initial-scale=1"><meta data-n-head="1" name="og:image" content="https://gomah.fr/meta.jpg"><meta data-n-head="1" data-hid="description" name="description" content="Hi, I&#x27;m Thomas Marrec, a french full-stack engineer living in Sydney."><meta data-n-head="1" data-hid="keywords" name="keywords" content="Full-stack Developer Sydney, full-stack engineer, designer, Thomas Marrec, Sydney, Australia, Paris, French"><link rel="modulepreload" href="/_nuxt/eb95c0d.modern.js" as="script"><link rel="modulepreload" href="/_nuxt/bcfe930.modern.js" as="script"><link rel="preload" href="/_nuxt/vendors/app.ebd1e50.css" as="style"><link rel="modulepreload" href="/_nuxt/9243f6c.modern.js" as="script"><link rel="preload" href="/_nuxt/app.3f13e90.css" as="style"><link rel="modulepreload" href="/_nuxt/88cea3d.modern.js" as="script">
    <script>!function(){var e=window.analytics=window.analytics||[];if(!e.initialize)if(e.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{e.invoked=!0,e.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","once","off","on"],e.factory=function(t){return function(){var n=Array.prototype.slice.call(arguments);return n.unshift(t),e.push(n),e}};for(var t=0;t<e.methods.length;t++){var n=e.methods[t];e[n]=e.factory(n)}e.load=function(t,n){var a=document.createElement("script");a.type="text/javascript",a.async=!0,a.src="https://cdn.segment.com/analytics.js/v1/"+t+"/analytics.min.js";var o=document.getElementsByTagName("script")[0];o.parentNode.insertBefore(a,o),e._loadOptions=n},e.SNIPPET_VERSION="4.1.0",e.load("KtNxjfUSk4ENSAM1jIlKRK8Cf56D0Nje")}}()</script>
  <link href="/_nuxt/vendors/app.ebd1e50.css" rel="stylesheet"><link href="/_nuxt/app.3f13e90.css" rel="stylesheet"></head>
  <body>
    <div id="__nuxt"><style>#nuxt-loading {  background: #FF9999;  visibility: hidden;  opacity: 0;  position: absolute;  left: 0;  right: 0;  top: 0;  bottom: 0;  display: flex;  justify-content: center;  align-items: center;  flex-direction: column;  animation: nuxtLoadingIn 10s ease;  -webkit-animation: nuxtLoadingIn 10s ease;  animation-fill-mode: forwards;  overflow: hidden;}@keyframes nuxtLoadingIn {  0% {visibility: hidden;opacity: 0;  }  20% {visibility: visible;opacity: 0;  }  100% {visibility: visible;opacity: 1;  }}@-webkit-keyframes nuxtLoadingIn {  0% {visibility: hidden;opacity: 0;  }  20% {visibility: visible;opacity: 0;  }  100% {visibility: visible;opacity: 1;  }}#nuxt-loading>div,#nuxt-loading>div:after {  border-radius: 50%;  width: 5rem;  height: 5rem;}#nuxt-loading>div {  font-size: 10px;  position: relative;  text-indent: -9999em;  border: .5rem solid #F5F5F5;  border-left: .5rem solid #FF9999;  -webkit-transform: translateZ(0);  -ms-transform: translateZ(0);  transform: translateZ(0);  -webkit-animation: nuxtLoading 1.1s infinite linear;  animation: nuxtLoading 1.1s infinite linear;}#nuxt-loading.error>div {  border-left: .5rem solid #ff4500;  animation-duration: 5s;}@-webkit-keyframes nuxtLoading {  0% {-webkit-transform: rotate(0deg);transform: rotate(0deg);  }  100% {-webkit-transform: rotate(360deg);transform: rotate(360deg);  }}@keyframes nuxtLoading {  0% {-webkit-transform: rotate(0deg);transform: rotate(0deg);  }  100% {-webkit-transform: rotate(360deg);transform: rotate(360deg);  }}</style><script>window.addEventListener('error', function () {  var e = document.getElementById('nuxt-loading');  if (e) {e.className += ' error';  }});</script><div id="nuxt-loading" aria-live="polite" role="status"><div>Loading...</div></div></div><script>window.__NUXT__={config:{},staticAssetsBase:"\u002F_nuxt\u002Fstatic\u002F1663815150"}</script>
  <script src="/_nuxt/eb95c0d.modern.js" type="module"></script><script src="/_nuxt/bcfe930.modern.js" type="module"></script><script src="/_nuxt/9243f6c.modern.js" type="module"></script><script src="/_nuxt/88cea3d.modern.js" type="module"></script><script src="/_nuxt/da5d5cf.js" nomodule></script><script src="/_nuxt/156dd87.js" nomodule></script><script src="/_nuxt/4b415ff.js" nomodule></script><script src="/_nuxt/e9a172f.js" nomodule></script><script>!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",(function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()}),!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}()</script></body>
</html>
