Spencer Scorcelletti
Ingegnere/Architetto Software, specializzato in sistemi cloud-nativi e distribuiti, con esperienza nel settore fintech
🏠: Bologna, Italia | 🗺️: https://spenc.es | 📫: hello@spenc.es
Esperienza Lavorativa
Credit Karma, Inc., Gennaio 2018 - attuale
Strumenti e Servizi Finanziari - Senior Software Engineer
- Ingegnere/Architetto senior, Credit Karma Savings (backend)
- Responsabile dell'architettura del sistema che rende disponibili conti di risparmio assicurati FDIC a 100 milioni di utenti [1]
- Progettato un sistema cloud-native fault-tolerant in grado di gestire in modo sicuro transazioni finanziarie e notifiche aziendali critiche per frodi, ecc.
- Progettato un microservizio che gestisce le funzionalità bancarie ed espone un'API con cui possono integrarsi altri reparti all'interno dell'azienda
- Costruita una pipeline basata su eventi che consegna in modo affidabile oltre 2 milioni di messaggi critici al giorno con un uptime del 99,9999%
- Priorità data a osservabilità, registrazione e metriche, che hanno portato alla scoperta e alla correzione di bug critici prima del lancio
- Ha guidato un team di ingegneri a passare da zero alla consegna di codice completo di funzionalità entro la fine del Q1 '19 e al lancio per tutti gli utenti entro la fine del Q3 '19
- Creato
thrift-scrubber
, un protocollo di serializzazione personalizzabile che oscura i campi in base alle annotazioni IDL thrift
Enterprise Security Team - Senior Software Engineer
- Responsabile della riscrittura del nostro
session-service
in Scala, che gestisce tutto il traffico SSO di Credit Karma - Ha contribuito alla creazione del nostro
key-service
, un meccanismo di encapsulamento delle chiavi come servizio, ottenendo una sicurezza e una scalabilità notevolmente migliori
Sviluppo Software Indipendente/Viaggi, Marzo 2016 - Settembre 2017
- Acquistato un bus VW e viaggiato prototipando varie idee di mio interesse
- uselesscss: uno strumento di build per rimuovere CSS inutilizzato mediante analisi statica
- readout-markdown: uno strumento lato client per inserire contenuti markdown nella pagina come HTML renderizzato
- craft.js: un'implementazione dell'algoritmo di consenso Raft, su WebRTC
Salesforce, Inc., Gennaio 2014 - Gennaio 2016
Sistemi di Calcolo - Software Engineer MTS
- Ha lavorato su un database in memoria, distribuito e basato su grafi per modellare lo stato dei data center di prossima generazione
- Progettato un metodo per continuare lo sviluppo prima di avere i requisiti del cliente, utilizzando un linguaggio di query intermedio e schemi specificati dal cliente
- Ha contribuito alla progettazione/codifica di MVP utilizzando go, protobuf e la libreria di consenso consul.io incorporata
- L'MVP ha gestito diverse migliaia di richieste al secondo, garantendo una forte coerenza, pur essendo fault-tolerant
- Proprietario di una piattaforma per integrare strumenti interni legacy di sviluppo/bug-tracking con GitHub Enterprise
- Gestita l'autenticazione tra le piattaforme
- Supportato elegantemente come integrare gradualmente i bug tracciati prima di questo sistema, senza richiedere alcun intervento dell'utente
- Ideato un modo per estendere le nuove funzionalità attraverso metadati, per garantire lo sviluppo futuro
- Evangelizzato lo sviluppo Docker
- Consulenza con architetti cloud su pratiche canoniche di sviluppo Docker
- Revisionato codice relativo a Docker al di fuori del team
- Sviluppato materiale didattico per la formazione interna su Docker
Integrazione Continua - Software Engineer MTS
- Ha lavorato su un sistema CI di prossima generazione interno
- Lo scopo del prodotto era la build/test/reporting su tre piattaforme: web (Linux), iOS e Android
- Caratterizzato da risorse di calcolo elastiche a scalabilità automatica, build/test-run altamente parallelizzati, supporto self-service e ambienti di calcolo personalizzati
- Proprietario della progettazione/sviluppo di un sistema di template che consentiva ai team di personalizzare e mantenere i propri ambienti di test come codice in GitHub
- Proprietario di un servizio di calcolo elastico OS X
- Servizi eseguiti su un livello di protocollo di pettegolezzo altamente disponibile, che fornisce primitive di consenso
- API pulita che forniva operazioni CRUD autenticate e parametrizzate sui nodi di calcolo
- Ha ricoperto il ruolo di scrum master del team, ha mentoreggiato uno stagista, ha spostato il team da Vagrant a Docker e ha scritto il sito del team
- Ha sostenuto la creazione di un sito di team come massima priorità, che ha ridotto i tempi di supporto del team di circa il 25%
Service Cloud - Software Engineer AMTS
- Nominato come inventore in un brevetto con stato provvisorio
- Sviluppo full-stack di nuove funzionalità per Salesforce "Knowledge" (prodotto)
- Corretto bug, rifatto il codice vecchio e scritto test di automazione
Intel Corp., Maggio 2012 - Gennaio 2014
PVT Post-Si Validation - Software Engineering Intern (Co-op)
- Proprietario dello sviluppo di gestori di parti robotizzati automatici per la convalida post-silicon
- Sviluppato capacità di ricerca di percorso affidabile, autocalibrazione e gestione delle parti per due robot a 6 assi da oltre 25.000 USD
- Astratto il lavoro in un SDK robotico che ha permesso di utilizzare in modo intercambiabile diverse classi di robot (6 assi, cartesiano, ecc...)
- Integrato con interblocchi, interruttori di emergenza, telecamera di lettura delle parti, ventose e attuatori delle parti per eseguire e registrare i risultati dei test automatizzati in un database
- Scritto un'app GUI per gli ingegneri di test analogici per interfacciarsi, tramite protocollo Modbus, con i controller termici
Salesforce, Inc., Maggio 2013 - Agosto 2013
Service Cloud - Software Engineering Intern
- Scritto la maggior parte dello sviluppo front-end per il redesign di Salesforce Knowledge che è stato distribuito in produzione
- Estrazione di viste di dispositivi separate in un'unica vista reattiva su tutti i dispositivi, che ha fatto risparmiare tempo di sviluppo e manutenzione in futuro
Istruzione
Università del Texas ad Austin, Dicembre 2013
College of Natural Sciences, Laurea in Scienze Informatiche
- Tesi: Utilizzo del DSP per determinare il volume dei contenitori
- Progetti selezionati:
- Variante Multi-Paxos dell'algoritmo Paxos
- L'algoritmo di Bellman-Ford è più veloce di Dijkstra, perché può sfruttare meglio l'architettura della macchina
- Un file system e una memoria virtuale da zero, per un sistema operativo di base
Competenze
Linguaggi di programmazione:
Scala, Swift, Java, golang, C#, Node/JS, C, Python, Perl, x86
Strumenti/Tecnologie:
Architettura Microservizi, SOA, SQL, RPC, GCP, AWS, Thrift, Docker, k8s, Grafana, Splunk,
Aree di lavoro/interesse accademico:
Sistemi distribuiti, progettazione di database, progettazione software, sistemi operativi, specifiche formali
Interessi Personali
Creare cose, VW Bus (1969-1979), motociclette, vela, musica, arte, scrittura e filosofia, natura