Recapping my journey at Endless

- 9 mins

It seemed only yesterday when I joined Endless as a Papercuts Team member after being a GNOME contributor for a while. I was supposed to fix papercuts issues in the OS, package a few electron apps to flatpaks and overall work alongside the desktop team. I am happy to report that the experience almost 2 years now, has been a learning and a positive one that has made me a better developer and human by-and-large.

Endless is a mission. A very tough one, though. Closely working with the team, I learned more about the mission and goals; how our work is going to address the problem-space and K.P.Is to measure the impact made; it was sheer-motivating. In other words:

“Being a part of something bigger, a movement.”

Over the course, I got shifted to the core desktop team, where I started working directly in the desktop team. I joined the desktop team at a time where the OS had a huge delta(GNOME 3.26) with the upstream GNOME and we needed to fast-forward the rebase over three releases(GNOME 3.32). Naturally rebasing such a delta is no cakewalk, given the desktop team was dealing with fallouts from the rebases until the next 3-to-4 rolling releases. Retrospecting this particular time period, I think we learned three major lessons.

The first one is quite obvious as the rebasing over GNOME 3.32 was a very painful one. We took a note of it in the retrospectives and made sure we do not miss a rebase over an upstream release cycle. The second and third are complementary to each other. Endless has taken great strides in this direction. Projects that were intially started as a downstream project based on the various forms of requests from the field/ground reports, have been upstream-ed across various open source projects, be it Kernel, Flatpak, OSTree and many core GNOME components. Endless also proposes plans that might be useful to the community in general for e.g., I can recommend the talk given by Robert McQueen on Product Metrics & Respecting Privacy for GNOME from GUADEC-2019, where he talks about how GNOME can benefit on metrics front, using some of the pieces that has already been developed and tested by Endless in the field. This is important as the community gets some food for thought, design and refine their goals and probably helps to develop a roadmap for future releases.

Highlights of the work that I have been doing!

Disk space improvements:

Endless suffered from ENOSPACE on low-cost systems where total disk-space is 32GB. This was due to the OS image size containing all the offline knoweldge-library content and having apps such as encyclopedias. A ton of work went into improving disk space across Flatpak, OSTree and GNOME Software.

I covered this in detail in my earlier post.

Password peeking support in GNOME Shell:

Endless ground reports always had a request for password-peeking functionality so that was already one of the top priority at Endless. Adopted upstream-first strategy hence, GNOME 3.36 is shipping password-peeking support. This was developed entirely on Endless’ work-time and was one of the top on list of things to watch out for next release at the last GNOME Advisory Board meeting at FOSDEM (as I have been told).

Collaborating on GNOME new lock screen:

Few pieces around the new user-avatar at login and lock-screen were contributed out of my Endless’ work-time under the guidance of GNOME Shell and Design team. Not only I started to enjoy developing the Shell(as it’s quite a challenge + fun), I started to take more initiative for shell-related work. Also, to get these specific updates, I strongly recommended following the GNOME Shell and Mutter development blog!

Hooking parental-controls across the desktop

Parental controls has been one of the important focus for Endless for a while now and I fondly remember working on it as it was one of the most productive work-period during the journey. The project is authored and being led by Philip Withnall to bring this to the wider community for availability.


Needless to say that all this were unconditionally accompanied by chasing endless bugs/crashes/builds or test failures across various system-components, resolving release blockers, rebases, packaging and dabbling with infrastructure to setup up the pipeline.

Lately I have been doing some basic metrics restructuring work that has been refreshing to work on and also to take a break from doing GNOME-y work.

Developing and enhancing soft skills

To be honest, 2 years back when I started, I took soft-skills for granted and I assumed I pretty-much have it - “How hard it could be, right?” I couldn’t have been more wrong. My myth were busted time and again over the course. It takes real work to communicate efficiently while constantly monitoring/maintaining that I am not directing my agreement/disagreement/comments as a personal attack towards a colleague no matter where in corporate heirarchy or team. I tried to demonstrate a kind and humble attitude towards everyone and the work that they did and I have pretty-much got the same in return. Looking back, I see myself how much growth I have internalized in this particular domain which I think will help me in maintaining relationships with the people I have worked with over time.

On remote work and managing stress

My position as Desktop software developer has been 100% remote. I worked from India (UTC +5:30) most of the times. My experience with remote work has been positive so far and my experience with couple of Google summer of Code rounds had made an eligibility-check of “being able to work remotely” (as Endless is my first-company to work for, after I graduated in 2017) while I was interviewing for the company.

Now to the section of managing stress and burn-out. It’s pretty much established that, at least at some point in work-life, one faces burnout and doesn’t know what to do about it. This was new for me as well. Working, inevitably brings stress especially when you are working against a release deadline and/or being in a deep rabbit-hole or just when things are not going as you would expect. Initially I used to go silent on things like this, fearing that it would affect my performance reviews and being looked down upon as an engineer; but to my suprise opening about it eventually, was one of the best things I have done. Not only was I provided with support but I was made to understand that this is normal and everyone suffers from it at some point in their careers. All we can do is learn from it, listen to warning-signals and take regular time-off to recover from it.

Before closing on this note, I want to just touch upon couple of more points about remote-work that I think are valuable lessons learnt:

On Endless next steps

As Endless moves ahead to restructure itself; being a full-fledged non-profit foundation, I wish nothing but huge success on their path forwards. Certainly considering working out all these years that have brought learnings and experiences about how the next billion of users will interact with computing; the decisions made in the resturcture makes total sense. I also want to give a huge shout out to the entire team at Endless who has helped my grow in so many aspects. Thank you so much.

Having said that, I will be looking for a job very soon. If you or your org. is looking for a generalist system-developer with track record in GNOME or associated technologies, I am eager to talk to you. Feel free to drop a comment down below or ping me at Twitter, LinkedIn or email at mailumangjain@gmail.com

Markdowm Image

Until the next post, Happy Hacking everyone!

Umang Jain

Umang Jain

Makes the machines talk

comments powered by Disqus
rss facebook twitter github youtube mail spotify instagram linkedin google pinterest medium