Patrik‎ > ‎

Curriculum Vitae

Personal Data
Name Patrik Reali
Title Dr. sc. tech.
Dipl. Informatik-Ing. ETH
Date of Birth 11 July 1971
Marital Status Married
Nationality Swiss and French
Languages Italian (mother tongue)
French (mother tongue)
English (Cambridge Certificate of Proficiency in English)
German (fluently spoken and written)
Contact Tramstrasse 62
8050 Zürich
Switzerland
+41 79 290 27 04 (Mobile)
+41 43 300 13 51 (Home)
patrik _at_ reali.ch (email)

Education
1995-2003 Ph.D.
Thesis: Using Oberon's Active Objects for Compilation and Language Interoperability
Language and Run-Time Research Group (Examiner: Prof. Dr. J. Gutknecht; Co-examiner: Prof. Dr. B. Meyer)
Swiss Federal Institute of Technology (ETH) Zurich
1995 Dipl. Inf. Ing ETH with the project 'Host-Target Kommunikation mit TCP/IP für XOberon'
1990-1995 Computer Science at ETH Zürich
Minor subject: Marketing
1986-1990 Secondary School (Liceo Lugano 2), Matura Type C (Scientific type)

Work Experience
04.2007 - present Tech Lead / Manager
Google Switzerland
01.2005 - 03.2007 Software Engineer
Google Switzerland
03.2004 - 09.2004 Lecturer
FHA (Fachhochschule Aargau)
10.2002 - 03.2005 Lecturer
CS DepartmentETH-Zürich
7.2002 - 9.2004 Senior Software Engineer,
ELCA Informatik AG, Zürich
12.1995 - 3.2002 Researcher and teaching assistant 
ETH-Zürich, Language and Run-Time Research Group (Prof. J. Gutknecht)
9.1995-11.1995 Software developer
ETH
-Zürich, Institute of Robotics
11.1994-2.1995 Internship
Alcatel
 Zürich, Project ATOM (Advanced Terminal for Operations and Maintenance)
1.1994-9.1994 Software Developer (part-time job)
ETH-Zürich, TIKHybrid-III Project 
3.1993 - 4.1993 Internship
BSI
 Computer Center Lugano, now Boss Lab
3.1991 - 4.1991 Internship
BSI
 Computer Center Lugano, now Boss Lab

Technical Knowledge
Programming Languages Oberon, C, C++, C#, Java, x86 Assembler, Java, Java byte-code, Python, Perl, PHP, SQL, Scheme
Operating Systems and Platforms Oberon, Aos, Java, Linux, .NET
Special Knowledge Concurrent programming, compiler construction, operating system and virtual machine construction, language design, driver development.
Protocols and Standards TCP/IP, HTTP, Telnet, FTP, DNS, SMTP, POP, HTML, XML, XLST, SOAP, CORBA, ATA/ATAPI, SCSI

Teaching Experience
Lecturer (FHA) Einführung in .NET (introduction to .NET)
(ETH) System Software (Operating Systems Fundamentals, core lecture with 160 students)
Teaching assistant ETH Lectures: System-SoftwareInformatik 1Informatik 2Informatik 4
Continuing Education Courses: Internet and HTMLComponent Software
Other onboarding classes at Google
internal C# course at ELCA

Projects
Jnode
(2004) 
link
JNode is a Java New Operating System Design Effort. The goal is to get an simple to use and install Java operating system for personal use. Any java application should run on it, fast & secure!
I'm member of the JNode-Core team and I'm developing on the L1A optimizing bytecode to x86 compiler.
GNU Classpath
(2003-2004) 
link
GNU Classpath is a GNU project to create free core class libraries for use with virtual machines and compilers for the java programming language.
I'm website editor of the project.
IIOP.NET
(2003-2004) 
link
IIOP.NET is ELCA's opensource implementation of a .NET remoting channel for the IIOP (CORBA) protocol, which allows .NET to provide and access remote objects to other IIOP-based systems (like Java RMI/IIOP)
I supervised the project and wrote tutorials, documentation, and articles.
ELCA's LEAF.NET
(2002-2004) 
link
ELCA's Lean Extensible Architectural Framework for .NET is a framework to provide the necessary tools fast development of n-tier applications.
I designed and implemented the security and logging infrastructure in the framework, and took part in the development of various other parts the framework; I supervised many internships; used the experience acquired for teaching, presentations, and consulting.
Jaos
(1999-2004) 
link
Jaos is a Java VM for the Aos system. It is designed to allow language interoperability between Oberon and Java.
I designed and wrote the VM core including loader, linker, one pattern-expansion compiler, one optimizing compiler, and implemented the native methods to bind the Java classes to the underlying Bluebottle-OS.
Paco
(1998-2003)
Paco is an Active Oberon Compiler using active objects (one per scope) to concurrently parse and compile an Active Oberon module.
I wrote the whole compiler front-end and a back-end for Intel processors
Active Oberon Language
(1997-2003) 
link
The Active Oberon Language is an extension of the Oberon language designed to add active objects (and thus concurrency) in the language. Interfaces are also added to allow modeling of software components.
I co-designed the language and implemented it in the ETH OP2 and Paco Compilers.
Oberon and Native Oberon
(1996-2003) 
link
The Oberon System is a modern research and teaching operating system.
Project member; maintenance of the compiler, and development of a few drivers.
Hostess
(2001-2002) 
link
Hostess is an open source test-suite for Oberon Language Compilers.
Project initiator; I wrote part of the tests and helped design the schedule description format.
Active Oberon.NET
(2000-2002) 
link
Active Oberon.NET is a port of the Active Oberon language for the .NET platform
Helped to design the mapping of Active Oberon to the CLR.
JMLC'2000
(1999-2000) 
link
The Joint Modular Languages Conference 2000 took place in Zurich.
I was the logistic-chairman of the conference.
XOberon
(1995) 
link
XOberon is a real-time operating system created at ETH by the Institute of Robotics
I integrated the TCP/IP stack into the system and implemented many distributed services on top of it.
Hybrid III
(1994)
ETH project to create a car with hybrid engine.
I worked on the software used to control the car operation, in particular to automate the optimal scheduling of the sensor polling.
Cuntrast '94
(1993-1994)
Cuntrast '94 is the Swiss scout movement's jamboree that took place in july 1994 with over 21'000 participants.
I was co-responsible for the organization and direction of  two restaurants (about 300 places) and for the 18 voluntary workers.

Conferences and Workshops Attended
FOSDEM 2004 Free and open Source Software Developers' Meeting
Brussels, Belgium. 21-22 February 2004
Linux-Kongress 2003 10th International Linux System Technology Conference
Saarbrücken, Germany. 14-16 October 2003
.NET Crash Course Microsoft .NET Crash Course II for Faculty and PhDs
Cambridge, England. 25-28 March 2002
Babel'01 First International Workshop on Multi-Language Infrastructure and interoperability
Firenze, Italy. 8 September 2001
JMLC'2000 Joint Modular Languages Conference
Zurich, Switzerland. 7-11 September 2000
JMLC'97 Joint Modular Languages Conference
Linz, Austria. March 1997

Publications, Presentations, Articles
Patrik Reali; talk 'Infrastructure at Google'; Simposio SUPSI: 'Internet: tecnologie e servizi emergenti', 7 May 2009, Manno
Patrik Reali; Accessing an EJB from .NET Using IIOP.NET: an Example; August 2003; The Code Project
Patrik Reali; Building a Distributed Object System with .NET and J2EE Using IIOP.NET; July 2003; The Code Project (awarded best C# article of the month)
Patrik Reali; Using Oberon's Active Objects for Language Interoperability and Compilation; Hartung-Gorre Verlag Konstanz; ISBN 3-89649-863-4 (Reprint of ETH Dissertation 15022)
Patrik Reali; Using Oberon's Active Objects for Language Interoperability and Compilation; PhD Thesis (ETH 15022), Examiners: Prof. J Gutknecht and Prof. B. Meyer; 2003
Patrik Reali; Active Oberon Language Report; Bluebottle-OS on-line documentation; 14 March 2002
Patrik Reali; Structuring a compiler with active objects; Proceedings JMLC2000, Zurich Switzerland
Andreas R. Disteli, Patrik Reali; Combining Oberon with Active Objects; Proceedings JMLC'97, Linz, Austria
Patrik Reali; Host-Target Kommunikation mit TCP/IP für XOberon, Projektdokumentation; Diplomarbeit, Institut für Robotik, ETH Zürich, 26. July 1995

Other Information
Memberships ACMFSFETH AlumniIAETH
Voluntary
Collaborations
JNode: project member (JNode-Core team)
GNU Classpath: project member
IIOP.NET: project co-administrator
Logiquest Contest '05 (jury president), '04 and '03 (jury member)
Collaborator of the Swiss scout movement (PBS/MSDS) from 1997 to 2003
Leader in a scout group from 1989 to 1994
Elected assistant representative in the C.S. department from 1998 to 2001 (member of the 'Unterrichtskommission', the department commission planning the undergraduate curriculum)
Assistant representative in the steering committee of the Institute of Computer Systems at ETH-Zurich from 1999 to 2002
Hobbies Cooking, playing the piano, reading
Sports Hiking, biking, and skiing
Driving Permit class B, since 1989

Comments