Read my book

I wrote books about Webpack and React. Check them out!

Wednesday, November 16, 2016

Kharkiv.js 2016 and React in Barcelona

In my only trip of the year I visited both Kharkiv, Ukraine and Barcelona, Spain. I was invited to Kharkiv.js as a keynote speaker and I also gave a little session on webpack as a bonus. After that I spent a week with Typeform in Barcelona.

Overall it was a great learning experience and best time of this year. In this post I'll try to cover some of the main points related to the trip.

Kharkiv.js 2016

Kharkiv.js mascot, now available as a plushie
Kharkiv.js is one of the bigger JavaScript related events in Ukraine to my understanding. This two day event managed to attract something between 500 and 700 people this year according to my estimation.

This was a good chance for me to meet up with some old online friends and share a couple of ideas with the public.

On retrospect I should have arrived a couple of days earlier, spent time exploring the city, and just getting more comfortable speaking. It's hard after a long break. Finnish and English pronunciation just aren't compatible as they are literally from different language trees and kind of fight with each other.

The First Day

Full house
My keynote that started the event was about Reactabular. I have slides available online for those interested. It was an expanded version of my Web dev and sausages talk to fit around 45 minutes.

It was a nervous talk and I would likely organize the slides differently now. It would have been a great idea to give the talk locally to a smaller audience one more time before jumping to the shark tank.

There were also nice QA sessions in the first day. I participated in two of them. Given most of the audience was Russian speaking I missed some points, but thankfully enough a lot was translated to English so it was fairly easy to keep up with the conversation.

I didn't get to see any talks on the first day as I was busy discussing with people. I like the fact that they organized the talks on two tracks and showed clearly which talks were English or Russian only.

This is good particularly international visitors in mind. There weren't too many, but maybe the event will attract more in the future due to this. It could become a crossing point of different developer communities.
As an interesting tidbit a couple of people took selfies with me during the conference. Maybe that has something to do with the local culture. Cool regardless.

The Second Day

The second day was more relaxed for me. In the day's talk I dug into advanced webpack. There was more content that I could fit into 45 minutes. I probably should do a condensed version of the talk or split it up somehow. It would likely work well in a workshop format split over multiple hours where you actually get to practice instead of listening.

Speaking of workshops, maybe it would be interesting to have a separate day dedicated to workshops at Kharkiv.js. It could be a day before or after the main talks and give a nice chance to dig deeper into the topics. Given the people are already there, this would be a nice chance to serve them even better.

I had a chance to see a couple of talks on the second days and I felt the quality was good if not great. I liked particularly Illia Klymov's talk about Flow as it made me appreciate it a little more. Denis Radin's talk made me see virtual reality related web technologies in a different light and Andrew Listochkin's talk made me worry about the future of the web (good thing).

I would love to see some of the local speakers in Finland myself.


I think the event was well organized. I hope they market it more to international audience in the future. Kharkiv is a little different and I've tried to list some of my main observations below:
  • You can exchange money in Ukraine only. There are specific spots for this.
  • Everything is amazingly cheap. At the time of writing you can buy hundred hryvnias (the local currency) for around 3.5 euros.
  • Taxis are cheap but that comes with a cost as the quality tends to vary. One even broke down as it arrived and other failed to arrive on agreed time so I had to order another one. I guess having local knowledge would help here. You have to know the right company I guess.
  • A lot of locals won't talk English. Ideally you would know Russian well. I expect that would open a lot of doors.
  • Have slack in your travel schedule to avoid surprises. You can afford to miss a taxi if you have time to order a new one.
  • People seemed friendly. Hotel was top notch and I don't have anything to complain about food. Some of it might take some getting used to, but that's the case always.
Overall I was impressed by the work of the organizers and I wish Kharkiv.js the greatest luck. The organizers were responsive and it was easy to work with them. The most surprising thing was to see how vibrant developer community they have in Ukraine.

React in Barcelona

The venue. Their office was enviably nice.
After a weekend in Ukraine I headed to Barcelona. I was a guest of Typeform for a week and we covered a variety of topics they were interested in. Admittedly I botched some of that (classic demo effect a couple of times), but I improved along the week.

Particularly webpack bits went well as I started to find my groove. In the end we made it work and got into a productive mode quite fast after we figured out how to work effectively together.

It would have been a good idea to spend a couple of days with the client and their code before digging into actual sessions. This would have allowed me to understand their problems better earlier while allowing me to provide real value faster. This is something I'll change in the future if similar opportunities appear.

React Meetup

I gave the keynote talk at a local React meetup organized at Typeform premises (amazing office btw!). It felt more relaxed and it felt like I got more points through.

That said, I probably should have done a super condensed version instead of going through the development history. That would have kept it shorter while still providing value for people. On retrospect maybe some other topic would have worked a little better.

The problem with giving a lot of talks over a short frame of time is that it's hard to keep the quality of them all high. In the future it might be a good idea to do less but do it better. Focus seems to be the keyword here.


Old Barcelona
When it comes to Barcelona, it is an amazing city. The weather was perfect all the time (roughly equal to Finnish summer or better), people were friendly, and generally spoke English. That said understanding Spanish would be a huge benefit.

I know there's some pickpocketing going on at certain parts of the city, but I guess I got lucky and never saw any of that despite walking quite a bit (over 30 km over the weekend I spent touring). This is one of those problems I never have to think about in Finland and it was a nice to have a reminder of that.

Maybe the weirdest thing about Spain is that they love to eat late compared to north. It likely has something to do with the time difference and the culture. Their food is excellent and affordable. I found a couple of new dishes to cook. Particularly mushrooms filled with tartar sauce hit the spot.

Spanish work culture seems more relaxed as well even though they seem to work long days while starting later. Instead of being task/completion oriented like Finns, they seem to have a different approach. Both likely have their merits. I guess the question is could you merge them somehow while getting benefits of both.

Overall the visit to Barcelona was great and relaxing even. There's a lot to see and the food is excellent while being affordable. It's not as cheap as Ukraine but it's still cheap from my perspective. Technological scene seems bigger than in Finland although salary level is likely worse to my understanding.

Olympic park. A lot to see within a couple of kilometers.


I would say the trip was more than worth it. Of course there are things that could have gone better, but in part it's about learning. When the next opportunity appears, you know to avoid the same mistakes.

Beginning to understand and appreciate cultural differences alone is a big part of it and it makes you see your own culture in a different light. You won't take the value of silence or nature granted anymore for instance. You also understand better that a lot of people have no idea of what a real winter is like.

I have gathered the related material at a specific site. You can find all my slides there. Obviously they are missing some of the points especially for the more abstract ones, but I think you might be able to get some value out of them.

Tuesday, November 8, 2016

Book Review - Understanding ECMAScript 6 by Nicholas C. Zakas

ES6 (or ES2015) was the biggest change in JavaScript's history. Simply put there's a lot to learn if you want to leverage the features. Nicholas C. Zakas' "Understanding ECMAScript 6" (No Starch Press) addresses this concern. As Nicholas is the person behind ESLint and I respect his work greatly, it was interesting to delve into his book.


As the book title states, the book covers ES6. It isn't a beginner level book. I would say the book fits those that already understand the basic ideas behind JavaScript and want to push their understanding a notch further.

The book is filled with examples that explore the features in great detail. The writing style is casual enough for me without becoming too cheesy. That's just a personal preference, but I prefer my content blunt without any extra "entertainment" or an attempt at being funny. Grammar-wise the book was perfect and far better than you might expect from an average technical book.

I would say the book works very well as reference material and thanks to it I managed to understand several features, like Map and the weak variant, in greater detail. It's likely I won't find use for most of the features, but that's not the point. You get these ideas in your mind that might come in handy later. It's great to have the essentials in one place.


If you are a beginner looking to learn ES6, look elsewhere before delving into this book. If you are an intermediate or expert level that understands JavaScript well already, you have a lot to gain here even if you read the book casually now and then. The ES6 specification is fairly complex and it's easier to digest through examples as in the book.
Note that you can read the book online. Also the source of the book is available.

Monday, May 23, 2016

Afterthoughts - Agile Coaching Camp Finland 2016

I had the great privilege to take part in the first Agile Coaching Camp held in Finland (also known as #accfi). The event was held in open space format apart from the prescheduled workshops. Around forty people showed up for the three day event although there would have been room for more. It would have been a different kind of event then, though.

The venue, Herrankukkaro (Turku archipelago), and the weather (around 20°) were in our favor. I spent a lot of time outside myself and managed to shed my nerd tan (no tan).

The Open Space Format 

There was food. Lots of it.
It was my first experience with the open space format. The idea is that rather than fixing a schedule beforehand, you'll develop it on-site.

This means anyone can announce and contribute a session and become the host of it. In case nobody shows up, you can close down the session and move on elsewhere.

The point is that often the best part of conferences are the informal discussions outside of the main program. If you drop the formal part, or minimize it, then you can skip straight to the valuable portion. That's the key insight here. Letting people to operate within a theme can lead to cool results as sessions are generated on demand.

It's entirely acceptable to move between sessions and figure out what works for you at a given time. The nice thing about the format is that it allows themes to emerge. The topics people find interesting simply have more sessions about them.

General Thoughts

Usual Finland. Not much to see here.
There were roughly eight sessions going on at the best. That was plenty to choose from. This time particularly topics such as nonviolent communication (nvc), mob programming, and testing stood out.

I was prepared to help people get their book projects started on a good note, but there just was no interest. You can still check out the slides if you want, though.

I feel the amount of people (42) was just about right. I've been to those conferences that have hundreds of people but then it gets hard to connect. With a limited amount you have more chance to build stronger connections. I'm not much of a networker myself so this definitely helped.

Systemic Constellations

There was plenty of sea related decoration around.
One great thing about going to conferences is that you will pick up ideas and methods you otherwise would just skip.

Certain methods need live demonstration to truly sink in. Systemic constellations is one of those. It is a way to diagnose personal, professional, and organizational issues.

The idea is that you will model the problem in terms of people. Each will represent one part of it (say "client", "developer", "manager"). You can even have persons as abstract things like "project" or "country" there.

First you will move people into initial positions and directions to represent the issue in question. After that you will begin making changes to the constellation.

The surprising thing is that changing the constellation yields data. You may even notice that it needs more actors. You will discover hidden connections this way and gain empathy towards the situation.

That's the powerful part. Given people are emotional beings, they'll begin to resonate with the problem even if they are completely unrelated to it personally. This is what leads to insights that may be used to solve the underlying issue.

Nonviolent Communication (NVC)

NVC is a related topic. You could say it looks at the same problem, but from a different direction. The rough idea is that even words can be violent. The words said can be a symptom of an underlying problem that has to do with personal needs and feelings. If you realize this and become aware of the underlying motivations, you can gain empathy needed to get around the problem and resolve it.

Again, the core point is simple. But by recognizing there's something behind what's being said helps to bring perspective to the situation. That's what systemic constellations achieve as well, they provide perspective that allows you to look at what's going on with more objective eyes.

Agile Games

I participated in a variety of agile related games. One of the interesting ones was known as the "social rules game". The game models what happens when you start breaking established norms and perhaps make us more aware that norms exist. It's a discussion game where you agree on a topic and basic rules of interaction.

It all starts out as a normal conversation within a group. It becomes more challenging as each participant is given certain rules to follow. Initially these are simple enough such as "stand up while talking" but eventually they become tough and disruptive like "go against all the rules". It's a great way to challenge the norms and get some laughs without offending anyone too much.

There were also team building games like non musical chairs. We also tried variants like zombie chairs (randomized chair positioning). Simple games such as these are good for illustrating what happens to team dynamics when the environment changes. They are also nice for building team spirit.


Sunrise (yup, slept too late) before breaking myself with some yoga
I think going to the event was worth the price of admission. I would be willing to pay even more now that I know the "product" is solid and I hope to participate again in the future if I get the chance. I guess this spoiled regular conferences for me, though.

If you have an open space conference (or "unconference") nearby, consider taking part. The idea might feel a bit silly at first, but it likely works better than you think.

Monday, April 4, 2016

"SurviveJS - Webpack" - Now Available

Even though my first book about Webpack and React has been a nice success, there's always hunger for more. I came to the conclusion that I must split it in two in order to go forward.

The problem is that if you try to cover too much material in one book, it isn't doing favors to anyone. That lead me to a realization that I could extract the Webpack portion into a book of its own.

SurviveJS - Webpack

This is what "SurviveJS - Webpack" is about. I took majority of the Webpack bits from the first one and packaged them up in a nicer way. The book has a tutorial showing you how to develop an effective development and production configuration. This derives directly from the old content.

There's also material that goes further and discusses more advanced Webpack related techniques. So even if there's old material, there's also something new to keep it fresh.

Just like with the first book, I hope to improve the quality of the offering further as I learn more about the topic and receive feedback. In order to support development of Webpack, I'm giving Tobias Koppers, the author of Webpack, a chunk of profits (roughly ~30%). That's the least I can do to support his efforts.


The buyers of the first book will receive this new book for free as I complete the split. In the meanwhile you can study the free online edition. I also don't mind if you purchase the book, but that's up to you.

Thursday, February 25, 2016

"SurviveJS - Webpack and React" 2.0 - Now available through Amazon

Paper books!
I managed to reach a major milestone with my little book effort. "SurviveJS - Webpack and React" is now available as a paperback through Amazon!

When I started the project, I didn't think it would come to this. But I'm happy with the result. That said there's still plenty of work ahead of me. I hope this is just a sign of things to come.

You can find more information about the release at the book release notes. Remember that you can find majority of the content online if you want to see what the book is about.