DevOps engineer
The DevOps engineer is responsible for understanding the dev environment, setting up new environments and services and introducing new tools to assist the team's build and monitoring processes.
DevOps engineers are expected to collaborate closely with each other and to present tutorials on all aspects of their work.
The dev environment
Environments that DevOps engineers should get familiar with, include:
- Dev invironments on Unix, Mac and PC
- The Unix command line and essential commands
- Installing software on Unix
- The
sudo
command
- Unix file permissions (
ls -l
and chmod
)
- Working with Unix paths (starting with
echo $PATH
)
- Using homebrew on a mac
- Using Cygwin on Windows
- Installing Unix on a PC or ChromeBook, with e.g. Crouton
- Code editors, such as Sublime Text
- Unix-based editors: Emacs and Vi
Production environments
- Application hosting, such as Heroku
- Database hosting, such as Compose.io
- General-purpose cloud-based services, such as AWS
The DevOps engineers should concentrate on introducing one new tool at a time, they should agree with the other DevOps engineers on which tool to introduce, and they should contribute to a whole-class tutorial on their chosen tool before moving on to the next tool.
Suggested list of build tools:
- CSS preprocessors (SCSS and Sass using Jekyll)
- Shims, fallbacks, and polyfills (HTML5-boilerplate, Modernizr...)
- Package managers (Bower and npm)
- Task runners (Gulp and Grunt)
- Scaffolding (Yeoman)
- Containers (Docker, Fig)
- dotfiles
- make