Curriculum Vitae
Transcript
Curriculum Vitae
Curriculum Vitae Ultimo aggiornamento: Ottobre 2012 Anagrafica Marco Trentini Cell.: (+39) 348 8423567 Email: [email protected] Web: http://datasked.com nato a Seregno (MB) il 26/06/1979 residente in via Stampa Soncino n.7 - 21047 Saronno (VA) Sintesi Laureato in informatica specialistica con una tesi sullo scheduling dei processi nei sistemi operativi Linux e FreeBSD con aspetti di real-time. Esperienza lavorativa di 7 anni come progettista software embedded nei settori di telecomunicazioni, automotive, energia e networking. Appassionato di sport, del fai-da-te e di informatica in generale. Esperienze lavorative Ottobre 2010 – Oggi ADB broadband solutions (ex Pirelli) sede di Milano Bicocca (MI) Sviluppatore C embedded – Settore Networking Progettazione software embedded per router xDSL. Attività di sviluppo, integrazione e bug fixing su piattaforme Broadcom/OpenWrt con kernel Linux su MIPS/ARM. Lavoro in team. Attività: (*) integrazione e bug fixing device driver ethernet/wifi (hook in rx/tx per accelerazione di rete software/hardware) (*) integrazione e bug fixing device driver switch ethernet in kernel e in CFE (hook driver ethernet, problematiche di GPIO in CFE, arl table, vlan table) (*) integrazione e bug fixing device driver xDSL (*) sviluppo e bug fixing extension target di ebtable (kernel e userspace) (*) integrazione e bug fixing QDISC scheduler WFQ, WRR, SP (problematiche di overflow, QoS) (*) sviluppo nuovi moduli di match e target per iptables (kernel e userspace) (*) sviluppo patch per usare QDISC con fkbuff (strutture dati simili a skbuff utilizzate dagli acceleratori di rete di broadcom) (*) sviluppo nuovo acceleratore di rete (hook in rx/tx driver eth/wifi/xdsl per saltare parte dello stack di networking di linux, da netif_receive_skb()) (*) sviluppo nuove ioctl (*) integrazione regole iptables/ebtables (*) sviluppo nuove proc entry (*) integrazione e bug fixing shell script (bash) (*) integrazione e bug fixing html (GUI router) 1/6 (*) integrazione e bug fixing tunnel ipv6->ipv4 (QoS) (*) enforce coding style (*) integrazione Makefile (*) analisi kernel panic/oops con call trace Tecnologie: Linguaggi: C, shell scripting, html, javascript OS: Kernel Linux, Debian Strumenti di supporto: datasheet hardware, trac, hpqc Strumenti di sviluppo: geany, vi, diff, cvs, svn, cross compile, quilt, IRC Strumenti di debug/test: sysrq, printk, gdb, objdump, wireshark, tcpdump, iperf, tcpreply Hot words: net_device, net_device_ops, spin_lock, skbuff, fkbuff, dev_queue_only, blog, flow cache, iptables, hairpinning, frammentazione, header L2, DMA buffer, tcp_timeout_close_wait, 6rd tunneling, multicast, dhcp, tr69, igmp, snooping, kernel panic, oops, vlan, qdisc, mtu, fifo, shaping, tr18, bucket, fin/ack, bcm6368 Aprile 2010 – Settembre 2010 (6 mesi) Snap-on Equipment sede di Correggio (MO) Sviluppatore C++ – Settore Automotive Progettazione software per strumentazioni relative al settore automotive su hardware Intel. Una prima attività ha previsto un porting da RS232 a Ethernet (socket) in C++ di un protocollo di comunicazione per gestire gli assetti auto. Una seconda attività ha previsto un’integrazione di una procedura grafica di assetto auto e allineamento sensori. Le attività hanno richiesto una certa autonomia nelle fasi di analisi, progettazione e verifica. Attività: (1) Analisi di fattibilità (partendo da un documento di design) di porting da protocollo seriale a ethernet (socket) di una libreria che viene utilizzata da una applicazione grafica per la gestione della strumentazione assetti auto. Stesura di un documento di design con le specifiche della medesima libreria implementata con protocollo di comunicazione ethernet. Implementazione in C/C++ (Visual Studio 6) della libreria con utilizzo di socket. Test di validazione tramite lo sviluppo di un applicativo in Visual Basic che, tramite la libreria implementata, si collega alla strumentazione che gestisce gli assetti auto, impostando e rilevando le misurazioni opportune. (2) Sviluppo di una procedura grafica per gestire assetti auto e calibrazione sensori per un modello di auto specifico. La procedura, sviluppata in C++ (con parte grafica) viene inserita all’interno di un applicativo che indica all’operatore i passi necessari per effettuare l’assetto dell’auto e l’allineamento di alcuni sensori. Tecnologie: Windows, Visual Studio, linguaggio C/C++, socket, rs232. 2/6 Dicembre 2005 - Dicembre 2009 (4 anni) Nokia Siemens Network (NSN) sede di Cinisello Balsamo (MI) Sviluppatore C embedded – Settore Telecomunicazioni Analisi, progettazione, realizzazione e supporto di software embedded per apparati di rete GSM/GPRS su hardware Interl/PowerPC. Le attività, svolte con il metodo waterfall, hanno toccato tutte le principali fasi di ciclo di vita del software: analisi delle specifiche di progetto producendo documentazione di design (in inglese) della soluzione; implementazione in c-linux (circa 22.000 righe di codice) della soluzione secondo gli standard previsti (ansi C); validazione del software tramite ambiente di test; analisi delle malfunzioni riportate relative al software prodotto e bug-fixing con patch in assembly (x86/powerPC). Lavoro in team. Attività: (1) Applicativo per la gestione delle matrici di interconnessione dei due end-point della comunicazione GSM/GPRS. Processo single-thread posto sulle schede di linea, comunica con gli altri processi tramite lo scambio di messaggistica basata su socket e si occupa di programmare in FPGA/DSP il livello fisico e il livello data-link (link di segnalazione come LAPD, SS7 e FR) per permette l’instaurazione di comunicazioni GSM e GPRS. (2) Device handler per la gestione di un dispositivo elettronico che, tramite interrogazioni di apposita sensoristica, si occupa di verificare e garantire (tramite procedure di switch/backup) i livelli di tensione e di corrente del rack, verificare e regolare ventole di raffreddamento, gestire un pannello allarmi riportando eventuali anomalie all’applicativo utilizzato dall’operatore. Inoltre fornisce ad altre applicazioni informazioni sulla topologia del rack (es. single o double shelf). Tecnologie: Linux Montavista, Eclipse, linguaggio C, assembly x86 e PowerPC, clearcase, make, gdb, wireshark, shell unix. Luglio 2005 - Novembre 2005 (5 mesi) Centro Elettrotecnico Sperimentale Italiano (CESI) sede di Milano Sviluppatore C – Settore Energia Analisi e sviluppo di una componente software in linguaggio c (circa 2.000 righe di codice) inserita in un progetto industriale di ricerca. L'attività ha previsto una prima fase di analisi e valutazione dell'architettura del sistema in esame e dei protocolli di comunicazioni utilizzati. Sono state poi sviluppate alcune librerie in linguaggio C al fine di implementare un protocollo speciale di comunicazione (ModBus) tra dispositivi elettronici. Inoltre sono state effettuate attività di monitoring di alcuni parametri di funzionamento dei dispositivi stessi. Tecnologie: Windows, layer cygwin, linguaggio C. 3/6 Istruzione Novembre 2011 Laurea Specialistica in Informatica (voto 101/110) presso l'Università degli Studi di Milano-Bicocca Tesi: Real-time EDF scheduling per il kernel FreeBSD: analisi, implementazione e risultati sperimentali. Tesi e materiale disponibile su http://datasked.com/marco-thesis/ Dicembre 2003 Laurea di primo livello in Informatica (voto 98/110) presso l'Università degli Studi di Milano-Bicocca Giugno 1999 Diploma di Perito Industriale Capotecnico Specializzazione: Informatica con votazione: 67/100, conseguito presso l'I.T.I.S Pino Hensemberger, Monza (MI) Conoscenze linguistiche Inglese scritto: Buono Inglese parlato: Discreto Skill informatiche Sviluppatore software Analisi/Documentazione: propensione allo studio di specifiche di progetto producendo documentazione di design, anche in lingua inglese utilizzo a livello accademico di UML (Rational Rose) per realizzare il modello ad oggetti della soluzione software partendo da requisiti e disegno architetturale. stesura documentazione con Latex, doxygen Implementazione/Sviluppo: gestione dei sorgenti con cvs, cvsup, svn, clearcase e git; linguaggi di programmazione: C, C++, assembly, script unix; compilazione con gcc, cross-compilazione, make; aspetti di networking: socket, stack TCP/IP, ipv6, modello client/server; aspetti di programmazione concorrente: thread, semafori/mutex; aspetti di sviluppo software in kernel-space (moduli e device driver): allocazione memoria; gestione interrupt top/botton half; comunicazione con l'hardware (I/O port, I/O memory); implementazione di system call; aspetti di scheduling dei processi; 4/6 Debug/Fix: compilazione kernel con opzioni di debug; utilizzo di kgdb/gdb, printk, wireshark, tcpdump; patch in assembler x86/powerPC. Sistemista Sistemi operativi: FreeBSD; Installazione OS su server con tuning del Kernel (CPU, scheduler, debug, networking, device driver, file system, ecc); Sicurezza: uso dei secure level, delle Jail, firewall (ipfw e pf) e user limit (es. quoting); Networking: NAT/PAT, routing table, proxy; Maintenance: script in cron di verifica con segnalazione via email, nut; Backup: sistema di backup tramite Bacula (con tape drive); Demoni: dns, ssh, ftp, http (apache), smtp/pop/imap (postfix+dovecot), samba, openntpd, cvs, altri; Attualmente gestisco n.2 server con FreeBSD per scopi vari. Altre competenze Realizzazione di un compilatore in linguaggio c (fasi di analisi lessicale e analisi sintattica) per un linguaggio di programmazione di alto livello (uso dei tool flex e yacc). Conoscenza e utilizzo di clutser paralleli: progettazione in c++ della versione parallela (MPI) dell'algoritmo di Dijkstra. Utilizzo di sistemi a code di famiglia Torque/PBS. Sviluppo applicazione client/server per la gestione di un sito di ecommerce con l'ausilio di XML e servelet JAVA Discreta conoscenza degli FPGA e microcontroller Realizzazione di macchine sequenziali tramite un simulatore (XPLA Professional della Xilinx) del circuito integrato FPGA PZ5064-xA44 (programmazione in linguaggio Abel, HDL) e tramite microcontroller ST6225 (programmato in assembler). La relazione e altro materiale di questi progetti sono disponibili su http://datasked.com/category/corsi-uni/ Sviluppo e mantenimento di un proprio portale web: http://datasked.com Discreto uso degli strumenti di laboratorio come oscilloscopio, volmentro, saldatore. 5/6 Aspirazioni professionali Il settore lavorativo desiderato è quello della ricerca e sviluppo nell'ambito della scienza dei calcolatori. Di particolare interesse i seguenti argomenti: progettista software embedded/realtime, OS internals (device driver, moduli kernel, scheduler, gestore della memoria, sicurezza, custum kernel), protocolli di rete (es. protocolli di routing), cluster paralleli/GRID, amministrazione di sistema/rete. Informazioni aggiuntive Patente A/B (automunito). Disponibile a trasferimenti/trasferte. Tipologia di contratto: P.IVA Interessi e hobby Appassionato del fai-da-te e di informatica in generale pratico diversi sport tra i quali tennis e corsa. Seguo diverse mailing list su Linux (LWN), FreeBSD, DragonFlyBSD e sono un membro del Progetto di Documentazione Italiana di FreeBSD dove svolgo diverse traduzioni e revisioni. Tra alcune delle letture di informatica cito “Linux Kernel Development” di Robert Love – “PGP” di Simson Garfinkel – “I segreti di Unix” di James C. Armostrong. Autorizzo il trattamento dei dati personali ai sensi della Legge n.196/2003 Saronno, Ottobre 2012 6/6
Documenti analoghi
Il Kernel di Mac OS X: una breve panoramica
- gestione dei thread (capacità di un software di
dividersi in due o più tasks simultanei o quasi);
- gestione della comunicazione e dello scambio dei
dati tra processi (IPC).
Se nel microkernel es...