Software Engineer

  • Tempo Indeterminato
  • Roma

Slack

Il team Datastores di Slack costruisce e gestisce la piattaforma di database che alimenta Slack e sta cercando un Software Engineer su Roma. Scriviamo software per gestire migliaia di host con stato, fornendo diversi petabyte di capacità di database online. Stiamo costruendo una delle piattaforme di database in più rapida crescita al mondo. I nostri database MySQL vengono eseguiti in Vitess. Puoi leggere di più sulla nostra migrazione a Vitess su https://slack.engineering/scaling-datastores-at-slack-with-vitess/

Sfondo

Slack consente alle persone di tutto il mondo di comunicare e collaborare insieme. Team di tutte le dimensioni, dalle più grandi aziende pubbliche del mondo alla più piccola startup, utilizzano Slack per svolgere il lavoro, quindi prendiamo molto sul serio le prestazioni e l’affidabilità. Un assaggio della nostra bilancia:

  • L’utente medio trascorre più di 10 ore connesso e 2,5 ore attivo in Slack ogni singolo giorno
  • Più di 1,5 miliardi di messaggi vengono inviati al mese, metà di quelli al di fuori degli Stati Uniti
  • Ogni giorno vediamo oltre 10 milioni di utenti attivi giornalieri, oltre un miliardo di richieste web e decine di miliardi di query di database.

Per milioni di persone, Slack è lo strumento di comunicazione principale che usano al lavoro tutto il giorno. Si aspettano che sia eccezionalmente affidabile e veloce, sempre.

Infrastrutture a Slack

Operiamo su vasta scala con sistemi che elaborano milioni di eventi al secondo. Il nostro team mantiene e costruisce i livelli inferiori del nostro stack, tra cui:

  • Servizi perimetrali
  • Archivi dati e cache
  • Messaggistica in tempo reale
  • Elaborazione asincrona del lavoro in background

Sappiamo di aver svolto correttamente il nostro lavoro quando nessuno dei nostri utenti pensa a noi. In genere non forniamo nuove funzionalità rivolte agli utenti, ma ci assicuriamo piuttosto che i nostri sistemi siano incredibilmente performanti, altamente disponibili, affidabili e scalabili. In altre parole, Slack funziona perfettamente. L’API e il backend web di Slack sono basati su PHP/Hack, i nostri servizi di backend sono scritti in Java e Go e utilizziamo Vitess come motore di archiviazione. La nostra architettura è in continua evoluzione per gestire milioni di utenti in più. Puoi leggere come abbiamo scalato i nostri datastore con Vitess, come rispondiamo agli incidenti e molto altro sul nostro blog.

Se dovessi unirti a Slack, ecco i tipi di cose che faresti nel corso di una settimana tipo:

  • Gestisci e migliora la nostra ampia infrastruttura di database ad alta disponibilità, utilizzando tecnologie come MySQL e Vitess.
  • Sviluppa strumenti per abilitare funzionalità self-service e di autogestione della nostra infrastruttura di database in modo che altri team possano operare a pieno stack mentre costruiscono rapidamente nuove funzionalità per i nostri clienti.
  • Collabora con i team di ingegneri sulle loro esigenze di archiviazione del database e consigliali durante tutto il ciclo di vita dello sviluppo.
  • Scrivi codice per acquisire le prestazioni del database e crea strumenti e dashboard per fornire informazioni fruibili su quei dati.
  • Partecipa alla nostra rotazione su chiamata e collabora con il nostro team operativo per valutare e risolvere i problemi di produzione.
  • Sostieni le attività di FedRAMP e DoD SRG.

Potresti essere adatto per questo ruolo se:

  • Hanno lavorato in database, ingegneria dell’affidabilità del sito o team di proprietari di infrastrutture con responsabilità crescenti per oltre 7 anni.
  • Avere esperienza professionale con Python, Ruby, Go o Java
  • Ha gestito almeno un sistema di archiviazione dati distribuito, su larga scala e in un ambiente di squadra. Alcuni esempi includono: un database relazionale come MySQL, un motore di ricerca come Solr o un bus di messaggi in streaming come Kafka.
  • Software server distribuito su Linux e quindi gestito su larga scala. Hai eseguito il debug dei suoi problemi, analizzato e ottimizzato le sue prestazioni.
  • Hanno familiarità con gli strumenti di gestione della configurazione/automazione della distribuzione come Chef, Ansible, Puppet o Terraform.
  • Avere esperienza nell’utilizzo di infrastrutture cloud, in particolare AWS.
  • Sono un comunicatore molto forte. Sei entusiasta di spiegare concetti tecnici complessi e condividere le tue conoscenze con un pubblico diverso.
  • Scrivi codice che possa essere facilmente compreso da altri con un occhio alla chiarezza e alla manutenibilità.
  • Sono curioso di sapere come funzionano le cose; quando si rompono sei ansioso e in grado di aiutare a risolverli.

Per candidarti a questo lavoro visita salesforce.wd1.myworkdayjobs.com.

→ Vuoi di più? Iscriviti al Canale Telegram di Posizioni Aperte!