Once a Maintainer: Julik Tarkhanov
A former print designer on the freedom of building websites yourself
Welcome to Once a Maintainer, where each week we interview an open source maintainer and tell their story.
This week we’re talking to Julik Tarkhanov, a web developer based in the Netherlands and longtime contributor to the Ruby ecosystem.
Once a Maintainer is written by the team at Infield, an app that helps engineering teams track and plan their dependency upgrades.
How did you get into programming?
I used to be a designer, and I worked at a weekly magazine. At a certain point they wanted to expand into online stuff and they wanted to build a website which was fairly dense. And it basically needed a content management system. There was a guy who was supposed to build it, and I was supposed to be the designer, and that guy who was supposed to build it didn't really show any desire to do it. I was very young and ambitious at the time and I was like, well, okay, then I'll do your job and get your money.
It took a lot of work and the first couple of those dynamic websites that I tried to design and build myself were an absolute nightmare. It was a disaster. But it was a good experience and I enjoyed it.
What language you were using?
It was PHP and a little bit of JavaScript, but it was way back, 2001-2002.
And was this the first programming you'd ever done?
I'd dabbled a tiny bit with AppleScript, which was not good. This was an interesting time frame, let's say the late 90’s, very early aughts where if you wanted to do programming professionally you needed to generally know a lot, but you also needed to pay for the tools. There was this revolutionary moment when Steve Jobs came back to Apple and he brought with him the concept that with every copy of the operating system you would also get the tools to build up applications for that operating system. This didn't used to be the default, right? And since I was mostly in the Apple fanboy circles at the time, people who were programming and could actually build something decent would be either using CodeWarrior, which was like what, a $5k license or something like that at the time, or they would be using something even more strange like MacsBug or other Apple native tools.
So for me, the turning point was PHP and the realization that this stuff is possible to learn and possible to do. But also the fact that you didn't need to have, for example, a Linux install, or a special Unix workstation, or a copy of Visual Studio or Windows. Both of which I didn't like to use on a daily basis. But you could just grab a Mac that you have and all of that stuff would just work on it.
How did you actually go about teaching yourself at the time?
There was actually a very vibrant scene of tech books. I was still in Russia at that time. They would publish decently translated tech literature. For instance I remember that at some point I got myself a book about Postgres. It was a really good book and it was written by two guys from Germany. After many, many years I came to work at a company which used Postgres again, and I started to look for interesting Postgres stuff. And I found a website of a consultancy where one of the principal guys was one of the guys who wrote that book. But it was normal at the time to find decent books about PHP, Postgres, MySQL. You could go online, but that was way more limited.
Did you feel like, as a graphic designer and working primarily in print, that when you moved to the medium of building websites that you had certain design standards for yourself?
Well, two things. I used to be a designer and I did do it professionally, but I didn't say I was that good at it, right?
Secondly, I didn't have that high of a standard design-wise because it was apparent to me where people who were used to print at the time, they would overreach and try to over-design websites. One of the most enjoyable things for me in building websites was exactly that by doing something in a less complicated manner you could do it yourself.
With print, even back then, there was a whole chain of intermediaries between you and the thing that you hold in your hands once it comes back from the printing house. There was a special guy with a special machine who scans the slides, and a special person who does the proofreading, and a special person who does the imposition, and a special person who does the offset film output, and a special person who runs the printing press and the binding and this and that and any one of those people would be able to turn anything that you do into a complete hot mess, right? Whereas with a website, you could create something completely by yourself, publish it by yourself, and it was instantly available to anyone.
This feeling that you can have absolute creative control over something up to the final product I found more valuable than the fact that you get to pick exactly how your text wraps in the way that you want.
Yeah, that's so interesting. So how did you go from building that first website to making it a career?
Well, I dropped it as a career because I wanted to do something completely different. I wanted to go into computer graphics for film, and in the end I did a bachelors for that. So I've done like three years of graphic design study and then another half year of graphic design study here in the Netherlands, and then I switched and did another four years of visual effects and animation. I worked in that field for six or seven years and I didn't develop much of anything. I built an automated website with a CMS for the post house that I worked at. And I built a couple of specialized tools for the industry which I needed and I knew sort of how to build and they became more or less popular tools in narrow circles, but it was not my primary occupation.
I discovered Ruby when I was studying, so that was 2004. But I wasn't doing it professionally until I got severely burned out with the business. And then I was like, well, I still know how to program. What if I can enjoy doing it professionally? Why don't I try? It turned out to be the right choice, and I have been doing for 10 years now, but there was a huge gap in between.
What led to your first foray into open source?
Well PHP itself was open source already, and the databases were open source already. I did use some libraries which were open source early on, it's just that there wasn't an ecosystem. Maybe once or twice I sent a patch to the owners of this or that library.
I remember the first thing that was quasi-open source that I did, it was a plugin for a blogging platform called Movable Type. Then there was Ruby and Rails. That was about 2004-ish. The Unicode story with Rails at the time was pretty bad. Since most of my contacts and people who wanted me to build websites for them were still from my life back in Russia, obviously they wanted the Russian alphabet on their website. The very basic stuff would just not work with Rails, and a lot of Unicode things were also terrible in PHP at the time. I sort of transposed the things that I knew with PHP, like how to make Unicode work, into a Rails plugin which just butchered the Ruby string class to basically work with Unicode correctly. Or at least, correctly the way I saw it at the time.
And then what happened is the Fingertips people appeared. Do you know Fingertips?
No.
They’re a very small Dutch web development agency who were there at the very beginning of the Rails story. They were like two guys back then. And they are still together and working together to this day. They are incredibly consistent. They still exist and they came to me and they were like, so you got this thing in place for fixing Unicode and Rails, what if we go about and try to make it more complete?
So they helped with that. And then at a certain point they helped convince the Rails maintainers over mailing list, because things used to happen via mailing list at the time, that this should actually be a part of Active Support. Anyone using Rails can use it, because we were not the only ones having problems with Unicode. And so that's kind of how it went.
Then the GitHub explosion happened. GitHub created this notion that you didn't need a lot of agreement in advance to collaborate with other people. It made collaboration a push process, so it made it socially acceptable to do drive-by collaboration. That's it. So I did a small plugin for the Camping framework, because I loved Camping at the time. I don't know if you remember the Camping framework, but it used to be why the lucky stiff’s small web framework for building small stuff. I released a couple of gems as well.
Most of the stuff that I was developing for myself, I tried to develop in a decent manner and put it out on GitHub because it sort of made sense and I always had in the back of my head that should I ever get completely bored and burned out with the business that I'm in, then I could always say, hey, look at my GitHub. Here's what I do as a developer. Maybe you want to hire me.
On the people side, when you started creating your own gems, how did you maintain the community around the gems that you were building?
I think that it's incredibly hard. For me it was never a big issue because even with the open source things that I was moderately successful with, I had at best maybe two contributors. I would try to find out who those people are, and I would try to establish a very close connection with them, discuss matters over chat, etc. And then I basically would try to get to a state with them where I had so much trust in them professionally that with pretty much whatever they wanted to do, I would agree.
We had a couple of popular gems at WeTransfer, and there it was relatively straightforward because sometimes we would get contributions from people and they would want a thing that we wouldn't want. And then it was the matter of figuring out how to have a written public conversation about how this should go, which should be civil. But our sample size was fundamentally so small that we never got to the assholes part. I was never trying to set up a chain of future maintainers. And the company ultimately has to decide who is going to be the maintainers of the libraries or whether they want to maintain them at all or not, and what the setup ought to be.
Who do you think is doing interesting work in open source?
Let me see. I think the Falcon guy (ioquatix) is doing incredible work and I think the community ought to support him in every way possible. Actually, his competitor (noteflakes) is also doing some incredibly interesting work with Digital Fabric. It’s called Polyphony, but it's basically another evented I/O gem ecosystem for Ruby. These two people deserve all the kind attention.
To suggest a maintainer, write to hello@infield.ai.