Figura professionale: C++/C# developer

Nome Cognome: A. I.Età: 58
Cellulare/Telefono: Riservato!E-mail: Riservato!
CV Allegato: Riservato!Categoria CV: Developer / Web dev. / Mobile dev.
Sede preferita: Varese, Milano

Accesso Full al database con 29.998 CV a partire da € 5,00    ABBONATI SUBITO!



Sommario

C++/C# developer

Competenze

  • C#,C++11,C,Java,Ada
  • Windows,XP embedded, Linux server Centos,Linux server Suse,Linux Kubuntu,Fedora,Solaris,X linux,VxWorks,green hill
  • VS2008,VS2010,VS2013,Eclipse,Netbeans
  • SOAP,XML,JSON,DTD,XSD schema,XSLT
  • Spanning Tree, QoS,VLAN,DHCP,FTP,TFTP,UDP,TCP,CAN,Canopen,I2C,SPI,RS422,RS232,Arinc429,AFDX
  • managed ethernet switches
  • managed optical switches (reflective memory)
  • Matlab
  • SWIG,JNI
  • Swing,JIDE,MyEclipse
  • Tomcat,IIS
  • ASP.net
  • Linq,Plinq
  • Dependency Injection (Ninject,Unity)
  • Nunit,Junit,NSubstitute,Mockito,
  • Gtest,Gmoq
  • Moq,Rhino
  • MySql,Sqlite,Oracle,Sql server,Access2007,ADO.net,
  • SQL,
  • MapServer,GDAL e PROJ4
  • Boost
  • log4j,log4net,log4cxx
  • Wireshark
  • WxWidgets, QT5,
  • ArgoUML,
  • DOORS,VISIO,Excel,Tao Telelogic
  • LabWindow/CVI,VisualBasic
  • ClearCase,GIT,SVN,CVS,Mercurial
  • SHA
  • .NET Memory Profiler,

Esperienze

Date (da – a)
Giugno 2015 – Giugno 2015
Figura ricoperta
Sistemista, analista sw repository GIT
Datore di lavoro
BTCINO |
Luogo
Varese, Lombardia
Principali attività  e responsabilità 
Ho aggiornato un server linux Suse SLES in modo da poter ospitare un server GIT tramite GitWeb e Gitosis. Ho dovuto aggiornare (spesso a mano e talvolta in sorgente, perche’ la ditta non aveva comprato gli aggiornamenti) numerose librerìe fra cui Apache,SSL,Phyton,Ruby,Perl,MySql.

Date (da – a)
Giugno 2013 – Giugno 2015
Figura ricoperta
C++/C# developer
Datore di lavoro
Westland Helicopters Ltd |
Luogo
Yeovil, South West
Principali attività  e responsabilità 
Scrittura e manutenzione di applicativi, librerie in C/C++/C#/ADA su Linux,Solaris,Windows. Uso di librerie grafiche QT5,GTK+. Integrazione di driver scheda AFDX in applicativi C++ sotto Linux Centos e sotto Win7. Scrittura inC++14, e con libreria opensource Asio, di applicativo per pilotare switch ethernet managed. Scrittura di applicativo C++ sotto Linux Centos per pilotare switch ottico managed per gestire topologia rete ottca meshata. Aggiornamento vecchio gcc su Linux Centos tramite ricompilazione dei sorgenti.Scrittura di manuali di installazione. Creazione installer complessi per WIN7 con WIX, in particolare controllo di prerequiti e loro installazione automatica ed customizzazione fine dell’applicativo installato tramite wizard. Velocizzazione di applicazioni C# tramite PLINQ e valutazione passaggio F# di parti di essa. Validazione di file XML tramite XSD e LINQ e visualizzazione friendly degli errori. Messa in forma normale delle tabelle e velocizzazione delle query di database avionico in mysql. Valutazione porting database su Sqllite.

Date (da – a)
Marzo 2013 – Giugno 2013
Figura ricoperta
Programmatore C/C++ su linux e su solaris
Datore di lavoro
Agusta
Luogo
Samarate, Lombardia
Principali attività  e responsabilità 
Sviluppo in C su Linux Fedora di libreria per CAN bus da agganciare ad un applicativo in ADA. Sviluppo su workstation Sun di una libreria per iniettare specifici errori dentro varie parti (librerie) di un applicativo scritto in ADA. Le librerie sono state sviluppate col metodo TDD (prima scrivo i test che le librerie devono passare e poi scrivo il codice) usando Eclipse e la libreria opensource di UnitTest per C/C++ CppUTest. L’uso del TDD ha garantito pochissimi bachi durante la fase finale degli IntegrationTest.

Date (da – a)
Aprile 2011 – Marzo 2013
Figura ricoperta
Programmatore C#/C++
Datore di lavoro
Agusta
Luogo
Samarate, Lombardia
Principali attività  e responsabilità 
Aggiornamento applicazione su PC per interfacciarsi con computer di elicotteri. Sviluppo di 2 librerie in C++ con VS2010 per interfacciare 2 schede avioniche Arinc429 con la applicazione. Le librerie sono state sviluppate col metodo TDD in modo da disaccoppiarle dal resto dell’applicativo in C++. Ho usato la libreria opensource CppUTest per i test unitari delle librerie sviluppate.
Ho sviluppato l’interfaccia grafica (frontend) usando C#. Il frontend e’ stato reso multi-thread al massimo (per esempio usando metodi Async) per usare gli 8 core del PC. La GUI e’ stata sviluppando librerie di UserControl. E’ stata molto controllata la validazione dei dati inseriti dall’utente. Il frontend si interfaccia oltre che con MySql anche con semplici file Access ed Excel. Inoltre il frontend e’ stato reso capace di leggere anche i diffusi file XML e CSV. Ho usato NUnit e Rhino Mocks per unit-testare il frontend.
Il backend (la parte C++ della applicazione) e’ stato interfacciato con libreria opensource Boost per usare un c++ piu’ moderno. Ho poi inserito la libreria di logging log4cpp per avere un log configurabile molto utile per trouble-shooting con installazioni remote.
Il backend e’ stato interfacciato con una libreria di Matlab il che ha richiesto una profilazione del runtime di Matlab che viene caricato insieme alla libreria stessa.

Date (da – a)
Aprile 2011 – Aprile 2011
Figura ricoperta
Programmatore Java
Datore di lavoro
Agusta
Luogo
Sesto Calende, Lombardia
Principali attività  e responsabilità 
Interfacciato una libreria dati cartografici legacy in C++ con un applicativo Java.
Ho proposto la libreria opensource SWIG ed ho interafacciato un applicativo Java(evitando lentezza nelle chaimate, crashes). Ho usato win7@32bit e NetBeans
Skills impiegati: SWIG,Netbeans

Date (da – a)
Aprile 2010 – Aprile 2011
Figura ricoperta
SW architect,programmatore C++
Datore di lavoro
Agusta
Luogo
Calende, Lombardia
Principali attività  e responsabilità 
Porting di una applicazione desktop su XP che gestisce i piani di volo e le missioni di elicotteri in qualunqe zona del mondo (una specie di “TOM TOM” per eleicotteri). L’applicazione iniziale era scritta in C++, compilato con VS2008 e su XP 32bit. L’applicazione finale e’ stata scrittta in C++/C++11, compilato con VS2010Ultimate e su Win7@64bit. Il porting sotto VS2010 era necessario per ridurre i tempi di build (ore di compilazione) in quanto le solution (una per client altra per server) erano di centinaia di project. Il porting sotto Win7@64bit era necessario per poter usare piu di 3Giga per l’applicazione che era avida di memoria.
L’uso di VS2010 ha richiesto l’uso di parte del nuovo standard c++11. Per abbattere maggiormente i tempi di compilazione ho usato il plugin Architecture Explorer per produrre i diagrammi di dipendenze sbagliate (che facevano perdere tempo al compilatore). Ho poi esaminato tutti i file per usare le forward declaration in modo da disaccoppiare maggiormente i file.Ho poi introdotto nel progetto la libreria opensource Boost. Infine ho fatto il porting sotto VS2010 di numerose librerie opensource per l’elaborazione di dati geografici/cartografici come MapServer,GDAL e PROJ4.

Date (da – a)
Marzo 2010 – Aprile 2010
Figura ricoperta
Programmatore c/c++ embedded su Linux
Datore di lavoro
Nicotra Spa
Luogo
Baranzate, Lombardia
Principali attività  e responsabilità 
Porting veloce di una applicazione embedded legacy per il controllo di centraline telefoniche. L’applicazione da portare era scritta in C,senza OS e su un micro proprietario. L’applicazione e’ stata portata su DMP X-Linux e su un target Vortex86DX. Lo sviluppo e’ stato fatto su un PC host con XP ed Eclipse CDT usando una connessione TCP verso il target su cui si e’ sfruttato il gdb server. L’ambiente di sviluppo e’ stato poi portato su una macchina virtuale in modo da poter clonare facilmente la postazione.

Skills impiegati: shell linux,Eclipse CDT, VMWARE ,

Date (da – a)
Settembre 2009 – Marzo 2010
Figura ricoperta
Programmatore C#/C++ su XP Embedded
Datore di lavoro
Galileo Avionica Spa
Luogo
Nerviano, Lombardia
Principali attività  e responsabilità 
Sviluppo su XP Embedded di un programma di visualizzazione immagini di un radar. L’nterfaccia grafica e’ stata scritta con c# usando il framework .NET 3.5SP1 con VS2 008. Il backend (interfaccia verso IO) e’ stata scritta on C++ per avere la massima velocita (fluidita del radar). La comunicazione fra backend e frontend avveniva con socket UDP e la comunicazione fra l’applicazione ed la sorgente dei dati avveniva ancora con socket UDP. Per migliorare le prestazioni realtime ho sniffato i flussi UDP con Wireshark. Inoltre per vedere quanto e quando interveniva il Garbage Collector della parte grafica ho dovuto agganciare gli eventi di GC ad un seriale che ho agganciato ad un oscilloscopio in modo da vedere i picchi del garbaging.

Skills impiegati: c#,c++,Wirshark,Garbage Collector “tuning”,

Date (da – a)
Agosto 2009 – Settembre 2009
Figura ricoperta
Programmatore C# su windows XP 64 bits
Datore di lavoro
Danieli & C. Officine Meccaniche Spa |
Luogo
Udine, Friuli
Principali attività  e responsabilità 
Ho sviluppato una applicazione grafica e touch di controllo qualita’ di lastre di acciao appena prodotte. Ho usato XP a 64 bit,schermo fullHD. Interfaccia grafica touch e’ stata ottenuta usando la libreria opensource VxWidgets portata su .net.

Skills impiegati: .net 3.5,C#,WxWidgets, VS2008,.NET Memory Profiler,

Date (da – a)
Febbraio 2008 – Luglio 2009
Figura ricoperta
Programmatore,analista C#/C++ su desktop XP
Datore di lavoro
Agusta
Luogo
Cascina costa (Samarate)
Principali attività  e responsabilità 
Ho sviluppato una applicazione per acquisire dati avionici dai computer di bordo di elicotteri. Ho usato C# e C++ su sistema operativo XP. Ho usato 2 schede pc-express per interfacciare il pc con i 2 bus avionici: RS422,Arinc429. Lo sviluppo ha compreso 2 attivita SW: scrittura backend verso bus avionici, scrittura di frontend grafico. Il backend ha richiesto la scrittura di DLL native in C++ per pilotare le schede avioniche in modo veloce e bufferizzato in modo da non perdere pacchetti. Ho scritto poi dei wrapper C# per ogni dll nativa in modo che fosse usabile anche dal mondo .net.
Il frontend ha richiesto una fase iniziale di raccolta e raffinamento dei requisiti della parte grafica (gli utenti erano molti e con esigenze diverse) . La parte di scrittura del frontend e’ stato fatta con VS2008. Ho usato una libreria di oggetti grafici proprietari della National, che ho integrato con oggetti custom. Gli oggetti grafici sono stati distribuiti con diversi assembly per favorire il loro riuso e la loro distribuzione. Infine il frontend e’ stato profilato con .NET MemoryProfiler per garantire che il GarbageCollector non fosse intrusivo per l’applicazione.

Skills impiegati: .NET C#,C++,scrittura dll native,uso bus RS422,ARINC429,

Date (da – a)
Luglio 2007 – Febbraio 2008
Figura ricoperta
Firmware e Software Engineer
Datore di lavoro
URMET
Luogo
Torino
Principali attività  e responsabilità 
Sviluppo in C++ e C su Linux di un sistema integrato di domotica ‘home automation’ per le
componenti servizi di base e videocitofonia. In particolare: sviluppo di classi C++per gestire
la creazione di utenti con relativi permessi su database embedded opensource Sqlite.
Sviluppo di classi C++ per permettere la gestione del bus AudioVideo fra telecamere, monitor
e sistema centrale usando un protocollo proprietario su bus seriale. Refactoring massivo di
classi sviluppate da altri e relativi test di non regressione. Integrazione e debug di libreria C
opensource di gestione modulo GPRS-GSM, esecuzione test di conformita’ alla specifica
ETSI GSM 07.07. Integrazione di libreria C open-source openssl per autenticare utenti con
criptazione SHA. Programmazione avanzata di ethernet switch Marwell. Scrittura di macchine
a stati con ArgoUML ed implementazione di esse con codice proprietario tramite script XSLT
scrittura C++ manuale. Scrittura di protocollo proprietario su protocollo SOAP (libreria open-
source gSoap). Preparazione e manutenzione di complessi test-bench (controllo hw, controllo
versioni fw, aggiornamento costante dei fw).

Date (da – a)
Gennaio 2005 – Luglio 2007
Figura ricoperta
Programmatore Java
Datore di lavoro
Cisco Photonics Italy Srl
Luogo
Monza, Lombardia
Principali attività  e responsabilità 
Sviluppo in Java di due release del Metroplanner, un programma di design, configurazione ed upgrade di reti ottiche MAN/WAN

Ho partecipato allo sviluppo in Java di due release del Metroplanner, un programma di design, configurazione ed upgrade di reti ottiche MAN/WAN basate su DWDM. Ho sviluppato di classi Java per gestire tutti i parametri ottici di installazione (potenze, soglie,guadagni,tilt) e tutte le nuovi card per le nuove release di firmware e hardware. Ho sviluppato parti del programma come Eclipse plugin, cioeÂ’moduli auto-caricantesi a runtime, in modo da permettere ai vari utenti di configurarsi a piacere il programma semplicemente scaricandosi il plugin dal sito della Cisco. Ho offuscato con yGuard dei classfile contenenti algoritmi proprietari per proteggere la IP (Intellectual Property) e verificato il corretto funzionamento della release offuscata (in particolare delle classi caricate con la reflection). Ho fatto il refactoring di molto codice altrui con impiego di tutti i design pattern (Factory,Singleton,Proxy,Visitor,MVC…). Ho usato metriche di classe e di package tramite Jtest ed il plugin CAP per controllare periodicamente la quality del progetto, stampando dei report per gli altri programmatori del team. Ho enerazione di file XML, al posto di quelli TXT, con relativa validazione DTD (successivamente sostituita da validazione con XML Schema) per lÂ’installazione del sistema. Generazione di reportistica su fogli Excel tramite JExcelApi. Generazione di GUI tramite libreria grafica Jide. Scrittura di class loader custom per gestire le classi di diverse release del programma. Sviluppo di tutti i file ANT per permettere il build del programma da shell DOS oppure shell Linux. Profiling del programma con JProfile/OptimiZeit per velocizzare il programma e per ridurre il consumo di RAM (footprint analysis). Test di inclusione di libreria Batik per generare report su file in formato SVG, di tutte connessioni ottiche delle card. Sincronizzazione dei tread di applicativo con quello grafico. Generazione di diagrammi UML per documentazione con VisualParadigm SDE. Test di configurazione completa in laboratorio di reti ottiche complesse (lineari,ring,meshate) utilizzando element manager e cablando/scablando le card. Controllo design ottici per importanti compagnie telefoniche americane (Verizon, AT&T).

Skills impiegati: Java,Eclipse,Unix,ClearCase,Design patterns,Swing,Ant,UML,XML,DTD,

Date (da – a)
Marzo 2003 – Gennaio 2005
Figura ricoperta
Programmatore C++/C/assembler
Datore di lavoro
Pirelli labs
Luogo
Milano
Principali attività  e responsabilità 
Sviluppo del sistema ottico MAS (un sistema di gestione reti MAN
ottiche)

Ho sviluppato in C/C++ su OS VxWorks di tutti i driver (per RTC, E2PROM,FLASH SPI, rele, led) della card “master” SPV (avente micro Geode, un Intel-like). Ho sviluppato i driver I2C per la card “client ”muxponder (avente micro DSP Texas Instruments che non possedeva porte I2C che e’ stato simulato con dei GPIO, dei pin di IO programmabili); con questi driver per ho pilotato una flash I2C e dei SFP (dei piccoli transponder ottici). Ho poi sviluppato un driver per ethernet-switch Micrel in modo da poterlo programmare da micro e non piu tramite pull-up e pull-down sui suoi piedini). Ho programmato una CPLD Xilinx sviluppandone il vhld tramite WebPack. Ho implementato i driver per Spanning Tree Protocol con riscrittura di gran parte dello stack originale TCP di VxWorks. Ho sviluppo dei piccoli programmi di test per la sezione HW e per il manufactoring (Celestica Vimercate) ed ho preparato delle pc completi allo scopo addestrando poi il personale. Per facilitare il manufactoring ho poi sviluppato delle GUI tramite LabWindow/CVI e tramite VisualBasic. Ho implementato delle routine di auto-diagnostica.Ho poi sviluppo un nuovo bootloader che permettesse alle card di partire oltre che dalle flash anche da un server via TFTP. Per il progetto ADSL Alice di Telecom Italia ho sviluppato i driver per diversi ethernet switch (Micrel,Marvel). Ho scritto driver avanzati per fare QoS per trasmettere stream video ad alta qualita’. Per progetto ADSL British Telecom ho sviluppato i driver per ethernet switch della Realtek. Ho dat0 supporto per la implementazione di VLAN tagging complessi.

Skills impiegati: C++,C,VxWorks,assembler x86,assembler DSP TMS320,VHDL,JTAG,CAN,CANOPEN,

Date (da – a)
Settembre 2002 – Marzo 2003
Figura ricoperta
Programmatore C++
Datore di lavoro
Parvis
Luogo
Milano, Lombardia
Principali attività  e responsabilità 
Sviluppo di un sistema di controllo qualitaÂ’ di banconote, usato dalla principali banche centrali mondiali.

Progetto di un macchinario per controllo qualita’ di banconote, usato dalla principali banche centrali mondiali. Ho sviluppato in C/C++ dei driver sotto OS VxWorks per una scheda PCI di IO veloce su pc industriale in un. Ho sviluppato un mini applicativo firmware con boot da hard-disk. Ho scritto e testato parti di un applicativo piu grande scritto “visualmente” in SDL (con un tool Tao della Telelogic) ma generante poi codice C++ per VxWorks oppure C++ per Windows. Il test ha permesso di scoprire piccoli bachi del tool della Telelogic nella generazione delle corrette API dello OS VxWorks. Ho poi generato molto UML per documentare il progetto che ha partecipato ad un concorso europeo, arrivando terzo. Durante il progetto ho trovato un paio di bachi per il processore x86 con che ho segnalato alla WindRiver di Torino con cui ho collaborato per il bug fixing.

Skills impiegati: C++,C,VxWorks,UML,assembler X86,SDL,oscilloscopio,

Date (da – a)
Febbraio 2001 – Settembre 2002
Figura ricoperta
Programmatore C++/C
Datore di lavoro
Cisco Photonics Italy Srl
Luogo
Milano, Lombardia
Principali attività  e responsabilità 
Progetto di un sistema ottico DWDM per reti WAN

Progetto di un sistema ottico DWDM per reti WAN, usando assembler e C ed un sistema operativo fatto in casa. Sviluppo di logger di sistema su una EEPROM. Porting di vecchi applicativi (in assembler e C code) su nuovo compilatore Microtec con test di nonregressione. Riscrittura dei makefile e dei batchfilele script di shell. Gestione download sicuro (tramite doppia bankatura delle flash e scrittura di un applicativo di emergenza/manutenzione ). Ottimizzazione del filesystem custom sulle flash (per salvare molti piu’ dati e piu’ velocemente) e gestione della sua deframmentazione. Sviluppo di un mini OS (uno scheduler preemptive + code + eventi + semafori) chiamato pipOS ispirato al µCosdi Labrosse ma che fosse anche POSIX compliant. Sviluppo di test per pipOS e sua qualifica realtime tramite misurazioni tramite oscilloscopio ed emulatore LauterBach di decine di casi di uso tipici e non. Aggiunta di semafori, code ai driver per gestione multitask di essi. Supporto per uso del pipoS ai developer dei vari applicativi. Riprogrammazione della CPLD della probe dellÂ’emulatore Lauterbach per farlo funzionare con le nuove board dei transponder. Sviluppo della gestione della memoria (partizioni e buffer) per il pipOS. Sviluppo di applicativo “console” in C tramite LCC/Visual Studio per downloadare firmware tramite seriale. Applicativo console per mergiare vari firmware delle schede multiprocessore (Motorola,Intel,Hitachi) convertendo i formati HEX e SRECORD in un formato ascii proprietario. Sviluppo applicativo in VisualBasic per downlod via seriale dei file di firmware. Supporto al manufactoring (Celestica) per setup delle procedure di programmazione/test delle board. Debugging della dualport ram fra micro Motorola e micro Intel. Sviluppo degli allarmi per varie board. Gestione reboot a freddo ed a caldo (per gestire errori software ed errori hardware). Sviluppo di auto-diagnostica veloce dello hardware da eseguire prima del boot.

C++,C,assembler,VisualBasic,oscilloscopio,state-anlyzer,saldatore,CPLD,

Date (da – a)
Aprile 1999 – Febbraio 2001
Figura ricoperta
Programmatore C++/C
Datore di lavoro
Pirelli photonics
Luogo
Milano
Principali attività  e responsabilità 
Progetto di un sistema ottico DWDM per reti WAN

Progetto di un sistema DWDM con firmware scritto in assembler e C. Modifica di una libreria del compilatore C SDS in modo da gestire i floating con un consumo minore di memoria del micro (Motorola 68332). Porting di codice assembler per micro 80196 in codice C per micro Mtorola 68332. Driver per moduli SPI,SCI,TPU del micro 68332. Driver per RTC Dallas. Gestione multidriver per le RTC di diversi fornitori. Driver per flash Intel di vario tipo e dimensione. Gestione multidriver per nuove flash AMD. Driver per EEPROM ST. Gestione multidriver per nuove EEPROM. Gestione nuove bankature sulle board di transponder. Driver per i led della board. Gestione dei dati di inventory dei componenti HW su EEPROM. Gestione inventory dei diversi applicativi presenti sulla board. Sviluppo di applicativi di test Hardware. Sviluppo di applicativi per il manufactoring (test di flash, ram, micro, dei led, dei rele). Sviluppo makefile e loro gestione sia con GNU make che con Microsoft nmake. Scrittura di batch file in DOS e shell script per unix per permettere la produzione di build automatizzata ossia senza IDE.

C++,C,assembler,Unix,ClearCase,DOS,make,oscilloscopio,saldatore,

111 total views, 2 today