2015: my quantum leap

First week of 2016, lots to do, but what about 2015?

I’m still working remotely and this helped a lot from a logistic point of view: I relocated in France with my fiancee.

Writing

I started this blog and I’m putting a fair amount of energy into it, but the most important event is definitely the publication of my first book: RxJava Essentials (https://www.packtpub.com/application-development/rxjava-essentials). It was a big achievement for me. I’m very fond of the reactive approach and I have spent 2013 and 2014 talking to people, trying to help them overcoming their “fear” of this paradigm. But it was just “talking”. When Packt Publishing gave me the opportunity to “write” about Rx in a very similar way I was “talking” about Rx, I jumped on it.

Talking

I was very focused on the book and I completely missed the deadline for Droidcon Turin in April. I didn’t want to lose the chance to challenge myself and I arranged a quick barcamp session when I was there. First time talking to an unknown crowd: my “lizard-people-person” instinct kicked in and they almost had to put me down after one hour talking and showing code.

In June, I had my first Droidcon talk in Berlin:

I was super nervous, there were tons of people and when the staff started to add even more chairs for the audience… I almost freaked out! The talk went well, people enjoyed it and I had lots of feedback. I can proudly say that’s the most popular DroidconDE video, so far.

In November, I had my first Devoxx talk in Antwerp. Great experience! I wrote a post about it and you can check it out here: https://medium.com/@hamen/my-first-devoxx-fd82ee7d476c#.1iv2ynrzy

In December, I was in Krakow for my talk at the Droidcon, back in Poland after ten years. You can read my report here: https://medium.com/@hamen/back-in-krakow-for-the-droidcon-25f5b868a981#.v5oyznyg7

Conference after conference, I thought I would be less nervous. Not really. You are surely more confident, but you are still nervous, because you want to share knowledge, because you don’t want to disappoint people, because you care!

2016?

Well, the journey continues: more code, more books, more talks, more friends. See you there 😉

Back in Krakow for the Droidcon


After almost ten years, I was in Poland again last week. Ten years ago I was an Erasmus student; last week I was a speaker at Droidcon Krakow!

The venue

Every Droidcon feels like a family reunion to me, but the funny part is that the family is continuously growing in size, every time we meet.

Droidcon Krakow venue was a hotel and turns out that’s just brilliant: everything is already there, organised, comfortable. The food was really good and those “always-on” buffets were delicious. I stayed in the same hotel and this made the logistics as smooth as possible.

The tech stuff

Talks and speakers were awesome. I met a few friends from my first Droidcon in Berlin and tons of new nerds, curious and ready to learn and share .

Chatting with people and attending the talks, I noticed a few strong trends:

  • Reactive Programming is growing on the community. Both talks, mine and Sasa Sekulic‘s were sold out. There is definitely less fear and more desire to evolve.


  • Testing is easier now and higher code quality is the final goal for a lot of developers, no matter what; developers cannot stand anymore to work on badly designed, untestable apps.
  • Kotlin could be the next big thing, but everybody is very skeptical about Google officially supporting it; we all hope that at some point, everybody will realise that Java 1.6 is “obsolete” for 2016 mobile development.

  • Nobody is using G+. Apparently, everybody is using Twitter, even in the Android ecosystem.

Media

My slides, both Keynote and PDF format, and the example source code are here:

https://github.com/hamen/rxjava-essentials/tree/master/slides/droidcon.pl

Conclusions

I definitely enjoyed Droidcon Krakow and I’m looking forward to the next year.

My first Devoxx


Last Sunday my first Devoxx journey began, when I landed in the cute Antwerp. First thing in the morning: taxi to the Kinepolis Event Center. 5 minutes in the queue and I had my Devoxx badge!

My talk about RxJava was at 18:05, so I had plenty of time to attend other talks and meet new people. However, the first thing I wanted to do was to explore the venue and check out the rooms. I was like:

When they said “Kinepolis”, I didn’t really catch the

“Yep, it’s an actual cinema, man!”

thing. The stages were huge and they were not “flat”. You had this massive “wall of people” looking at you, with this gargantuan screen behind you. Surely this last detail cleared my doubts:

I wonder if my fonts are large enough :-/

The day passed quickly, indeed. I learned about Docker and Kubernetes from Arun Gupta and attended a comparative talk by José Paumard (@JosePaumard) about RxJava and Java8 Streams.

Time for my talk!

The talk was only 30 minutes, but they were very intense. The stage and the setup was super-cool! Turned out that the huge screen was more empowering than scaring!
I had a couple of tricky questions and a lot of feedback, both offline and online:

Conclusions

Devoxx was a great experience. I would have liked to be there for the whole week, but, even if it was only for a few hours, I loved the atmosphere, the people and the possibilities.

I met new friends:

I met old friends:

Media

I want to thank the whole staff at http://www.devoxx.be/ for the organization, for the on-stage support and for the speed to release the video of my talk. I mean, they did it in less than 48 hours! That’s impressive!

My slides are available here https://github.com/hamen/rxjava-essentials

Be water, my friend!

Could you do remote working?

When I started working a few years ago, I was a common junior programmer in a common huge open space. It was fun: lots of people hanging around, cool projects, lots to do. It didn’t last. Something went wrong at some point. I couldn’t focus, my productivity was decreasing. I started working more hours to be able to finish the job. I was struggling.

A new opportunity came in: “Our client needs somebody to work in-house. Do you wanna go?” — “Hell, yeah!!”. New environment, new city, new people, new project: that was great! It didn’t last. I switched from small size company to huge size company: everything was different and nothing was different at all.

A new opportunity came in: “Mid-size company, different technologies, new people, higher salary: this is gonna be great!”. And it was great for some time, but it didn’t last. “There is something wrong with this country!! I gotta go abroad: Germany will do!”. It didn’t.

Quantum leap

It felt like a nightmare. I was pushing my skills further, I was learning more and more. I was evolving and I was changing every single thing I could change, but nothing was really changing in my job reality. Then the epiphany: it was the office. I changed everything, but I never changed “the office”.

When I say “the office” I mean working in a place where your work is roughly measured with how-many-hours-your-ass-warmed-up-that-chair-for; I mean a company where there is no proper work organization, no vision, no commitment; I mean a place where leveraging the fact that “they see you at the desk” all day long, every unpleasant duty can be dodged with a smart move: a mail here, a “I don’t think so” there and the classic “Come on, man! It took me all day! You saw me. I was at the desk!”

Most of all, I couldn’t stand the commuting anymore: traveling around the city, reaching the office and working with a client 5000km away from me or sending emails to people in the next room. At some point, a colleague sitting next to me said:

“I will send you an email to recap and than we can have a quick Skype chat eventually. How about that?”

Well, if I can send you an email or chat with you via Skype, then I can work from home, can’t I!?

It was time to switch to remote working. I started as a freelancer and immediately perceived the difference: it’s not the privacy, the freedom or silence. It’s the company mindset: If you are not physically there, they have to figure out a different way to measure your productivity, tease your commitment, organize the work and reach their goals.

If they are smart enough, they can do remote working. But can you?

My way

I’m a people person. If you hung out with me at some conference, you know that I could talk forever: nerd jokes, techy stories, name it!

And now I’m gonna spend every single hour of my daily work routine alone!?

I definitely need a plan!

Pomodoro technique

Working alone gives you the opportunity to get in the zone with a mouse click: “Disable notifications”. Now that you have peace, you need structure. During the 80s, Francesco Cirillo invented the Pomodoro Technique, to properly manage his study and work habits. It took me to my Engineering degree and it’s working now that I’m a programmer.

I split my work day in Pomodoros. A Pomodoro is an atomic time unit: there is no half-pomodoro. An interrupted Pomodoro is a lost Pomodoro and this becomes tricky knowing that a Pomodoro is actually 25 + 5 minutes long. Every 25 minutes of totally focused work, you get 5 minutes of break. Every 4 Pomodoros, you get 15 minutes of break.

Apply this for a few days and you will realize a few interesting things:

  • Your colleagues will initially hate you, because this will slow down your chat response time. But a few days of slow chat responses will push them to look into a solution by themselves or creating a Trello card with your name on. Win — Win
  • You do more. Having zero distractions create a state of mind that allows you to process more;
  • Those 5 minutes of break are not “breaking your flow”, they are saving you! No distraction = more work = more spent energy. If you don’t stop, you burn after 3 hours. After 25 minutes of full-focused work, even if you step out of your home-office, drink some water, play with the dog, your brain does not actually switch. It is still working on the task, just differently. Have you ever had a “brilliant” solution for a work problem when you were taking a shower? Rings any bell?
  • You cannot do 16 Pomodoros per day. You just cannot divide 8 work hours by 25 minutes slots of full-focused work and expect to be able to make it out alive. Nobody can do it. Or at least, I can’t do it. Nosce te ipsum, they say.

Neck Stretching

This just saves me. You can find tons of video on YouTube about relaxation and stretching. Just do it. I have my set of easy exercises and I do them during the Pomodoro breaks: a couple of minutes every now and then can give you tons of benefits.

One of my worst enemies was headache. I tried every f*cking drug, trying to solve the issue.

“It could be the weather! It could be the blood pressure! It could be the stress!! It could be moon phases or something in the water!”

It turned out it was just tensions in the neck. Spending hours and hours in front of a screen, no breaks because “you are in the zone”. And then you wake up 2 hours later: your code works, but you need an analgesic and to lay down a bit.

Mindfulness

This is a tricky and personal topic and I won’t spend too many lines on it. I want just to say that I find meditation extremely useful to reach a higher level of calm and peace. It helps me to relax and stimulates my creativity.

I came in contact with Headspace thanks to my girlfriend. She gave me a Headspace book as a gift: extreme measures for stressful times, you could say. After the book, I installed the Android app, I did my 10 days of free trail and I’m a happy subscriber since then.

Try it for 10 days. If you can find 10 minutes a day for 10 days to meditate… well… you will want to do it forever.

Discipline

Discipline is the final point. It’s the hardest one. Discipline is the only thing that can save you… from yourself.

I know, it’s 2 in the morning, but just another episode! Come on!

I’m too deep in the zone. I’ll skip this break.

I’m tired. I’ll start later this morning. Nobody will notice. They can’t see me.

I have food. I don’t need to go out. I won’t get dressed. They can’t see me.

I will work from Starbucks today. Yeah, it’s loud, but I need to see people. This is driving me crazy!

There is so much to clean in the apartment. Let’s do it!

Lack discipline and you will become soon your worst enemy. Working from home frees you from a lot of constraints that “the office” forces on you, but at the same time puts you in charge of setting your own necessary constraints.

Start slow. Try to get some kind of routine, lunch routing or sleep routine, for instance: same bed time and same wakeup time every day. Try to balance your freedom and your entropy.

I don’t want you to transform in some sort of programming soldier or a sleeping-eating-coding machine. I don’t want to see you going back to “the office” either.

Conclusions

I think that remote working is the future for our field of expertise: there is no need to rent an office and fill it with programmers that could work from home.

At some point, companies will realise that they can obtain more hiring the best programmers on the market and manage them with the best PMs on the market instead of having to pick the best available… in town instead.

Let me live where I want, because I can work from everywhere.

Ricetta per Pancake


Da qualche tempo sto facendo colazione con i Pancake. Sono nutrienti e non hanno ingredienti esoterici come le merendine commerciali.

Ingredienti per una persona “affamata”

  • 100g di farina
  • 1 cucchiaio di zucchero
  • 1 cucchiaino di lievito
  • 1 pizzico di sale
  • 1 pizzico di cannella
  • 125ml di latte
  • 1 uovo intero
  • 1 cucchiaio di olio di semi

Preparazione
Mischiare la parti solide separate dalle liquide. Poi unire -_-‘

Cottura
In una padella piccola versate con un mestolo la pastella ottenuta. Dovrete fare delle prove affinche` capiate quanta pastella usare per ottenere lo spessore desiderato.

Accompagnati con…

  • Sciroppo d’acero (Aunt Jemima)
  • Miele
  • Marmellata
  • Frutta

Buona colazione,
Ivan