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 full-size slide

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

    View full-size slide

  3. 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 full-size slide

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

    View full-size slide

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

    View full-size slide

  6. A culture of teaching

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  10. What about velocity?
    Teaching takes time.

    View full-size slide

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

    View full-size slide

  12. super soldier
    barista

    View full-size slide

  13. Business needs:

    View full-size slide

  14. New requirements pop up all the time

    View full-size slide

  15. New requirements pop up all the time

    View full-size slide

  16. Junior developer:

    View full-size slide

  17. Senior developer:

    View full-size slide

  18. Lead / architect:

    View full-size slide

  19. You're paying developers to grow anyway

    View full-size slide

  20. You're paying developers to grow anyway

    View full-size slide

  21. Why not embrace growth from day one?

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  24. 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 full-size slide

  25. 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 full-size slide

  26. 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 full-size slide