Figura professionale: Architetture e sistemi informatici analista programmatore
Nome Cognome | : M. T. | Età | : 62 |
---|---|---|---|
Cellulare/Telefono | : Riservato! | : Riservato! | |
CV Allegato | : Riservato! | Categoria CV | : Developer / Web dev. / Mobile dev. |
Sede preferita | : MILANO GENOVA |
Accesso Full al database con 29.995 CV a partire da € 5,00 ABBONATI SUBITO!
Sommario
Competenze
- Linguaggi: C/C++, JAVA, Python, PHP, javascript
- Sviluppo Java Enterprise con tecnologie Oracle Middleware Fusion e/o JBoss Community, Spring, Spring MVC, JMS, JAX-WS+JAXB+XPath, Jackson, Hibernate, JPA.
- Gestione di Web Server con tecnologie Apache (HTTP server e Tomcat servlet container).
- Sviluppo di WebApps MVC in php facendo uso di
- – framework per javascript: MooTools,JQuery
- – db di riferimento: PostgreSQL, MySQL
- – browser di riferimento: Firefox, Chrome ed IE >= 8.0
- – template library: Smarty
- – generazione di report: tcpdf, phpexcel a altri
- – framework per test/coverage: PHPUnit+Selenium
- – IDE: Eclipse
- Tecnologie JAVA per sviluppo di applicativi embedded per il mondo del digitale terrestre.
- Programmi in C/C++ per Linux e Windows.
Esperienze
Periodo 16 gennaio 2016 – in corso.
Attualmente sono impegnato come consulente allo sviluppo di un progetto di backend in Esselunga per conto di Blu Reply. Il progetto riguarda l'informatizzazione delle operazioni di logistica di magazzino, relativamente ai magazzini di Pioltello e Biandrate.
L'architettura completa, frontend+backend, si appoggia sul framework ERRAI+GWT dal lato frontend in cui c'è necessità di semplici interfaccie web che possano essere facilmente renderizzate anche su appositi palmari in dotazione agli operatori di magazzino, e sull'architettura EJB 3.0+JPA 2.0 (EclipseLink)+CDI (WELD) per la modellazione del dominio di business e la gestione della persistenza verso DBMS Oracle.
Il data model è tuttora in evoluzione per cui sono richiesti anche interventi di sul DB (Oracle) per sviluppare le nuove parti e produrre le relative DDL..
Frontend e backend si “parlano” attraverso servizi web esposti internamente e con URL significative principalmente per il framework. La tipologia di servizi è REST ed è basata su JAX-RS da entrambi i lati (frontend e backend) e con Jackson utilizzato per il marshall/unmarshall json/java.
In particalare da segnalare che non si fa uso di alcuna forma esplictita di service bus, anche se la comunicazione fra servizi di frontend e backend avviene attraverso ERRAIBUS che è un framework per lo scambio di messaggi trasparente tra endpoints client ed endpoints server.
Il testing è sia di unità per mezzo di JUnit 4.12 con implementazione di rules e classrules ad hoc, che funzionale appoggiandosi su Arquillian come piattaforma e Shrinkwrap per il deploy dinamico, al momento si usa Glassfish 3.1 come application server 'embedded' ma è schedulato l'utilizzo di jbossas, HSQLDB è il db in RAM, a scopo di test abbiamo instrumentato alcuni beans con Javassist.
Gli strumenti di sviluppo utilizzati sono stati i seguenti:
– Weblogic 12g come application server.
– Java 7 Standard/Enterprise Edition.
– GWT+JAXRS come frameworks di frontend.
– JAXRS+EJB 3.0+EclipseLink(JPA 2.0) come frameworks di backend.
– Weld come CDI.
– Arquillian+Shrinkwrap+JUnit+Glassfish 3.1 Embedded+HSQLDB come piattaforma di test.
– SVN come SCM.
– maven come strumento di gestione del processo di build/deploy.
– IDEA IntelliJ come IDE di sviluppo.
1 luglio 2015 – 15-01-2016. Attualmente sono impiegato in Reply come consulente sviluppatore J2EE con contratto a progetto, presso la sede di via Castellanza 11, contratto che scade a fine gennaio 2016. Lo sviluppo riguarda il progetto Tinaba, un'app per il mobile che permette di gestire quei rapporti economici tra persone che avvengono nel quotidiano, per es. la paghetta dei figli, pagamenti alla “romana” della pizza, crowdfunding tra cerchie di conoscenti, etc. Io sviluppo servizi web rest/soap esposti su service-bus utilizzando il framework Apache Camel 2.15 e JBoss 6.4.0 come Application Server. Da segnalare che stiamo usando Java 8 con pieno utilizzo del paradigmi funzionale e map-reduce nello streaming di collezioni. Lato back-end utilizziamo MyBatis come framework per l'accesso al DB (Oracle). Al solito il progetto usa Spring come iniettore/gestore di dipendenze fra beans e maven come gestore del ciclo di vita dell'applicazione. Nonostante la presenza di Spring, Camel è utilizzato nella forma Java DSL anziché Spring DSL, a Spring è demandata solo la gestione delle rotte come beans referenziati all'interno del CamelContext, e dei vari processori che conviene registrare. Ovviamente si è fatto ampio uso dei principali EIPs, splitters, transformers, etc. sicuramente si può dire che nel nostro caso Camel è utilizzato come libreria embedded anziché come motore di routing/orchestrazione. Lo strumento di collaboration/version-control è git mentre l'IDE principale è eclipse/jbdeveloper. Gli strumenti di sviluppo utilizzati sono stati i seguenti:
– JBoss Fuse 6.4.0-ga + Red Hat JBoss Developer Studio
– Java 8 Standard/Enterprise Edition
– Apache Camel 2.15.0
– XML, XPath 2.0, XSLT and DOM mastery
– SoapUI as testing tools
– git as collaborative tool
– maven as application lifecycle management tool
1 gennaio 2015 – 30 giugno 2015. In questi sei mesi ho partecipato allo sviluppo di servizi web pubblicati su service bus per Unicredit (Lampugnano) come consulente di Reply. Gli strumenti utilizzati sono stati principalmente due JBoss Fuse+Apache Camel e TIBCO Business Works Designer, il primo per un periodo di un mese e mezzo ed il secondo per il tempo restante. Le tipologie di servizi erano prevalentemente proxy e routing utilizzati da clients BPM. E' opportuno segnalare anche lo sviluppo di due servizi molto particolari denominati lof tecnico e log di business, il cui scopo era collezionare messaggi di log delle due tipologie per successive analisi big-data a mezzo Splunk. La loro peculiarità è il doppio binding, SOAP over HTTP e SOAP over JMS. Il modello architetturale è basato su un producer che alimenta una coda JMS e due consumers che lavorano per mezzo di apposito selettore di messaggi. I messaggi estratti procedono verso due destinazioni un file sul nodo locale definito in ActiveSpace poi elaborato da Splunk, ed il DB Oracle dove ho creato le tabelle e le stored procedures del caso. Durante le attività che prevedevano l'utilizzo di TIBCO designer ho potuto applicare efficaciemente molti skills acquisiti da precedenti esperienze quali la padronanza delle trasformazioni xslt con fogli di stili applicate ai result sets ricevuti dalle stored procedures o l'uso di copybook in frammenti di COBOL per conversioni a/da main frame. L'ambiente di deploy è basato sull'architettura ActiveSpace di TIBCO che è un insieme di dominii (Application Spaces) a loro volta suddivisi in nodi (Application Nodes). Ogni node esegue una JVM separata e l'operazione di deploy significa che un'applicazione, costituita da un EAR racchiudente un set of jars, è replicata sull'insieme di nodi appartenente ad un dominio. Concludendo per questo tipo di attività sono stati necessari buoni skills in java, XML, XPATH and XSLT. Gli strumenti di sviluppo utilizzati sono stati i seguenti:
– TIBCO BusinessWorks Designer 6.2.1, Enterprise Message Service 8.2
– JBoss Fuse 6.1.0-ga Red Hat JBoss Developer Studio
– Java 7 Standard/Enterprise Edition
– Apache Camel
– ActiveMQ broker for JMS 1.1
– XML, XPath 2.0, XSLT and DOM mastery
– SoapUI+Hermes as testing tools
– SVN as collaborative tool
19 maggio 2014 – in corso. Attualmente sono impegnato presso NivolaCloud, sede di Genova, nell’upgrade del sito aziendale. L’azienda in un’ottica di rafforzamento nel settore VoIP è impegnata nell’aggiornamento delle proprie offerte migliorando i servizi ai propri clienti ed introducendone di nuovi. L'impegno non è vincolante, per cui prendo in considerazione offerte J2EE se interessanti. Per lo sviluppo utlizziamo uno stack LAMP, e gli strumenti utilizzati sono quelli più diffusi nel mondo php, principalmente Eclipse con PDT, PHP Development Tools, PHPUnit. Il tutto integrato da alcune librerie abbastanza comuni quali log4php, PHPExcel ed HTML2PDF. Il DB utilizzato è MySQL. Per Il FE (Front-End) utilizzo JQuery per codice generico in javascript più D3 come libreria specifica per la grafica vettoriale necessaria per i diagrammi statistici sul traffico di chiamate. Gli strumenti di sviluppo utilizzati sono stati i seguenti:
– Web Server Debian Wheezy con Kernel Linux 3.14 con Apache 2.4.9 e PHP 5.5.12.
– MySql 5.5
– SVN come strumento di collaboration. SVN è stato utilizzato solo da Eclipse tramite i connettori.
– I browsers di riferimento sono Chrome e Firefox (ultime versioni).
– PHPUnit come strumento per lo sviluppo di unità di test.
– PHPExcel + HTML2PDF(TCPDF) sono gli strumenti per la generazione di reportistica e grafici
7 febbraio 2014 – 4 aprile 2014. Sviluppo di un portale di intranet in Reply per conto di Tecneva. A partire dal 7 febbraio 2014, Tecneva per soddisfare una richiesta improvvisa di Reply, mi ha contattato per lo sviluppo di alcune portlets per il portale di intranet per Intesa-San Paolo. Il mio intervento ha riguardato sia il Middleware (MW) che il Front-End (FE). Si è trattato di implementare delle portlets di accesso ad alcuni servizi rilevanti per le attività assicurative del gruppo, servizi rivolti alle reti di agenzie assorbite da ISP mediante acquisizioni. Reply ha valutato un’urgenza di due mesi, di conseguenza il mio apporto è terminato il 4 aprile 2014. Gli strumenti utilizzati sono stati Liferay Community Edition 6.2.0-ga1, in bundle con Tomcat 7.0.42 in qualità di portlet deployer, ed axis2 1.6.2, come strumento principale di implementazione del codice di accesso ai servizi, supportato da dozer 5.5.0 per automatizzare i mappaggi tra oggetti. Il testing è stato sviluppato sia in locale mockando i servizi tramite SoapUI che su ambiente apposito preparato da ISP e basato su box virtuali VMWare accessibili via vpn. Il FE è costituito da un set di jsp popolate con i dati ricevuti dalle responses e da plain-code javascript supportato da jquery ove necessario. L'ambiente di sviluppo utilizzato è stato eclipse personalizzato per liferay nel package scaricabile dal sito. Complessivamente un progettino standard che richiede niente di più delle competenze usuali per sviluppare nel MW. Gli strumenti di sviluppo utilizzati sono stati i seguenti:
– Eclipse Kepler è stato l’IDE utilizzato.
– Liferay Portal 6.2.0-ce-ga1 per la gestione del portale ed il deploy delle portlets.
– Axis2+Ant+Ivy come framework di sviluppo e gestione progetto per il layer di MW.
– SVN come strumento di collaboration. SVN è stato utilizzato solo da Eclipse tramite i connettori.
– Tomcat 7.0.42 è l’application server.
– SoapUI è stato lo strumento di test preferenziale.
Agosto 2013 – novembre 2013. Sostituzione di persona in Allianz per conto di Beije. Nel periodo che va da agosto 2013 ad ottobre 2013 ho sostituito una persona in Allianz per un periodo di circa tre mesi. La richiesta è stata improvvisa, il 7 agosto mi hanno contattato e l’8 agosto già lavoravo. Il mio intervento ha riguardato lo sviluppo lato Back-End (BE) di un servizio web che, via Hibernate, implementa l’inserimento di documenti d’agenzia nel DB server (Oracle) e sul CMIS, un layer standard che rende trasparente l'utilizzo di CMS proprietari. Inoltre ho sviluppato un modulo non basato su servizio web che attraverso Spring ed Hibernate accede direttamente al DB. In questo caso ho sviluppato anche parte del Front-End (FE) in html-javascript utilizzando JQuery e lavorando a stretto contatto con il grafico per l’impostazione dei CSS secondo le direttive di Allianz. Durante questi tre mesi ho potuto utilizzare alcune tecnologie di nicchia, quali grails e groovy, strumenti che in questo progetto sono stati utilizzati solo sul lato Middleware (MW), e che comunque non ritengo particolarmente importanti, e Spring con hibernate che invece è ormai uno standard de facto per il back-end e con JBoss che, come si sa, è un application server molto diffuso. Gli strumenti di sviluppo utilizzati sono stati i seguenti:
– Eclipse Kepler è stato l’IDE utilizzato.
– Spring+JAX-WS+Hibernate+Maven come frameworks di sviluppo e gestione progetto per il layer di BE. Maven è stato utilizzato sia da linea di comando che attraverso m2eclipse.
– Groovy con grails ed il plugin di JQuery per lo sviluppo del MW e del FE.
– SVN come strumento di collaboration. SVN è stato utilizzato solo da Eclipse tramite i connettori.
– JBoss-AS 7.1.1 è l’application server.
– SoapUI + Junit 4 sono stati gli strumenti di test preferenziali.
Luglio 2012 – luglio 2013. Sviluppo portale ‘Nuovo Mondo OnLine’ per Banca Mediolanum. Nel periodo che va da agosto 2012 a luglio 2013 ho partecipato allo sviluppo del nuovo portale per i servizi di Internet Banking richiesto da Banca Mediolanum. Il progetto consiste nell’upgrade del portale esistente aggiornando anche i servizi ogni qualvolta risulti necessario. Il progetto è molto grosso e vi sono stato introdotto da Nexus Advanced Technologies che è l’azienda alla quale ho fatturato. Il mio ruolo è stato di sviluppatore per la parte di middleware (MW) dell’architettura, e ho svolto la mia attività utilizzando tecnologie Oracle Java Enterprise più alcuni frameworks di largo successo. Dettagliando brevemente l’architettura, il MW riceve via AJAX le richieste HTTP in formato REST da un Front-End (FE) basato su portlet, processa tali richieste attraverso un pattern MVC basato su SpringMVC il cui lavoro consiste nell’invocazione del servizi remoti attraverso endpoints http e/o t3 (altro nome di https), e restitusce le risposte ottenute al FE in formato JSON. Lavorando con numerose persone (oltre 50) i ruoli sono spesso definiti in modo molto rigido. Nonostante questo ho acquisito una certa autonomia e sono anche riuscito a proporre un plugin maven ad hoc, che portasse la visione del FE dei dati da ricevere, visione che scaturisce dallo studio dei documenti di analisi funzionale, direttamente agli implementatori dei servizi di BE, in modo da preservare quanto più possibile il paradigma REST. Gli strumenti di sviluppo utilizzati sono stati i seguenti:
– SpringMVC come framework IoC per il layer di FE del MW.
– Jackson per il mappaggio Java/JSON.
– Toolchain JAX-WS+JAXB+XPath per generazione e configurazione dei vari schemas richiesti dal wsdl e per l’accesso al flusso XML dei dati al runtime.
– Toolchain Maven+Git+Jenkins per la gestione delle attività condivise. In git il merge viene sviluppato manualmente. Maven è stato utilizzato sia da linea di comando che attraverso m2eclipse.
– Weblogic è l’application server ed il suo proxy sul service bus è OSB (semplicemente Oracle Service Bus).
– SoapUI + Junit 4 sono stati gli strumenti di test preferenziali.
– OEPE (Eclipse per Oracle) è stato l’IDE utilizzato.
Aprile 2011 – maggio 2012. Sviluppo di una webapp per la gestione del personale di un’azienda. Ho sviluppato un'applicazione web per la gestione del personale di un'azienda. Le problematiche trattate riguardano attività di registrazione di orari di ingresso/uscita, richieste di ferie, permessi, malattia e straordinari che avvenivano utlizzando del cartaceo. L'applicazione usa la tecnologia MVC e si appoggia su un webswerver Linux con installati l'http server Apache ed il DB PostgreSQL. Firefox, Chrome ed IE>=8 sono stati i browsers di riferimento. In questo ambito mi sono occupato sia dell’analisi e dell’implementazione del SW che della configurazione e della manutenzione del server. Gli strumenti di sviluppo utilizzati sono tutti appartenenti alla categoria dell'open source con licenza GPL od almeno LGPL. Si tratta della seguente roba:
– Debian Squeeze con Kernel Linux >= 2.6.26-5
– Apache Http Server >= 2.2.15
– Iceweasel 3.5.16 + Firebug 1.5.4, Chrome, IE >= 8
– PostgreSQL >= 8.4
– PHP >= 5.3.0
– MooTools 1.3
– Smarty Template Library 3.0.8
– TCPDF 5.9 per la generazione di report in PDF
– PHPUnit è il framework di test.
Anno 2010 (gennaio – dicembre). Analisi, sviluppo, security e networking Nel periodo che va dal 2009 al dicembre 2010 mi sono occupato di sicurezza informatica aziendale in ambiente simulato, e partendo dall’analisi delle problematiche dell'intranet aziendale fatte dall’amministratore dell’infrastruttura IT, ho installato, configurato e gestito una piattaforma di macchine virtuali dedicate al funzionamento di IDS di varia natura, e producenti reportistica adeguata elaborando i vari logs. Ho anche implementato, installato e gestito un sito web interno ad accesso limitato ad amministratori e all’IT manager, per la visualizzazione di reports e grafici relativi ad analisi di traffico, allarmi, inventario delle risorse, segnalazioni varie e/o risultato dei test di vulnerabilità. Inoltre in alcune fasi è stato necessario sviluppare codice in C e Python di supporto principalmente al Server OpenVAS 2.0.3 ed alla configurazione Server/Sensor di OSSIM, e per problematiche di trasmissione sicura, cifratura, integrità, etc. fa uso delle librerie GNU scaricabili dai siti appositi. Per la configurazione e gestione del sito web interno ho utlizzato tecnologia Apache, http server connesso a tomcat 5.5, installati su macchina debian Lenny con Kernel Linux 2.6.26. Ho sviluppato alcune servlet per scopi particolari.
Giugno 2008- giugno 2009: Sviluppo di webapps collegate al sito di netsystem.com e/o ai servizi offerti. Nel periodo 2008-2009 mi sono occupato di sviluppo e mantenimento alcune web applications che interagivano con alcuni siti di social network, principalmente facebook, e dei siti di photosharing Flickr e Fotolia, per ricerche di immagini basate su tags e licenze, per il team aziendale di design grafico. Gli strumenti di sviluppo e gestione impiegati erano APACHE, MYSQL, PhpMyAdmin, PHP 5.2.6 (almeno) ed Eclipse, Firefox ed IE sono stati i browsers considerati di riferimento.
2004-2008: Sviluppo di software per attività di broadcasting TV e digitale terrestre (DVB-T). Ho sviluppato una piattaforma che consente ad un broadcaster di trasmettere bouquet di programmi in streaming con secretazione a bassa qualità sbloccabile via SMS. La piattaforma si appoggia su tecnologia Thales e fa uso di un server OpenMux 4.0.0. Gli sviluppi principali sono avvenuti in C++ lato server e Java (J2ME e javatv) lato client. Per il server OpenMux operante su piattaforma Windows NT, ho sviluppato un’architettura dedicata che implementa quasi tutta la messaggistica del protocollo. I clients della piattaforma girano sui comuni decoders MHP.
2001-2004: Sviluppo di software relativo alla piattaforma satellitare (DVB-S). 2001-2004 ho partecipato allo sviluppo della piattaforma per l’offerta aziendale di connettività satellitare monodirezionale. Il mio contributo ha riguardato sviluppi in C++ di alcuni moduli di interfaccia al DB SQLServer (MS), e lo sviluppo della parte client, che girava sul PC dell’utente, e interagiva con la scheda satellitare più alcuni prodotti dedicati agli utenti.
1997-2001 Reengeenering di gestionali COBOL per problematica del millenium bug. Sviluppo di software in vari linguaggi e per diversi ambienti operativi. HAL operava nello sviluppo di processi di reengeneering. In quel periodo l’obiettivo era correggere il ‘millennium bug’ negli applicativi gestionali. HAL ha sviluppato una tecnologia accostabile alla procedura di progettazione del front-end di un compilatore e dotata di un algoritmo proprietario in grado di operare la correzione in modo sistematico individuando tutti i campi data a due cifre ed allargandoli a quattro cifre. La piattaforma HAL di reengineering è stata sviluppata su AS/400 utilizzando principalmente il COBOL 400.
Riassunto conoscenze
Linguaggi:
JAVA, PHP, Javascript, C/C++, Python, Perl
IDE:
– Eclipse sia per Java (JDT) che per PHP (PDT).
– Eclipse modificati e specifici per Oracle (OEPE) e Liferay.
Strumenti di collaboration:
– SVN, git.
Sviluppo servizi web con tecnologia Liferay e Java Enterprise facendo uso di:
– Axis2+Dozer.
– Ant+Ivy
– Test tools: SoapUI.
Sviluppo servizi web con tecnologie JBoss e Java Enterprise facendo uso di:
– Spring+JAX-WS+JAXB+Hibernate.
– db di riferimento: Oracle, con TOAD for Oracle come interfaccia di accesso.
– Maven, sia da linea di comando che con m2eclipse.
– Groovy con grails ed il plugin di JQuery per lo sviluppo del MW e del FE.
– JBoss-AS 7.1.1 è l’application server.
– Test tools: SoapUI + Junit 4.
Sviluppo portale per servizi di Internet Banking con tecnologie Oracle Java Enterprise facendo uso di:
– SpringMVC+JAX-WS+JAXB+XPath
– Produzione di WSDL+XSD partendo dall’analisi funzionale,
– Maven, sia da linea di comando che con m2eclipse (generazione ear + plugin custom)
– jenkins per la continuous integration.
– Weblogic 10.3 è l’application server.
– Test tools: SoapUI + Junit 4.
Sviluppo di WebApps MVC in PHP facendo uso di
– framework per javascript: MooTools,JQuery
– db di riferimento: PostgreSQL, MySQL.
– browser di riferimento: Firefox, Chrome ed IE >= 8.0
– template library: Smarty
– generazione di report: fpdf, tcpdf, phpexcel
– framework per test: PHPUnit
– ORM: Doctrine 2.4
– Debugger: XDebug
Ulteriori competenze importanti maturate negli anni:
– Buona conoscenza dei principali protocolli di rete appartenenti allo standard ISO-OSI,
– Ottima conoscenza dello standard di trasmissione DVB-MPEG2 sia in ambito satellitare (DVB-S) che digitale terrestre (DVB-T) con riferimento al caso particolare del multihome platform (ricevitori interattivi MHP).
– Gestione di Web Server con tecnologie Apache (HTTP server e Tomcat servlet container).
– Buona familiarità con il mondo Linux con Debian e Fedora quale distros di riferimento.
– Buona conoscenza dell’architettura server/sensor di OSSIM e di alcuni degli IDS/IPS open source più famosi.
77 total views, 1 today