di Arnout Schuijff
21 set 2021
Ogni tanto, qualcuno del team di Tebi scriverà un articolo in questo spazio. In questo primo post, il Junior Kotlin Developer (e CEO) di Tebi, Arnout Schuijff, condivide un racconto personale della sua missione di aiutare i proprietari di attività indipendenti.
Nel 2012 ho scritto una semplice app di Cassa Digitale (POS) per il mio amico Stef, proprietario di un bar di quartiere. All’epoca Stef registrava ancora le vendite con carta e penna, e il fisco gli aveva dato un avvertimento. Mi offrii di creare un sostituto digitale per il suo quaderno di carta macchiato. Stef non era particolarmente entusiasta all’idea di entrare nell’era digitale, quindi accettò la mia offerta con riluttanza.
Il POS che ne risultò era, direi, “piacevolmente spartano”, ma il bar di Stef — che da allora è stato rilevato da Frits — ci lavora da otto anni. In quel periodo, sono stati necessari alcuni ritocchi (grazie, Pieter B!) e sono emersi solo pochi piccoli problemi. Uno di questi era un singolo conto chiamato “Susana €57,40” che era stato aperto nel 2018 e che, quando si prova a chiuderlo, manda in crash l’intera app. Così Frits lo ha spostato in un angolo e ha spiegato a tutto lo staff che quel conto non andava toccato in nessuna circostanza. Problema risolto.
Nel marzo 2020, ero appena tornato da un soggiorno di tre mesi a Los Angeles quando, come tutti gli altri, mi sono ritrovato all’improvviso a lavorare da casa. Oltre a tutto il lavoro per Adyen, ho deciso di passare alcune tranquille ore serali ad aggiornare quel vecchio POS che avevo scritto otto anni prima, correggendo vecchi bug, semplificando il design e aggiungendo un sistema di contabilità sul back end. Quando parlavo del mio progettino ad altri sviluppatori (Android), inevitabilmente mi chiedevano: lo stai scrivendo in Kotlin? Mi sentivo sempre più in imbarazzo a rispondere no, è in Java, così ho deciso di fare il salto verso Kotlin e diventare quindi uno junior Kotlin developer.
In passato avevo già costruito due versioni di sistemi di contabilità: la prima per Bibit, quando una semplice tabella di stati di pagamento era sfuggita di mano, e la seconda volta per Adyen, dove abbiamo incorporato molte delle lezioni imparate con Bibit, soprattutto per quanto riguarda la scalabilità. Ma questa volta doveva essere piccolo e semplice. Solo l’essenziale. Il primo compito era costruire un mini registro contabile per contabilizzare tutte le vendite. Questa idea di un mini registro si è gradualmente trasformata in ciò che ora chiamo “sottoregistri”: piccoli registri che nascono dinamicamente e ospitano un insieme di scritture per un periodo di tempo arbitrario. Quando un sottoregistro viene chiuso, il saldo risultante viene trasferito a un altro sottoregistro. Per esempio, un sottoregistro che rappresenta una fattura viene chiuso e il suo saldo viene registrato in un sottoregistro che rappresenta una giornata lavorativa. Visto nel suo insieme, il registro generale è composto da uno sciame di sottoregistri che comunicano tramite una piattaforma di streaming, nel nostro caso Kafka. Dico “sciame” perché sono collegati in modo lasco e, pur essendo con stato, sono indipendenti tra loro.
Così, “piccolo e semplice” è diventato un po’ più di questo. Mi sono reso conto che stavo sostanzialmente costruendo un’infrastruttura contabile che poteva servire come base per molti processi aziendali, non solo per un POS al banco. Mi entusiasmo molto quando parlo di questo, a causa di tutte le possibilità incredibili che apre per costruire app leggere che funzionano senza problemi online e offline e restano sincronizzate. Permette di avere registri piccoli quanto una singola fattura fino ad arrivare a registri bancari su larga scala. Questa scalabilità “infinita” si ottiene mantenendo i sottoregistri indipendenti, in modo che possano vivere ovunque e comunicare tramite lo streaming di eventi, creando un’esperienza utente estremamente reattiva. Ma di tutto questo mi piacerebbe parlare in un altro post.
L’altro grande motore, a livello personale, è lavorare insieme a persone che condividono il mio entusiasmo, che mi dicono in faccia quando propongo un’idea senza senso e che siano creative, intelligenti e divertenti. Mi sento fortunato di essere riuscito a coinvolgere in questa avventura i miei talentuosi amici Mazdak, Greta, Rob e Thijs. Questo colorato gruppo di persone spassose condivide tutte la convinzione fondamentale che sia possibile creare un’azienda etica che faccia pagare solo il valore aggiunto, restando allineata agli interessi dei proprietari di attività indipendenti.
Tebi è il nostro tentativo di creare una nuova iterazione della tecnologia per le attività: una singola piattaforma che offra alle attività locali in tutto il mondo tutto ciò di cui hanno bisogno, costruita per e da imprenditori. Tebi sarà gratuita da usare su un singolo dispositivo e a un prezzo ragionevole per più dispositivi. A tempo debito, renderemo il codice sorgente disponibile pubblicamente.
Un passo alla volta però. Oggi, poco più di un anno dopo che ho iniziato a lavorare su queste idee, la prima versione di Tebi è stata messa in funzione nel mio bar di quartiere. Il treno ha lasciato la stazione.
