Written by Richard Littauer
On June 2–3 I attended ScotlandJS for the first time, in Edinburgh. I went to the University of Edinburgh, so I was no stranger to the city; however, seeing several hundred developers take over Dynamic Earth beneath the Salisbury Crags for two beautiful sunny days was a new and rare experience. ScotlandJS has been running for several years; participants who buy tickets get to vote on the talks. This year, there were less testing and hardcore-framework code talks, and more discussions about community, open source, and possibilities.
It was a great conference, and I was very lucky to go. I was working from the YLD office in Lisbon when I mentioned I’d be in Scotland; they were nice enough to give me their sponsorship ticket, as none of the team could make it this year. That doesn’t mean they weren’t present in some way — Peter, the organizer, mentioned to me and later to everyone how amazing it was that YLD originally started as an idea at ScotlandJS.
In this post I’ll cover the talks I particularly enjoyed, and give a bit of my overall impression of the conference. ScotlandJS is a single-track conference, and there were two days jam-packed with amazing speakers and coffee breaks, so I got to see them all, which I am grateful for.
The Talks
Day 1
Livi Erickson — Virtual Reality in the Browser, Today
Livi Erickson, a virtual and augmented reality developer evangelist at Microsoft, gave a very entertaining opening talk looking at how to use VR in the browser today. The slides were peppered with cool examples, like a 3d implementation of a d3 plot looking at rent prices in various cities, where you could walk among the stacks showing the cost and get a more human feel for the data. She also highlighted aframejs, by showing four pictures she took on the Edinburgh Royal Mile which you could see by using your phone and turning around, as if you’re standing there. One of the great takeaways was that there’s a WebVR API (for headset position, stereo transforms, and so on), it has a polyfill, and it works in 3js.
Jem Young — ESNext, Service Workers, and the Future of Javascript
Jem, a senior software engineer at Netflix, gave a very exciting talk with a quick rundown of some of the cool ES7 and ESNext features, which promise to make JavaScript development much easier and less hacky in the future. The main part of his talk was on how great Service Workers are; they allow offline usage, but intercepting API hits and serving cached data. Jem demoed a gimmecats app which used service workers to show cached cats, to some applause. Also fascinating was on-the-fly transpiling of ESNext code, which allows cross-browser JS compatibility. He talked about a bit about more down-the-road features, too, like using biometric data to log into a website.
Charlotte Spencer — Open Open Source
Charlotte Spencer, who works for Marks and Spencer during the day but spends a lot of time on projects like Hood.ie and who created yourfirstpr.github.io, gave a great talk on how to make Open Source more approachable. They talked about Codes of Conduct, inclusive language, being welcoming, and a lot of the things that project maintainers and communities can do to promote diversity and more welcoming environments for humans who happen to code. The main takeaway that got tweeted and mentioned by other speakers was to take more naps: burn out is real, and self care is super important.
Ruth John — Let’s Talk About MIDI
Ruth John gave an awesome talk talking about the history of the MIDI audio format, and what you can do with it. She gave a pretty detailed description of different types of old-school tools used to play with MIDI files, before demoing a live website that people joined in on with their phones, which used the Web Animation API and the Web Bluetooth API to compose and orchestrate live music (which I thought sounded pretty cool, considering it was people jamming their phones on screens). I’m looking forward to more hardware using MIDI in the future. Personally, I am going to try to see if I can use my friend’s whistle .WAV to MIDI library to build a whistle-based text navigator. Because that’s probably possible at this point.
Kim Crayton — Overcoming the Challenges of Mentoring
Kim Crayton was incredible; coming from Atlanta, she founded http://jrdevmentoring.com/ and TechTalkForNonTechies.com. This was her first talk at a large conference, but her stage presence was mesmerizing and the audience really enjoyed her talk on how to be a mentor, how to be a mentee, and what to expect in developing teams. Senior Developers are incredibly hard to bring on to your projects — they have the jobs they want at the terms they want — and mentoring is a great way to build skills and to improve your own learning process. Kim talked about what makes a great mentor; being available, being personable, steering away from taking back the keyboard while code pairing. She also talked about fears we have as new developers, and how some of those — like imposter syndrome — never go away fully.
Also, the entire crowd sang her happy birthday, which was adorable.
Ola Gasidlo — I’m Offline, Cool! What Now?
Ola, a senior developer at Styla and CTO of AngefragtJS in Berlin (and another person working with Hood.ie), talked about what we should be thinking about when we build applications; not just about the code, UX, and messaging, but more about the people using the platform. People use the internet for communication, to find information, to gain empowerment, and express and feel loved. However, the cult of connectivity — that people are always going to be connected and that internet signal is always great — goes against this. A lot of people don’t have great internet service. Ola gave some examples where developing tools that allow offline usage helped solve this issue — for instance, a group of guys running the Mongol Rally race from Spain to Mongolia build an SMS to email tool that they could use anywhere. And there’s a Finnish bus that uses NAT zones, DTN routing, and the DakNet network to sync data with other buses and bus stops as it goes, so that it feels connected for the whole trip, but may not be. Another great example was using PouchDB — a browser-based version of CouchDB that works with offline usage — to build tools for eHealth Africa, where the tools were able to save lives because they worked whenever. The talk was littered with solid tips — cache images, use less requests if possible — and, along with James Halliday’s talk, was the most interesting for me in how it was both wide-reaching and relevant to coders working with the rest of the planet that doesn’t have great internet.
Matthew Podwysocki — Async Programming at Netflix, Microsoft, and the World!
Matthew, a self-described Open Sourcerer, gave his entire talk while wearing a felt, multicolored wizard-hat, until the very end when he took it off to replace it with a baseball cap saying “Make Reactive Great Again”, while promising to build a wall around non-reactive frameworks. This was very well received by all. His talk — about how hard async is, about how fiery callback hell is, and about how reactive programming could save the day — was, too. Specifically, he talked about ReactiveX JS, of which is the author, an API for asynchronous programming with observable streams that allows large systems like Netflix to stream data constantly without worrying about cancelling running events or ending up writing excessive crud just to make sure that all streams are closed. Some of the code examples, like the use of debounce and filtering, were pretty awesome, too. I’m looking forward to checking this out.
James Halliday — p2p off the Grid
Substack gave one of my favourite talks of the event, about his work with a small community in the Amazon, on the border of Brazil and Guyana. In his slides, chickens and pigs kept walking in and out of pictures of generators and small rooms with broken laptops and upcycled monitors, where he worked for a while helping to build tools for the local community to build accurate maps of the rainforest where they lived. This wasn’t trivial work; illegal deforestation and mining is an issue in the Amazon, and by building these tools the local indigenous communities may be able to better protect their environment. Substack’s work was mainly in helping out with offline and p2p usage — how do you build programs that don’t take much power (because the generator turns off at night), that don’t need a lot of updating (because downloading the new Windows update may use up all the internet for the month), that don’t involve a large amount of upkeep (because shell scripts are brittle), and that can be shared easily? The answer: sneakernets and p2p sharing of updates between computers. This talk was fascinating, and I really hope to look into the tech behind it — osm-p2p-db, dat, hyperlog, and so on — more. The slides are here, so go check that out.
Chad Gowler — How to Ask about Gender
Chad, a Ruby on Rails developer and designer from Sheffield, as well as a Code Club volunteer and occasional event organiser, talked about how we use gendered language and how to appropriately ask others about their gender. Their talk had a lot of interesting things to say about how web designers include their biases in the code — things like forms demanding information about gender, titles, and pronouns. They covered what we know about gender currently — it isn’t binary, it isn’t set at birth, and it can’t be discovered just by knowing someone’s name (like Twitter, Google, and a lot of companies try to do) — and how to appropriately ask someone else for their gender or preferred pronouns. My main takeaways were that Mx, a non-gender specific title, is pronounced [mix] and is accepted in most places; that titles are never mandatory legally; and that when asking for sex on a website, the best thing to do is probably to have a text field to allow people to write their preferred pronoun or gender, instead of using ‘other’.
Dan Jenkins — Getting Physical With Web Bluetooth in the Browser
Dan, a Node.js developer and founder of Nimble Ape Ltd, gave a fun talk about his work over the past few years working with Web Bluetooth and WebRTC APIS to do cool stuff with actual, physical stuff. He had a BB8 droid that could run around throwing off a bluetooth signal, for one; his talk mentioned what you can do today with Bluetooth low energy, a wireless personal area network tech that can be used to make physical objects interact with people — a step up from things like QR codes, or location agnostic websites.
This was an interesting talk; I haven’t worked much with physical tech, and look forward to seeing more use cases, like Dan’s little drone he waved around, being used in the real world.
Ruth John & Tim Pietrusky
To cap off the day (before WhiskeyJS), Ruth the MIDI talker and Tim, the guy behind @NERDDISCO, came up and gave a talk showing the power of a JS emulator of a synth board, by actually making and playing some fantastic music, complete with lights and head bopping. I was working on a small node module at the time, coding away, and I can state definitively that the music was a) incredible and b) got me into the zone, such that I didn’t notice that the talk was over until most people had left for the day. It was super cool.
Day 2
Although normally the second day of a conference — or in this case, the fourth day, as ScotlandCSS also happened in the days before ScotlandJS — is a bit subdued, this wasn’t the case here. Most people seemed bright and chipper, and the talks were consistently great.
Matt “Potch” Claypotch — 10 Feet and Rising — Building Television-friendly Web Pages
Potch, a Web Developer Advocate at Mozilla, had amazing energy for the first speaker, and talked about how at Mozilla his team watched as TVs were installed in the office. Obviously, the first thing they did was try to put stuff on them, and they were so successful that soon maintaining the office TV screens was part of their job. Potch talked about the challenges of UI, and design, for TVs. My favourite quote was “TVs are just far away phones you can’t touch!”, followed swiftly by a quick note that, when the TVs displayed days until releases, the bugs and blocker numbers got considerably smaller whenever a product manager came into the room.
Clay Smith — http/2: The Weird Parts
Clay, another Developer Advocate, this time at New Relic in San Francisco, talked about the HTTP/2 protocol and how it promises to give significant performance benefits for JavaScript apps. His talk was pretty technically detailed, mentioning strange parts of the HTTP/2 spec — like server push, code 101, and the GOAWAY frame. HTTP/2 is already here — most browsers finished implementing it by 2015 — but it isn’t widely used yet.
My main takeaway from this talk is that one of the worst bug reports you can get is “this app is slow”. I’m going to try and think harder about what protocols might be used, or how the code might be written, that leads to this, instead of critiquing websites so easily in the future.
Sílvia Pina — How Cognitive Psychology Can Help You Write Better Code
Silvia Pina, now a software engineer, but once a student of psychology and neuroscience, gave a very cool talk on cognitive biases. The talk had a lot of examples and questions for the audience; which of these charts looks like a random distribution? What color should the alternate card be? Which is more likely, that John the introvert is a programmer or that John the introvert is a programmer and plays games (the first, it’s a superset)? Her talk highlighted the fact that humans are fallible, and as developers, we have to be conscious of this when we develop for them (and, of course, as well as when we talk to product managers).
CJ Silverio — Monitoring On A Budget
Ceej is a phenomenal speaker; this was no exception. She talked about what it is like being VP of engineering for npm, the largest package manager for javascript files — on last Tuesday, alone, it had 205 million downloads. The npm system has 12GB of logs a day. Ceej’s talk was largely about how npm deals with this with only 4 people maintaining the registry; about human concerns, like whether they should build a tool or outsource (outsource when cheaper), or when to page people (as little as possible), or how to build cool graphs that show this data and how to make sense of them.
Every time I see people from npm talk I am incredibly impressed, and this was no exception; they do an amazing job. This talk only underlined that for me, again. Also, there were wombat pictures. Of course.
Ewan Dennis — Personal Data Mining (Not) Just For Fun
Ewan’s talk was great; jumping into the land of quantified self, he talked about how he used d3 to track his six month old daughter’s sleeping patterns, his metrics on altitude and pressure while flying to and from London to Glasgow, and, finally, his financial patterns over the past ten years. He’s spent £4500 on pizza in the last ten years — that’s good to know. One of the takeaways is that money and personal data is interesting, and it has never been easier to hack them. As well, we could do with more conversation about salaries and tech — in this, he underscored current movements to be more transparent in our industry, as a whole.
Cat Hawker — Creating Accessible Components
Cat, a web developer and accessibility champion for BBC Knowledge and Learning, gave a very insightful talk on all of the things we can — and currently don’t do, mainly — for accessibility on the web. Screen Readers, magnifiers, braille, haptics — there’s never been more ways than now to access the web, and yet we still mainly develop for able people who are looking at a screen. Even in that, there are things we can do now to make the web more accessible — use aria labels, make sure that focus is clear on dropdowns, test accessibility with real users. She also mentioned being careful about color palettes — as someone with red-green deficiency, I appreciated that immensely.
Evan Morikawa — JS Takes The Desktop: Electron, React, and Native Win/Mac/Linux Experiences at Scale
Evan’s talk, like the VR, MIDI, and Bluetooth talks, was shattering in the way it broke current misconceptions that JavaScript is really only for the browser, or maybe for the backend too. I’ve looked at Electron before, but this talk really went into how easy it is to make Electron apps that look amazing and run on native platforms. He demoed a few of the apps he has made while being an engineer at Nylas, building the email client N1; they looked amazing. The main takeaway for me was that with Electron you don’t have to worry about browser-support, which sounds like it might make CSS fun again.
Robin Mehner — Surviving Javascript
Robin’s talk was one of the best, for me, and I think for the audience at large. Robin has run a lot of JavaScript communities — BerlinJS, RejectJS, and NodeCopter. Here, he pontificated about what is hard about development — people. And expectations, opinions, and misconceptions. His talk, delivered at a fast pace in a clipped German accent, was full of amazing tidbits from someone who has survived burnout and has come back to the trenches to talk to the rest of us soldiers, trying to keep up with learning every new framework, trying to deal with pushy managers, trying to care about semicolons. His advice was to remember everyone is human, we are all constantly learning, to hold no opinions if you can help it, to choose your battles wisely, and to really care about self care.
This talk was phenomenal; if you see one of the videos, make it this one.
Irina Shestak — Javascript Takes On Genetically Evolving Cellular Automata
Irina came from Vancouver to talk about the time she picked up this random black hardcover book at a bootsale, and came out knowing way more than she expected about complexity and automata. Harkening back to the days of Turing machines, she talked about how to make cool simulations that are self-organizing, that show us about what we know about science, complexity theory, and multivariate situations. Some of the code she ran looked pretty artistic, too; I really enjoyed this talk, and wish that I could find more uses for complex automata in my own work.
Raquel Vélez — Fear
To wrap up the conference, the astounding Rockbot gave an awesome talk about fear. Raquel has incredible stage presence, and in this talk she tried to implore us to recognize that everyone — from newbie developers to the lead person putting npmjs into production every day (which she does) — has to grapple with fear and stress. She talked about how the brain works, how our bodies deal with stress, and how to take time to meditate, to blow air on your thumb, to pause — to recognize that, while we are developers working on logical programs, we are not ourselves logical. We require upkeep and attention. Her resounding clarion call at the end was: what would you do if you weren’t afraid? It wasn’t an empty phrase; knowing that everyone else is human, too, makes me feel a bit more secure, and a bit more likely to actually push that code out.
Conclusion
This conference was jam packed with good talks. If you got this far, you can possibly understand how amazing it was — talk after talk after outdoor discussion group after coffee after talk about what we can do with JavaScript and as developers. While few of the talks were really technically deep, I enjoyed getting to know where the JavaScript community is these days, and how to best approach communities and human development — for a field riddled with long battles and lack of attention to emotions and mental health, it was refreshing to see that most of the user-chosen talks here were about those very issues that define us, day in and day out. I look forward to applying a few of the things I learned in my own job and community, too.
On a more personal note, it was great being in Edinburgh and seeing all this there. I felt like not only has the JavaScript community grown since I first entered it in 2010, while a student here, but I’ve grown, too.
====
The following content is the thoughts and reflections of Richard Littauer. YLD does not hold these identical beliefs, and the expressed opinions are exclusively his own.