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.
Education 2003 - (ongoing) Eötvös Loránd University, Faculty of Informatics, Hungary 1999 - 2005 M.D., Semmelweis University of Medicine, Hungary
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 <prod>GNOME Desktop Environment</prod> 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. <a href="http://cactus.rulez.org/projects/guikachu/"><prod>Guikachu</prod></a> 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 <prod><a href="http://www.gtkmm.org/">GTKmm</a></prod> 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. <prod><a href="http://orbitcpp.sourceforge.net/">ORBit/C++</a></prod> 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. <prod>Bonobo</prod> 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 <a href="http://cactus.rulez.org/projects/guikachu/doc/">Guikachu User's Manual</a> 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. <a href="http://cactus.rulez.org/doc/articles/panelapplet/">GNOME Panel Applet tutorial</a> 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. <a href="http://advogato.org/article/727.html">Relational Programming primer</a> 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