Becoming a more thoughtful developer, with Christian Heilmann
Chris works at Microsoft on the Edge team, heading developer experience and evangelism. Prior to Microsoft, Chris helped push HTML5 support forward at Mozilla, and before that was a front-end architect at Yahoo! where he helped build products and train other Yahoo!ers. Beyond that, Chris has been seen dozens of times giving talks at conferences all around the world, has been involved in writing a number of books, and has contributed to most every major web development blog or publication you can think of - all in the name of making the web better.
Time Stamped Show Notes
1:09 – Chris says that the reason that he’s a developer is because of all the exciting stuff going on in the industry. He has been writing code for 18 years and hasn’t been bored yet! There’s always something new to jump into and to learn from other people.
2:25 – “We’ve moved from being the geeky kids in the corner to running the medium that is running the world right now”. Chris has a background in radio journalism. Now that he’s a developer, he can see the two fields converging. He believes that developers have a role to play in determining what the future of their lives is going to be.
3:16 – Chris has never seen technology as a locked environment and learnt programming by cracking computer games and giving himself endless lives. Later on, he found the web and realised it as an environment in which he could both debug and write code. This immediacy between creation and consumption is what excited him most about programming.
4:04 – Chris loves the UX part of his job and working with designers to build interfaces. He is interested in the challenges created by an unknown end user in an unknown environment.
5:59 – Chris believes that developers as a group need to become more diverse to match the diversity of their end users.
7:48 – Chris explains that it’s not only about the technical excellence of your tool, but also your ability to sell it to your company. He believes that it’s important for developers to be in decision-making meetings, and that’s why he became a senior programme manager.
9:57 – “When I hire people, I hire people who are better than I am technically. And I think that’s something that every developer should be ready to do in the future”.
11:20 – Once he started to use in-editor linting and in-editor lookups Chris says that it became much cleaner and more exciting to write code. He finds the connection between development tools in the end environment and where they are run in the operating system and editor quite stunning.
11:56 – Chris mentions his colleague, Kenneth Auchenberg, who released a tool that allows you to parallel debug a usb-connected phone and a node instance from the editor without having to go through any of the logs (multi-target debugging).
14:00 – Chris believes that it’s dangerous to make yourself dependent on one stack. It’s important to be open to new environments and quick to learn them because our environments die very quickly around us. What was the coolest editor of the day, in half a year’s time nobody will have any longer.
14:42 – Chris uses Visual Studio Code which is is similar to Atom. It’s an Electron-based editor that’s written in TypeScript. It has git implementation and a command line interface inside the editor. Chris believes VS Code is a great way to bring people into a full-development stack without having to explain every part of the stack.
16:19 – Lots of companies still want their engineers to sit in offices next to one another instead of embracing the idea that people can work from home, have a real life, and even better, test the environment like their end users do – from different locations with all types of connectivity states.
19:21 – Chris is a massive fan of progressive web apps. He has been frustrated with the concept of native apps for a long time. He gave a TED Talk where he discusses this.
20:03 – “By allowing native apps to go into marketplaces, and locking people into these environments, we have made software a consumable product that can rust and fall apart, which software isn’t. Software is water – it should change easily and simply.”
21:02 – Chris says that he’s excited about machine learning and artificial intelligence. He finds it “ridiculously beautiful” that we can build interfaces that understand what humans are doing, and that we can help blind people “see” by recognising objects and telling them what they are.
21:31 – Chris is excited about the advancements in security and identity. He mentions Windows Hello as an example. It recognises your face so that you don’t have to type in a password. He also speaks about voice recognition that is being used at some banks in England, and Facebook’s suicide prevention techniques that use AI to monitor what users are saying, and ensures that they’re ok.
22:11 – Chris describes the time he spent at Weill Cornell University and hospital. They have used ten years of research to create virtual reality visualisations of MRI scans. Wearing 3D glasses, you can essentially “walk through” a human body, zoom into sections, and take it apart without “getting your fingers icky”. They also do HoloLens research where they model cancer medication in the virtual space.
23:18 – “We’re actually almost at the stage where Star Trek technology is in our day-to-day life.”
24:56 – Chris talks about the HackFests they carry out at Microsoft. Their partners suggest technologies they want to work with and someone in Microsoft will volunteer to work on it with them. Chris deliberately signs up for the technologies he doesn’t know to get himself out of his comfort zone.
27:54 – Chris explains that it’s important for Microsoft to keep their developers happy. Every new developer walking through a door costs a company $20,000 dollars before they even write their first line of code.
28:40 – Understanding events and promises has made a big difference in Chris’s programming. It has allowed him to get the browser to do work for him. He has also found it useful to understand the DOM and how it works.
29:23 – Chris enjoys getting his mind around functional programming and going back to old school basics like the concepts in Clean Code. He believes that it’s time for developers to focus on quality and take more pride in what they write.
30:49 – Chris explains that it’s important for developers to become independent of abstractions because they come and go.
32:13 – Chris recommends Rob Conery’s book, “The Impostor’s Handbook” to get clued up on the things you should know as a developer.
34:35 – Best advice about programming
Be open to everything. Don’t dismiss something because you don’t understand it, but understand how it gets used before you actually apply your own best practices to it.
34:34 – Habits for writing better code
Being lazy upfront and then being very diligent in his editing. Write as much as you can, and then delete and rephrase five times.
35:16 – Book
The Imposter’s Handbook by Rob Conery. He sees it as a good way to get into computer science without the “overhead and stuffiness” that comes with it.
36:51 – How to learn code from scratch
Chris would use interactive courses from Udemy, or Khan Academy.
37:33 – How to work smart
Developers should make sure that they find time for their development. He encourages aspiring devs to turn off all distractions and just do it.
Books, Tools, and Tech Mentioned