Help
RSS
API
Feed
Maltego
Contact
Domain > afontcu.dev
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2023-06-20
34.159.168.235
(
ClassC
)
2025-09-25
13.52.188.95
(
ClassC
)
Port 443
HTTP/1.1 200 OKAccept-Ranges: bytesAge: 0Cache-Control: public,max-age0,must-revalidateCache-Status: Netlify Edge; fwdmissContent-Length: 56093Content-Type: text/html; charsetUTF-8Date: Thu, 25 Sep 2025 05:16:10 GMTEtag: 900dfb6de8e41be89054178f828c58db-sslLink: /webpack-runtime-085881e7e435aa19656d.js>; relpreload; asscript, /framework-20335242239071f73386.js>; relpreload; asscript, /styles-076c998adbcdbd0eb3e8.js>; relpreload; asscript, /app-444225918218b347b822.js>; relpreload; asscript, /29107295-7764d2c53d11dce652e7.js>; relpreload; asscript, /5d58f5256ff0a28b26858458c3e0d803e5c2b859-356f25a20deffbbdcf38.js>; relpreload; asscript, /component---src-pages-index-js-755c82c1a5f41ed4b064.js>; relpreload; asscript, /page-data/app-data.json>; relpreload; asfetch; crossorigin, /page-data/index/page-data.json>; relpreload; asfetch; crossoriginReferrer-Policy: same-originServer: NetlifyStrict-Transport-Security: max-age31536000X-Content-Type-Options: nosniffX-Frame-Options: DENYX-Nf-Request-Id: 01K5ZMSSQ95YJ7ZYAXZA1VWRVGX-Xss-Protection: 1; modeblock !DOCTYPE html>html langen prefixog: http://ogp.me/ns#>head>meta charSetutf-8/>meta http-equivx-ua-compatible contentieedge/>meta nameviewport contentwidthdevice-width, initial-scale1, shrink-to-fitno/>style idtypography.js>html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block}audio:not(controls){display:none;height:0}progress{vertical-align:baseline}hidden,template{display:none}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbrtitle{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit;font-weight:bolder}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}svg:not(:root){overflow:hidden}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}button,input,optgroup,select,textarea{font:inherit;margin:0}optgroup{font-weight:700}button,input{overflow:visible}button,select{text-transform:none}typereset,typesubmit,button,html typebutton{-webkit-appearance:button}typebutton::-moz-focus-inner,typereset::-moz-focus-inner,typesubmit::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}typebutton:-moz-focusring,typereset:-moz-focusring,typesubmit:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto}typecheckbox,typeradio{box-sizing:border-box;padding:0}typenumber::-webkit-inner-spin-button,typenumber::-webkit-outer-spin-button{height:auto}typesearch{-webkit-appearance:textfield;outline-offset:-2px}typesearch::-webkit-search-cancel-button,typesearch::-webkit-search-decoration{-webkit-appearance:none}::-webkit-input-placeholder{color:inherit;opacity:.54}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}html{font:150%/1.58 Lora,Georgia,serif;box-sizing:border-box;overflow-y:scroll;}*{box-sizing:inherit;}*:before{box-sizing:inherit;}*:after{box-sizing:inherit;}body{color:hsla(0,0%,0%,0.73);font-family:Lora,Georgia,serif;font-weight:400;word-wrap:break-word;font-kerning:normal;-moz-font-feature-settings:kern, liga, clig, calt;-ms-font-feature-settings:kern, liga, clig, calt;-webkit-font-feature-settings:kern, liga, clig, calt;font-feature-settings:kern, liga, clig, calt;}img{max-width:100%;margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.58rem;}h1{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.58rem;color:hsla(0,0%,0%,0.9);font-family:Source Sans Pro,sans-serif;font-weight:400;text-rendering:optimizeLegibility;font-size:3rem;line-height:1.1;}h2{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.58rem;color:hsla(0,0%,0%,0.9);font-family:Source Sans Pro,sans-serif;font-weight:400;text-rendering:optimizeLegibility;font-size:1.93318rem;line-height:1.1;}h3{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.58rem;color:hsla(0,0%,0%,0.9);font-family:Source Sans Pro,sans-serif;font-weight:400;text-rendering:optimizeLegibility;font-size:1.55185rem;line-height:1.1;}h4{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.58rem;color:hsla(0,0%,0%,0.9);font-family:Source Sans Pro,sans-serif;font-weight:400;text-rendering:optimizeLegibility;font-size:1rem;line-height:1.1;}h5{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.58rem;color:hsla(0,0%,0%,0.9);font-family:Source Sans Pro,sans-serif;font-weight:400;text-rendering:optimizeLegibility;font-size:0.80274rem;line-height:1.1;}h6{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.58rem;color:hsla(0,0%,0%,0.9);font-family:Source Sans Pro,sans-serif;font-weight:400;text-rendering:optimizeLegibility;font-size:0.71922rem;line-height:1.1;}hgroup{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.58rem;}ul{margin-left:1.58rem;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.58rem;list-style-position:outside;list-style-image:none;}ol{margin-left:1.58rem;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.58rem;list-style-position:outside;list-style-image:none;}dl{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.58rem;}dd{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.58rem;}p{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.58rem;}figure{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.58rem;}pre{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.58rem;font-size:0.85rem;line-height:1.58rem;}table{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.58rem;font-size:1rem;line-height:1.58rem;border-collapse:collapse;width:100%;}fieldset{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.58rem;}blockquote{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0.9875rem;padding-right:0;padding-top:0;margin-bottom:1.58rem;font-size:1.24573rem;line-height:1.58rem;border-left:0.5925rem solid #134896;color:hsla(0,0%,0%,0.65);font-style:italic;}form{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.58rem;}noscript{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.58rem;}iframe{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.58rem;}hr{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:calc(1.58rem - 1px);background:hsla(0,0%,0%,0.2);border:none;height:1px;}address{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.58rem;}b{font-weight:700;}strong{font-weight:700;}dt{font-weight:700;}th{font-weight:700;}li{margin-bottom:calc(1.58rem / 2);}ol li{padding-left:0;}ul li{padding-left:0;}li > ol{margin-left:1.58rem;margin-bottom:calc(1.58rem / 2);margin-top:calc(1.58rem / 2);}li > ul{margin-left:1.58rem;margin-bottom:calc(1.58rem / 2);margin-top:calc(1.58rem / 2);}blockquote *:last-child{margin-bottom:0;}li *:last-child{margin-bottom:0;}p *:last-child{margin-bottom:0;}li > p{margin-bottom:calc(1.58rem / 2);}code{font-size:0.85rem;line-height:1.58rem;}kbd{font-size:0.85rem;line-height:1.58rem;}samp{font-size:0.85rem;line-height:1.58rem;}abbr{border-bottom:1px dotted hsla(0,0%,0%,0.5);cursor:help;}acronym{border-bottom:1px dotted hsla(0,0%,0%,0.5);cursor:help;}abbrtitle{border-bottom:1px dotted hsla(0,0%,0%,0.5);cursor:help;text-decoration:none;}thead{text-align:left;}td,th{text-align:left;border-bottom:1px solid hsla(0,0%,0%,0.12);font-feature-settings:tnum;-moz-font-feature-settings:tnum;-ms-font-feature-settings:tnum;-webkit-font-feature-settings:tnum;padding-left:1.05333rem;padding-right:1.05333rem;padding-top:0.79rem;padding-bottom:calc(0.79rem - 1px);}th:first-child,td:first-child{padding-left:0;}th:last-child,td:last-child{padding-right:0;}a{color:#134896;text-decoration:none;text-shadow:.03em 0 #fff,-.03em 0 #fff,0 .03em #fff,0 -.03em #fff,.06em 0 #fff,-.06em 0 #fff,.09em 0 #fff,-.09em 0 #fff,.12em 0 #fff,-.12em 0 #fff,.15em 0 #fff,-.15em 0 #fff;background-image:linear-gradient(to top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0) 1px, #134896 1px, #134896 2px, rgba(0, 0, 0, 0) 2px);}a:hover,a:active{text-shadow:none;background-image:none;}h1,h2,h3,h4,h5,h6{margin-top:2.37rem;margin-bottom:0.79rem;}li>ol,li>ul{margin-left:20px;margin-bottom:0;}blockquote > :last-child{margin-bottom:0;}blockquote cite{font-size:1rem;line-height:1.58rem;color:hsla(0,0%,0%,0.73);font-style:normal;font-weight:400;}blockquote cite:before{content:— ;}@media only screen and (max-width:480px){html{font-size:106.25%;line-height:28px;}blockquote{border-left:0.29625rem solid #134896;color:hsla(0,0%,0%,0.59);padding-left:0.88875rem;font-style:italic;margin-left:-1.185rem;margin-right:0;}}a.gatsby-resp-image-link{box-shadow:none;}/style>meta data-react-helmettrue propertyog:type contentwebsite/>link relpreconnect dns-prefetch hrefhttps://www.google-analytics.com/>link relalternate typeapplication/rss+xml href/rss.xml/>link relicon href/favicon-32x32.png?v33748778fb7eb98bebbed86ddd3f6266/>link relmanifest href/manifest.webmanifest/>meta nametheme-color content#134896/>link relapple-touch-icon sizes48x48 href/icons/icon-48x48.png?v33748778fb7eb98bebbed86ddd3f6266/>link relapple-touch-icon sizes72x72 href/icons/icon-72x72.png?v33748778fb7eb98bebbed86ddd3f6266/>link relapple-touch-icon sizes96x96 href/icons/icon-96x96.png?v33748778fb7eb98bebbed86ddd3f6266/>link relapple-touch-icon sizes144x144 href/icons/icon-144x144.png?v33748778fb7eb98bebbed86ddd3f6266/>link relapple-touch-icon sizes192x192 href/icons/icon-192x192.png?v33748778fb7eb98bebbed86ddd3f6266/>link relapple-touch-icon sizes256x256 href/icons/icon-256x256.png?v33748778fb7eb98bebbed86ddd3f6266/>link relapple-touch-icon sizes384x384 href/icons/icon-384x384.png?v33748778fb7eb98bebbed86ddd3f6266/>link relapple-touch-icon sizes512x512 href/icons/icon-512x512.png?v33748778fb7eb98bebbed86ddd3f6266/>title data-react-helmettrue>Adrià Fontcuberta/title>meta data-react-helmettrue namedescription contentI'm Adrià Fontcuberta, a software engineer interested in lean software development, mostly focused on the front end/>meta data-react-helmettrue propertyog:title contentAdrià Fontcuberta/>meta data-react-helmettrue propertyog:description contentI'm Adrià Fontcuberta, a software engineer interested in lean software development, mostly focused on the front end/>meta namegenerator contentGatsby 2.23.1/>meta data-react-helmettrue nametwitter:card contentsummary/>meta data-react-helmettrue nametwitter:creator contentAdrià Fontcuberta/>meta data-react-helmettrue nametwitter:title contentAdrià Fontcuberta/>meta data-react-helmettrue nametwitter:description contentI'm Adrià Fontcuberta, a software engineer interested in lean software development, mostly focused on the front end/>style data-href/styles.3b13b9ab9c647870d9c7.css>@font-face{font-family:Source Sans Pro;font-style:normal;font-display:swap;font-weight:300;src:local(Source Sans Pro Light normal),local(Source Sans Pro-Lightnormal),url(/static/source-sans-pro-300-7f59286a8e320bed0a6519492c9676ae.woff2) format(woff2),url(/static/source-sans-pro-300-2920997e144855d10bb16f1dfac53367.woff) format(woff)}@font-face{font-family:Source Sans Pro;font-style:italic;font-display:swap;font-weight:300;src:local(Source Sans Pro Light italic),local(Source Sans Pro-Lightitalic),url(/static/source-sans-pro-300italic-43f4ba913eec61d61829c6e067db92ed.woff2) format(woff2),url(/static/source-sans-pro-300italic-d2145a20d6b14bc7340cd5d2f68a33a5.woff) format(woff)}@font-face{font-family:Source Sans Pro;font-style:normal;font-display:swap;font-weight:400;src:local(Source Sans Pro Regular normal),local(Source Sans Pro-Regularnormal),url(/static/source-sans-pro-400-e1933f6bc0a19701bc2ae68fdc507a1f.woff2) format(woff2),url(/static/source-sans-pro-400-5cea37781a472b624a955279228a7de4.woff) format(woff)}@font-face{font-family:Source Sans Pro;font-style:italic;font-display:swap;font-weight:400;src:local(Source Sans Pro Regular italic),local(Source Sans Pro-Regularitalic),url(/static/source-sans-pro-400italic-0d7403be589e82b9748fdc2893b36e9a.woff2) format(woff2),url(/static/source-sans-pro-400italic-5754fb7faeebc614cdf691ffbc17034a.woff) format(woff)}@font-face{font-family:Source Sans Pro;font-style:normal;font-display:swap;font-weight:600;src:local(Source Sans Pro SemiBold normal),local(Source Sans Pro-SemiBoldnormal),url(/static/source-sans-pro-600-fdd7a77756391defec2deb3c05bb1b8e.woff2) format(woff2),url(/static/source-sans-pro-600-5cfa0a680214e1af7e986dece591dedc.woff) format(woff)}@font-face{font-family:Source Sans Pro;font-style:italic;font-display:swap;font-weight:600;src:local(Source Sans Pro SemiBold italic),local(Source Sans Pro-SemiBolditalic),url(/static/source-sans-pro-600italic-aef02ef12862b4cbcc8c13fe3e8f4c14.woff2) format(woff2),url(/static/source-sans-pro-600italic-ec540b47ed3e5ba346e24387c42dcccc.woff) format(woff)}@font-face{font-family:Source Sans Pro;font-style:normal;font-display:swap;font-weight:700;src:local(Source Sans Pro Bold normal),local(Source Sans Pro-Boldnormal),url(/static/source-sans-pro-700-ba34d71505d96d67a4a30ad8fbcd996b.woff2) format(woff2),url(/static/source-sans-pro-700-cca437603e75a1b87befca754a3a3acd.woff) format(woff)}@font-face{font-family:Source Sans Pro;font-style:italic;font-display:swap;font-weight:700;src:local(Source Sans Pro Bold italic),local(Source Sans Pro-Bolditalic),url(/static/source-sans-pro-700italic-75e0b5e5be6d95e30bf1d1fb8623329c.woff2) format(woff2),url(/static/source-sans-pro-700italic-14a9b049ee5f38e8695c88b5a15ec7bc.woff) format(woff)}@font-face{font-family:Source Sans Pro;font-style:normal;font-display:swap;font-weight:900;src:local(Source Sans Pro Black normal),local(Source Sans Pro-Blacknormal),url(/static/source-sans-pro-900-fbc82389351771aad0291f0887e1f047.woff2) format(woff2),url(/static/source-sans-pro-900-cb96bff4c4fe9fbe5d554eb8b096cd4c.woff) format(woff)}@font-face{font-family:Source Sans Pro;font-style:italic;font-display:swap;font-weight:900;src:local(Source Sans Pro Black italic),local(Source Sans Pro-Blackitalic),url(/static/source-sans-pro-900italic-ce525db655fdb39d54c0bb1c7f2520fe.woff2) format(woff2),url(/static/source-sans-pro-900italic-b7727467a27463f49bb6fe84b2eefc8a.woff) format(woff)}@font-face{font-family:Lora;font-style:normal;font-display:swap;font-weight:400;src:local(Lora Regular ),local(Lora-Regular),url(/static/lora-latin-400-e4cdb14bf148f2846997a6be7ba648bd.woff2) format(woff2),url(/static/lora-latin-400-0d78d370987954fb6b9f0efec3065e83.woff) format(woff)}@font-face{font-family:Lora;font-style:italic;font-display:swap;font-weight:400;src:local(Lora Regular italic),local(Lora-Regularitalic),url(/static/lora-latin-400italic-2c4801fad2634e6dac678d8826cf417c.woff2) format(woff2),url(/static/lora-latin-400italic-7beffbacbbde86423a7ee771f31c1626.woff) format(woff)}@font-face{font-family:Lora;font-style:normal;font-display:swap;font-weight:700;src:local(Lora Bold ),local(Lora-Bold),url(/static/lora-latin-700-ce18d17335e3ef2119d76f5dff177c66.woff2) format(woff2),url(/static/lora-latin-700-1617380e0dea667b61cf44e86f3d0f10.woff) format(woff)}@font-face{font-family:Lora;font-style:italic;font-display:swap;font-weight:700;src:local(Lora Bold italic),local(Lora-Bolditalic),url(/static/lora-latin-700italic-b4bb1fa2335d49d4bc7e7ddd944cee44.woff2) format(woff2),url(/static/lora-latin-700italic-6ec37b950cf9829a2cad7d02b11810c9.woff) format(woff)}codeclass*language-,preclass*language-{color:#ccc;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}preclass*language-{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>codeclass*language-,preclass*language-{background:#2d2d2d}:not(pre)>codeclass*language-{padding:.1em;border-radius:.3em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}:root{--theme-color:#e0ffec}body{overflow:hidden;background-color:#fcfcfc;-moz-osx-font-smoothing:grayscale}body:before{content: ;position:absolute;top:0;right:0;left:0;height:10px;background:transparent linear-gradient(90deg,#d3f3ff,#a9ffc4 85%) repeat scroll 0 0}h1,h2,h3,h4{font-weight:700;font-style:normal;line-height:1.04;letter-spacing:-.028em;color:#333}strong{color:#333}:not(pre)>codeclass*language-{background-color:var(--theme-color);color:#111;font-size:medium;padding:4px}preclass*language-{border-radius:6px;font-size:.8em}@media (min-width:900px){preclass*language-{--pre-overflow:6rem;width:calc(100% + var(--pre-overflow));margin-left:calc(-0.5*var(--pre-overflow))}}.gatsby-highlight{margin-bottom:1.5rem}.gatsby-highlight .token{line-height:1.7}.gatsby-highlight-code-line{background-color:rgba(0,0,0,50%);display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:1em}.full-bleed a{background-image:none;text-shadow:none;text-decoration:underline}a.gatsby-resp-image-link{text-decoration:none;text-shadow:none;background-image:none}.btn{background-color:#e5edff;border-radius:6px;overflow:hidden;width:100%;border:0;text-transform:uppercase;letter-spacing:-.5px;font-size:.9rem}.btn,.btn span{position:relative;cursor:pointer}.btn span{color:#134796;z-index:1;transition:color .25s cubic-bezier(.7,0,.9,1)}.btn:before{content:;position:absolute;top:50%;left:0;border-radius:6px;transform:translate(-101%,-50%);width:100%;height:100%;background-color:#134796;transition:transform .25s cubic-bezier(.7,0,.9,1)}.btn:hover span{color:#e5edff}.btn:hover:before{transform:translateY(-50%)}.figure{margin:0 auto}.gatsby-resp-image-figcaption{font-size:.8rem;margin-top:.25rem;text-align:center}/style>link relsitemap typeapplication/xml href/sitemap.xml/>link crossorigin hrefhttps://google.com relpreconnect/>link crossorigin hrefhttps://marketingplatform.google.com relpreconnect/>link asscript relpreload href/component---src-pages-index-js-755c82c1a5f41ed4b064.js/>link asscript relpreload href/5d58f5256ff0a28b26858458c3e0d803e5c2b859-356f25a20deffbbdcf38.js/>link asscript relpreload href/29107295-7764d2c53d11dce652e7.js/>link asscript relpreload href/app-444225918218b347b822.js/>link asscript relpreload href/framework-20335242239071f73386.js/>link asscript relpreload href/styles-076c998adbcdbd0eb3e8.js/>link asscript relpreload href/webpack-runtime-085881e7e435aa19656d.js/>link asfetch relpreload href/page-data/index/page-data.json crossoriginanonymous/>link asfetch relpreload href/page-data/app-data.json crossoriginanonymous/>/head>body>div id___gatsby>div styleoutline:none tabindex-1 idgatsby-focus-wrapper>div stylemargin-left:auto;margin-right:auto;max-width:37.92rem;padding:2.37rem 1.185rem 0>header>div stylefont-size:1.44225rem;line-height:2.37rem;display:flex;margin-bottom:2.37rem;align-items:center>p stylemargin:0;color:black>Oh, hi!!-- --> span roleimg aria-labelwaving hand>👋/span>br/>I'm !-- -->Adrià Fontcuberta!-- -->, a software engineer interested in lean software development, mostly focused on the front end.br/>I try to fix the right problems right./p>/div>/header>main stylemargin-bottom:11.85rem>div styledisplay:flex;align-items:center>div class gatsby-image-wrapper styleposition:relative;overflow:hidden;display:inline-block;width:80px;height:80px;margin-right:0.79rem;margin-bottom:0;min-width:80px;border-radius:100%>img aria-hiddentrue srcdata:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAMEBf/EABUBAQEAAAAAAAAAAAAAAAAAAAID/9oADAMBAAIQAxAAAAHjWtIrEKi4QgC//8QAGhAAAwEBAQEAAAAAAAAAAAAAAQIDABIiMv/aAAgBAQABBQJgeqTCprD3V+pYEjN87//EABYRAQEBAAAAAAAAAAAAAAAAAAEgMf/aAAgBAwEBPwFNj//EABcRAQADAAAAAAAAAAAAAAAAAAECESD/2gAIAQIBAT8Bi2GP/8QAGxAAAQQDAAAAAAAAAAAAAAAAEAABESECElH/2gAIAQEABj8ChTNh9eWsRR//xAAaEAEBAAMBAQAAAAAAAAAAAAARAQAQITFB/9oACAEBAAE/IVBSUwsuoLomrwmU9A/dd2su3rX/2gAMAwEAAgADAAAAEI/IfP/EABYRAQEBAAAAAAAAAAAAAAAAAAEQEf/aAAgBAwEBPxABjXQn/8QAFxEBAQEBAAAAAAAAAAAAAAAAARARMf/aAAgBAgEBPxBUTDs//8QAHxABAAEEAQUAAAAAAAAAAAAAAREAECExUUFhcYHw/9oACAEBAAE/EIUACQ0tDIwQI997SLENwkdeYrUgaB+bMSTnhrKjAyHQt//Z titleHey, this is me! :D altAdrià Fontcuberta styleposition:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:1;transition-delay:500ms;border-radius:50%;margin-bottom:0/>noscript>picture>source srcset/static/171f384a34e74dd91c6d8e6d705409f6/a8ad2/profile-pic.jpg 1x />img loadinglazy width180 height180 srcset/static/171f384a34e74dd91c6d8e6d705409f6/a8ad2/profile-pic.jpg 1x src/static/171f384a34e74dd91c6d8e6d705409f6/a8ad2/profile-pic.jpg altAdrià Fontcuberta titleHey, this is me! :D styleposition:absolute;top:0;left:0;opacity:1;width:100%;height:100%;object-fit:cover;object-position:center/>/picture>/noscript>/div>div>Find me on!-- --> a target_blank relnoopener noreferrer titleTwitter hrefhttps://twitter.com/afontq>Twitter/a>,!-- --> a target_blank relnoopener noreferrer titleGithub hrefhttps://github.com/afontcu>GitHub/a>,!-- --> a target_blank relnoopener noreferrer titleInstagram hrefhttps://www.linkedin.com/in/adrifontcu/>LinkedIn/a>.br/>I also collect!-- --> a target_blank relnoopener noreferrer titleMedium hrefhttps://github.com/afontcu/awesome-learning>awesome/a> !-- -->links,!-- --> a target_blank relnoopener noreferrer titleNoti.st hrefhttps://noti.st/afontcu>speak here and there/a>, and!-- --> a target_blank relnoopener noreferrer titleNewsletter hrefhttps://buttondown.email/afontcu>write a newsletter/a>./div>/div>div stylemargin-top:4.74rem>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/bilbostack-2024/>Bilbostack 2024/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>4 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/events/>Events/a>, a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/agile/>Agile/a>, a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/software-crafting/>Software Crafting/a>/span>/div>p>Last week I gave a talk at Bilbostack./p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/pessimism-driven-development/>Pessimism-driven development/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>4 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/agile/>Agile/a>/span>/div>p>A sad but realistic starting point for everything we do: Things can go wrong and will go wrong./p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/minefield/>The minefield of software development/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>5 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/agile/>Agile/a>/span>/div>p>More often than not, we build software based on hope./p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/marginal-gains/>Marginal gains: In favor of continuous improvement/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>3 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/random-thoughts/>Random Thoughts/a>/span>/div>p>We overestimate what we can achieve in a short period./p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/embrace-unknowns/>Embracing unknown unknowns/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>4 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/agile/>Agile/a>/span>/div>p>Once upon a time in 1869, a Russian scientist named Mendeleev was obsessed with ordering all elements present in nature. The typical Russian scientist obsession./p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/software-blunder/>Blundering your software/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>3 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/random-thoughts/>Random Thoughts/a>/span>/div>p>Software development is like a chess game./p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/be-predicatble/>Be predictable, my friend/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>2 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/random-thoughts/>Random Thoughts/a>/span>/div>p>There are many virtues a team can show. But I’ve come to realize that it boils down to this:/p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/autonomy/>Software development, autonomy, and constraints/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>4 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/random-thoughts/>Random Thoughts/a>/span>/div>p>Autonomy is good./p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/challenging-assumptions/>Challenge your assumptions/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>3 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/random-thoughts/>Random Thoughts/a>/span>/div>p>The status quo is dull./p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/slow/>You say slow/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>3 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/software-crafting/>Software Crafting/a>/span>/div>p>Ive been told I was going slow in every project I ever participated in./p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/fear/>Fear/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>3 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/random-thoughts/>Random Thoughts/a>/span>/div>p>In theory, theory and practice are the same. In practice, they are not./p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/goal-of-software-development/>The goal of software development/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>3 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/software-crafting/>Software Crafting/a>/span>/div>p>Why would anyone give money to me to type weird stuff on a computer?/p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/shoe-factory-build-software/>Ron, the shoemaker/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>5 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/agile/>Agile/a>/span>/div>p>You either make shoes or you build software./p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/back-to-basics/>Back to Basics/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>3 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/software-crafting/>Software Crafting/a>, a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/agile/>Agile/a>/span>/div>p>Sometimes we face hard choices, where theres no clear path or direction. Actually, we might not even have a clear goal./p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/small-increment/>A small increment/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>3 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/agile/>Agile/a>/span>/div>p>Someone was pleased with us last week./p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/power-to-the-teams/>All power to the Teams/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>3 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/random-thoughts/>Random Thoughts/a>/span>/div>p>Some random thoughts about software development teams/p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/write-unit-tests/>"But, wait. So you don't write unit tests?"/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>3 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/testing/>Testing/a>/span>/div>p>Recently Ive been asked how I approach the unit vs. integration vs. e2e debate./p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/beware-feedback-loops/>Beware the feedback loop/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>3 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/software-crafting/>Software Crafting/a>, a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/agile/>Agile/a>/span>/div>p>I know, I know. Feedback loops rock the stage. But./p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/testing-is-hard/>I know testing is important, but/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>2 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/testing/>Testing/a>/span>/div>p>But but but./p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/feedback-loops/>It's all about feedback loops/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>3 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/software-crafting/>Software Crafting/a>, a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/agile/>Agile/a>, a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/testing/>Testing/a>/span>/div>p>What if everything in software development was about creating feedback loops?/p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/rethinking-agile/>Rethinking Agile... for all business?/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>3 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/agile/>Agile/a>/span>/div>p>/p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/learning-testing/>I became interested in something. This is how I learned about it./a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>3 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/testing/>Testing/a>, a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/random-thoughts/>Random Thoughts/a>/span>/div>p>I’ve been focusing on testing for the last few months. Here’s a non-compelling list of tools to learn about it./p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/frontend-testing-code-consumers/>Front-end Testing and a tale of three users/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>5 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/testing/>Testing/a>, a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/javascript/>Javascript/a>/span>/div>p>How should we think about UI components when testing them?/p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/jscamp-bcn-2019/>JSCamp 2019 was not about JavaScript/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>3 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/events/>Events/a>, a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/javascript/>Javascript/a>/span>/div>p>And that was a good thing./p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/ways-telling-problem-oriented/>Three ways of telling if you are not problem-oriented/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>3 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/product-management/>Product Management/a>/span>/div>p>Are you solving problems or just developing software?/p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/culture-of-testing/>Creating a culture of testing/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>4 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/testing/>Testing/a>/span>/div>p>Let’s say you are sold on the idea of testing. You know it’s important, but you find it hard to sell it to your team, your managers, your colleagues. Why is that?/p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/testing-api-calls/>Testing API calls in Vue applications/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>5 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/testing/>Testing/a>, a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/vue/>Vue/a>, a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/javascript/>Javascript/a>/span>/div>p>...or how to test async behavior using Vue Testing Library./p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/talk-tips/>Are you preparing a talk? Here, take this uncommon tip/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>3 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/leadership/>Leadership/a>/span>/div>p>/p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/goodbye-medium/>Goodbye, Medium/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>4 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/random-thoughts/>Random Thoughts/a>/span>/div>p>It was about time./p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/company-family/>Your company is not your family/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>3 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/random-thoughts/>Random Thoughts/a>/span>/div>p>And that’s a good thing./p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/techfest-2019/>t3chfest 2019/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>2 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/events/>Events/a>/span>/div>p>t3chfest is one of a kind. It is a tech conference, obviously, but some things make it different from the others./p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/software-engineer-myths/>What are some myths that you believed prior to becoming a software engineer?/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>4 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/software-crafting/>Software Crafting/a>/span>/div>p>So, here’s the list of myths that I believed a long time ago./p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/neural-networks-apocalypse/>Neural networks: The apocalypse is (almost) here/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>4 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/random-thoughts/>Random Thoughts/a>/span>/div>p>AlphaZero has become the ultimate King of the gaming Artificial Intelligences. The algorithm, developed by DeepMind (a.k.a. Google), beat everyone at everything./p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/your-opinion/>Your opinion doesn’t count/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>3 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/random-thoughts/>Random Thoughts/a>/span>/div>p>Ahh, the Internet. You gotta love the Internet./p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/inversion/>Inversion/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>3 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/random-thoughts/>Random Thoughts/a>/span>/div>p>When we think about the future, we tend to focus on things that will likely change. We like progress, shining new things./p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/microsoft-internet-explorer-chromium/>On Microsoft, Internet Explorer, and Chromium/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>4 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/random-thoughts/>Random Thoughts/a>/span>/div>p>Everyone has an opinion about the topic — So why wouldn’t I?/p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/horror-vacui/>Horror Vacui/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>4 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/random-thoughts/>Random Thoughts/a>/span>/div>p>/p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/learning-in-public/>Learning in public/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>3 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/random-thoughts/>Random Thoughts/a>/span>/div>p>/p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/css-important/>CSS: In defense of !important/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>3 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/css/>CSS/a>/span>/div>p>!important isn’t bad and you shouldn’t feel bad — if you know how to use it/p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/senior-developer-meaning/>Senior developer? You Keep Using That Word, I Don’t Think It Means What You Think It Means/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>5 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/leadership/>Leadership/a>/span>/div>p>I’ve been working in the web industry for 10 years now. Does it make me a Senior Developer?/p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/getting-someone-do-something/>Getting someone to do something/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>5 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/leadership/>Leadership/a>/span>/div>p>Have you ever tried to sell something to someone?/p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/agile-is-dead/>Agile is dead/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>3 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/agile/>Agile/a>/span>/div>p>…long live agile?/p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/trivago-javascript-kyle-simpson/>Did I spend a whole week in Trivago learning JavaScript from Kyle Simpson?/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>4 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/javascript/>Javascript/a>, a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/events/>Events/a>/span>/div>p>I did spend a whole week in Trivago learning JavaScript from Kyle Simpson./p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/vue-state-management/>Vue state management from the ground up/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>10 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/javascript/>Javascript/a>, a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/vue/>Vue/a>/span>/div>p>Let’s get some state managed 💃/p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/named-arguments-functions/>Named arguments — Functions that get and return Objects/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>6 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/javascript/>Javascript/a>/span>/div>p>Brought to you by Object destructuring and shorthand property names!/p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/react-callback-props-vue/>Using React-Style Callback Props With Vue: Pros and Cons/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>5 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/javascript/>Javascript/a>/span>/div>p>A prop can take any form, from a simple string or number to a complex object. And even a Function./p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/vue-dynamic-component-registration/>A Vue pattern for idiomatic, performant component registration you might not know about/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>5 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/javascript/>Javascript/a>, a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/vue/>Vue/a>/span>/div>p>…leveraging Vue and Webpack cool features!/p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/jscamp-bcn-2018/>#JSCampBCN 2018 — Recap and learnings/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>5 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/events/>Events/a>, a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/javascript/>Javascript/a>/span>/div>p>#JSCamp2018 was a two-day Javascript-focused conference held in Barcelona. It was great, and I learned a couple of things./p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/agile-open-spain-2018/>Agile Open Spain 2018 (from the trenches)/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>4 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/agile/>Agile/a>, a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/events/>Events/a>/span>/div>p>You are only as good as your team. And my team rocked the AOS./p>/div>div stylemargin-top:3.16rem>h3 stylemargin-bottom:0.395rem>a data-testidpost-list-link href/cool-ux-tools/>Introducing Cool UX Tools 🚀🚀🚀/a>/h3>div stylefont-size:0.80274rem;line-height:1.58rem;font-style:italic>8 min readspan> · a stylebackground-image:none;color:rgba(0, 0, 0, 0.6);text-decoration:underline href/tags/user-experience/>User Experience/a>/span>/div>p>A curated list of 200+ cool resources and tools for developers, UX researchers, designers and project managers./p>/div>/div>/main>div classfull-bleed stylewidth:100vw;margin-left:calc(50% - 50vw);padding:2.37rem 1.185rem;box-shadow:inset 0 -10px 13px rgba(0, 0, 0, 0.05);background:linear-gradient(90deg, rgb(211, 243, 255) 0%, rgb(169, 255, 196) 85%)>div stylemax-width:37.92rem;margin:0 auto>footer stylemargin-top:-8.69rem>form actionhttps://buttondown.email/api/emails/embed-subscribe/afontcu methodpost targetpopupwindow data-testidform stylebackground-color:white;padding:2.37rem;border-radius:0.5rem;box-shadow:rgba(0, 37, 49, 0.05) 0px -7px 20px 0px, rgba(0, 0, 0, 0.05) 0px 3px 11px 1px;font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;width:70%;min-width:310px;margin:0 auto>p>strong>Subscribe to the newsletter/strong> to receive my posts a week earlier, right to your inbox 🚀/p>input typehidden value1 nameembed/>label styledisplay:block;width:100%;margin-bottom:0.395rem fornewsletter-email>Your email:/label>input typeemail stylewidth:100%;background-color:#f1f1f2;border:0;padding:0.395rem 0.79rem;border-radius:4px;margin-bottom:0.79rem nameemail idnewsletter-email/>button classbtn stylepadding:0.395rem 0.79rem>span>Subscribe/span>/button>/form>div styledisplay:flex;align-items:center;margin:2.37rem auto 0;gap:1rem;flex-direction:column;text-align:center;max-width:40ch>div class gatsby-image-wrapper styleposition:relative;overflow:hidden;display:inline-block;width:80px;height:80px;margin-right:0.79rem;margin-bottom:0;min-width:80px;border-radius:100%>img aria-hiddentrue srcdata:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAMEBf/EABUBAQEAAAAAAAAAAAAAAAAAAAID/9oADAMBAAIQAxAAAAHjWtIrEKi4QgC//8QAGhAAAwEBAQEAAAAAAAAAAAAAAQIDABIiMv/aAAgBAQABBQJgeqTCprD3V+pYEjN87//EABYRAQEBAAAAAAAAAAAAAAAAAAEgMf/aAAgBAwEBPwFNj//EABcRAQADAAAAAAAAAAAAAAAAAAECESD/2gAIAQIBAT8Bi2GP/8QAGxAAAQQDAAAAAAAAAAAAAAAAEAABESECElH/2gAIAQEABj8ChTNh9eWsRR//xAAaEAEBAAMBAQAAAAAAAAAAAAARAQAQITFB/9oACAEBAAE/IVBSUwsuoLomrwmU9A/dd2su3rX/2gAMAwEAAgADAAAAEI/IfP/EABYRAQEBAAAAAAAAAAAAAAAAAAEQEf/aAAgBAwEBPxABjXQn/8QAFxEBAQEBAAAAAAAAAAAAAAAAARARMf/aAAgBAgEBPxBUTDs//8QAHxABAAEEAQUAAAAAAAAAAAAAAREAECExUUFhcYHw/9oACAEBAAE/EIUACQ0tDIwQI997SLENwkdeYrUgaB+bMSTnhrKjAyHQt//Z titleHey, this is me! :D altAdrià Fontcuberta styleposition:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:1;transition-delay:500ms;border-radius:50%;margin-bottom:0/>noscript>picture>source srcset/static/171f384a34e74dd91c6d8e6d705409f6/a8ad2/profile-pic.jpg 1x />img loadinglazy width180 height180 srcset/static/171f384a34e74dd91c6d8e6d705409f6/a8ad2/profile-pic.jpg 1x src/static/171f384a34e74dd91c6d8e6d705409f6/a8ad2/profile-pic.jpg altAdrià Fontcuberta titleHey, this is me! :D styleposition:absolute;top:0;left:0;opacity:1;width:100%;height:100%;object-fit:cover;object-position:center/>/picture>/noscript>/div>div>Find me on!-- --> a target_blank relnoopener noreferrer titleTwitter hrefhttps://twitter.com/afontq>Twitter/a>,!-- --> a target_blank relnoopener noreferrer titleGithub hrefhttps://github.com/afontcu>GitHub/a>,!-- --> a target_blank relnoopener noreferrer titleInstagram hrefhttps://www.linkedin.com/in/adrifontcu/>LinkedIn/a>.br/>I also collect!-- --> a target_blank relnoopener noreferrer titleMedium hrefhttps://github.com/afontcu/awesome-learning>awesome/a> !-- -->links,!-- --> a target_blank relnoopener noreferrer titleNoti.st hrefhttps://noti.st/afontcu>speak here and there/a>, and!-- --> a target_blank relnoopener noreferrer titleNewsletter hrefhttps://buttondown.email/afontcu>write a newsletter/a>./div>/div>/footer>/div>/div>/div>/div>div idgatsby-announcer styleposition:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0 aria-liveassertive aria-atomictrue>/div>/div>script> if(true) { (function(i,s,o,g,r,a,m){iGoogleAnalyticsObjectr;irir||function(){ (ir.qir.q||).push(arguments)},ir.l1*new Date();as.createElement(o), ms.getElementsByTagName(o)0;a.async1;a.srcg;m.parentNode.insertBefore(a,m) })(window,document,script,https://www.google-analytics.com/analytics.js,ga); } if (typeof ga function) { ga(create, UA-139198326-1, auto, {}); }/script>script idgatsby-script-loader>/*!CDATA*/window.pagePath/;/*>*//script>script idgatsby-chunk-mapping>/*!CDATA*/window.___chunkMapping{app:/app-444225918218b347b822.js,component---node-modules-gatsby-plugin-offline-app-shell-js:/component---node-modules-gatsby-plugin-offline-app-shell-js-649876e06a6fefb4ceca.js,component---src-pages-404-js:/component---src-pages-404-js-2cca08212042d64a20dd.js,component---src-pages-index-js:/component---src-pages-index-js-755c82c1a5f41ed4b064.js,component---src-pages-tags-js:/component---src-pages-tags-js-9597066f71685bd52182.js,component---src-templates-blog-post-js:/component---src-templates-blog-post-js-798b0fdce4ab90c1c80d.js,component---src-templates-tags-js:/component---src-templates-tags-js-1083fa07bc0efdc168f0.js};/*>*//script>script src/webpack-runtime-085881e7e435aa19656d.js async>/script>script src/styles-076c998adbcdbd0eb3e8.js async>/script>script src/framework-20335242239071f73386.js async>/script>script src/app-444225918218b347b822.js async>/script>script src/29107295-7764d2c53d11dce652e7.js async>/script>script src/5d58f5256ff0a28b26858458c3e0d803e5c2b859-356f25a20deffbbdcf38.js async>/script>script src/component---src-pages-index-js-755c82c1a5f41ed4b064.js async>/script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]