1 - Dati anagrafici

Nome: Fabrizio Caldarelli
Data di nascita: 06/06/1980
Email: fabriziocaldarelli@negusweb.it

2 - Conoscenze informatiche

Le mie conoscenze informatiche spaziano su sistemi operativi, linguaggi di programmazione per il web, linguaggi di programmazione per il desktop e pacchetti software sia applicativi che server.

3 - Sistemi Operativi

WINDOWS: sistema operativo conosciuto fin dalle prime versioni, su cui ho affrontato le esperienze lavorative degli ultimi 8 anni, sia in ambito client che in ambito server (windows NT, windows 2000 server, windows 2003 server); piena capacità di risoluzione di problematiche quotidiane, sia per quanto riguarda l'hardware che per il software, sia per quanto riguarda la manutenzione ordinaria che la messa in sicurezza dei servizi e degli applicativi. Esperienza lavorativa di 10 anni.

LINUX: sistema operativo che utilizzo completamente da 6 anni a questa parte sia in ambito workstation che in ambito server. Su piattaforma linux svolgo la mia attività di sistemista e programmatore web. Completa autonomia nell'installazione del sistema operativo e della sua ottimizzazione per l'hardware in uso (ricompilazione del kernel), nonchè capacità di amministrazione e gestione dello stesso. La distribuzione che utilizzo ed installo è Debian. Esperienza lavorativa di 8 anni.

SYMBIAN: Sistema operativo utilizzato nei dispositivi cellulari Nokia (e da tutti quelli facenti parte del consorzio Symbian) sul quale programmo in C++ applicazioni console e gui. Particolare familiarizzazione con la strutturazione di programmi a finestre, con la gestione delle viste attraverso il pattern MVC. Esperienza lavorativa di 4 anni.

WINDOWS MOBILE: Esperienza lavorativa di 12 mesi.

IPHONE: Esperienza lavorativa di 6 mesi.

ANDROID: Esperienza lavorativa di 3 mesi.

4 - Linguaggi di programmazione per il Desktop

VISUAL BASIC: conoscenza completa ed approfondita del linguaggio e della quasi totalità dei suoi componenti, lo considero il linguaggio di programmazione che conosco più a fondo visto l'ampio ventaglio di tipologie di programmi che ho realizzato: a partire da gestionali, per finire con programmi di regia per emittenti radiofoniche. Approfondita la gestione degli archivi, prima con DAO e poi con ADO (su db Access, Paradox, MySQL e SQL Server); affrontata la comunicazione con dispositivi esterni (apparati satellitari, cellulari GSM, modem GSM) tramite porta seriale RS232 e servizi server/client tramite rete ethernet. Esperienza lavorativa di 8 anni.

C/C++: utilizzato in ambiente windows per la realizzazione di applicazioni multimediali (win32 ed mfc) sviluppate direttamente con le DirectX (DirectShow in ambito musicale) per avere il pieno controllo dell'hardware a disposizione in ambienti di mixaggio. Approfondito ed applicato l'interfacciamento con oggetti COM, sviluppo ed integrazione delle applicazioni con DLL. A tal proposito ho sviluppato una regia per emittenti radiofoniche con altrettanto player ad hoc. Inoltre ho sviluppato un registratore di sorgente audio che salva direttamente in formato MP3 (tramite lame). Da circa 6 mesi a questa parte lo utilizzo anche per lo sviluppo di applicazioni su sistema operativo Symbian (smartphone Nokia), sia a finestre che a console. E' il linguaggio che preferisco per precisione e potenza. Esperienza lavorativa di 5 anni.

C#: utilizzato a fondo per il porting di un'applicazione multimediale completa da C++ puro (con MFC) a C#; porting giustificato dal fatto di poter lavorare con un'ambiente più intuitivo e più rapido sviluppo, soprattutto per un'applicazione con forte orientamento all'utilizzo delle finestre e pochi calcoli che richiedessero l'uso di linguaggi più spinti con il C++. Sviluppo di wrapper per portare in ambiente Managed DLL e applicativi in DirectX ambiente Unmanaged. Utilizzo per lo sviluppo di applicazioni reportistiche, con intefacciamento a DB. Esperienza lavorativa di 4 anni.

JAVA: esperienza lavorativa di ampio respiro nella realizzazione di applicazioni standalone (software gestionale), applet (upload ftp, ecc.) ed applicazioni web lato server (jsp). Ampiamente utilizzate diverse tipologie di design pattern per mettere in pratica il più possibile il modello di sviluppo MCV e l'interfacciamento a diversi sorgenti DB. Attualmente ho realizzato un client mysql ed un software gestionale entrambi completamente in Java utilizzando come interfaccia Swing. Esperienza lavorativa di 6 anni.

Qt C++: sviluppo di applicazioni per dispositivi mobili Nokia.
Esperienza lavorativa di 6 mesi.

5 - Linguaggi di programmazione per il Web

HTML: conoscenza di tutti i tag e delle relative proprietà; approfondito l'utilizzo dei fogli di stile integrati con l'HTML. Particolare attenzione per la struttura delle pagine per renderele facilmente manutenibile e aggiornabili a posteriori (questo tipo di impostazione è possibile con l'intervento di un linguaggio di scripting server side, quale ad esempio php). Esperienza lavorativa di 8 anni.

JAVASCRIPT: conoscenza completa ed approfondita del linguaggio ed uso nei rispetti degli standard e della compatibilità tra brower. Capacità di intervento su layer, form e qualsiasi altra forma di dinamicità applicabile a pagine web. Integrato l'utilizzo di Ajax nelle applicazioni con forte impatto dinamico. Esperienza lavorativa di 8 anni.

VBSCRIPT: come per il javascript, la conoscenza è completa ed approfondita, anche grazie alla stretta somiglianza con il visual basic. Esperienza lavorativa di 4 anni.

ASP: padronanza del linguaggio in tutti i dettagli, in particolar modo affrontata la gestione delle sessioni, degli archivi (DAO, ADO + SQL) sia su db Access, MySQL, Sql Server. Esperienza lavorativa di 4 anni.

PHP: linguaggio di script che preferisco per la sua eleganza, compattezza e semplicità. Sviscerato in tutti i suoi aspetti, lo utilizzo nelle quasi totalità delle applicazioni web da svolgere. Capacità di progettazione di siti web di importante valore prestando attenzione alla necessità di pulizia, organizzazione e scalabilità del codice sfruttando a fondo la programmazione oggetti con il supporto dei più importanti design pattern. Approfondito ed applicato il veicolo SOAP per le applicazioni distribuite. Utilizzo di template personale per la realizzazione di siti dinamici e portali, con pannelli di amministrazione e gestione fortemente e semplicemente aggiornabili tramite l'utilizzo dell'MCV, come ad esempio nel sito che state vedendo. Esperienza lavorativa di 6 anni.

6 - Pacchetti applicativi

APACHE (server web): approfondito nei suoi aspetti più importanti e peculiari, soprattutto in ambito sicurezza. Capacità di configurazione in multidominio, integrazione con moduli esterni e comunicazione con risorse di altro tipo (connessione con tomcat). Utilizzato sia su macchine windows che linux (preferibilmente). Esperienza lavorativa di 6 anni.

EXIM (server mail): Capacità di integrazione del software in ambiente multidominio (con autenticazione classica oppure su supporto db, quale mysql) e di interfacciamento con applicazioni esterne, quali sistemi antispam (spamassassin) e antivirus (clamav). Esperienza lavorativa di 6 anni.

PROFTPD (server ftp): Configurazione base e avanzata per la gestione multidominio (su db mysql) Esperienza lavorativa di 6 anni.

MYSQL (RDBMS): Capacità di installazione e configurazione in ambiente windows e linux. Particolare attenzione all'utilizzo delle replicazioni per la sincronizzazione di due/più db mysql remoti. Esperienza lavorativa di 6 anni.