Senior Back-End Developer

Senior Back-End Developer

Il linguaggio non è un problema, conta l’esperienza!

Parma, Italy
35k-42k €

Posizione
Stiamo cercando uno sviluppatore backend senior, con almeno un decennio di esperienza.
Il nostro candidato ideale conosce le buone pratiche: TDD, C.I., versionamento, programmazione a oggetti, design patterns ed ultimo ma non meno importante: ha esperienza nel refactoring.

Come lavoriamo
Il nostro team da primaria importanza al processo ed in maniera sempre più ponderale sta sviluppando la capacità di accogliere collaboratori senza istituire dettami sui linguaggi e le tecnologie utilizzate. (Hai capito bene! Stiamo veramente microserviziando la nostra infrastruttura). 

Stiamo affrontando una transizione verso le metodologie agili, coprendo con il collaudo integrato tutta il nostro software legacy estraendo nel contempo valore di business tramite la trasformazione di vari elementi di dominio in microservizi

Il nostro flusso di sviluppo è strutturato nelle seguenti fasi: 

  • raccogliere i requisiti del business
  • scrivere le user stories (eventualmente proseguendo nello slicing delle stesse)
  • scrivere la documentazione delle api e dei comandi (usiamo come format flavour json-api e open-api per la scrittura della documentazione)
  •  scrivere i test
  • aprire un feature branch (usiamo git flow)
  • deploy automatico in stage
  • beta testing
  • rilascio in produzione a fine ciclo di sviluppo

Pratichiamo la TDD, e abbiamo messo la maggior parte dei nostri progetti sotto continuous integration.

D’altra parte abbiamo a che fare con un considerevole debito tecnico, in alcune parti della nostra infrastruttura, che stiamo fattorizzando pazientemente attraverso la tecnica dell’"application strangling" e "microserviziando" il  microserviziabile.

Per questo motivo necessitiamo l’apertura mentale da parte dei nostri futuri collaboratori ad approcciare diversi linguaggi e tecnologie.

Ovviamente pratichiamo l’extreme programming, ciò vuol dire che verrai guidato dai membri del team più esperti attraverso il pair programming e puntuali code review , al fine di imparare come gestire nuove tecnologie e linguaggi che ancora non conosci.

Un’altra nostra caratteristica è quella di assegnare dei progetti di tipo “green field” alle nostre nuove entry, di modo che possano iniziare con la marcia giusta a contribuire fin da subito realizzando componenti fondamentali della nostra architettura basata su microservizi.

Stack tecnologico
Attualmente il nostro stack tecnologico comprende:

- php (un framework quasi adeguato alla psr-17 scritto in casa e testato)
- java (spring boot)
- C#,
- javascript (aurelia framework)
- docker
- docker compose (per il provisioning in locale dei progetti)
- AWS codebuild, codedeploy, cloudformation, beanstalk, lambda, s3, ses, sns, sqs, cloudwatch
- mysql
- json-api
- open-api for documentation
- … e altre cose.

Stiamo inoltre valutando l’introduzione del linguaggio RUST, di Elasticsearch, del formato di interscambio protobuf e dell’orchestratore di container kubernetes.

Cosa facciamo
La nostra azienda è leader in un dominio di business estremamente complesso.

Il nostro core business è quello di organizzare e consegnare quantità massive di messaggi attraverso un significativo numero di canali e di offrire queste capacità attraverso una suite di prodotti orientati alle piccole e medie imprese.

(Fondamentalmente per non usare paroloni, mandiamo email, fax, posta cartacea tradizionale e qualcos’altro).

Abbiamo recentemente sviluppato un progetto startup, nostro brevetto registrato, che consente ai nostri utenti di mandare messaggi real-time certificati attraverso marca temporale.

Inoltre offriamo una suite di servizi e prodotti per il business relativi all’assistenza fiscale.

Cosa devi aspettarti
I seguenti task potrebbero essere quelli che descriveranno la tua routine giornaliera con noi:

- Definire i requisiti e le storie agili con i tuoi colleghi e il managament
- Progettare microservizi che espongono API, curandoli dall’aspetto dev-ops alla fornitura
- Rifattorizzare progressivamente alcuni monoliti legacy trasfromandoli in una serie di microservizi testati e di qualità
- Fare lo standup mattutino con il tuo team
- Segnare i tuoi progressi sul kanban e curarlo dettagliando le storie
- Scrivere test di integrazione ed unitari
- Scrivere il minimo codice richiesto per adempire alle funzionalità stabilite
- Proporre e studiare nuove tecnologie (possibilmente finendo col padroneggiarle e condividerle con il resto del team)
- Tornare a casa in orario senza avere paura delle conseguenze del deploy dell’ultimo venerdì
- Seguire e fare da tutor ai tuoi colleghi durante la nostra transizione verso l’agile, facendoti ambasciatore delle nuove pratiche

Detto questo, la nostra più importante aspettativa è quella di trovare persone capaci di accettare la presenza di codice legacy e di comprendere che la manutenzione e il cambiamento richiedono i giusti tempi, giacché ci troviamo di fronte una serie di servizi consolidati che portano valore a migliaia di clienti ogni giorni.

Per noi il candidato migliore è quello capace di accettare di scrivere codice non ottimale, ma bensì ogni giorno migliore, giacché capiamo ed apprendiamo giorno per giorno le arti magiche alla base del refactoring :)

Il presente annuncio è rivolto ad entrambi i sessi, ai sensi delle leggi 903/77 e 125/91, e a persone di tutte le età e tutte le nazionalità, ai sensi dei decreti legislativi 215/03 e 216/03.

Inviare il CV a selezione@multidialogo.it