About Me

Learn more about my background, skills, and experiences.

Presentazione.


Ho oltre dieci anni di esperienza nel settore privato nella progettazione e utilizzo di sistemi da zero, nella creazione di piccoli database e l'analisi dei dati presenti.
Durante la mia carriera, ho svolto varie attività professionali prima di conseguire il titolo di laurea in Scienze Informatiche nel 2024.
Ho deciso di intraprendere il percorso accademico per formalizzare e approfondire delle mie competenze ottentendo un titolo correlato alla mia esperienza e di ampliendo le mie conoscenze attraverso un metodo accademico.

Attualmente nelle mie competenze c'è la capacità di comprendere i problemi dei requisiti creando algoritmi che interagiscono in modo corretto con strutture dati ottimizzate, scrivendo codice pulito e manutenibile attraverso approcci test-driven se necessario.

Linguaggi di programmazione.


Assembly riscV: progettazione di semplici CPU ISA RISC-V e sviluppo di software a basso livello.
C/C++: creazione di applicazioni backend ad alte prestazioni, tra cui piccoli compilatori.
Python: utilizzo di Django per lo sviluppo rapido di applicazioni web, tensorflow e keras per addestramento reti neurali; np, pandas per calcoli su dataset e jupyter per data visualization e prototipazione.
SQL: progettazione e gestione di database relazionali e analisi dei dati.
Java: implementazione di applicazioni desktop con particolare attenzione alla manutenzione del codice.
Sparql: query RDF utilizzati in progetti di ricerca scientifica.
Bash: scripting di amministrazione del sistema, creazione e implementazioni di nuovi sistemi e configurazioni utili a migliorare il lavoro di gruppo e garantire uptime notevoli per clienti e collaboratori.
Nota: prediligo l’uso di Python e strumenti correlati come django per praticità.

Esperienza Professionale



Progettazione e utilizzo ambienti di sviluppo e produzione: so valutare strumenti software necessari ad un team, se necessario riesco a gestire ambienti cluster iperconvergenti medio/grandi scegliendo a seconda del contesto strumenti di Availability/High Availability utili a risolvere i problemi di sviluppatori e clienti.
Database: ho progettato piccoli database e effettualto la manutenzione di database partizionati (sharding) di grandi dimensioni a servizio di grandi applicazioni web multiutente e multisede.
Analisi dati: rispetto alla normale statistica applicata ai dati per capire come interagire con gli oggetti matematici incontrati, mi è capitato di interagire con il contesto per stimare la bontà di scelte operative e aziendali.
Realizzazione software: Create app web, deskop o a riga di comando nel rispetto dei requisiti aziendali.
Realizzazione strumenti NLP e indagini Web: Create app web, deskop o a riga di comando per risolvere necessità.

Conoscenze di Sistemi Operativi



Unix: Conoscenza avanzata e approfondita dei sistemi operativi Unix [Linux(Suse,Ubuntu,Alpine,Debian)/Opensolaris(deprecato)]. Gestione efficiente di ambienti server e desktop. Gestisco e capisco il funzionamento un'intera infrastruttuttura (compresi nodi di rete) unix. So organizzare software per automatizzazione task (orchestratori) quali ansible e saltstack.
Windows: Conoscenza di base degli strumenti e delle funzionalità di Windows, con competenze focalizzate alla compatibilità con i sistemi Unix.


Metodologie e Strumenti



Scrum e Lavoro di Team: Esperienza nel lavoro in team utilizzando il metodo Scrum, facilitando la collaborazione e la consegna puntuale dei progetti. Prediligo ambienti collaborativi rispetto a quelli competitivi. So gestire un team e rispettare le scadenze potendo scegliere gli strumenti software da poter utilizzare. Ho avuto a che fare con i clienti e so cosa fare per gestirne le richieste adattando i requisiti alla Knowledge interna.
Leadership: Accetto volentieri posizioni di leadership quando le risorse sono adeguate e posso scegliere gli strumenti a disposizione, rispettando le scadenze e garantendo la qualità del lavoro. Nel mio ruolo, mi impegno a promuovere la collaborazione e a favorire un ambiente di lavoro armonioso e produttivo.
Pipeline CI/CD:: Creazione di pipeline di integrazione continua con GitLab (più leggero di jenkins) tramite Docker/LXC/Kubernetes su sistemi basati su Alpine Linux, migliorando l'efficienza del processo di sviluppo e distribuzione.



------------------------------------------------------------------------------------------

Presentation.


I have over ten years of experience in the private sector in designing and using systems from scratch, creating small databases, and analyzing the existing data.
Throughout my career, I have performed various professional activities before obtaining my degree in Computer Science in 2024.
I decided to pursue the academic path to formalize and deepen my skills, obtaining a degree related to my experience and expanding my knowledge through an academic method.

Currently, my skills include the ability to understand requirements problems, creating algorithms that interact correctly with optimized data structures, writing clean and maintainable code through test-driven approaches if necessary.

Programming Languages.


Assembly RISC-V: designing simple RISC-V CPU ISA and developing low-level software.
C/C++: creating high-performance backend applications, including small compilers.
Python: using Django for rapid web application development, TensorFlow and Keras for neural network training; np, pandas for dataset calculations, and Jupyter for data visualization and prototyping.
SQL: designing and managing relational databases and data analysis.
Java: implementing desktop applications with a focus on code maintenance.
Sparql: RDF queries used in scientific research projects.
Bash: system administration scripting, creating and implementing new systems and configurations to improve teamwork and ensure significant uptime for clients and collaborators.
Note: I prefer using Python and related tools like Django for convenience.

Professional Experience



Design and use of development and production environments: I can evaluate the software tools needed for a team, if necessary, I can manage medium/large hyper-converged cluster environments, choosing Availability/High Availability tools depending on the context to solve developers' and clients' problems.
Database: I have designed small databases and maintained large partitioned (sharding) databases serving large multi-user and multi-site web applications.
Data analysis: compared to normal statistics applied to data to understand how to interact with the encountered mathematical objects, I have interacted with the context to estimate the goodness of operational and business choices.
Software creation: Created web, desktop, or command-line apps according to business requirements.
Creation of NLP tools and Web investigations: Created web, desktop, or command-line apps to meet needs.

Operating Systems Knowledge



Unix: Advanced and in-depth knowledge of Unix operating systems [Linux(Suse, Ubuntu, Alpine, Debian)/Opensolaris(deprecated)].
Efficient management of server and desktop environments. I manage and understand the operation of an entire Unix infrastructure (including network nodes). I can organize software for task automation (orchestrators) such as Ansible and SaltStack.
Windows: Basic knowledge of Windows tools and functionalities, with skills focused on compatibility with Unix systems.


Methodologies and Tools



Scrum and Teamwork: Experience working in teams using the Scrum method, facilitating collaboration and timely project delivery. I prefer collaborative environments over competitive ones. I can manage a team and meet deadlines by choosing the software tools to use. I have dealt with clients and know what to do to manage their requests by adapting requirements to internal knowledge.
Leadership: I gladly accept leadership positions when resources are adequate, and I can choose the available tools, meeting deadlines, and ensuring work quality. In my role, I strive to promote collaboration and foster a harmonious and productive work environment.
CI/CD Pipeline: Creating continuous integration pipelines with GitLab (lighter than Jenkins) using Docker/LXC/Kubernetes on Alpine Linux-based systems, improving the efficiency of the development and deployment process.