Announcement: Farewell from Terminals
(Apologies for misusing VTE’s issue tracker for this post, I just can’t think of any better place.)
It was 6¾ years ago that I got actively involved with VTE and GNOME Terminal. I only wanted to implement one single feature: rewrapping on resize. But I had to clear out a couple of bugs first in order to get to that one. Then I implemented rewrapping. Then went through the bug list and fixed some others. And even more. One thing lead to another, and the project sucked me in.
I’m proud and thankful that while working together with the main developer Christian Persch and many occasional contributors, we managed to bring up VTE and GNOME Terminal to a truly decent, mature, stable, feature rich, modern terminal emulator.
It was a great challenge, a great experience. I volunteered a lot of time and work, and in turn I got a lot to take away. I sincerely believe that I could make an impact, and also that I became a better engineer, and hopefully a better person too.
I no longer have nearly as much time as I used to, and this is unlikely to change. Most of the easy bits are solved, the remaining bugs or improvement ideas aren’t of the “I have a free afternoon, let’s fix something” kind. These definitely played a role in making my current decision, but aren’t the real reasons.
It used to be fun. It truly used to be fun even despite some failures, even despite occasionally coming across people whose behavior I found unacceptable, even when I felt I didn’t get what I deserved; you know how it goes. You learn to accept these, move on, and then it’s fun again, the positive sides massively outweighing the negative ones.
After trying to address issues related to incompatibilities between terminals, I began to care about other terminals too, and the entire ecosystem. In addition to fixing or improving something in VTE, I got more and more interested in fixing or improving things for the entire terminal world.
I started to care more and more, started to aim higher and higher.
And at one point it was too much.
In recent times it was not fun at all. In fact, in some aspects it turned into one of the worst work experiences I’ve ever had.
In the name of cooperating across terminals and trying to move the entire terminal ecosystem forward, suddenly there are way too many people participating. Some clearly – often admittedly – only see a narrower segment of this complex world than I do. Some clearly – often admittedly – only care about a narrower segment. Some believe that “good enough for me” automatically implies “good enough for everyone”. Some believe that wherever decades of uncontrolled evolution resulted in a messy situation with multiple partial imperfect solutions, the way forward is to add yet another partial imperfect “good enough for me, this is what I happen to need right now” method, rather than properly designing one that really works for everyone and can replace the existing mess. Some completely ignore the negative technical criticism and the red flags raised against their proposals, but keep pushing for them, without being able to point out any problems in the suggested alternative proposals.
And these people are equally vocal, and usually more persistent than the others. And these people tend to show the least amount of flexibility and openness in their views. Some even rush ahead in the middle of a conversation and quickly implement their “awesome” ideas that just occurred to them, without waiting for others to comment on, let alone taking into account a design doc I wrote earlier on, putting years of thinking into.
It has become a repeating pattern to end up in endless, inconclusive megathreads, just wasting everyone’s precious time and brain capacity; something that could not happen in any well functioning organization.
It’s all politics and ego, rather than quality engineering and cooperation.
It has reached the point where I literally feel sick when I see a new mail notification in one of these megathreads. It makes me literally depressed to see that people are about to harm the ecosystem by pushing for solutions that don’t take into account many important factors, and don’t respect the feedback of those who clearly examine a wider aspect of the story.
It’s not just that I don’t have fun, or the rewarding feelings of challenge and achievement anymore. It’s that these “cooperations” started to harm my physical and mental well-being. It’s that my overall takeaway from doing this work has become negative. It’s a burden that – especially combined with my general overloadedness – I do not wish to carry anymore.
After thinking about it for a long time, I believe the only choice I have is to suddenly quit, to force myself to stop working on terminals, and focus on other things in life. It won’t be easy, but I clearly know and clearly feel that I have to do this.
All these being said, I can see two things that might change my mind and make me come back.
One is: if a critical mass of terminals decide to cooperate to move the ecosystem forward, and decide that instead of ad-hoc never ending discussions the work needs to be well organized, involving an elected a tech lead whose job is to study the problems, evaluate the suggestions and concerns, and then most importantly: make decisions. If this happens, please reach out to me, I’ll consider running for this position.
The other is: if I don’t just do this as a hobby anymore, but if it significantly helps me have a great quality of life, by offering a competitive compensation. I won’t be seeking for such opportunities, please let me know if you or your employer has an offer, or if there’s something you think I should apply for.
Honestly, I don’t expect either of these two to happen. So…
With bitter-sweet feelings, I’m letting go of this love of mine.
Thank you to all of you who joined me on this adventure!