The devops-exercises topic table links to two other repositories and an anchor that cannot resolve
Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, Virtualization. DevOps Interview Questions
At a glance
- What is it?
- 2624 questions and answers about Linux, Kubernetes, Terraform, AWS and three dozen other subjects, written as collapsible blocks in Markdown. It is a revision bank rather than a curriculum, and its navigation table is part file path, part in-page anchor, part link to somebody else's repository.
- Who is it for?
- Use this repository to test what you already know and to find the two or three subjects you are weakest in, not as a reading order. Two things to check before you plan around it.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Activity is slowing. The repository last received commits 9 months ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The topic table is two-thirds navigation and one-third a manifest, and Python lives elsewhere
Get the repository the only way it can be had, because there is nothing to build and no package to install:
git clone https://github.com/bregman-arie/devops-exercises.gitThe top level is Markdown and directories: topics/, exercises/, certificates/, coding/, scripts/, tests/, images/, plus faq.md, prepare_for_interview.md, credits.md, CONTRIBUTING.md and a .travis.yml.
Now the topic table, which is the front door. It is a grid of about forty cells, and the cells do not agree on what a link means. Most point at a file, topics/kubernetes/README.md, topics/terraform/README.md, topics/ansible/README.md. Seventeen point at a fragment of the README itself: #network, #sql, #mongo, #testing, #big-data, #certificates, #storage, #puppet, #distributed, #prometheus, #system-design, #elastic, #hardware, #regex, #operating-system, #virtualization and #questions-you-ask. Two point at other repositories by the same author, Python to a python-exercises repository and Go to a go-exercises repository. One, NodeJs, points at topics/node/node_questions_basic.md, a named file rather than a README.
The consequence is that the table is a navigation aid, not a contents listing. A reader asking whether there is Python material here is told to leave, and a reader assuming every subject has its own directory will find that certificates, storage and distributed have none.
The OpenStack cell is a fragment with a path glued to it, and the Datadog cell has no label
Two cells in that table are broken in ways worth naming, because both are the kind of thing you only notice by trying.
The OpenStack cell's href is #openstack/README.md. Every other in-page link in the table is a bare fragment such as #network or #sql. This one is a page anchor with a file path appended to it, which is not a thing a Markdown renderer can resolve, so the link has no target. OpenStack is the one subject in the grid you cannot reach from the grid.
The Datadog cell is worse in a quieter way. Its markup is an anchor around topics/datadog/README.md followed by an empty bold element, so the cell renders with no text in it at all. The directory link is correct and the subject is real, but nothing in the table tells you the cell is about Datadog. You find out by hovering or by listing topics/ yourself.
Neither is visible in rendered text, which is why they survive. The consequence for a reader is that the table understates its own coverage in two places, and the pattern is not random: the one cell that is a file rather than a README, NodeJs, breaks the convention that lets you guess a path from a topic name. Check the directory listing rather than trusting the grid.
2624 is written into the README by hand, with no command beside it to recompute it
The headline number appears in the README as prose: there are currently 2624 exercises and questions. It is bolded in the Markdown and it is the first thing a reader sees.
It is also a hand-maintained figure. The repository has a scripts/ directory and a tests/ directory at the root, so tooling exists, but the README gives no command that produces the count, no note of when it was last produced, and nothing that ties it to a commit. Contrast that with a project that tags releases: this one has none, so there is no version to compare a claimed count against.
The only dated signal in the whole project is the branch itself. The last push to master was on 2025-12-27, and the repository is not archived, so nothing has been deleted; it simply has not moved in the months since. Treat 2624 as the figure the README asserts, not as a measured property.
The same caution applies to the count's scope. The README describes the contents as questions and exercises on various technical topics, sometimes related to DevOps and SRE. The word sometimes is doing real work in that sentence, and a large part of the bank is general computing rather than operations work.
Each item is a details block, so a plain-text reader gets the question with no sign an answer follows
The body format is uniform across the sections, and it is worth knowing because it changes how the material reads outside GitHub. Every entry is a details element with the question as its summary and the answer inside, wrapped in bold markers.
The Network section shows the pattern at its plainest. In general, what do you need in order to communicate? is answered with three things: a common language for the two ends to understand, a way to address who you want to communicate with, and a connection so the content can reach the recipients. What is Ethernet? is answered by contrasting a LAN with a WAN and giving examples down to your home. What is a MAC address? is answered as a unique identification number or code used to identify an individual device.
The consequence is a mismatch outside a Markdown renderer. The answer carries no label saying it is an answer, so a search hit or a text dump gives you a bare question with nothing marking that a reply sits below it. And note the TCP/IP entry, which answers with a set of protocols that define how two or more devices can communicate and then sends you to an external reference site to actually learn it. That one is a signpost, not an answer, and you cannot tell which entries are which without opening each one.
Portuguese covers four documents and the Chinese translation covers one
The repository is translated, unevenly, and the unevenness has a specific shape. There are three READMEs: README.md, README-pt-BR.md and README-zh_CN.md.
The Brazilian Portuguese set is the complete one. Alongside its README it has faq-pt-BR.md, prepare_for_interview-pt-BR.md, credits-pt-BR.md and CONTRIBUTING-pt-BR.md. The Chinese set has a README and nothing else. There is no faq-zh_CN, no prepare_for_interview-zh_CN, no credits-zh_CN and no CONTRIBUTING-zh_CN in the top level listing.
That asymmetry lands in an awkward place, because the English README's first four points are exactly the ones that send you elsewhere. It tells you that most questions do not represent an actual interview and to read the FAQ page for more details. It tells you the material is useful for a career in DevOps but is not about learning all the topics listed. And it tells you to read the contribution guidelines before submitting a pull request. A reader working in Chinese gets the topic table, which is the navigational part, and none of the three documents that explain what the table is for or how to add to it.
The fix is four translated files, and the reason it has not happened is visible in the dates rather than in any stated policy.
The project says twice that it is not a curriculum, and points at faq.md both times
The clearest thing the repository says about itself is a refusal, and it makes the refusal twice in the first screen.
The first is about interviews: you can use these for preparing for an interview, but most of the questions and exercises do not represent an actual interview, and you should read the FAQ page for more details. The second is about scope: if you are interested in pursuing a career as DevOps engineer, learning some of the concepts mentioned here would be useful, but you should know it is not about learning all the topics and technologies mentioned in the repository.
Both refusals point at faq.md, which is the file to read before you commit time to this. The project is telling you what it is not twice, and neither answer is in the README itself.
The consequence for a reader is concrete. Someone who wants to become a DevOps engineer finds a grid of forty technologies, no ordering among them, no prerequisites marked and no statement of which ones matter. The bank is built for the other direction of travel, where you already have the knowledge and want to find the gaps. Used as a syllabus it will not tell you where to start, and the number of subjects is the problem the FAQ exists to address rather than to solve.
Three Play Store apps share one vendor prefix, and none of them is in this repository
Below the topic table there is a short section headed DevOps Applications, and it contains three Google Play links: KubePrep, Linux Master and System Design Hero.
Look at the package identifiers. They are com.codingshell.kubeprep, com.codingshell.linuxmaster and com.codingshell.system_design_hero, so all three come from one publisher under the com.codingshell prefix, which makes them a commercial product line rather than three unrelated apps someone happens to have built.
The consequence is that this is a shop window, not a dependency. The apps live in a Play Store account, are versioned and released on Google's schedule, and share no repository, no scripts directory and no tests directory with the question bank. The README does not say which topics the apps cover, how many questions each contains, or whether an app tracks the Markdown. So if you were planning to use an app as a mobile companion to this bank, the two halves update on independent clocks and nothing in the repository tells you they are in step. The reverse also holds: a question added here does not appear in an app.
Editorial conclusion
Use this repository to test what you already know and to find the two or three subjects you are weakest in, not as a reading order. Two things to check before you plan around it. First, the topic table is navigation, not an index of the repository: seventeen of its cells are in-page anchors, two point at other repositories, and one, OpenStack, carries a link that cannot resolve, so a subject that looks present may only be a section of the README. Second, dating: the last push to master was on 2025-12-27 and the project publishes no releases, so the stated count of 2624 has no recompute command next to it and no tag to check it against. If you need Portuguese, you get four documents; if you need Chinese, you get the README alone.
Frequently asked questions
How many questions are in bregman-arie/devops-exercises, and are the answers included?
The README states there are currently 2624 exercises and questions, and each one is written as a question followed by its answer inside a collapsible details block, so the answer travels with the question in the same file. The README also notes that most of them do not represent an actual interview.
Is the bregman-arie/devops-exercises repository still being worked on?
The last push to the master branch was on 2025-12-27, and the repository publishes no GitHub releases, so there is no tagged version to check against. It is not archived. New material arrives through pull requests, with the rules for those in CONTRIBUTING.md.
Which languages is bregman-arie/devops-exercises available in?
The repository carries README.md, README-pt-BR.md and README-zh_CN.md, but the coverage is uneven. The Portuguese set also includes faq-pt-BR.md, prepare_for_interview-pt-BR.md, credits-pt-BR.md and CONTRIBUTING-pt-BR.md, while the zh_CN set is the README on its own.