Gergő
Érdi
Dr.
Család str. 24
Budapest
H-1039
Hungary
+36 (30) 9319-447
Motivation
After seven years of developing high-quality Free Software,
contributing to projects with hundreds of developers from all
around the world, using a wide array of technologies, all the
while keeping an eye on the bleeding edge, I am now ready to
take a leap into commercial software development as a
part-time programmer.
Experience and Skills
At A Glance
-
Technologies:
POSIX environment, X Windowing System, GTK+ GUI toolkit,
GNOME developer framework, Language bridging, PalmOS
environment, CORBA messaging system, XML, HTML/XHTML/CSS, XSL:FO,
LaTeX, Revision Control Management
-
Programming Languages:
C#, C++, C, XSLT, Python, Java, BASIC, rudimentary Lisp/Scheme knowledge
Professional experience
-
2005 - (ongoing)
Programmer, Intentional Software
Developing Desktop Applications
-
GNOME Desktop Environment
The GNOME Project is a
Free Software project to create an easy-to-use and powerful
graphical desktop for UNIX systems. I've been one of the
several hundred regular contributors of GNOME since
1999. Some of the more high-profile applications I've
contributed to include the Evolution groupware
suite and the Gnumeric spreadsheet.
-
Guikachu
Guikachu is a high-level graphical editor for the RCP resource
description language, as used by PalmOS developers to create
user interfaces for handheld applications. I have started
Guikachu from scratch in 2001. The clean
Model/View/Controller separation pervasive in its design
allowed the C++ codebase to stay manageable even as the
project is nearing a total net size of thirty thousand SLOC.
Bridging Between Programming Languages
-
GTKmm
GTKmm is a C++ wrapper around the C API of the
GTK+ GUI toolkit. GTKmm is written in such a
way that it completely hides the C API, and presents the
developer with a native C++ interface, using features of C++
such as class inheritance and templates to maximize
productivity, and using compile-time type safety to help
applications become more robust. Since GTK+ itself is an
object-oriented library, using it from C++ is a more natural
level of abstraction than its native C API. I've been both
a core developer and a user of the GTKmm library.
-
ORBit/C++
ORBit is a CORBA ORB written in C, and is part
of the GNOME Project. In 2003 I led an effort of a handful
of developers to update a bit-rotten C++ wrapper for
ORBit. Unfortunately, due to the OMG's CORBA/C++
specification, this project has been nowhere near as
successful in creating a modern C++ API as GTKmm has.
-
MonkeyBeans
I wrote MonkeyBeans in 2000 as a testbed for
Bonobo interoperability. MonkeyBeans was the first
independent implementation of some Bonobo interfaces,
written in Java. It integrated with the standard Java API's
to provide a seamless interface for developers to e.g. embed
Bonobo controls into AWT applications. This was a
research project, I stopped working on it after getting
some proof-of-concept code running.
Messaging Systems
-
CORBA
Working on ORBit/C++ required an understanding
of the high-level design as well as the gritty
implementation details of the CORBA object messaging system.
-
Bonobo
Bonobo is the GNOME Project's component
framework, based on CORBA. I actively participated in the
design of the Clipboard and the Media modules of Bonobo. In
2000 I gave a talk on Bonobo at the Hungarian Linux
Conference.
Virtual Machines
-
Z-Machine
The Z-Machine
is a virtual machine specification from 1979, which is still
in use today by the Interactive Fiction community. I've
worked on and off on an eventually unreleased C++ implementation of
ZCode interpreting between 2000 and 2004.
Document Management
-
XML and XSLT
I regularly create ad-hoc XML formats to produce documents like
my website or the
Guikachu User's Manual.
These HTML pages and DocBook documents are generated from
files written in domain-specific XML formats by the functional
programming language XSLT. This CV itself is created from its own XML
language by chaining together two XSLT programs.
A separate
page on my website explains the process.
-
LaTeX
The largest LaTeX document I've authored was my 30-odd page M.D.
thesis (in Hungarian) at the Semmelweis University of Medicine.
Non-technical skills
Technical Writing
-
Guikachu User's Manual
The User's Manual of Guikachu is the combination of a
tutorial-like description of the user interface, and an
extensive reference documentation of the various PalmOS objects one can edit in Guikachu.
-
GNOME Panel Applet tutorial
This tutorial was the first in 1999 to explain step-by-step
the process of writing GNOME panel applets. Although out of
date by now, it was originally even picked up and linked to by the
IBM
DeveloperWorks site.
-
Relational Programming primer
I wrote an introductory text in 2003 to present readers of the Advogato website to
Ákos Fóthi's relational model of programming.
Working in Teams
-
Free Software
The GNOME Project has contributors on the order of magnitude
of hundreds, from all over the globe. I've been very
successful in working remotely but all the while actively
cooperating with both other hobbist developers, and also
programmers with commercial backing,
e.g. Novell nee Ximian. In 2004 I have
participated in the GNOME Bounty Hunt and
won several of them. This required close coordination with
both the core Evolution maintainers and the
GNOME Foundation administration.
-
Conferences
I have attended the GNOME
Users and Developers European Conference twice, and gave
a talk on Bonobo at the Hungarian Linux Conference 2000.
Languages
- Hungarian: Mother tongue
- English: Used daily
- German: Intermediate level
- Japanese: Beginner level
Personal
- Member of the Hungarian chapter of Mensa
- Driving license