Le competenze maturate sono il frutto di anni di studio e di un percorso che, per la stessa natura del settore in cui
opero, può solo prevedere un continuo apprendimento nell'adottare tecnologie sempre all'avanguardia.
Oltre a conoscenze specifiche è possibile suddividere le competenze in 6 macrocategorie:
Lo sviluppo di Software gestionali sono una delle principali attività che ho svolto.
Non mi occupo di software standard ma di prodotti completamente personalizzati,
andando a coprire quella fascia di mercato che spesso non trova un prodotto idoneo alle proprie esigenze.
La realizzazione di un software gestionale personalizzato comporta l'interfacciamento continuo con il Cliente:
procedendo passo passo è possibile valutare i problemi, ricercare le soluzioni ed infine procedere alla realizzazione
del prodotto finale.
In base alle specifiche e alle preferenze, è possibile realizzare applicazioni di tipo client/server (i programmi tradizionali)
ma anche vere e proprie applicazioni web interattive al 100%, grazie all'utilizzo di tecnologie all'avanguardia,
in continua crescita ed al top tra gli attuali linguaggi presenti sul mercato, garantendo anche una notevole
affidabilità nel tempo in termini di crescita e supporto.
Tutti i prodotti sono multipiattaforma, permettendo così il funzionamento
su tutti i principali sistemi operativi (Windows, Mac, Linux) e possono appoggiarsi sui più comuni database
a disposizione.
Negli ultimi anni, con l'avvento di internet e dei servizi fruibili direttamente online, esiste sempre un maggior bisogno di
creare sinergie tra soluzioni differenti (calendari, posta, rubriche, ecc.): gli strumenti utilizzati per sviluppare
i prodotti sono tra i più versatili tra quelli presenti sul mercato, rendendo così più probabile la
fattibilità di realizzare tali collegamenti.
Non esiste un'area di competenza specifica, i software gestionali personalizzati sviluppati in questi anni
vanno dalla gestione del ciclo produttivo di un'azienda, passando per una fatturazione
fino alla gestione della refezione scolastica in un Comune.
Negli ultimi anni ho realizzato app per dispositivi mobili,
su piattaforma Android e iOS.
Le app sono destinate ad uso pubblico (disponibili sul Play Store di Google o App Store di Apple) oppure ad uso privato per specifiche
necessità del Cliente, per essere integrate in processi produttivi esistenti. Nel secondo caso troviamo la piattaforma Android
più versatile, in quanto si possono reperire sul mercato un numero maggiore di dispositivi e ideali alla tipologia di ambiente in cui
andranno ad operare (magazzini, ambienti industriali, uffici, ecc.).
Le app possono essere realizzate attraverso il linguaggio nativo
(Android SDK, Swift / Objective-C) oppure attraverso linguaggi multipiattaforma:
questo permette di scrivere una sola volta il codice e trasformarlo in 2 app distinte (una per piattaforma), con una riduzione enorme
dei costi di realizzazione. Tuttavia le app hanno alcune limitazioni e non hanno le stesse performance rispetto
a quelle realizzate con i linguaggi nativi.
Insieme all'app di solito va realizzata anche la parte di backend lato server,
con cui bisogna interfacciarsi per la condivisione dei dati con l'unità centrale.
Questa piccola area di mercato riguarda sempre software 100% personalizzato che non trova
una soluzione già presente sul mercato.
Data la particolarità l'approccio iniziale è trovare una soluzione ad un problema: se non la troviamo tra quanto già disponibile
si valuta la realizzazione di un prodotto ad-hoc, se necessario inventando un protocollo di comunicazione proprietario.
Ad un servizio - demone spesso corrisponde anche la realizzazione dell'applicazione client
che si deve collegare.
Tutta la comunicazione avviene rispettando tutti i requisiti di sicurezza che si trovano anche nei prodotti standard, attraverso
la cifratura delle comunicazioni ed altre soluzioni idonee a tali scopi.
A seconda delle specifiche fornite dai Clienti si realizzano siti web dinamici:
sono l'opposto dei siti statici, ovvero tutti quei siti in cui possono variare una parte dei contenuti.
Solitamente i dati che variano sono all'interno di un Database e vengono gestiti direttamente dal Cliente.
Basti pensare ad un catalogo online o ad un sito di e-commerce, i cui prodotti possono
essere gestiti attraverso un'area di amministrazione ad accesso riservato.
Una volta completato il sito web il Cliente diventa autonomo: è stata creata tutta l'infrastruttura che permette
autonomamente di gestire il catalogo o negozio online.
A seconda delle specifiche può essere valutato l'utilizzo di piattaforme preesistenti (Wordpress, Moodle, Prestashop, OpenCart, ecc.)
oppure realizzare tutto da zero per ottimizzare la presentazione
dei contenuti, delle performance, diminuendo considerevolmente le possibilità di imbattersi
in falle di sicurezza: se non aggiornate tempestivamente possono causare spiacevoli malfunzionamenti.
Inoltre questo garantisce una maggiore libertà di manovra altrimenti non disponibile
e che nel tempo potrebbe venire a mancare (magari di fronte a particolari richieste di implementazione
provenienti dal Cliente stesso).
Gli strumenti di sviluppo utilizzati permettono di ospitare i siti web presso tutti i principali mantainer;
solo in casi particolari, di fronte alla realizzazione di siti web di una certa dimensione e caratteristiche
(quindi sviluppati adottando strumenti differenti), può diventare necessario ospitare il sito in un ambiente
dedicato e quindi più performante, oppure che necessita di scalabilità orizzontale e/o verticale.
Tengo a precisare che non mi occupo di Web Design e tantomeno di SEO, Solitamente realizzo il sito web nel suo complesso:
con la parte grafica ed i contenuti con criteri che rispettino i più comuni standard per indicizzare al meglio il sito web,
ma di fronte a esigenze specifiche in questi ambiti collaboriamo direttamente con aziende specializzate nel settore.
Fin dalle prime esperienze ho iniziato ad utilizzare le distribuzioni Linux,
per svolgere qualsiasi genere di attività sia a livello client che server.
Questa conoscenza è stata messo al servizio dei Clienti, che possono avere una rete composta da pochi
client (piccole aziende) oppure una sala server (medie, grandi aziende o enti pubblici).
Negli anni ho lavorato su tutte le principali distribuzioni ed ho le mie preferenze (che nel tempo possono variare),
tuttavia mi adeguo di fronte a richieste specifiche dei Clienti.
L'attività in questo ambito si suddivide nella realizzazione di soluzioni pacchettizzate, composte dal server e tutti
i servizi al suo interno già installati e configurati, oppure andando ad operare su macchine
in ambiente di produzione e svolgendo solo attività sistemistiche specifiche.
Anche se i sistemi Linux coprono con successo quasi tutte le esigenze, a volte è necessario
integrare ed interfacciarsi a sistemi operativi differenti come Microsoft Windows Server (per esempio inserirsi
all'interno di un dominio Active Directory).
La conoscenza delle reti e le problematiche che si possono affrontare nella realizzazione di un progetto
in questo ambito sono un tassello fondamentale per la ricerca della soluzione più idonea.
Quando sono in studio la realizzazione di software di medio-grandi dimensioni, dove vengono destinati
budget importanti, può accadere che un'azienda commissioni ad un consulente terzo la redazione di un'analisi
per definire nel dettaglio tutte le procedure che dovrà avere il prodotto finale.
Questo permette alle parti di sapere nel dettaglio cosa deve essere realizzato: per fugare la maggior parte dei
problemi di comunicazione, definendo in modo più analitico e preciso i costi ed i tempi di consegna.
Posseggo tutto il know how necessario per la realizzazione di questa particolare attività, in conformità
con tutti gli standard ad oggi conosciuti ed utilizzati.
Inoltre, durante la nostra attività quotidiana, abbiamo maturato specifiche conoscenze nelle seguenti aree:
Ormai la videosorveglianza è diventata un prodotto per tutti e troviamo sul
mercato soluzioni di ogni genere per tutti i target di prezzo.
Questo però fino a qualche anno fa non era possibile, soluzioni confezionate come quelle di oggi non esistevano
e la domanda di mercato era relativamente bassa, suscitando poco interesse anche da parte dell'offerta.
In quel periodo mi sono confrontati, per la prima volta, con progetti di medio-grandi dimensioni di questo tipo.
Da allora, dal punto di vista software, a parte nuovi e più efficienti codec audio e video,
non esiste niente di così innovativo a livello strutturale che possa in qualche modo
rendere obsoleto quanto appreso allora. Le vere innovazioni, almeno per ora, non sono sempre così affidabili
o sono vincolate a requisiti specifici; in ogni caso non sono altrettanto accessibili.
A livello hardware le maggiori potenze di calcolo disponibili (per manipolare l'audio ed il video la potenza di
calcolo è fondamentale), telecamere con maggiori funzionalità (scaricando dai server parte dei calcoli)
e reti più efficienti hanno reso la videosorveglianza digitale facilmente adottabile, eliminando
parte dei problemi più gravi che potevano arrivare a compromettere il funzionamento del sistema stesso.
Collaborando con altre aziende mi sono spesso trovati ad integrare, lato Software, i sistemi di videosorveglianza
digitale con sistemi di domotica al fine di creare un'unica interfaccia per
la supervisione ed il controllo.
Negli anni, lavorando con una certa tipologia di Clientela, interessata ai sistemi di supervisione e controllo, ho acquisito conoscenze dentro a questo settore che si avvicina molto e si interseca con il mondo industriale.
Negli ultimi anni è nato un nuovo mercato basato su schede elettroniche a basso costo che sono a tutti
gli effetti dei computer su cui girano sistemi operativi, di solito su piattaforma Linux.
La Raspberry Pi rappresenta in questo mercato il prodotto di punta.
I campi di applicazione sono infiniti, l'unico limite è dettato dalla fantasia e, come sempre, dai budget.
Oltre a progetti di natura prettamente informatica, grazie al suo connettore GPIO è possibile agganciare altre schede
elettroniche, per esempio per leggere lo stato di ingressi digitali e/o analogici, aprire e/o chiudere uscite, utilizzare
rilevatori GPS, fare uso di SIM card, agganciare una telecamera, ecc.. Esiste già un fornitissimo mercato di schede elettroniche aggiuntive.
Recentemente ho acquisito specifiche competenze ed una discreta esperienza anche in questo campo.