Leaving and staying home #TheZurichYears

Apero on the Polyterasse

How do you know you are approaching a Swiss airport? When the corn field holds an advertisement for a swiss knife. The touchdown was as usual, but soon the feeling of arrival changed. Looking out once more of the window, a series of standing airplanes was going by as we taxied to our parking position. Each of the plains holding up the red, Swiss cross. “Home” was all I could think of and tears started to form in my eyes.

Roughly a year ago I felt upset by Zurich. Upset by the university and other things. Taking a distance, I moved to a different place. I had come back to Zurich before for short visits. The feeling had become better. But this time it was much stronger. Much more positive. The bad aspects washed away.

As more and more I walked through Zurich that day, moving by places I had passed by without really looking at them for so many years, my mood got even more positive. Zurich is a fabulous place to be.

My graduation has happened officially at the end of last year. Still, it never felt like I had departed fully from ETHZ. Now, going through the master ceremony the fact of “this chapter is over” became more permanent. Seeing other students dressed up in suites etc., family members sitting with us in the Audi Max.

The ceremony was amazing. Decorated with music - created by a fabulous bass player and a woman singing. Between that the head of studies, deen of the department and an external personal sayed a few nice words. A few people picked up their medals for special achievements. Because my master thesis was considered one of them I had been asked to give a 5 minute presentation on my work. Compressing a 100+ pages master thesis into a 5 minute presentation turns out to be tough. Even harder was to make it approachable for everyone: making it understandable for people completely unfamiliar to science while keeping people more familiar to the content entertained. Selling the thesis not too low by dropping a few math equations and research issues here and there. Showing how much is still to be done in robotics research at the end.

What I totally forgot: there were about 10 CS ETHZ professors sitting in the front row. If my talk had gone bad, that had been very disappointing. But it went well and people liked it. My mom was not able to follow my English language. Though she was impressed by my proper presentation and liked the images. Also, especially, the reversed A (the forall/universal quantifier).

I hadn’t realized before what it would mean to speek in front of “my class”. The honor going with it. Also, I totally underestimated the ETH Medail. How proud I am about myself to have achieved this. The hard work going into it. The endless hours in libraries to pass exams. It feels good to start having a feeling for personal achievements and treating yourself well.

When we were heading home after a great apero on top of the polyterrasse with view over Zurich, the Zurich lake and the alps, and afterwards dinner with the family. Well. I felt a bit sad. The study chapter was closed. Only at this point I realized how cool the time at ETHZ had been. The many experiences. Impressions. Travels. Friends. Theory. Parties. Shared-Flat-Life. How it had shaped me. How many different ways of thinking I had learned.

At home I read the letter each of us was given through the ceremony. It was handed out to each of us by the head of studies. Quoting from the letter:

Please stay in touch with the department and ETH Zurich, which will always remain your home. Visit the campus occasionally to reminisce about your days as a student and meet up with fellow alumni who have shared your educational experience.

I left my home at (ETH) Zurich. The chapter is closed. I have moved on and ships -sail soon- sailed to new grounds.

I stay at home at (ETH) Zurich. And I hope to visit it in the future again.

(First draft written on 12 June 2017.)

Living with a plain smartphone keyboard

My smartphone is an essential part of the way I communicate with colleagues, friends and family. In my case, that means writing quite a bit on a small screen using only two thumbs everyday. By default, my Android phone comes with a keyboard autocompletion (which I will use synonymous with auto-correction). AFAIKT, the product decision to ship with this feature is to make writing on the small device more enjoyable. Companies go to a big extend on making this feature better for the user. Google has a very interesting blog post + research paper on this topic.

Here is the thing: Around two weeks ago I turned the autocompletion on my phone’s keyboard off. Do I miss it? No. Do I write slower? A bit. Do I enjoy the “new way of writing”? Yes. Actually, I am drafting this blog post on my phone without auto correction right now.

Initially, I turned autocompletion off as I was upset with performed corrections. When chatting, I switch between languages and use also local dialects. The autocompletion keyboards I tried were not able to satisfy my demands. The feeling of virtually shouting at your keyboard like “NOOO, THATS NOT WHAT I WANT. I corrected this already twice and you still corrected it wrongly…” was a daily habit. In addition, I noticed how autocompletion learned many common patterns I repeatedly typed, likes names of friends, locations, urls. Just knowing that my keyboard knows very well what I would type next felt a bit creepy.

Therefore, I started an experiment: I turned the autocompletion on my phone’s keybaord off.

How does that feel like when you switch to typing without autocompletion? At the beginning super weird. As it turned out, I was so used to being able to just hit my thumbs without much thinking somewhere close to the correct key on my keyboard. It just worked (most of the times). Once I turned the autocompletion off, I was fascinated to see how “sloppy by default” I was typing on the keyboard. Now, two weeks into the experiment, I am starting to be able to write blind on the keyboard without autocompletion again. Also, the speed is catching up to the one of the autocompleted one.

What I noticed is that I am paying now much more attention to my grammar and style while writing on the keyboard. I could write sloppy, ignore it, when I type wrong letters here and there. However, I like the idea of trying to preserve (local) languages. Therefore, I try to write grammatically correct text. Yes, this means pressing the shift key after each punctuation to get an upper letter after finishing the previous sentence.. Yes, this means I press the delete key much more often to correct words. It also means I need to think more about the correct spelling of words as. In fact, I found myself looking up word spellings more often lately.

For me, the wins from turning off autocompletion on my phone’s keyboard outweigh the downsides. That I have to stop “being sloppy” was an unexpected outcome of the experiment.

Germans: You should vote today.

tl;dr: I fucked up and cannot vote for the German Election today. If you can, please, do me a favor, and vote. Thanks <3 \jv

(This post is written in English, but I tried to use a more German style of sentence writing. Thought that’s okay if you write about Germany.)

Dear Friends,

so, I have to admit: I do not vote for the German election today.

Believe me, I wish I could go voting today. I think it’s more important than ever to vote. Make your voice been heard.

We live in great times, where people can live a rich and peaceful life. Then, there seems to be a complete independent world (why would otherwise the well living people allow such a state to emerge and exist?), in which things go as bad as they can get. “Such a thing like the Syrian crises should never happen again. Causing so many refugees to leave a country”, I recall many people said. Sure. I guess that’s why someone holding the peace nobel price can stand in front of the camera and sort of pretend as if nothing happens, while hundred thousands have to leave their country. We have gigantic organizations that do good. Others abuse their strength to crunch their competitors. Markets get flooded with products that cause more harm for people than provide benefits, only because the natural alternatives are abandoned due to well executed marketing. Sitting at my desk in Brooklyn, I can point with my fingers in the direction where a bunch of people gathered this week. For a moment, I was holding in and thinking “wait, have I downloaded a Simpson episode or is this really happening?”, but it turned out to be the real-world Tagesschau. Showing an article from a building that should “unite”. Instead, the scenery was showing hate and made me frightened. Is World War III just around the corner? Hopefully not. Great technological advances are made today and “AI” has become a common buzzword. Every technological discovery can be used for good and bad: Splitting an atom can provide electrical energy and also wipe out entire civilizations. Let’s assume someone would come up with an “AI”, do you think the current capitalistic world would be ready for it? Is ready for such a leap in technology while society and politicians discuss about kill switches for robots, which, I think, is a discussion dancing around the main issue at hand.

While many non government institutions, corporations and so on have great power today, I believe the final control and how to execute law, justice and order is still in the hands of politicians (at least it should be, if there wouldn’t be lobbying…). They are to set the tone of how a country sounds, how it behaves and where it’s future is going. Beyond the decision making in their own country, German politicians have also great influence on the decision making in Europe and in the world. Their opinions and actions count.

If you care about any of these, if you are in Germany and did a better job than me, who missed to get his paperwork done via Briefwahl, and you have the privilege to vote, please make your vote happen and thereby influence the political direction of our country for the next 4 years.

Thanks. And enjoy your weekend,

julian

Enjoy the little things

View from the High Line.

Packed, crowded, full of people. The (negative) picture I had in mind when I arrived here. What caught my eye is something different. Yes, it is indeed a packed city, but equipped with so much more, with little things, that it felt positive to me.

A city full of life, full of humans (and many dogs) going their way, cars honking their way through the street and a blue-lighted emergency car here and there to cause a bit of extra action. There is not much space for nature, for trees, bushes and other animals (than dogs). But, the places that are crafted for this, for the nature to unfold, they are there. They exist. They are the trees along the sides of the roads, the trees that form small avenues when you walk along one of the smaller side streets. And parks. Not just this one central big park thingy, but all these small oases all over the city. Here people come to meet. To hang out, to chat, to live. To enjoy.

It feels like as if, because this space is so limited, people make much more use of it. A few chairs on the street is the starting point for a small chilly gathering of friends and neighbors. Space that is abandoned and wouldn’t be used otherwise is made useful. Like the high lines. Where nature, art, shops, photo shootings, stunning views on the valleys between the tower buildings, and people making use of the space.

Welcome to New York.

Tell me how much help you need and I tell you how healthy your environment is

“Oh no, it is raining” was what I was saying when looking outside of my window after getting out of bed. As I am getting from A to B in Zurich using my bike having bad weather turns out to be even worse as bad weather is already by itself.

Especially on this day, it was raining really a lot so I was wondering what I could do. Zurich (as Switzerland in general) has very good public transport, so maybe instead of using my bike, why not use public transport on this rainy day? Unfortunately it turned out, using public transport was not an option for this day: There was a meeting at my university in the morning, then I planed to have lunch at Google Zurich and right afterwards another two meetings at the university. None of the meeting I could move or cancel. The commute time from university to Google office is significantly longer when using public transport then when using my bike, which for this packed day would mean I couldn’t make it between all the meeting to get to Google, have lunch there, and then make it back to university for the next meetings in time.

Your speed in an environment

So, in a sense, I had to make a trade off: Either I use a “nicer” solution in terms of “fighting the rain” and use public transport, loose the ability to move quickly (in other words, loose speed) OR to just face the heavy rain, be able to move faster with my bike and thereby make it to lunch at Google. I was looking forward to meet my Google lunch partner for nearly two week and so I decided to face the heavy rain.

What are your options when you want to cycle in heavy rain? Right, you need to take on a lot of rain gear, that avoids you from getting wet when cycling through the rain. And that’s what I did in the end: Open up my shelf, take out my full bike rain equipment, put it on (then walking like an astronaut), managed to not get wet this way while riding my bike through the rain and managed to be on time for all meetings and enjoyed amazing lunch communication at Google.

What I found most interesting about this is the following discovery: Your speed (that is, how fast you can move within a given environment) is not only dependent on the environment itself, BUT also on the help, support, tools, gears, … you apply to the environment. This allows you to keep up your “normal speed” - though the environment becomes suboptimal - by investing more into your help materials. Written down in a small formula you get this:

Your Speed = Your Environment & Your Help

By itself I find this formalisation already very interesting. (Holding a Bachelor degree in physics, I just love formulas.) And it gets even much more interesting!

What does the amount of help tell you?

Take for example developing large scale apps (say, you want to build the next Facebook): A common opinion is that for scaling an app and still be able to develop new features at the same speed, you need to have very good tooling that helps developers. That is why big companies like Google, Facebook etc. invest pretty heavily in their infrastructure - the daily developer “help” so to speak - to still make good progress and develop new features quickly (have a high speed) when the developers move in this “big app” environment.

From this it seems, the only way to keep up your speed is to invest more and more into your help / support area. But maybe that doesn’t have to be true always. You can ask the following (maybe provocative) question:

Is there a way you can change your environment instead?

Just accept the amount of help you need?

In a sense, if you loose speed as your application grows, maybe you should not take that as a “yeah, that’s what happens if your app gets bigger” attitude but say instead: As your app grows you must make sure you have the right environment setup to solve the problem. There is a blurry line here between where does changing the environment end and where does the help you provide start. However, what I realised over the last few weeks is, that often when you start using a lot of “help” to solve a problem, it is actually a strong indication that something might be wrong with the environment you try to solve a problem in and instead of throwing more and more support, tools, … at the problem, it might make sense to look at the environment and “fix” the problem there instead.

Noticing that there is an issue with the environment at first place is often hard and not obvious. But looking at the more concrete fact of how much help you need to get a job done is what I find much easier. From this concrete knowledge it seems possible to derive than something about the more implicit healthiness of the environment you work with in.

Now, for sure, you can not always change your environment - in the case of the bad weather, there is little you can do ^^ But over the last few weeks I appliedBut if I see how much tooling there is required to build performant web apps, I started to wonder if there is a way to fix the environment instead.


$ #date(07 June 2015)
[Iteration\ Fixed a lot of small typos - thanks a lot to a lovely, wonderful person in Berlin]

Mihai Șucan, my former colleagues, the Stephen Hawking of Mozilla, roughly my age, died.

Kevin: “Ahh, and there is one more thing.”

It was towards the later afternoon and I was calling into our daily Bespin team update call, that we used to do every evening.

Kevin: “There is a potential intern for our project. The Mozilla Labs people want interns on their sides and he cannot go to California because he has something with his skin and cannot stand the sun there. So, they reached out to us to see if he could intern on the Bespin project instead. What do you think about it?”
Joe: “Well, is there any downside in not taking him?”
Kevin: “That’s a good point, I guess no.”

And that is (at least how I can recall the conversation from the back of my head) how the Bespin team grow from four to five developers. I guess no one could only vague guess what this simple “let’s take him” decision would lead to back then. It was not only an intern that would join our team, but pretty soon he would become a full time Mozilla employ and famous within Mozilla. This person turned out to be Mihai Șucan.

But actually, Mihai never turned out to work on Bespin code - back then in 2010, Firefox 4 was developed and because the Firefox team was seeking urgently for man power, the Bespin team was more or less moved over to work on a new Firefox feature. Firefox 4 came with many new features include for the first time build in developer tools (until then Firebug was the only way to debug Firefox). Rob and David had started working on a few prototypes and to help them move faster and make sure the developer tools would ship, Kevin, Joe (later also Patrick), me and Mihai were assigned on the new Firefox Devtools Team.

The start of the project was, well, rough for us. But we were like a small SWAT team of developers that tried to get Firefox Devtools shipped - no matter what. We were all outstanding - but - Mihai just - well - powned us all. He learned quickly, he finished work so fast, his voice was a little bit strange, he made jokes (though they were not always funny, but still, looking back, they were humours in their own sense), he took critic not personal but was thankful for it and got back to work again and overall he was also pragmatic. I remember asking me “is that really only one person that is working there somewhere in eastern Europe or is he sharing secretly work with other people” - he was just working way too fast and at a quality that was outstanding and not imagineable to be done by a single person.

So far I had the pleasure to work with a few giants, people that move at light speed, that cut through problems like butter and still help you and are the most lovely people you can imagine at the same time. Mihai was one of them.

I don’t know Mihai’s birthday, but I guess we were born maybe two, maximum three years apart. I am 25 years now and standing in the middle of my life. Not so Mihai.

On 23 April 2015, Mihai Șucan died of cancer.

When I was working with him back then in 2010, there were no pictures of Mihai on the internet. His voice was strange and I knew something was about his skin (that was why he got assigned to our team at all, recal!). Later I saw him for the first time on a picture taken at the Firefox Devtool Workweek in London. He was sitting in a wheel chair, which was later also visible on his avatar image.

Mihai was suffering from cancer. His ability to use the keyboard was limited. How he managed to do so much work at such at an outstanding quality and pace - I just cannot figure out. Given his work output, I would never had guessed he had such physical problems or limitations. But it seems that what looks like limitations to me where not so for Mihai. He just kept going, he fixed 1919 bugs (if you wonder if this is a lot - yes, it is HUGE), mostly in the Developer Console shipping with Firefox. When I think about him now, he feels like the Stephen Hakings of Mozilla to me - also bound to a wheel chair, but not giving up, in contrast proving life over and over again that he would outlive every estimated remaining time he had left on earth. People gave him a few months, he stayed around for years. Then it were weeks and he still turned them into months. He knew his end was coming and blogged about his disease in his last blog post.

The disease Mihai was suffering from is called Epidermolysis Bullosa - it is seldom and therefore not a main focus for pharmacy companies, leading to suffering of many people that live with this kind of cancer every day. Quoting from Joe’s blog post about Mihai’s death:

E.B. is a brutal skin condition which causes chronic blistering, and makes everyday objects dangerous. Those with it are sometimes called butterfly children because of their brittle skin. In Mihai’s case it has left him in a wheelchair, and having to very gently punch the keyboard to get anything done.

E.B. makes you very vulnerable to skin cancer from the continued scarring from the blisters. So everyday objects that wouldn’t pose a risk to those with normal skin become sharp and dangerous to people with E.B. Needless to say - anyone with E.B. has a huge mountain to climb every single day.

Mihai and I never met in person. But still after we stopped being colleagues we stayed in touch, had a few small chats on IRC or on Twitter and though it feels strange to say, he felt like a good friend to me, that I never got to meet - and never will.

The world lost a great person, a great developer, a great Mozillian and a great fighter.

And I have to say goodbye to a friend :’(

RIP Mihai.

RIP Mihai Cheers

PS: To honor Mihai’s outstanding work on the Firefox Developer Console an easter egg was added - instead of using the normal console.log() commands go and try console.mihai().