Earlier this year we started a program (“Developer U”) to help colleagues who show promise for PostgreSQL Development to become contributors. Because I’m a softie for people’s origin stories, I talked to several of the participants about their motivations, hopes, dreams, and patches.
At EDB, Mark Wong touches a variety of areas. He evaluates the performance of EDB's products for internal or external consumption, manages a number of build farm animals that use enterprise Linux distributions, and speaks at PostgreSQL events.
He gets to spend time on community and open source contributions on work time. Mark maintains a bunch of open source benchmarking kits derived from TPC Benchmark(TM) specifications, that were originally developed at the OSDL (now Linux Foundation). He maintains PostgreSQL tools like pg_top and pg_proctab, and volunteers his time as Treasurer for the United States PostgreSQL Association (PgUS).
PgUS has a team dedicated to exhibiting PostgreSQL at various events, Mark makes sure they’re stocked with swag. He also commissions artwork for new releases, and helps a team send out gifts to people acknowledged in the PostgreSQL release notes. And as if that’s not enough, Mark also mentors new contributors to open source software as part of the Google Summer of Code Program, and is one of the organizers of the Portland PostgreSQL User Group!
A bit of background
Mark was selected for an internship right out of high school, where he could learn about database management systems at a hardware company called Sequent. By the time he got to college, he learned that database systems classes are more common at the graduate level. Furthermore, he learned that most, if not all Computer Science graduate programs required a Computer Science undergraduate degree at that time.
“I diversified my program across a few disciplines and ended up fitting into a Civil Engineering degree. I also took the engineering exams and am registered in the Commonwealth of Massachusetts.”
Once he got into graduate school, he was fortunate enough to study under a number of different database researchers, to participate in a database research group, and to design his program around Software Engineering and Database Management Systems.
The Developer U program excited Mark, because it was an opportunity to get back into programming proper.
Contributing to PostgreSQL
Mark's first exposure to the open source world was with Linux kernel developers, an environment similar to PostgreSQL, over 20 years ago. “I treated things like any other work environment. Try to build good relationships and strive to make positive contributions.”
Over the years Mark made a few small open source contributions to projects like Buildbot, collectd, and the Rust implementation of the PCG random number generator. “There are other projects that I've started but didn't spend as much time on as they probably deserve. Mark worked on implementing a new procedural language with Julia, pl/julia, and had a successful Google Summer of Project teaming up with Fabrízio de Royes Mello to mentor Konstantina Skovola. A related project, he started a pl/sample extension that is committed to PostgreSQL to help test some of the procedure language infrastructure as well as provide an example for new procedure languages.
The Performance Farm is a project Mark wishes he could have made more time for. Part of the issue is having enough hardware: “back in the 2000's when I had performance tests running in the OSDL's Scalable Test Platform, there was a good amount of hardware in the platform.” Tomas Vondra started a home grown performance testing platform that Mark attempted to continue, but currently he’s experimenting with adapting some existing Continuous Integration solutions.
Mark’s very first patch to PostgreSQL was accepted in 2009, where he proposed being able to set different block sizes between data and transaction logs. Since the start of the Developer U program, he assisted Akshay Joshi with his submission to reconstruct the CREATE DATABASE command for a given database. As a result of that work, and similar patches proposed by his peers in the program, he submitted another patch to refactor some of the older system function definitions to follow the current preferred style of defining functions with optional parameters.
Interested in getting in touch? Mark has a profile on LinkedIn, and of course on GitHub.