Vuoi entrare a far parte di uno dei team di sviluppo di Kinsta? Ecco alcune cose importanti che vogliamo condividere con te!

Su Cosa Lavora lo Sviluppo

  • MyKinsta è il nostro principale prodotto rivolto ai clienti. Non esitare a programmare una demo per scoprire esattamente cos’è e come funziona. In breve, fornisce ai nostri clienti un’interfaccia per gestire le impostazioni dei loro siti web come cache, versione di PHP, CDN, DNS, utenti multipli, statistiche, ecc.
  • DevKinsta è una suite di sviluppo locale. Si può scaricare gratuitamente e provarla subito! Permette di creare siti in locale su Linux, Windows e macOS e di inviarli agli ambienti di staging di Kinsta.
  • Abbiamo il nostro sistema di affiliazione, che permette di registrarsi come affiliati di Kinsta e creare link di referral per l’assegnazione delle vendite. Gli affiliati possono guadagnare sia commissioni una tantum che ricorrenti.
  • Uno dei nostri obiettivi è automatizzare tutto il possibile per tutti i nostri team. A tal fine, abbiamo creato e manteniamo numerosi strumenti interni per i vari team. Tra questi, gli strumenti per i super-amministratori, come scorciatoie per le azioni più complesse, log dettagliati ma leggibili, uno strumento che effettua il ping di tutti i siti della nostra infrastruttura per garantirne il funzionamento regolare, una piattaforma di supporto dedicata per i team dei nostri clienti e molto altro.

Lo Stack di Sviluppo

Manteniamo i nostri strumenti aggiornati e il più possibile omogenei.

  • Come linguaggio di backend utilizziamo Node.js.
  • Utilizziamo React per la creazione di interfacce utente.
  • TypeScript è il nostro linguaggio preferito.
  • GraphQL è il nostro linguaggio di interrogazione implementato tramite Apollo.
  • Utilizziamo sia database NoSQL che SQL.
  • Per i test utilizziamo Jest.
  • Per i test dei componenti e la documentazione utilizziamo Storybook.
  • Per i test delle schermate utilizziamo Chromatic.
  • Per gestire i test end-to-end automatizzati di Nightwatch utilizziamo Qase.

L’Ecosistema di Sviluppo

Lo sviluppo non avviene nel vuoto. Tutti i reparti sono interconnessi e, sebbene alcuni siano più vicini ai processi quotidiani di sviluppo rispetto ad altri, lavoriamo come un tutt’uno.

  • Abbiamo un team di Product Design dedicato che si occupa di pre-pianificazione, ricerca, test degli utenti, determinazione della portata e progettazione UX/UI delle funzionalità. I membri del team comprendono e lavorano con la nostra libreria di componenti e collaborano con lo sviluppo per mantenerla aggiornata.
  • Il nostro team QA ha il compito di gestire i test e di garantire che il lavoro dello sviluppo rifletta le aspettative della fase di pianificazione. Crediamo fermamente che lo scopo del QA non sia quello di essere una risorsa per lo sviluppo pigro per scaricare i test. Il QA coglierà i bug come prodotto secondario del suo lavoro, ma ci aspettiamo che gli sviluppatori si assicurino che il codice inviato al QA funzioni correttamente.
  • Il nostro team Engineering DevOps è responsabile della coerenza dei collegamenti della nostra infrastruttura server in MyKinsta. Consiglia il team di sviluppo nella pianificazione, prepara il lavoro che deve essere fatto sui server e crea gli script Ansible (o altri) che devono essere attivati.
  • Il nostro team Engineering SysOps aiuterà il team di sviluppo a creare istanze di dimensioni adeguate per ospitare le applicazioni e si occuperà della manutenzione delle macchine necessarie per un funzionamento regolare.
  • I team Clienti e Marketing sono fondamentali per il successo delle nostre operazioni. Ogni cambiamento che apportiamo si ripercuote pesantemente su questi reparti. Cerchiamo di coinvolgere questi team durante la pianificazione, li aggiorniamo durante la costruzione e ci assicuriamo che ricevano tutte le informazioni e la formazione necessarie prima del lancio.
  • Anche altri team e dipartimenti, come quello finanziario, quello operativo e altri ancora, possono essere coinvolti in progetti come l’automazione degli strumenti, la gestione degli aspetti di fatturazione della nostra infrastruttura e così via.

Siamo fieri dell’atmosfera collaborativa che abbiamo creato. I membri del team sono tenuti a comprendere quanto sia importante soddisfare le esigenze di ciascun team. Gli sviluppatori capiscono che i team Marketing e Clienti hanno bisogno di un preavviso e forse di un congelamento dell’interfaccia utente prima del rilascio, così come questi team capiscono la necessità di revisioni e test delle pubbliche relazioni che potrebbero far slittare le nostre tempistiche.

Come è Organizzato lo Sviluppo

Kinsta è un’azienda agile. Non abbiamo paura dei cambiamenti, anzi li cerchiamo attivamente per migliorare continuamente le nostre prestazioni. Per questo motivo, l’organizzazione dello sviluppo è in costante evoluzione con la nostra crescita.

I progetti sono la nostra principale “unità” organizzativa. Gli sviluppatori vengono assegnati ai progetti e viene designato un Project Owner, che di solito è egli stesso uno sviluppatore. Il Project Owner è responsabile della traduzione dell’idea in una funzionalità. A seconda del tipo di progetto, il proprietario avrà un certo grado di controllo sulla funzionalità stessa, sulla sua portata, sulla pianificazione, ecc. Il proprietario del progetto è anche responsabile di garantire una comunicazione fluida e tempestiva tra tutti i reparti.

Utilizziamo Jira per organizzare le nostre attività e GitHub per gestire il nostro codice e le attività associate, come le revisioni PR.

Abbiamo numerosi strumenti integrati nei nostri repository GitHub che ci aiutano durante il flusso di sviluppo e creano un luogo di forte collaborazione, non solo tra gli sviluppatori ma anche con altri team:

  • Codeship e Buddy.works per l’esecuzione di test unitari
  • Chromatic per la creazione automatica di Storybook e per l’esecuzione di test sulle schermate
  • Danger JS per l’esecuzione di controlli personalizzati per garantire la coerenza dello stile del codice e delle descrizioni delle pubbliche relazioni
  • Un servizio personalizzato che crea automaticamente un ambiente di test basato su Docker per ogni PR. Questo è utile per i revisori del codice, il team QA e il team Product Design, che possono discutere delle modifiche in un unico luogo.

Dai un’occhiata alle nostre attuali offerte di lavoro!