Ultimo aggiornamento: 14 Dec 2001.
Bernie Innocenti
nato a Firenze il 6 Agosto 1974 e ivi residente
in Via Ventiquattro Maggio n. 14 (I-50129)
PIVA: 05043160489
CF: NNCBNR74M06D612Y
e-mail: bernie-nospam@codewiz.org (togliere -nospam dall'indirizzo)
Home Page: http://www.codewiz.org
Stato civile: celibe
Obblighi di leva: assolti
Il mio target professionale consiste nello sviluppo di software per sistemi dotati di limitate risorse hardware, impiegando architetture che ne massimizzino le prestazioni riducendo nel contempo il costo dei componenti.
Sono interessato a progetti software per l'azionamento di dispositivi elettronici o meccanici, misurazione di parametri fisici, networking, gestione dell'interfaccia utente e prestazioni real-time. Questo insieme di caratteristiche è spesso presente nei prodotti rivolti al mercato consumer, come cellulari, telecamere e stampanti, ma anche nel settore automotivo, nelle infrastrutture di rete ed nell'automazione industriale.
Nel mio lavoro utilizzo molti strumenti di sviluppo open-source. Contribuisco attivamente ad alcuni progetti free-software, quali il kernel di Linux ed il compilatore GCC.
Attualmente sono responsabile tecnico e project manager presso Develer S.r.l., azienda di consulenza specializzata nella realizzazione di software e firmware per l'automazione industriale. I miei progetti più recenti sono descritti sul sito web di Develer.
Fino al 2001 ho svolto l'attività di progettazione e consulenza come libero professionista. Mi occupo principalmente di sistemi embedded e di software per applicazioni speciali.
Alcuni dei progetti che ho realizzato come consulente:
Sistema di sincronizzazione dinamica del tempo tra i computer di una rete, ottenuta gradualmente mediante un'accelerazione variabile del clock di sistema. Il software è dotato di accorgimenti che garantiscono un funzionamento corretto anche in caso di crash di un processo o del sistema operativo.
Firmware per il controllo di un sistema di refrigerazione ad alte prestazioni per applicazioni mediche. Il software è stato sviluppato in ambiente Windows utilizzando layer di emulazione dell'hardware ed in seguito è stato portato su compilatore avr-gcc per completare il debug sul target.
Compilatore/interprete per un linguaggio custom rivolto alla creazione di un grafo di oggetti per un simulatore di una rete di telefonia mobile. Questo progetto è stato realizzato in ANSI C++ con un uso intensivo dei contentori e degli algoritmi STL.
Sistema automatizzato per la localizzazione (traduzione in più lingue) di applicazioni embedded che permette di aggiungere dinamicamente nuove lingue senza la necessità di ricompilare il software.
Sito web per e-commerce realizzato in ambiente UNIX con server Apache, database MySQL e linguaggio di scripting PHP.
Libreria dinamica (DLL) per l'acquisizione video real-time da una scheda Matrox Marvel G400 connessa ad una telecamera ad alta risoluzione. La libreria si interfaccia con un programma di alto livello scritto in linguaggio Visual Basic al quale fornisce inoltre i servizi di comunicazione con una scheda custom connessa alla porta seriale.
Sviluppatore software e amministratore di rete presso il laboratorio R&D di SEAC s.r.l. da Giugno 1996 ad Aprile 2000 con le seguenti mansioni:
Aggiornamento e bug-fixing del firmware di un fotometro per chimica clinica con microcontrollore Intel 80196. Gestione a basso livello di display LCD, stampante termica, motori stepper, sensore di temperatura e conversione A/D per lettura fotometrica.
Aggiornamento e bug-fixing del firmware di un contaglobuli utilizzando l'emulatore 196 Nohau per l'esecuzione del codice.
Progettazione e sviluppo di software in Visual C++ 5.0 con MFC per la gestione di un analizzatore automatico per immunologia.
Realizzazione del software di installazione e aggiornamento per il suddetto strumento.
Progettazione di un sistema automatizzato per la traduzione in diverse lingue di un software di grandi dimensioni.
Stesura, revisione e traduzione di manuali per l'utente e di documentazione tecnica per gli sviluppatori.
Installazione e manutenzione di un repositorio centralizzato per il controllo di revisione dei sorgenti realizzati da un gruppo di lavoro di circa 10 unità.
Progettazione, installazione e manutenzione della LAN del laboratorio, con condivisione delle risorse, accesso a Internet e servizio di posta elettronica.
Integrazione di un database esterno in un programma gestionale di grandi dimensioni utilizzando le classi MFC DAO.
Porting su CPU 68HC705SR3 di programmi assembly studiati per microcontrollori antecedenti non più in produzione. Apportate varianti alle schede CPU per adattarle al nuovo chip.
Progettazione di un micro-kernel multitasking per microcontroller 80196KC e implementazione di un sistema di comunicazione interprocesso con uso di semafori per la protezione delle risorse condivise.
Progettazione di un protocollo di trasmissione dati basato sullo standard XModem tra un PC ed uno strumento dotato di microcontroller 80196 per la riprogrammazione del firmware, successivamente esteso per permettere il trasferimento diretto tra due sistemi 80196 senza l'ausilio di un PC.
Implementazione di un mini-filesystem per una memoria flash da 128KB modello Am29010. Il filesystem consente la ripartizione dello spazio in oggetti di dimensioni variabili che possono essere arbitrariamente letti, scritti e cancellati.
Progettazione del firmware di un termostato automatico con funzioni di monitoraggio e controllo remoto tramite una connessione seriale sincrona con protocollo di comunicazione a fault tolerant. Il software è stato realizzato interamente in assembly per microcontrollore 68HC705P6A.
Porting in ambiente Win32 con CPU x86 del summenzionato microkernel e del programma applicativo basato su di esso. Realizzazione di un framework di emulazione dell'hardware originale che permette di eseguire il debug del software di alto livello usando l'ambiente di sviluppo del Visual C++.
Pubblicazione di articoli tecnici sul tema della programmazione e recensioni di software su diverse riviste del settore.
Tecnico di rete presso Nuovo Pignone e Officine Galileo per conto della ditta IN.TE.GRA. di Firenze.
Amministratore di una banca dati ad accesso pubblico con oltre 450 utenti registrati per un periodo di circa 5 anni (1993-1998). La BBS disponeva di 2 linee ed era parte di due network in tecnologia FidoNet, svolgendo anche funzioni di routing di NetMail ed EchoMail per altre BBS.
Network administrator al The Real Italian Party 1999, svoltosi a Firenze presso il Palazzetto dello Sport. La LAN comprendeva approssimativamente 120 sistemi eterogenei connessi da un backbone ethernet a 100Mbit con switch. La rete veicolava diversi protocolli, incluso TCP/IP con un network di classe C con connettività Internet attraverso gateway IP-NAT.
Operatore dell'elaboratore elettronico presso l'Ufficio Adderstramento dell'8^ Rgt. a. cam. "PASUBIO" durante il servizio di leva. Successivamente, insegnante in un corso europeo di alfabetizzazione informatica tenuto ai militari di leva.
Sviluppo di programmi freeware in C e C++. Vedi Projects.
Diploma di maturità tecnica con specializzazione in matematica-informatica conseguito con 56/60 presso l'Istituto Tecnico Commerciale "A.Volta" nel 1993.
Frequenza del primo anno di corso nella Facoltà di Ingegneria Informatica presso l'Università degli studi di Firenze con il conseguimento dell'esame Fondamenti di Informatica con esito 30 e lode.
Conoscenza ottima della lingua inglese (letta, scritta, tecnica e parlata).
Linguaggi di programmazione conosciuti:
Tecniche di programmazione:
Esprienza di amministratore di reti con protocolli TCP/IP, NetBeui, IPX
Strumenti di progettazione utilizzati:
Sistemi operativi:
Creazione di siti web:
Redazione di documentazione tecnica (in inglese ed italiano)
Copyright © 1999, 2000, 2001 by Bernie Innocenti
$Id: resume_it.html,v 1.1 2000/01/12 18:58:15 bernie Exp $