Esplora la storia, le sfide e le soluzioni ‘dietro al codice’ con il Responsabile del Team di Backend di eCabs Technologies.
Quali sono le principali responsabilità di un sviluppatore di backend nel tuo team?
Lavorando nello sviluppo del backend in eCabs, mi concentro sulla progettazione, sviluppo e manutenzione della logica lato server e dei database. Scrivo codice pulito, efficiente e riutilizzabile per garantire il corretto funzionamento della piattaforma.
La mia routine quotidiana coinvolge la collaborazione, le revisioni del codice, la formazione e l’ottimizzazione per prestazioni, scalabilità e sicurezza. Risolvo anche i problemi e mi mantengo aggiornato sulle tendenze del settore per implementare soluzioni all’avanguardia.
Come contribuisce il lavoro del tuo team al raggiungimento della missione di eCabs e al miglioramento dei servizi di trasporto?
Il lavoro del mio team è fondamentale per il raggiungimento della missione di eCabs. Ci concentriamo sull’infrastruttura di backend, garantendo che sia robusta e allineata agli obiettivi aziendali.
Con la consegna di soluzioni scalabili e di alta qualità, offriamo un’esperienza utente senza soluzione di continuità, rivoluzionando i servizi di trasporto. La nostra enfasi sulla qualità del codice e sull’ottimizzazione delle prestazioni ci posiziona per il successo e la crescita a lungo termine.
Puoi condividere un progetto specifico di cui sei orgoglioso e le sfide affrontate durante la sua implementazione?
Un progetto di cui sono particolarmente orgoglioso è la nostra transizione a multi-tenancy. Inizialmente, le nostre operazioni erano esclusive a Malta, ma questo progetto segnò un significativo passo avanti nella nostra strategia di espansione.
Ci ha permesso di estendere la nostra tecnologia sia in Grecia che in Romania, aprendo numerose possibilità entusiasmanti per il futuro.
Tuttavia, questa transizione è stata accompagnata dalle sue sfide. Adattare la nostra piattaforma al multi-tenancy richiedeva un approccio meticoloso.
Abbiamo dovuto garantire che ogni inquilino potesse accedere ai propri dati e servizi in modo fluido e sicuro, mantenendo prestazioni e affidabilità ottimali in tutte le regioni.
Quali strategie e azioni hai adottato per affrontare queste sfide? Per affrontare queste sfide, abbiamo condotto un’analisi completa della nostra infrastruttura esistente.
Questo ha informato la nostra strategia per implementare il multi-tenancy, che ha coinvolto una quasi completa ridisegnazione della nostra architettura di backend, l’ottimizzazione degli schemi di database e l’istituzione di robusti meccanismi di controllo degli accessi.
Inoltre, abbiamo messo in atto rigorosi protocolli di test per convalidare la scalabilità e la sicurezza del sistema.
L’esecuzione di successo di questa transizione non solo ha ampliato la nostra portata operativa, ma ci ha anche posizionato per ulteriore crescita ed espansione verso nuovi mercati.
Puoi descrivere le tecnologie e gli strumenti che usi nel tuo stack tecnologico per lo sviluppo del backend?
Come sviluppatore di backend, l’arsenale di tecnologie a mia disposizione è vario e adattato per soddisfare le specifiche esigenze della nostra piattaforma. Il nostro stack tecnologico è accuratamente tarato per garantire l’efficienza, la scalabilità e la robustezza dei nostri servizi.
Per i servizi legacy, Java 8 rimane un componente essenziale del nostro set di strumenti, consentendoci di mantenere stabilità e supporto per i sistemi esistenti. Per i servizi più recenti, abbiamo adottato Java 17, sfruttando le sue funzionalità all’avanguardia per costruire soluzioni innovative in linea con le migliori pratiche del settore.
Come assicurate la scalabilità nella vostra piattaforma di mobilità tecnologica, e quale ruolo giocano l’architettura cloud-native e i microservizi in questa scalabilità?
I framework giocano un ruolo centrale nel nostro processo di sviluppo. Spring Boot è un pilastro, consentendo lo sviluppo rapido di applicazioni e l’integrazione senza soluzione di continuità con vari componenti.
Inoltre, abbiamo abbracciato Quarkus, sfruttando la sua architettura leggera e reattiva per migliorare ulteriormente le prestazioni delle nostre applicazioni.
Per quanto riguarda i database, ci affidiamo a Postgres per la sua affidabilità e le robuste funzionalità. Per requisiti di dati più specializzati, abbiamo integrato MongoDB, offrendo flessibilità e scalabilità per casi d’uso specifici. E per la messaggistica e la comunicazione, utilizziamo RabbitMQ per facilitare la comunicazione asincrona tra diverse parti del nostro sistema.
Sfruttiamo anche meccanismi di pubblicazione/sottoscrizione per garantire aggiornamenti e notifiche in tempo reale.
La containerizzazione e l’orchestrazione sono fondamentali per la nostra strategia di distribuzione. Kubernetes è la spina dorsale della nostra orchestrazione dei container, fornendo un ambiente scalabile e resiliente per i nostri servizi.
Questo, in congiunzione con la nostra infrastruttura cloud, è ospitato su Google Cloud Platform (GCP), garantendo un ambiente sicuro e performante per le nostre applicazioni.
In sostanza, il nostro stack tecnologico è una miscela attentamente curata di tecnologie comprovate e soluzioni innovative. Ci consente di offrire una piattaforma ad alte prestazioni mantenendo la flessibilità per adattarci agli standard e alle esigenze in evoluzione del settore.
Come contribuiscono a questa scalabilità l’architettura nativa del cloud e i microservizi?
La scalabilità è fondamentale per la nostra piattaforma tecnologica di mobilità. Adoptiamo un’architettura nativa del cloud e microservizi, che ci consentono di scalare indipendentemente i componenti in base alla domanda.
L’auto-scaling e lo scaling orizzontale garantiscono una gestione senza intoppi dell’incremento dell’attività degli utenti. Test rigorosi e bilanciamento del carico perfezionano le prestazioni. Il nostro team esplora continuamente le nuove tecnologie per potenziare la scalabilità.
Il nostro processo di sviluppo si basa su una collaborazione efficace. Lavorando a stretto contatto con i responsabili del prodotto, i designer, gli sviluppatori frontend e gli sviluppatori mobile, assicuro una chiara comprensione degli obiettivi del progetto. La comunicazione continua, compresi i meeting giornalieri e le revisioni di design, ci mantiene allineati.
Con gli sviluppatori frontend e mobile, stabiliamo un’integrazione senza soluzione di continuità e risolviamo i problemi insieme. La condivisione di conoscenze e la formazione incrociata potenziano ulteriormente la nostra competenza collettiva, portando a soluzioni di alta qualità.
Nel campo in continua evoluzione dello sviluppo software, quali passi intraprendi per rimanere aggiornato sulle tecnologie emergenti e le tendenze del settore?
L’apprendimento continuo è fondamentale nello sviluppo software. Mantenere aggiornate le conoscenze sulle tecnologie emergenti è imperativo.
Nel dinamico campo dello sviluppo software, la compiacenza non è un’opzione. Tenere il passo con le tecnologie emergenti è cruciale.
Recenti avanzamenti come le architetture serverless e l’ampia adozione di Kubernetes hanno ridefinito il modo in cui sviluppiamo e distribuiamo. Questa adattabilità assicura che le nostre soluzioni rimangano all’avanguardia.
Abbracciare i microservizi permette una risposta rapida alle esigenze mutevoli. Un costante focus sull’osservabilità e rigorose misure di sicurezza garantiscono l’affidabilità del sistema e l’integrità dei dati.
L’impegno nell’apprendimento continuo non solo potenzia le nostre capacità, ma porta a soluzioni software innovative ed efficaci.
Nel mercato frenetico e competitivo dei servizi di ride-hailing, sostenere l’innovazione e l’agilità è cruciale. Cerchiamo attivamente il feedback dei clienti e coltiviamo una cultura di sperimentazione.
Le metodologie agili ci consentono di adattarci rapidamente alle esigenze mutevoli. Inoltre, teniamo un occhio vigile sulle tendenze del settore e investiamo nell’apprendimento continuo.
Questo approccio completo garantisce che restiamo all’avanguardia nello sviluppo, rimanendo sia competitivi che reattivi alla nostra base clienti.
Quale consiglio offriresti agli aspiranti sviluppatori di backend che entrano nell’industria della mobilità tecnologica?
Consiglierei agli aspiranti sviluppatori di backend che desiderano entrare nell’industria della mobilità tecnologica di concentrarsi su alcune aree chiave.
Innanzitutto, padroneggiare le tecnologie di base del backend è cruciale. Questo forma la base della tua competenza tecnica.
Inoltre, familiarizzati con le piattaforme cloud come AWS o Google Cloud, poiché sono fondamentali per creare un’infrastruttura scalabile e affidabile.
La comprensione dell’architettura a microservizi è altrettanto importante, poiché consente flessibilità e scalabilità in sistemi complessi.
Le API sono un pilastro nei servizi di mobilità, quindi diventare competenti nel progettare e lavorare con esse è essenziale.
Dato il carattere sensibile dei dati degli utenti, prioritizzare la conoscenza della sicurezza dei dati, della crittografia e delle normative sulla privacy è primario.
Infine, ricorda che l’apprendimento continuo non è negoziabile. L’industria tecnologica è in continua evoluzione, quindi rimanere curiosi e aperti all’adozione di nuovi strumenti e framework è imperativo.
Questa combinazione di competenza tecnica, capacità di risolvere problemi e passione per l’apprendimento aprirà senza dubbio la strada al successo nell’industria della mobilità tecnologica.
Aykan è nato e cresciuto a Tekirdag, in Turchia, ed è lì che ha iniziato il suo percorso nello sviluppo software dopo aver completato una Laurea in Ingegneria Informatica. Dopo aver acquisito qualche anno di preziosa esperienza, ha preso la decisione di trasferirsi a Malta. Attualmente, ricopre il ruolo di sviluppatore backend dedicato e responsabile del team presso eCabs. Fuori dal lavoro, si diletta in musica, provando strumenti come l’armonica, il kalimba e l’ukulele. Viaggiare, soprattutto perdersi in città sconosciute, è uno dei suoi passatempi preferiti.