Curriculum Vitæ

Personalia

Name Ralph Meijer
Location Eindhoven
Contact via email or xa Jabber

Education

Master of Computer Science

Technische Universiteit Eindhoven — 2004

Focus on Distributed Systems.

Master's project

Philips Electronics, Eindhoven, The Netherlands — One year, 2003–2004
Sector Information and Software Technology, group Software Architecting

The design of a framework to test and experiment with different approaches to Quality of Service and graceful degradation in wireless video streaming. Implementation based on GStreamer, adding RTP network streaming and using layered video streams, with increasing quality. Thesis.

Internship

Ericsson Radio Labs, Stockholm, Sweden — Three months, 2000

The design of a robust Voice over IP application, resistant to packet loss as a result over radio (GSM) transmission. This application was to be used in existing test bed that simulates radio transmissions including interference. The goal of the larger project was to reduce traffic size made up by IP/UDP/RTP header information, while being able to resynchronize despite significant packet loss.

Employment

Platform Engineer

Mochi Media, San Francisco, California, USA — December 2011–March 2013

Mochi Media is the largest online games network in the world. They provide products and services for managing the distribution of games, to track usage and support in-game advertising and micro-transactions.

As Platform Engineer I was responsible for maintaining and improving the Python and Erlang based back-end systems for serving up ads and supporting services. Some larger projects I have been involved in are:

  • Moving ETL jobs, for log processing and reporting, from Vertica to Hadoop/HBase.
  • Enhancing the centralized logging infrastructure by complementing Scribe with logstash, Kibana and Graylog2. I also contributed several changes to logstash back to that project.
  • Standardising Python application logging using the Python Logging system and writing logging handlers to pass messages to logstash via RabbitMQ. The same was done for our Twisted based applications, using Twisted's logging system.
  • Setting up Graphite and txStatsD (a Twisted implementation of statsd), and modify applications to send metrics there.
  • Writing scripts for aggregating metrics from ElasticSearch and RabbitMQ.

The logging and graphing projects proved to significantly cut down on the amount of effort and time needed to track down issues and allow us to detect new problems faster. Besides that we were able to cut down on technical debt by replacing or removing related existing custom code and suboptimal services.

Senior Developer

Mediamatic Lab, Amsterdam, The Netherlands — November 2007–December 2011

Mediamatic Lab builds web-based social networks, communities and connections with the physical world. The social networks are built on top of the Community Management System anyMeta.

My role was to architect and implement new features to PHP-based anyMeta. A large part of these has been to connect different instances of anyMeta into a federation using open technologies like Atom, OpenID, OAuth, XRDS and Jabber/XMPP. Related physical world projects involved RFID and Arduino controller boards. Parts of these enhancements have been built using Twisted in Python.

Software Engineer

Jaiku, Helsinki, Finland — March–October 2007

Jaiku was the name of an online service that was developed by a company with the same name, prior to being acquired by Google in October 2007. The service provided users the ability to share their online presence and location with other people, and keep them updated on new photos, trips, blog entries and other social objects they create within other services. All these updates are aggregated into a so-called activity streams. Aspects of Jaiku have influenced what eventually grew to be Google Plus

Besides the website, the service could be accessed through a mobile client for Nokia Series 60 phones, a mobile version of the website, SMS and Instant Messaging (IM). My work focused on the IM interface, based on Jabber/XMPP and more general backend programming on top of Twisted, a framework for networked applications in Python. I was also involved with developing a way to let the service interoperate with other social networking services using open protocols and formats, such as XMPP and Atom, in a near-real time fashion.

Scientific Programmer

Technische Universiteit Eindhoven, Eindhoven, The Netherlands — 2004–2007

Department Mechanical Engineering, group Systems Engineering

Aid researchers by designing and implementing software that supplements their research. Most of the work is focussed on developing models of (parts of) industrial machines. The χ modeling language is a formalism that borrows from process algebra and automata for describing descrete event, timed and hybrid systems. The χ tooling project provides tools to simulated χ models or translate them to other formalisms for analysis of properties. In addition, the models can be used as part of the design and execution of a new system. This is referred to as Model Based Engineering.

Worked on:

  • Python based simulator for χ.
  • Translations from χ to Promela, Uppaal and μCRL using ASF+SDF, a specification language for defining syntax and semantics of languages.
  • A way to execute parts of χ models in combination with realizations (e.g. in hardware) using Twisted and Jabber technologies.

Network Administrator and Software Developer

OLM and subsidiaries, Eindhoven, The Netherlands — 1998–2003

Worked as network administrator of the OLM server park, maintain web and database servers, e-mail, firewalls for the Virtual Communities developed by OLM like SmulWeb, ReisWeb, VrouwZijn, SportWeb and Born2Chill in the Netherlands, Belgium and Germany.

Also developed a Personal TV Guide (previously available at tvgids.nl) and a one-time login system and identity system for all communities called Wereld.

Relevant private projects

Jabber/XMPP

2000–present

Jabber is a set of streaming XML protocols and technologies that enable any two entities on the Internet to exchange messages, presence, and other structured information in close to real time.

Jabber's base protocols have been standardised within the IETF as the eXtensible Messaging and Presence Protocol or XMPP. The XMPP Standards Foundation (XSF) builds open standards on top of XMPP in its XMPP Extension Protocol (XEP) series and is the unifying entity in the Jabber community.

I am a founding Member of the XSF and currently serving on its XMPP Council, that manages the XMPP standards process. I have co-authored the Jabber Publish-Subscribe XEP and several related specifications. I also developed Wokkel, Idavoll, and Mimír, a hybrid Web/Jabber news service, and host several experiments at ralphm.net.

I give presentations and manage booths at conferences like FOSDEM and EuroOSCON.

Twisted — 2004–present

Twisted is an event-driven framework for building networked applications in Python. It implements several network protocols, and I am the module owner of the Jabber implementation.

DJOE — 1993–2001

De Jonge Onderzoekers Eindhoven (DJOE, The Young Scientists, Eindhoven) is a non-profit organisation that provides a laboratory for 12–20 year olds to get acquainted in various technical fields, among which Physics, Electronics, Chemistry, Mechanical Engineering and Computer Science. As a participant, I was UNIX system administrator from 1994–2000 and also served on the board for about three years.

Skills

Natural Languages
Dutch and English, both fluent in writing and speaking.
Programming languages
Python, PHP, Javascript, Perl, C, and C++, among others including assembly for a number of architectures.
Database administration and development
PostgreSQL, MySQL, Oracle.
System administration
FreeBSD, GNU/Linux, SunOS/Solaris, Novell.
Network administration
UTP and BNC cabling, Cisco Routers and Managed Switches, DHCP, firewalls, traffic shapers, bridges, DNS, NFS, Apache web server, Sendmail and Postfix mail servers.
Network Protocols
IP, TCP, UDP, RTP, HTTP, SMTP, XMPP/Jabber.
Web development
(X)HTML, XML, XSLT, XPATH, CSS, RSS, Atom, SOAP, XML-RPC.