Skip to content

Instantly share code, notes, and snippets.

@gabrieljoelc
Last active May 8, 2020 19:19
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gabrieljoelc/ad5b32e9d5e0f29cc735e2ffade15e7b to your computer and use it in GitHub Desktop.
Save gabrieljoelc/ad5b32e9d5e0f29cc735e2ffade15e7b to your computer and use it in GitHub Desktop.

%author: Gabriel Chaney %date: 2019-06-25

-> Mind of a Chef Software Engineer <-

-> What a non-engineer should know about how an engineer thinks. <-


Agenda

  • Scenarios
  • Write some code
  • Contemplate

Client #1

  • Day 1, 8:05AM - Client sends specs to HosOps: add 1+1 πŸ”’

- Day 1, 8:24AM - HosOps gives specs to the Engineer πŸ’Ύ
- Day 2, 10:39AM - Engineer starts writing code... πŸ’»
- Day 10, 11:39PM - ...Engineer tests code and shipsit 🚒
- Day 11, 8:05AM - HosOps reports good news to Client πŸŽ‰
- Day 12, 9:52AM - Client reports that it's working πŸ‘Š

Client #2 - Part 1

  • Day 1, 8:05AM - Client sends specs to HosOps: add fifteen 1's πŸ”’

- Day 1, 8:24AM - HosOps gives specs to the Engineer πŸ’Ύ
- Day 2, 10:39AM - Engineer starts writing code... πŸ’»
- Day 10, 11:39PM - ...Engineer confidently skips testing and shipsit 🚒
- Day 11, 8:05AM - HosOps reports good news to Client πŸŽ‰
- Day 12, 9:52AM - Client triggers 911 πŸš’

-> What's wrong with this picture? <-


-> Readability <-


Client #2 - Part 2

  • Day 12, 10:38AM - Engineer scrambles to apply readability and fix 911 bug... πŸ›

- Day 12, 11:39PM - ...Engineer learned her lesson, tests, and shipsit 🚒
- Day 12, 8:05AM - HosOps reports good news to Client πŸŽ‰
- Day 13, 9:52AM - Client reports that it's working πŸ‘Š

Client #3 - Part 1

  • Day 1, 8:05AM - Client sends specs to HosOps: add one thousand 1's πŸ”’

- Day 1, 8:24AM - HosOps gives specs to the Engineer πŸ’Ύ
- Day 2, 10:39AM - Engineer starts writing code... πŸ’»

-> How do we support multiple clients with similar specs? <-


-> Reusability <-


Client #3 - Part 2

  • Day 4, 11:39PM - ...Engineer refactors code to be reusability for clients 1-3, tests code and shipsit 🚒

- Day 5, 8:05AM - HosOps reports good news to Client πŸŽ‰
- Day 6, 9:52AM - Client reports that it's working πŸ‘Š

Client #4 - Part 1

  • Day 1, 8:05AM - Client sends specs to HosOps: if non-zero, add variable number of 1's. else, return 1 πŸ”’

- Day 1, 8:24AM - HosOps gives specs to the Engineer πŸ’Ύ
- Day 2, 10:39AM - Engineer starts writing code... πŸ’»

-> How do ensure we didn't break all clients? <-


-> Automated testing <-


Client #4 - Part 2

  • Day 6, 11:39PM - ...Engineer uses automated testing to prove clients 1-4 behave as expected and shipsit 🚒

- Day 7, 8:05AM - HosOps reports good news to client πŸŽ‰
- Day 8, 9:52AM - Client reports that it's working πŸ‘Š

-> Things the Engineer learned <-


-> Readability <-

-> Reusability <-

-> Automated testing <-


Now imagine you are the Engineer

and sit through TODO(add stats from repos) files and functions like the ones we just wrote but more complex

and imagine those were deployed on TODO(add stats of computers) of computers in the cloud...


-> We did that this week... <-


-> Questions? <-


References


Meta

  • Presentation specs:

    • macOS Terminal with font size increased by 8
    • vim via mdp
  • Unicodes from this gist

  • Use markdown to convert to HTML:

    $ markdown deck.md

GistID: ad5b32e9d5e0f29cc735e2ffade15e7b

@gabrieljoelc
Copy link
Author

  • write code on ….
  • Use separate client1.rb, client2.rb files
  • Use shipit for shipping code
  • Use adder.rb for client 3 (refactor)
  • Show our code (after or before last one?)
  • before Q&A, open new tab and shipit

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment