├── LICENSE.md ├── CONTRIBUTING.md └── README.md /LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Contributors to https://github.com/czerasz/DevOps-Interview-Questions 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to DevOps Interview Questions 2 | 3 | Please take a moment to review this document in order to make the contribution 4 | process easy and effective for everyone involved. 5 | 6 | Following these guidelines helps to communicate that you respect the time of 7 | the developers managing and developing this open source project. In return, 8 | they should reciprocate that respect in addressing your issue or assessing 9 | patches and features. 10 | 11 | 12 | ## Using the issue tracker 13 | 14 | The [issue tracker](https://github.com/czerasz/DevOps-Interview-Questions/issues) is the preferred channel for spelling mistakes, errors or any general feedback. Please respect the following restrictions: 15 | 16 | * Please **do not** derail or troll issues. Keep the discussion on topic and respect the opinions of others. 17 | 18 | * Please **do not** open issues or pull requests that involve including **answers** to any of the questions. 19 | 20 | 21 | ## Pull requests 22 | 23 | Please adhere to the coding conventions used throughout the project (spelling, indentation, punctuation etc.). 24 | 25 | Adhering to the following process is the best way to get your work included in the project: 26 | 27 | 1. [Fork](https://help.github.com/articles/fork-a-repo) the project, clone your fork, and configure the remotes: 28 | 29 | ```bash 30 | # Clone your fork of the repo into the current directory 31 | git clone https://github.com//DevOps-Interview-Questions.git 32 | # Navigate to the newly cloned directory 33 | cd DevOps-Interview-Questions 34 | # Assign the original repo to a remote called "upstream" 35 | git remote add upstream https://github.com/czerasz/DevOps-Interview-Questions.git 36 | ``` 37 | 38 | 2. If you cloned a while ago, get the latest changes from upstream: 39 | 40 | ```bash 41 | git checkout master 42 | git pull upstream master 43 | ``` 44 | 45 | 3. Create a new topic branch (off the main project development branch) to 46 | contain your feature, change, or fix: 47 | 48 | ```bash 49 | git checkout -b 50 | ``` 51 | 52 | 4. Locally merge (or rebase) the upstream development branch into your topic branch: 53 | 54 | ```bash 55 | git pull [--rebase] upstream master 56 | ``` 57 | 58 | 5. Squash your commits down to a single one (we want to keep the master branch nice and clean) 59 | 60 | 5. Push your topic branch up to your fork: 61 | 62 | ```bash 63 | git push origin 64 | ``` 65 | 66 | 7. [Open a Pull Request](https://help.github.com/articles/using-pull-requests/) 67 | with a clear title and description. 68 | 69 | **IMPORTANT**: By submitting patches, you agree to allow the project owners to license your work under the terms of the [MIT License](LICENSE.md). 70 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DevOps Interview Questions 2 | 3 | This project was inspired by [the changelog podcast](https://thechangelog.com/podcast/) [episode 143](https://thechangelog.com/143/) and the [Front-end Job Interview Questions Project](https://github.com/h5bp/Front-end-Developer-Interview-Questions). 4 | 5 | ## Table of Contents 6 | 7 | 1. [General Questions](#general-questions) 8 | 1. [General Linux Questions](#general-linux-questions) 9 | 1. [Development Questions](#development-questions) 10 | 1. [Networking Questions](#networking-questions) 11 | 1. [Scalability Questions](#scalability-questions) 12 | 1. [Architecture Questions](#architecture-questions) 13 | 1. [Security Questions](#security-questions) 14 | 1. [Open Questions](#open-questions) 15 | 16 | ## Getting Involved 17 | 18 | 19 | 1. [How to Contribute](https://github.com/czerasz/DevOps-Interview-Questions/blob/master/CONTRIBUTING.md) 20 | 1. [License](https://github.com/czerasz/DevOps-Interview-Questions/blob/master/LICENSE.md) 21 | 22 | #### General Questions 23 | 24 | * What did you learn yesterday/this week? 25 | * What excites or interests you about DevOps? 26 | * What is a recent technical challenge you experienced and how did you solve it? 27 | * Which version control systems are you familiar with? 28 | * Name three IT related things/technologies/commands which changed your live? 29 | * What is configuration management? What software do you know? 30 | * Describe tools which you use for documentation. 31 | * What is your programming background? 32 | 33 | #### General Linux Questions 34 | 35 | * Talk about your preferred development environment. 36 | * What is your favourite Linux distribution? 37 | * Name your favourite Linux features. 38 | * What is Vagrant? 39 | * What is are the differences between threads and processes? 40 | 41 | #### Development Questions 42 | 43 | * Ruby 44 | 45 | - How to handle multiple Ruby versions? 46 | - What are `bundler` binstubs 47 | 48 | * Python 49 | 50 | - What is `virtualenv` 51 | 52 | * Java 53 | 54 | - What is Maven? 55 | 56 | * Node.js 57 | 58 | - How create threads in Node.js (sneaky). 59 | - Explain how the Node.js event loop works. 60 | 61 | * PHP 62 | 63 | - What is your favourite PHP environment. 64 | - Describe the differences between Apache and Nginx. 65 | 66 | * GO 67 | 68 | * Bash 69 | 70 | * Scala 71 | 72 | #### Networking Questions 73 | 74 | * How to see which ports are currently used? 75 | 76 | #### Scalability Questions 77 | 78 | * What is caching? Describe how it works. What software can be used for caching. 79 | * What is a CDN? Describe how it works. Describe how an external integration could be implemented. 80 | * Describe the concept of stateless machines. 81 | 82 | #### Architecture Questions 83 | 84 | * Talk about most important architecture concepts. 85 | 86 | #### Security Questions 87 | 88 | * How to secure SSH? What are the most important/common practises to secure SSH? 89 | * What is port knocking? Describe how it works and mention it's biggest disadvantage (single point of failure). 90 | * What is SSL? 91 | 92 | #### Open Questions 93 | 94 | 101 | 102 | ## Resources 103 | 104 | - [Dice: Technical Interview Questions for Linux DevOps](http://news.dice.com/2013/11/21/technical-interview-questions-linux-devops/) 105 | --------------------------------------------------------------------------------