Christian Heilmann

You are currently browsing the Christian Heilmann blog archives for August, 2018.

Archive for August, 2018

No more ads on my blog

Thursday, August 30th, 2018

Most of the readers here on Desktop will not have realised any difference thanks to ad blockers, but I just took the conscious decision to take off all the ads from this blog.

The reasons is that even by sticking to Google as the ad provider, I keep seeing ads I don’t approve of, and I just don’t think the JavaScript/Tracking overhead is worth the gain. At the heyday of blogging, I made about an extra $1k a month with this blog without resorting to SEO nasties or linkfarming. These days, I make about $80 extra, which I am happy to not have if it means that my content is delivered without any extra cognitive overhead or annoying content beneath.

I still use analytics, but they might go soon, too. I am in the lucky position that I don’t need to live off this blog, so I am happy to do my share to un-clog the WWW a bit more.

One Dev Question – What is webhint?

Tuesday, August 21st, 2018

I am currently on vacation, so I keep this short. On my last trip to Redmond, I met with the video team and recorded a series of One Dev Questions on webhint. The first one was released today on Twitter:

All in all we shot seven videos which will be released bit by bit over the coming weeks.

I really like the format of this: one question, one answer with a top length of 2 minutes 20 seconds.
I will be recording again in September, so if you have an idea what you want me to answer then, tell me on Twitter or in the email below.

Developer Relations revelations: social media can be pretty anti-social

Friday, August 10th, 2018

This is part of a series of posts about the life as a DevRel person and how not all is unicorns and roses. You can read the introduction and the other parts of the series here.

Loose tweets sink fleets

So, today, let’s talk about social media.

Social media is one of the most powerful things for a DevRel person. It is also a tricky one to navigate. As a DevRel person you skate on thin ice. You need to remain a person and a face people can remember and feel comfortable contacting. But you also represent a company.

People on social media are much more likely to follow and listen to a personal voice than a company account. In my personal experience, you also have more longevity. A corporate account promoting a product can cause a massive spike in traffic. A personal account causes traffic for a few days. People are reading your updates at different paces.

So, as a DevRel person, you have the challenge of having to be yourself and to represent a company. And that comes with a lot of baggage.

You need to be careful not to mix your personal views (or ones that people think you have) with company updates. And there is no such thing as “sins of the past”. What you posted and how you acted can be dug up years later and used against you. Many celebrities right now have the same experience. DevRel people – for better or worse – are minor celebrities (in most cases we don’t want to but it happens). So, the glib post you put out in a party mood five years ago can and will be used against you.

I am trying to mitigate this risk by having a detailed Twitter manifesto where I explain my usage of the channel in detail. I am pretty sure that this will not mean much when push comes to shove but I had good feedback on it.

My rule of thumb is that social media is an entry point. An entry point to get people to communicate with you one on one. An entry point to get people to use official channels to voice their ideas and concerns. I avoid having long conversations and communication threads on social media. The reason is that they always end up messy, because social media isn’t social any longer – it is a business.

Social media is a numbers game

People game social media – big time. By now it feels spammy and annoying. “Growth hackers” and “Social Media Experts” spoil it for everyone. It feels like back when Search Engine Optimisation (SEO) messed with the web. Our carefully crafted and educational posts drowned in a mess of “7 things you should know about…” and “45 essential jQuery plugins” bullshit articles, crafted to optimise eyeballs and clicks. Social media is a similar race at the moment. You can buy followers and likes and many a bot upvotes others. Adding your voice to a thread – no matter how wrong – gives you eyeballs. Almost every longer conversation sooner or later ends up with baiting and leading people to say something controversial that can be taken out of context. You somehow need to stand out of this quagmire. I got to be very careful over the years, and actively avoid getting roped into discussions.

Separation of products and people is a must

Social media is full of terrible people and bots you don’t want to get associated with – even by accident. Who you retweet and share also reflects on you. So be aware what and who you endorse. Make it perfectly clear that an endorsement of a product doesn’t mean you necessarily agree with the creators.

Context on social media is a joke

Whatever you put on social media will be taken out of context. Make sure your updates are clear and precise. Don’t allow people to quote you to support something you don’t want to be associated with. This is especially dangerous when you talk about your competition. Negative remarks about them are completely out as this is a headline in the making you don’t want to defend yourself against. Positive remarks about your competition can easily turn into a messy conversation with your own company (more on that in the final part of this series). But here’s the issue – to be successful on social media as a DevRel person, you have to talk about other products than your own. And that includes your competition.

You are always one remark away from being a shill

OK, we all know that you are paid to represent your company, its products and get people to try them out. You are also there to get feedback and bring that back to the company. All this is dependent on your reputation and the trust people have in you as an expert in the field. That’s why it is imperative that you have your ear on the ground and talk about exciting things on social media. You need to be a go-to expert for people to find out about exciting new things and to get feedback on their own ideas and products. The perfect scenario is when your products are making a lot of sense to you. Then you can promote them by showing what you build with them. But, the more successful you become, the more your company will also ask you to promote their other products. And this is where it gets annoying to be on social media. When you promote a product people know you don’t use you will get a lot of backlash. Often it makes most sense to point to other social media accounts to do that promotion. Or to coach the other department of the company to create some post or demo that you can point to without looking like a sales rep.

What your company does is all your fault

On the flipside, whatever your company does will always be your fault. It doesn’t matter if you are one of thousands of people in the company. It doesn’t matter that you are far removed from the product or the happening that annoyed people. You are publicly visible, available and you have a history of being responsive. So there you are.

This gets tougher, the bigger your company is, and the more the press loves to report about it. Talking to colleagues at Google, Samsung and other big players, we all have the same experiences. It is pretty unfair to have your life decisions questioned every time something controversial happens to your employer. It is even worse when people ask you about a quick statement. Often because what your company allegedly did is at odds with what you are about. The very important solution to covering your arse here is to have a good relationship with the PR department of your company. Don’t fall for the bait, don’t make public statements. By all means, though, report in the company what you heard – that’s where changes can happen.

You’re seen as the magic way-in

On a less stressful topic, people will always assume that you wield a magic wand to get things done in your company. That bug report a random department of your company hasn’t answered in months? Sure you can simply talk to them and it will get fixed immediately? That just announced new product or service? Surely you have a free one lying around? And you can get one of your thousands of online friends free, unlimited access. You also have the magic powers to get anyone hired without any of the normal procedures, right?

All this is flattering, but also dangerous. Communication channels in your company are there for a reason. You can sometimes accelerate them, but it is important to do a cursory introduction and then pull out. You don’t want to constantly play a game of telephone being a mediator as that takes up far too much of your time.

Alas, it makes a lot of sense to be active on social media

Social media is a great way to get information out, and to keep up to date with what other people are doing. As a DevRel person, it is much more agile and simple than cold-call emailing people. The main task though is find a good balance of staying true to yourself but not fall into any of the dozens of traps social media has these days. You are under a massive spotlight, better watch your moves and count to ten before you answer and publish something that can never be undone. – hinting at a better web

Tuesday, August 7th, 2018

Webhint logo

Humans are a weird bunch. One of our great traits is that when someone tells us that a certain thing is a certain way, we question it. We like debating and we revel in it. The more technical you are, the more you enjoy this. As someone once put it:

Arguing with an engineer is like wrestling with a pig in shit. You realise far too late that it enjoys it.

Now, the web as we have it these days isn’t in a good place.

  • It is slow, full of unwanted content
  • It allows others to track our users without our knowledge
  • It is full of security holes and much less maintained than it should be to prevent them becoming an attack vector
  • It lacks support for physical and digital availability for all.
  • Developers get very simple things wrong and often a mistake is copied and pasted or installed over and over

That means that browsers, which by definition can not break the web, need to be lenient with developer mistakes. All browsers fix a lot of problems automatically and allow for spelling mistakes like “utf8” instead of “UTF-8”. That also makes them bigger, slower and harder to maintain. Which makes us complain about browsers being just that.

It can’t be a problem of lacking resources

Considering how much free, high-quality information we have available this is weird. We have web documentation maintained by all the big players. We have up-to-date information on what browsers can do. We drown in conferences, meetups and we don’t even need to attend them. Often talk videos pop up on YouTube within minutes after the presenter left the stage.

We also have excellent tooling. Browsers have developer tools built in. Editors are free, some even open source and we can configure them to our needs using the languages we use them to write. We have automated testing and auditing tools telling us what to optimise before we release our products.

Maybe it all is too much to take in

The problem seems to be overload. Both of options and especially of opinions. We can’t assume that every web developer out there can go to conferences, follow blog posts and watch videos. We can’t assume that people can deal with the speed of news where a “modern, tiny solution” can turn into a “considered harmful” within a day. We also can’t assume that what is a best practice for a huge web product applies to all smaller ones. Far too often we’ve seen “best practices” come and go and what was a “quick, opinionated way to achieve more by writing less” turned into a stumbling block of the current web. Even more worrying, when a huge successful corporation states that something works for them developers are asked to use these settings and ideas. Even when they don’t apply to their products at all.

There is no one-size-fits-all best practice

The web is incredibly diverse and the same rules don’t apply to everything. We are very quick to point the finger at a glaring problem of a web product but we don’t ask why it happened. Often it is not the fault of the developers, or lack of knowledge. It is a design decision that may even have a sensible reason.

We faced the same issues at my work. Working in a large corporation means many chefs spoiling the broth. It also means that different projects need different approaches. I am happy to give Internet Explorer users a plain HTML page with a bit of CSS and enhance for more capable environments. But not everybody has that freedom – for them a high-quality experience on that browser is the main goal. Everything else isn’t part of the product time buffer and needs to be added on the sly. Different needs for different projects.

Damage control

That said, we didn’t want to allow low-quality products to get out of the door. Often us in the inner circle of the “modern web” preach about best practices. Then some marketing web site by your company makes you look silly because it violates them. We needed a way to evaluate the quality of a project and get a report out of it. We also needed explanations why some of the problems we have with the product are real issues. And we needed documentation explaining how to fix these issues.

This is when we created a product that does all that. It is a scanner that loads a URL and tests all kind of things it returns. It uses third party tools to test for security and accessibility issues and is available open source on GitHub. As we don’t want this to be just a thing of my company, we donated the code to the JS foundation.

At first, we called the product Sonar. That was a copyright issue. So we renamed it to Sonarwhal. It had some success, and then more naming clashing issues cropped up. Furthermore, people didn’t seem to get it.

Today, we released a new, rebranded version of the tool. It is now called Webhint and you can find it on GitHub, use it at or use it as a node module using npm, yarn or whatever other package installer you want to use.

The simplest use case is this:

  • Go to Enter the URL you want to test
  • Wait a bit till all the hints came back
  • Get a report explaining all the things that are sub-optimal to dangerous. You don’t only get the error messages, but detailed explanation what these mean and how to fix the issues.

By default webhint tests for these features of great web products: Performance, Accessibility, Browser Interoperability, Security, Sensible configuration of build tools and PWA Readiness.

Make up your own tests checking what matters to your product

Whilst this is great, it doesn’t solve all the issues we listed earlier. It is a great testing tool, but it has its own opinions and you can’t change them.

  • What if your tool doesn’t need to be PWA ready?
  • What if performance is less of an issue as you run on an intranet behind a firewall?
  • What if you can’t access as you are working in a closed network?
  • What if you don’t use a browser at all but you also want to test a lot of documents for these quality features?

This is where the node version of webhint comes in. You can get it and install it with npm (and others, of course). The package name is hint .

Animation of hint on the command line

That way you can not only scan a URL from the command line, but you can also configure it to your needs. You can define your own hints to test against and turn the out-of-the-box ones on and off. You can turn off the ones reliant on third party scanners. You can even have different configurations for each project.

With the release today of webhint, we took what was Sonarwhal and made it faster, smaller and easier to use. The command line version now has a default setting and adding and removing hints is a lot easier. The startup time and the size of webhint is much smaller and things should be much smoother.

So go and read up on the official release of Webhint, dive into the documentation or just do some trial scans. You’ll be surprised how many things you find that can have a huge problematic impact but are relatively easy to fix.

I hope that a tool like webhint, without fixed opinions and customisable to many different needs whilst still creating readable and understandable reports can help us make a better web. Watch this space, there is a lot more to come.