- plan, design, iterate, and document
- write clean code
- text editor
- integrated development environment (ide)
- distributed version control system
- understand the code base
- picking up a new code base
- read the code, look at unit tests, line trace, and edit lines
- platform as a service (PaaS)