Christian Heilmann

Author Archive

The passion accessibility presentations need

Monday, October 14th, 2013

I am lucky that in my job I manage to come across amazing people all the time. In some cases it takes a while for them to come out of their shell and show what they can do. One of those is my friend Luz Rello (luzrello.com) from Barcelona. Here she is next to me with my friends Javier Usobiaga and Marta Armada when we met in Barcelona (and she asked me a few things about presenting on stage, which I happily shared):

Luz, Javier, Marta and Chris

Why is Luz amazing? Well, many things. For starters, she is an accessibility researcher with dyslexia. And she just delivered an amazing talk about “New solutions for dyslexia” at TEDxMadrid:

Now, I don’t speak Spanish, but seeing how Luz delivers a talk full of passion, movement and speed makes me not doubt at all that this will be soon translated in subtitles by TED and accessibility enthusiasts. And this makes me happy and this makes me hopeful for accessibility to get out of its niche in technology, education and digital literacy and become what it should be: a litmus test for content. If what you publish is easy to understand, structured and clear you will reach many, many people. In far too many cases what the final product looks like dictates how it is built, and that needs to change.

This is the kind of passion I want to see from accessibility advocates, these are the voices we need. Not another library to add ARIA to badly thought-out HTML, not another course that teaches web accessibility as pleasing screenreaders or text-to-voice tools. We need people who stand up and be passionate and bring information that matters and is up-to-date. Not guidelines from long ago that forgot that technology moves on. People like Luz, and people like you, if you are up for the challenge.

I have no doubt at all that Luz will move a lot in this space, and guess what? She does like to move it (from her Madagascar trip).

Fixing the mobile web talk at Internet World Romania

Friday, October 11th, 2013

I am currently in Bucharest, Romania and yesterday talked about current issues with HTML5 and how Mozilla found solutions for them during the creation of Firefox OS.

Chris Heilmann speaking at IMWorld
photo by Ștefania Ioana Chiorean

The slides with notes are on Slideshare

There’s also an audio recording available on Soundcloud

It was good fun and I got some interesting questions from the audience.

Update: The recording of the talk is now also on YouTube:

Quickie: on Google Web Designer

Tuesday, October 1st, 2013

Disclaimer: I work for Mozilla, these are my views, yadda yadda.

Today Google released the Google Web Designer (beta), a WYSIWYG editor to create HTML5 ads for Google AdSense.
Google Web Designer

The designer is an installable app for Mac or PC but seems to be an HTML app under the hood. The interface is very familiar to people who use Adobe’s tools to create ads in the past (yeah, the F(lash) word) and seems to be a directly catered to AdSense alternative to Adobe’s Edge suite.

Of course, when there is a new editor out, shenanigans are afoot really quickly and David Matthams scored the Twitter goal with his Google Web Designer creation of outstanding beauty (yes, this was sarcasm, yes, David’s creation is a joke).

Here’s the thing though: I do applaud Google for what they’ve done here. First of all, the tool creates CSS animated ads – not JavaScript driven ones and despite a few hitches (div class=”gwd-div-s33n editable editable editable editable editable editable gwd-gen-8p5fgwdanimation gwd-div-ydjn gwd-gen-8p5fgwdanimation-gen-animation0keyframe” being an interesting one) the code is clean, supports all the browser prefixes and a non-prefixed fallback and is editable by a machine and readable by a human.

The latter is a very important bit: getting on our high horse and trying to quarrel with the semantics of generated code like this is futile. These are ads. They are clickable videos, and their main task is to look pretty and get people to buy stuff whilst working in all environments. And this code achieves that goal quite well.

HTML5 needs tools, there is no question about it. And whoever had to work with ad providers knows that a lot of ads cause havoc with your memory consumption and page performance. This tool, at least, does not do that and uses Google’s fixation on performance.

So before we snigger at “the return of Dreamweaver or Flash’s fallback output”, let’s take a moment and remember that a lot of content out there on the web that pays our wages and bills is built by people who have no clue about HTML. And we are arrogant enough not to ever touch the projects they get paid to create.

So, I for one, am happy about more tools that are having a good start and hope they’ll go far. In this instance especially, I wouldn’t be surprised if that will be a part of the AdSense site sooner or later and I am extremely happy that it is not a Chrome App that does not work with other browsers, but a tool that people can use.

Let’s explain the “why” instead of the “how”

Tuesday, October 1st, 2013

One thing that bugs me a lot is that in the publishing world about the web we have a fetish for the “how” whereas we should strive for the “why” instead.

What do I mean by that? Well, first of all, I count everything that is published as important. This could be a comment, a tweet, a blog post, a presentation, a screencast – doesn’t matter. If it ends up on the web it will be linked to, it will be quoted, it will be taken as “best practice” or “common usage” and people will start arguing over it and adding it to what we call “common knowledge” (spoiler: there is no such thing).

Advice duck telling people to go to W3Schools and learn to be a web developer to make money to finance your real studies
Meme that got around the web some time ago: web development is a means to make a lot of money to finance your real studies and it is possible by following the courses on w3schools. This cheapening of a whole profession to me is an immediate result of giving people solutions instead of inviting them to understand what they are doing.

That is why publications that answer the “how” without also explaining the “why” are dangerous. We explain how something is done and we pride ourselves when this is as short and simple as possible. We do live coding on stage showing how complex things can be done with one small command and five different build systems. We show how simple things are when people use this editor or that development tool or this browser and everything is just a click away and we get amazing insight into the things we do.

Assumed stamina and interest

We expect people who learn the “how” to be sharp and interested enough to get to the “why” themselves. Sadly enough this is hardly ever the case. Instead, the quick “how” also known as the “here is how you do it” becomes an excuse not to even question practices and solutions any longer. “Awesome technology expert $person said and showed on stage that this is how it is done. Don’t waste your time on doing it differently” is becoming a mantra for a lot of new developers.

Moldy advice

The issue with this is that “best practices” are getting more and more short-lived and in many cases very dependent on the environment they are applied in. What fixed performance issues in a Web View on iPhone 3 might be a terrible idea on Chrome on a Desktop, what was a real issue in JavaScript 10 years ago might not even make a minimal difference in today’s engines (string concatenation anyone?).

What is “the why”?

The “why” can be a few different things:

  • Why does doing something in the way we do it work?
  • Why should you use a certain technology?
  • Why is it important to do this, but also understand the environment it is most effective in?
  • Why is using something simple and effective but also dangerous depending on outside factors?
  • Why is a new way of doing something more effective than an older way of doing it?
  • Why is it important to understand what you do and how do you explain to other people that there is a reason to do it?

Explaining the “why” is much, much harder than the “how”. Telling someone to do something in a certain way is giving orders, explaining a procedure. Explaining why it should be done this way means you teach the other person, and it also means you need to deeply understand what you do. The “how” can be repeated by someone who doesn’t know really how something works – and in many cases is – the “why” means you have to put much more effort into understanding what you advocate. The “how” is what lead to boring school books and terrible training folders. The “why” leads to interactive and memorable training experiences.

W3Schools – the kingdom of the how

Getting rid of the fetish of the how is an incredibly frustrating uphill battle. The biggest manifestation of the “how” is W3Schools.com. This site shows you how to do something – even interactively – and thus has become a force majeur in the web development world. It gives you a fast, quick answer to copy and paste without the pesky having to “understand what you are doing” part. This leads to people defending it tooth and nail every time some righteous people set out to kill it. All of these efforts are doomed to fail if they mean setting up yet another resource that will “do things better than w3schools”. The reason sites like W3Schools work are:

  • They give you a short answer and make you feel clever as you achieved something amazing without effort
  • They are easy to link to as an answer to a question without having to explain things
  • They are easy to embed into a tutorial or article as a quick citation to “prove a point”
  • People used them for years and they grew constantly which is something that Google loves

In other words, they are a useful reminder and lookup resource for people who already know the “why” and simply forgot the “how”. Thus, they look like a power tool the experts use and are very tempting for beginners to use as well. Much like buying the same shoes as Usain Bolt should make you an amazing runner…

The only way to “kill W3Schools” is to support resources that explain the how and the why, like MDN or WebPlatform.org – not to create more resources that have the right heart but are doomed to fail as maintaining a documentation resource is an amazing amount of work. Instead of sending new developers to w3schools or a Stackoverflow post that explains how something is done quickly, send them to a deep link on those. We can not expect people we point to solutions to care about how they happened. We have to show them the way, not the destination. By sending them to the destination via a shortcut, we deprive them of their own, personal learning experience and we cheapen our job to something anyone can look up on demand.

The “how” gets outdated, and – in many cases – dangerous practice very, very quickly. The “why” remains as it lights up the way to a solution, a solution that can change over time.

That’s why I’d love people to stop spouting quick answers and let new developers ponder the solution for themselves before telling them a way to do it quickly. We need to learn in order to understand and be empowered to create on our own. You only learn by asking why – let’s be supportive of that instead of feeling smug about pointing out an already existing solution. Web development got to where it is by continuously questioning how we do things and find ways to make it work. If we stop doing that, we stagnate.

7 things about working in I.T. you don’t learn in school

Thursday, September 26th, 2013

Disclaimer: this is the script, well, the notes, for a presentation I am giving at Spotify in Sweden this weekend as part of the Studenttechfest. I was asked to give an inspirational keynote telling students what working in IT is like. The slides and recording will be available afterwards.

Update: there is now a (bad quality) audio recording of the talk on Soundcloud:

1) The “how” lands you a job, the “why” lands you a career

In I.T. there is what I call a “fetish of the how”. We are obsessed with finding and showing quick and intelligent solutions for problems that abstract away the original issues in order to make us more effective and use less time to achieve our goals. I remember a Dilbert cartoon in around 1996 that hit the nail on the head. Dilbert explained when asked why he uses computers all the time that they make him much more effective and save time. When asked what he does with the time he said he does more computer stuff and his friend went “wow, so you can save even more time”.

stop listening to ducks

This culture of giving you a “how to do things” instead of “why they work” starts perpetuating a false belief that what we do is easy and can be learned quickly by doing an online course or looking things up in Google. Many of the threads on sites like Stackoverflow are just repeated answers stating that “you just do this and everything works”. Sites like W3Schools are very successful as they show how to do something and give you the promise that you can achieve anything by just copying and pasting an answer. Why bother with understanding what you do when you could already deliver?

Organic Unicorn Farts

The issue is that a lot of quick solutions start breaking really soon and then you are stuck as you don’t know what you did. You used magic, and not even yours and you aren’t even a wizard. There is nothing wrong with using free resources and abstractions and be more effective. In order to be professional, however, you also need to understand how they work and be able to create working solutions without them. This is when you start becoming someone who can be hired and offered a career. Otherwise you can get a job as a deliverer or maintainer but no company in their right mind would invest in you as your attitude is that of those who try to dazzle and really don’t not know what they are doing.

2) It is a ride, hop on and take in the scenery

I.T. is probably, with the exception of acting and journalism, the most versatile job market out there. Things are constantly in flux and there is not much boredom if you are excited about building things from zeros and ones.

Never look back

You will encounter a lot of products, frameworks, software packages and practices along the way. Take them in and deliver with them. Stay agnostic though as things are continuously changing. In every job there is something new to be learned and whilst your task is to deliver it you can also learn from the mistakes made and the results of shortcuts taken. Try everything and you will find patterns over time that help you make better decisions later on in your career.

3) Be a collector and an archivist

Working in a constantly changing environment also means a lot of drama, a lot of problems and egos clashing. Be aware of that and prepare for it. Even when you disagree with people strongly – if they are your manager and tell you something needs to be done the best way is to ask why and you might learn about outside pressures you weren’t aware of before.

Don't burn bridges

The I.T. world seems large, but it is actually pretty small. When leaving a job, don’t leave in anger. Don’t burn bridges as you will come across people later on you are very much sick of right now. You might even realise that in another environment these people will be brilliant to work with. You make a career by forging personal relationships. Collect great people to work with and keep up to date with what they are doing. Most great jobs come from word of mouth. Not via LinkedIn.

4) Your degree opens doors, your passion opportunities

Once you are done with university, you have your degree and many jobs require a degree as a right of passage. This means you can and will easily get a job. However, lots of other people also have degrees and as someone who hires I am looking for other, additional features. You are about to embark on a great journey, one of privilege, really. No other market is booming like I.T. and the things companies do for us make other people gape in astonishment.

Pawing puppy

Therefore, as a prospective employee, I am looking for passion in you. One of the main complaints by hiring managers is that people come into the job interview not knowing anything about the company they apply for. This is a bad first impression, as if you don’t care about the company why should the company care about you? Talk about your passions, give me an indicator that you want to get better and you are ready to learn more. Then I am ready to take you on and do a lot more for you than just pay you.

5) Nothing stops you from building a reputation now

There is no better way to get hired than to be known as someone who cares about sharing, giving feedback and showing technical and social aptitude. The good news is that this is amazingly simple these days.

touch my hair for a dollar

The main issue is that becoming known and being visible can be easily seen as showing off and in many cases actually is. In the US, this is part of a career; you have to sell yourself. As a European this can be daunting and feel wrong, but sometimes we need to jump over our shadow.

A great way to be visible is to go out there and speak about things you do. This is scary, but it is also a great way to get into the business. The simplest way to do that is to attend meetups and unconferences.
However, you don’t have to put yourself out there immediately, participation and visibility can be achieved much easier.

GitHub managed to make the impossible possible: it is a social network for engineers, people not generally known for being too social. On GitHub you can not only get lots and lots of great, free software but you can also become part of it. You can contribute code, you can file issues and help with testing, you can comment and help work around people’s differences. All of this brings you brownie points when it comes to applying for a job and looks much better on a CV than hypothetical achievements.

It is important to remember that your bad behaviour online is also noted by prospective employers. It might be fun to start a flame war and to troll people, but it can also mean the end of your career before it started. Playing nice is a good idea.

6) Being mobile and flexible gets you places

One ironic thing about I.T. is that whilst we are all connected world-wide, a lot of times traveling to other places to work with people face to face is necessary. Therefore it is important to be flexible about this. Many of my career jumps happened because I was OK to work from a different location for a short while. This also gave me a lot of interesting experiences I took with me.

Taking on an opportunity to work with a remote team is a great move in your career. The problem of making distributed teams work efficiently is still a big one for a lot of companies. If you already manage to have a fruitful collaboration with people from other timezones and cultural backgrounds you become a very interesting asset to companies out there.

7) Find a place to grow, not just a place to get paid

Lastly, I want to point out that I don’t see any way that you could not end up with a good job right now. The question you have to ask yourself is what you want to do. My advice is to find a place you feel great, you can be part of a team you respect and you see opportunities to learn new things. That is much more important than being paid a lot. Burnout is a big problem, and you should consider planning for a longer career rather than being a rockstar for a season and then feel like you already need a break at 22.