A fly-through guide to web development best practices.

Hack Reactor, 2019-01-17

(Except you)

These slides are available at

Who is this jerk?

Laurie Voss

COO,

@seldo

What are we talking about?

I may also include sarcastic remarks down here.

  • Dunning-Kruger
  • Automate everything
  • JavaScript
  • UX
  • Databases
  • Security
  • Performance
  • Testing
  • Debugging
  • Architecture
  • Soft skills

Q: Who died and made you god of web development?

A: Twitter, America's most trusted source for real facts.

Dunning Kruger

Dunning Kruger Study

Dunning & Kruger won the Ig Nobel prize for psychology in 2000, but this is really useful stuff.

Top quartile

Impostor syndrome

Bottom quartile

Disaster area

Automate everything

Time saved by automation

Touch typing

Four-finger typing is not enough.

The command line

True story: this kid is 39 now.

Text editors

Vim is overrated. Don't @ me.

Version control

git or GTFO

What is your job?

50% solving the problem

50% communication

HTML

All hail Sir Tim.

JavaScript

  1. You don't always need an app
  2. Consider progressive enhancement

You don't always need an app

Rich apps are fun to build, and that's the problem.

Progressive enhancement

UX

is what a web app feels like, not what it looks like

URLs are part of UX

Support deep links

http://twitter.com/#!/ded/status/18308450276

is the same as

http://twitter.com/

Beware the hashbang!

Solve the user's problems

Nobody uses carousels:

"Apple does it" is not a good enough reason.

Be predictable

Links go places, buttons do things

Spatial memory is a thing

Be fast

Performance is invisible UX.

Mobile first

Mobile = 55%

Accessibility

is not optional

Databases

There is no one true database.

Memory

Best database ever.

IndexedDB

It's a database, but in your browser!

npm install pouchdb

Redis

Memory shared between machines

MongoOhNoDB

I have to stop making fun of Mongo.

...or do I?

MySQL

(by which we mean MariaDB)

Postgres

Get somebody else to run it for you.

Oracle

Mo' money, less problems.

ElasticSearch

Great for search. Not a database.

The file system

Slow as hell, scalable as hell

Also consider: S3

Replication

A scaling strategy, not a backup strategy.

Backups

Are not real unless you test them.

Security

Because people are terrible sometimes.

3 principles of software security

  1. You can't add it later
  2. Never trust the user
  3. Defense in depth

Input validation

Regular expressions are really hard and really worthwhile.

Speed

vs

Efficiency

vs

Throughput

vs

Latency

Performance

is

Speed is the only thing that matters

Efficiency

is usually not worth your time

Latency

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

Testing

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?"

Debugging

Changing stuff at random is not debugging.

Be explorative

"What does this button do?"

Be deliberate

If you don't know how you fixed it,

you didn't really fix it.

Architecture

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.

Soft skills

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." 

 

Maya Angelou

Value yourself

Never work alone

"Hey, you guys need any Cold Fusion done?"

Keep learning

Share what you know

Interviewing

How to find and get a job (by @jewelia)

http://bit.ly/finding_jobs


How to interview other people:

http://bit.ly/you_suck_at_interviews

Fight Impostor Syndrome

by ganging up

Stuff I totally skipped

  • HTML & CSS
  • Databases
  • SQL
  • Authentication
  • Security exploits
  • Deployment
  • Source Control
  • Caching
  • Service-oriented architecture
  • Time zones
  • Distributed systems
  • Internationalization
  • Mobile
  • Offline-first
  • So. Much. Stuff.
  • Go explore!

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!

@seldo