A fly-through guide to web development best practices.
Hack Reactor, 2019-01-17
These slides are available at
Who is this jerk?
What are we talking about?
I may also include sarcastic remarks down here.
- Automate everything
- Soft skills
Q: Who died and made you god of web development?
A: Twitter, America's most trusted source for real facts.
More on Wikipedia: en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
Dunning Kruger Study
Dunning & Kruger won the Ig Nobel prize for psychology in 2000, but this is really useful stuff.
Time saved by automation
Four-finger typing is not enough.
The command line
True story: this kid is 39 now.
Vim is overrated. Don't @ me.
git or GTFO
What is your job?
50% solving the problem
All hail Sir Tim.
- You don't always need an app
- Consider progressive enhancement
You don't always need an app
Rich apps are fun to build, and that's the problem.
is what a web app feels like, not what it looks like
URLs are part of UX
Support deep links
is the same as
Beware the hashbang!
Solve the user's problems
Nobody uses carousels:
"Apple does it" is not a good enough reason.
Nobody scrolls horizontally:
Links go places, buttons do things
Spatial memory is a thing
Performance is invisible UX.
Mobile = 55%
is not optional
3.4% of web users have limited vision:
Guide to accessibility:
There is no one true database.
Best database ever.
It's a database, but in your browser!
npm install pouchdb
Memory shared between machines
I have to stop making fun of Mongo.
...or do I?
(by which we mean MariaDB)
Get somebody else to run it for you.
Mo' money, less problems.
Great for search. Not a database.
The file system
Slow as hell, scalable as hell
Also consider: S3
A scaling strategy, not a backup strategy.
Are not real unless you test them.
Because people are terrible sometimes.
3 principles of software security
- You can't add it later
- Never trust the user
- Defense in depth
Regular expressions are really hard and really worthwhile.
Speed is the only thing that matters
is usually not worth your time
is another type of speed
Moving closer in space
CDNs are magic, and magic is pricey.
Moving closer in time
Cram every damn thing into memory
TDD is a bad idea. Go on, @ me.
Automate, automate, automate
Make the intern do it
Write evil tests
"What happens if I put emoji in here?"
Changing stuff at random is not debugging.
"What does this button do?"
If you don't know how you fixed it,
you didn't really fix it.
Bad code everyone uses
is better than beautiful code nobody uses.
Frameworks are for people
Having any pattern is better than not having a pattern
Modularity is a scaling tactic
Modules allow software to scale past the limit of our monkey brains.
is a bullshit term.
These are the hardest skills.
Don't be an asshole
"people will forget what you said,
people will forget what you did,
but people will never forget
how you made them feel."
Never work alone
"Hey, you guys need any Cold Fusion done?"
Share what you know
Fight Impostor Syndrome
- lgbtq.technology - LGBTQ in Tech Slack
- witchat.github.io - Women in Tech Slack
- hiretechladies.com - Jobs for women in Tech
- womenwhocode.com - Career services for women in Tech
- peopleofcolorintech.com - People of Color in Tech
- devcolor.org - Community for black software engineers
- techqueria.org - Latin@s in Tech
- deafpros.com - Community for Deaf professionals
- projectalloy.org - will pay for you to go to a conference!
- bit.ly/disabled-in-tech - Disabled in Tech Slack
by ganging up
Stuff I totally skipped
- HTML & CSS
- Security exploits
- Source Control
- Service-oriented architecture
- Time zones
- Distributed systems
- So. Much. Stuff.
- Go explore!
The long(er) version:
It's finally over
Now would be good time to follow me on Twitter!
It seemed like he would never shut up
These slides are at:
Good questions get socks!
Stuff Everybody Knows @ Hack Reactor