Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Why hire a developer when you can hire a barista and teach them to code?

Why hire a developer when you can hire a barista and teach them to code?

Mike is the founder and CEO of the Sails framework (aka Sails.js). He asks: "Why hire a developer when you can hire a barista and teach them to code?"

POST/CON
June 7, 2018
San Francisco, CA
Dogpatch Studios
https://www.getpostman.com/post-con

Mike McNeil

June 07, 2018
Tweet

More Decks by Mike McNeil

Other Decks in Technology

Transcript

  1. Why hire a
    developer
    when you can hire a barista
    and teach them how to code?

    View Slide

  2. Why hire?

    View Slide

  3. because you can't
    do it all by yourself
    not fast enough, anyway

    View Slide

  4. The Company

    View Slide

  5. The Company
    Mike McNeil
    @mikermcneil
    founder & CEO of sails co.
    digital studio
    (a.k.a. design/dev/product shop)
    open-source MVC framework for Node.js
    creator of

    View Slide

  6. senior developer lead / architect
    junior developer
    $$ $$$
    $

    View Slide

  7. trainee apprentice
    barista
    4-6 weeks 2-3 months
    blank slate

    View Slide

  8. A culture of teaching

    View Slide

  9. Yeah, I'm finished!
    Yikes! Not like that!

    View Slide

  10. Teaching makes work
    less boring.
    Wow, I'm learning a ton!
    (They really like me...)

    View Slide

  11. Who are these
    "recruiters"?
    (One of them said I
    was a rockstar...) Ignore them, we'd miss you here!

    View Slide

  12. What about velocity?
    Teaching takes time.

    View Slide

  13. capture business value
    along the way
    (You don't have to hire at day one, either.)

    View Slide

  14. super soldier
    barista

    View Slide

  15. Business needs:

    View Slide

  16. New requirements pop up all the time

    View Slide

  17. New requirements pop up all the time

    View Slide

  18. Junior developer:

    View Slide

  19. Senior developer:

    View Slide

  20. Lead / architect:

    View Slide

  21. You're paying developers to grow anyway

    View Slide

  22. You're paying developers to grow anyway

    View Slide

  23. Why not embrace growth from day one?

    View Slide

  24. View Slide

  25. View Slide

  26. The Company
    Questions?
    @mikermcneil
    twitter.com/mikermcneil
    sailsjs.com/about

    View Slide

  27. The Company
    Appendix A:
    Some notes about the "how"

    View Slide

  28. View Slide

  29. The Company
    Layout & markup Interactivity
    Rudimentary terminal skills
    Text editor / IDE setup
    Running a local server
    Onboarding
    Wireframing
    Browser dev tools
    Floats & how to clear them
    Flexbox
    Normal flow, positioning &
    z-index
    Namespacing & mixins
    Using {{dynamic}} data
    Conditional classes & HTML
    ., +, &&, ||, and ?:
    Handling DOM events
    Media queries & animations
    Committing, pulling, pushing, &
    merge conflicts
    encodeURIComponent()
    Creating new pages
    Communication & agile
    Using other preexisting UI components
    Creating email templates
    Custom modal dialogs
    Pull requests

    View Slide

  30. The Company
    DevOps & QA HTTP & APIs
    Forms & persistence
    AJAX forms
    Loading states
    Client-side validation
    Server-side errors
    Routes & actions
    Querying the database
    Basic QA skills
    Server-side rendering
    Deploying to staging
    Using the REPL / db client to
    access the staging db
    DNS & registrar
    Reading 3rd party API docs
    Using Postman
    Making HTTP requests in server-
    side code
    SSL cert & redirects
    Setting environment variables
    Language/framework-specific
    configuration basics
    Reading 3rd party API docs
    Encoding request data & headers, parsing
    response data & headers
    Creating reusable helpers
    Negotiating errors, throwing custom errors, &
    using status codes

    View Slide

  31. The Company
    File uploads Security
    Messaging features
    Expiring, one-time-use tokens
    Scalability
    When to paginate
    Controlling the size of query result
    sets
    Stability
    Timeouts, retries & exponential
    backoff
    Most common language-specific
    gotchas
    Managing API rate limits
    Optimization
    Running things in parallel
    Secure file uploads
    Negotiating errors & throwing custom errors
    Reducing the # of queries and other
    async operations
    Using native queries & batch
    operations
    S3 bucket configuration
    Safe stream processing
    Listening for WebSocket messages
    in the browser
    Subscribing & broadcasting on the
    server
    PCI compliance
    re charging a card
    or enrolling a customer in subscription billing
    Automated SMS & emails
    Hashed passwords
    Untrusted requests
    Enforcing size quotas

    View Slide