My bona fides
This part is the least exciting for me to write, but it's only fair you know who's giving you advice.
My name is Simon Borer. I have been:
- on the internet since 1993 (in the heyday of the Bulletin Board System),
- writing code since 2004 (professionally since 2011), and
- teaching internet technologies at the post-graduate level since 2018.
I have worked on campaigns for massive multi-national corporations, from Big 5 banks to most major car manufacturers to public utilities and hospitals, and a certain inescapable burger chain. I have worked for Canada's biggest ad agencies, small boutique firms, and freelance with my own clients. I have taught people at every stage of their careers, all around the world, everything from SQL to QA automation (the development equivalent of farm-to-table). I've worked on microsites and HTML emails and pushed massive monoliths to production from a skyscraper at 3 AM.
I have some thoughts.
These thoughts largely revolve around accessibility and ethics.
The 'Why'
Every day the internet feels a little less 'by the people', and a lot less 'for the people'. Wouldn't it be nice if the internet, and the tools that make it, were accessible to everybody?
On the internet, accessibility can refer to particular responsible building practices, but I'm using it here in a broader sense. Over the years, I've seen computer literacy decline Opens in a new window even as middle-class jobs depend increasingly on digital skills. While many of my friends dabbled in computer languages by hacking their MySpace or LiveJournal pages, that in-road has been closed off by the "walled gardens" of closed-source apps. Meanwhile the learning curve for building web content that "feels" modern has gotten steeper, and the main tools people have for learning about computers and computer languages (i.e. Google searches, online documentation) have been declining in quality for a few years.
In many ways, there are many more tools now that could be helping regular folks with their daily lives, and levelling the playing field for marginalized people Opens in a new window, but instead we get distractions that scream for our attention, and fancy gadgets that only kind of work.
At the same time that the digital world gets more inaccessible and annoying, and abstracted further away from the understanding of the average person, the stakes keep getting higher.
The economic, socio-political and environmental Opens in a new window footprints of the digital world get bigger every year, and have been multiplied by the global impacts of a world-wide pandemic Opens in a new window.
I thought it would be nice to offer some of my experience to help understand this thing called the internet a bit better, to provide some resources on how to make stuff on the web (hopefully in a way that's a bit more approachable than a lot of what's out there already), and spend a little time thinking and learning about the ethical questions that come up when we're dealing with the infrastructure of our daily lives.
The 'What'
Now this part is truly a work in progress at the moment. I want to go where I'm most useful, and I plan to learn about this by throwing a few different things against the wall to see what sticks, partly in what I'm talking about, but mostly in where I'm talking about it.
I plan to start here, on this site, writing some posts that I think might be a good entry point for people.
I'm going to make videos that accompany those posts, some for Youtube, some for Tiktok/Instagram.
Once I have some content together, I'd like to start engaging with people interactively, whether that's on a Discord server, a Twitch stream, or in online classes (either live, like in the college courses I teach, or asynchronously, like a Wes Bos or Udemy course).
I also want to be transparent - I'd love to pay my bills. But I'm committed to doing this in a non-shitty way. To me this means:
- no selling of personal data, ever,
- for anything that isn't free, a PWYC or sliding-scale model,
- transparency around any sponsorship,
- if ads ever get involved, they will have the absolute bare minimum impact on user experience (I think Jason Kottke Opens in a new window sets a lovely example).
My best-case scenario is a sponsor/membership model, but I'm going to withhold judgement until I get a fuller picture.
The 'Who'
People who care about the ethics of the internet.
People who would like the internet to be a little less annoying and a little more useful in their daily lives.
People who want a job that involves making stuff on the internet.
People who have a job making stuff on the internet, and want to get better at making stuff that works for people.
The 'How'
It's a lovely exercise to reflect on some gratitude for all the people who make the things that you use to make things.
Here's a (certainly incomplete) list of things that I make use of in order to build this website:
I use neovim Opens in a new window and Sublime Text Opens in a new window to write (both code and content).
I use iTerm Opens in a new window as my terminal.
Once I write stuff, it gets version-controlled in Github Opens in a new window, from which it's published to the internet through Netlify Opens in a new window.
My runtime environment is Node.js Opens in a new window, with NPM Opens in a new window managing the packages.
The site is generated using Eleventy Opens in a new window using the Nunjucks Opens in a new window templating engine, with SCSS Opens in a new window to build my styles. I'm using esbuild Opens in a new window to lint and bundle my JavaScript libraries (although any JS I write myself I leave un-minified for easy reading). I use PostCSS Opens in a new window to run Autoprefixer Opens in a new window and PurgeCSS Opens in a new window.
The site uses Alpine.js Opens in a new window to help with passing state data between elements, Fuse.js Opens in a new window for fuzzy searching, Prism Opens in a new window to highlight code, Rough Notation Opens in a new window to "sketchily" underline and highlight text, my own fork of Reveal.js Opens in a new window (using data attributes instead of unsemantic section elements) with Marcy Sutton Opens in a new window's reveal-a11y Opens in a new window plugin, Paul Irish's Lite YouTube Embed Opens in a new window for video "facades", and instant.page Opens in a new window for preloading links.
To see how I'm doing, I check my work in Lighthouse Opens in a new window, axe DevTools Opens in a new window, Accessibility Insights Opens in a new window, developer tools in Chrome Opens in a new window, Firefox Opens in a new window, and Safari Opens in a new window, spellchecker-cli Opens in a new window and proselint Opens in a new window.
And here's my favourite part - I get inspiration from:
- Julia Evans Opens in a new window, who makes internet technologies feel approachable (even fun!) with a mix of curiousity, enthusiasm, and fearlessness.
- Zi Chong Kao Opens in a new window, whose Select Star SQL Opens in a new window is, bar none, the best tech tutorial I've ever come across.
- MDN Web Docs Opens in a new window, which are the most meticulous and comprehensive documentation of internet languages ever assembled.
Honourable mentions go to CSS Tricks Opens in a new window, Wes Bos Opens in a new window, A List Apart Opens in a new window, Flavio Copes Opens in a new window, Smashing Magazine Opens in a new window, and Hacker News Opens in a new window.