Skip to content

Instantly share code, notes, and snippets.

View fes300's full-sized avatar

Federico Sordillo fes300

View GitHub Profile
@fes300
fes300 / resume.json
Last active November 16, 2023 09:28
{
"$schema": "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json",
"basics": {
"name": "Federico Sordillo",
"label": "functional programmer and Technical PM",
"image": "https://gravatar.com/avatar/707b5ad975ef9559b804217229bf35dd2448d62067133e5cacf5aa62fc0dd69a?s=200",
"email": "federicosordillomail@gmail.com",
"phone": "+393402750846",
"url": "http://federicosordillo.com",
"summary": "Holder of strong opinions weakly held.\n\nI have worked on the full spectrum of web technologies, both as a software engineer and as a Technical Project Manager, leading small teams dealing with complex domains.\n\nI prefer strongly typed languages and have a vertical in TypeScript, although in the last few years I have mainly worked on large distributed systems with Go.\n\nWorking in all kinds of environments, from big multinationals to smaller tech companies, I experienced firsthand what makes a product successful and the importance of good communication and efficient
const getDocsByRole = (
role: string
): ReaderTaskEither<DocsRequestStrict, t.Errors, Document[]> =>
ask<DocsRequestStrict, Errors>().chain(({ limit }) =>
fromTaskEither(
new TaskEither(
new Task(() =>
db
.collection("documents")
.where("roles", "array-contains", role)
overlap :: Int -> Int -> Int -> Int -> Boolean
overlap a b c d = (c < b && d > a) || (d > a && c < b)
instance tupleInt :: Semigroup IntTuple where
append (IntTuple (Tuple a b)) (IntTuple (Tuple c d)) =
if (overlap a b c d)
then IntTuple $ Tuple (min a c) (max b d)
else IntTuple $ Tuple a b
sanitizeTupleList' :: List IntTuple -> List IntTuple
@fes300
fes300 / reactSnippet.json
Last active October 16, 2018 15:08
snippet for VSCode
{
"Create basic React class": {
"prefix": "rcc",
"body": [
"import * as React from 'react'",
"",
"type Props = {}",
"",
"type State = {}",
"",