# Naming Conventions for Interview Experience Files in the DevOps Interview Guide

> Discover DevOps interview experience file naming conventions in the litu54/DevOps-Interview-Guide repo. Learn the pattern for organizing submissions effectively.

- Repository: [Anil Kumar/DevOps-Interview-Guide](https://github.com/litu54/DevOps-Interview-Guide)
- Tags: best-practices
- Published: 2026-08-10

---

**Interview experience files in the DevOps-Interview-Guide repository follow a deterministic pattern of `<Role>.md` for the first submission and `<Role>_<N>.md` for subsequent entries, with spaces replaced by underscores and files organized under company-specific folders or an `Others/` directory.**

The `litu54/DevOps-Interview-Guide` repository maintains a structured collection of DevOps interview experiences using strict naming conventions for interview experience files. Each submission is stored as a standalone Markdown file within a directory structure that separates experiences by company name. This convention ensures consistent organization and enables automated contributions while keeping the repository flat and searchable.

## File Naming Pattern Structure

### Primary Naming Rules

Every interview experience file adheres to four deterministic patterns based on role specificity and submission count:

- **`<Role>.md`** – Indicates the first interview experience for a generic role at a company (e.g., [`DevOps_Engineer.md`](https://github.com/litu54/DevOps-Interview-Guide/blob/main/DevOps_Engineer.md)).
- **`<Role>_<N>.md`** – Marks subsequent interviews for the same generic role, where `N` represents the sequence number starting at 2 (e.g., [`DevOps_Engineer_2.md`](https://github.com/litu54/DevOps-Interview-Guide/blob/main/DevOps_Engineer_2.md)).
- **`<SpecificRole>.md`** – Used for specialized positions such as [`Release_Engineer.md`](https://github.com/litu54/DevOps-Interview-Guide/blob/main/Release_Engineer.md) or [`SRE.md`](https://github.com/litu54/DevOps-Interview-Guide/blob/main/SRE.md) when the role differs from standard DevOps Engineer titles.
- **`<SpecificRole>_<N>.md`** – Applies to additional submissions for specialized roles (e.g., [`SRE_2.md`](https://github.com/litu54/DevOps-Interview-Guide/blob/main/SRE_2.md)).

### Character Substitution and Suffix Rules

Two critical formatting rules govern the physical file names:

- **Underscore separation** – All spaces within role titles are replaced with underscores (`_`) to ensure cross-platform compatibility.
- **Numeric suffixing** – A trailing underscore followed by a digit distinguishes multiple experiences for identical roles at the same company. The first submission carries no numeric suffix, while subsequent submissions increment sequentially.

## Directory Organization and File Placement

Interview files reside within hierarchical folders that reflect the target company or anonymity status:

- **Company folders** – Named exactly after the organization (e.g., `Wipro/`, `Akamai/`, `Oracle/`), containing all interview experiences specific to that employer.
- **Fallback directory** – Anonymous submissions where the company is undisclosed are stored under the `Others/` folder, following identical naming conventions.

This structure keeps the repository flat with exactly one Markdown file representing a single interview experience, as documented in [`README.md`](https://github.com/litu54/DevOps-Interview-Guide/blob/main/README.md) (lines 13–21).

## Concrete Examples from the Source Code

The following file paths demonstrate the naming conventions in practice:

| Company Folder | File Name | Description |
|--------------|-----------|-------------|
| `Wipro/` | [`DevOps_Engineer_1.md`](https://github.com/litu54/DevOps-Interview-Guide/blob/main/DevOps_Engineer_1.md) | First DevOps Engineer interview experience at Wipro |
| `Wipro/` | [`DevOps_Engineer_2.md`](https://github.com/litu54/DevOps-Interview-Guide/blob/main/DevOps_Engineer_2.md) | Second DevOps Engineer interview experience at Wipro |
| `Akamai/` | [`SRE.md`](https://github.com/litu54/DevOps-Interview-Guide/blob/main/SRE.md) | Single Site Reliability Engineer interview (no numeric suffix required) |
| `Oracle/` | [`DevOps_Engineer_2.md`](https://github.com/litu54/DevOps-Interview-Guide/blob/main/DevOps_Engineer_2.md) | Second DevOps Engineer interview experience at Oracle |
| `Others/` | [`DevOps_Engineer_1.md`](https://github.com/litu54/DevOps-Interview-Guide/blob/main/DevOps_Engineer_1.md) | Anonymous DevOps Engineer interview using the same naming standard |

## Programmatic File Creation

To maintain consistency when adding new interviews, the repository implements logic that automatically detects existing files and appends the appropriate numeric suffix. Below is a Python implementation that mirrors the repository's naming conventions:

```python
import os
import pathlib

def create_interview_file(company: str, role: str, content: str):
    """
    Add a new interview-experience markdown file following the repo's naming convention.
    - `company` – folder name (e.g., "Wipro" or "Others")
    - `role`    – role name with spaces replaced by underscores (e.g., "DevOps Engineer")
    - `content` – markdown body of the interview experience
    """
    base_dir = pathlib.Path(".")

    # Ensure the company folder exists

    company_path = base_dir / company
    company_path.mkdir(parents=True, exist_ok=True)

    # Normalise role name

    normalized_role = role.replace(" ", "_")

    # Determine next available suffix

    existing = list(company_path.glob(f"{normalized_role}*.md"))
    suffix = ""
    if existing:
        # Extract numeric parts, find max, then +1

        nums = [int(p.stem.split('_')[-1]) for p in existing
                if p.stem.split('_')[-1].isdigit()]
        next_num = max(nums, default=1) + 1
        suffix = f"_{next_num}"
    else:
        # First file – no suffix

        suffix = ""

    file_name = f"{normalized_role}{suffix}.md"
    target_path = company_path / file_name
    target_path.write_text(content, encoding="utf-8")
    print(f"Created: {target_path}")

# Example usage

create_interview_file(
    company="AcmeCorp",
    role="DevOps Engineer",
    content="# AcmeCorp\n\n- Sample interview question..."

)

```

This script handles the **underscore normalization**, **numeric incrementation**, and **directory creation** required by the `litu54/DevOps-Interview-Guide` repository structure.

## Summary

- **Interview experience files** use the `.md` extension and follow the pattern `<Role>.md` or `<Role>_<N>.md` depending on submission sequence.
- **Space characters** in role titles must be replaced with underscores (`_`) to ensure valid file names.
- **Company-specific folders** (e.g., `Wipro/`, `Oracle/`) organize content by employer, while `Others/` stores anonymous submissions.
- **Numeric suffixes** start at `1` for the initial submission and increment for subsequent experiences of the same role at the same company.
- The naming convention is documented in [`README.md`](https://github.com/litu54/DevOps-Interview-Guide/blob/main/README.md) (lines 13–21) and enforced through the repository's contribution guidelines.

## Frequently Asked Questions

### What file extension is used for interview experience files?

All interview experiences in the repository are stored as **Markdown files** with the `.md` extension. This format ensures compatibility with GitHub's rendering engine and maintains consistency across the `litu54/DevOps-Interview-Guide` collection.

### How does the repository handle multiple interviews for the same role?

The convention appends a **numeric suffix** preceded by an underscore to distinguish subsequent submissions. The first interview for a role uses `<Role>.md`, while the second uses `<Role>_2.md`, the third `<Role>_3.md`, and so on, as implemented in the `create_interview_file` function logic.

### Where should contributors place anonymous interview experiences?

Anonymous submissions where the company name is withheld or unknown must be placed in the **`Others/`** folder at the repository root. These files follow identical naming conventions to company-specific entries (e.g., [`Others/DevOps_Engineer_1.md`](https://github.com/litu54/DevOps-Interview-Guide/blob/main/Others/DevOps_Engineer_1.md)).

### Are spaces allowed in role names within file names?

No. The repository strictly requires **underscore substitution** for all spaces in role titles. For example, "DevOps Engineer" becomes [`DevOps_Engineer.md`](https://github.com/litu54/DevOps-Interview-Guide/blob/main/DevOps_Engineer.md) and "Release Engineer" becomes [`Release_Engineer.md`](https://github.com/litu54/DevOps-Interview-Guide/blob/main/Release_Engineer.md) to ensure cross-platform file system compatibility.