Github Interview Questions (13+ Questions)

Last Updated: June 8, 2026 β€’ 13 Questions β€’ Real Company Interviews

Prepare for your Github interview with our comprehensive collection of 13+ real interview questions and detailed answers. These questions have been curated from actual Github technical interviews across various roles including DevOps Engineer, Data Engineer, QA Engineer, and more.

13
Interview Questions
1
Categories
3
Difficulty Levels

Table of Contents

Our Github interview questions cover a wide range of technical topics and difficulty levels, from entry-level positions to senior roles. Each question includes detailed explanations and answers to help you understand the concepts and prepare effectively for your interview.

πŸ’‘ Pro Tips for Github Interviews

  • Practice each question and understand the underlying concepts
  • Review Github's specific technologies and methodologies
  • Prepare follow-up questions and edge cases
  • Practice explaining your solutions clearly and concisely

Interview Questions & Answers

1. Fix HTTPS Certificate Error

Company: GitHub Difficulty: medium Categories: Devops

Fix HTTPS certificate mismatches and TLS handshake failures in Linux by generating self-signed certificates matching service IPs. Learn how to diagnose certificate validation errors, generate certificates with correct Common Name (CN) and Subject Alternative Names (SAN), update server scripts to use valid certificates, and test HTTPS connectivity. This guide covers using OpenSSL to create IP-based certificates, troubleshooting TLS failures, and verifying secure connections with curl. Essential for microservices development, internal service communication, and resolving certificate mismatch issues in production environments

2. Docker Storage Driver Performance

Company: GitHub Difficulty: medium Categories: Devops

Optimize Docker container filesystem performance by configuring fuse-overlayfs storage driver. Configure daemon.json, restart Docker daemon, and verify performance improvements for write-intensive operations. Essential for rootless Docker deployments, containerized databases, high-throughput applications, and environments with specific kernel limitations where overlay2 underperforms.

3. Rebase Feature Branch

Company: GitHub Difficulty: easy Categories: Devops, Data analysis, Data engineering, Quality assurance

Synchronize diverged branches by rebasing feature branches onto updated main with conflict resolution. Handle simultaneous file modifications, resolve conflicts interactively, continue rebases after fixes, and maintain clean commit history. Essential for keeping feature branches current, preventing merge commit clutter, integrating latest main changes, and preparing pull requests with clean histories and up-to-date bases.

4. Word Search

Company: GitHub Difficulty: medium Categories: Devops, Data engineering

def exist(board: list[list[str]], word: str) -> bool:
ROWS, COLS = len(board), len(board[0])

def dfs(r, c, i):
    if i == len(word):
        return True
        
    if (r < 0 or c < 0 or r >= ROWS or c >= COLS or 
        board[r][c] != word[i]):
        return False
        
    temp = board[r][c]
    board[r][c] = "#"
    
    found = (dfs(r + 1, c, i + 1) or
             dfs(r - 1, c, i + 1) or
             dfs(r, c + 1, i + 1) or
             dfs(r, c - 1, i + 1))
             
    board[r][c] = temp
    
    return found
    
for r in range(ROWS):
    for c in range(COLS):
        if dfs(r, c, 0):
            return True
            
return False

5. Clone Graph

Company: GitHub Difficulty: medium Categories: Devops, Data engineering

class GraphNode:

def init(self, val = 0, neighbors = None):

self.val = val

self.neighbors = neighbors if neighbors is not None else []

def clone_graph(node: 'GraphNode') -> 'GraphNode':
old_to_new = {}

def dfs(node):
    if not node:
        return None
    if node in old_to_new:
        return old_to_new[node]
        
    copy = GraphNode(node.val)
    old_to_new[node] = copy
    
    for nei in node.neighbors:
        copy.neighbors.append(dfs(nei))
        
    return copy
    
return dfs(node)

6. Fix Broken TLS Certificate Chain

Company: GitHub Difficulty: easy πŸ”’ Premium Categories: Devops

Diagnose and fix a broken TLS certificate chain by identifying the missing intermediate CA and rebuilding the chain bundle so the server certificate validates successfully.

7. Sort Avro Employee Records by Salary

Company: GitHub Difficulty: easy Categories: Data analysis, Data engineering

Read employee data from an Avro file, sort all records by salary in descending order, and save the sorted results as JSON using Python's fastavro library.

8. Department Budget Variance

Company: GitHub Difficulty: hard Categories: Data analysis, Data engineering

WITH combined AS (
SELECT
b.department,
b.amount_budgeted,
s.amount_spent
FROM {{ ref("budgets") }} b
INNER JOIN {{ ref("spending") }} s
ON b.department = s.department
AND b.fiscal_year = s.fiscal_year
),
aggregated AS (
SELECT
department,
CAST(VARIANCE(amount_budgeted) AS INTEGER) AS budget_variance,
CAST(VARIANCE(amount_spent) AS INTEGER) AS spending_variance
FROM combined
GROUP BY department
)
SELECT * FROM aggregated
ORDER BY department

9. Amusement Park Rating Anomalies

Company: GitHub Difficulty: medium Categories: Data analysis, Data engineering

Practice detecting statistical anomalies in Snowflake SQL with this amusement park interview question. You join ride and visitor tables, compute average ratings per ride, then use window functions to calculate the global mean and standard deviation for anomaly detection. Covers AVG, STDDEV, window functions, and CASE WHEN logic in Snowflake. A medium difficulty question commonly seen in data analytics interviews at companies like GitHub.

10. Daily PE Portfolio Value

Company: GitHub Difficulty: medium Categories: Data analysis, Data engineering

WITH daily_values AS (
SELECT
p.PE_firm,
pr.date,
CAST(SUM(p.shares * pr.closing_price) AS INTEGER) AS portfolio_value
FROM {{ ref("portfolio") }} AS p
INNER JOIN {{ ref("prices") }} AS pr
ON p.company = pr.company
GROUP BY p.PE_firm, pr.date
)
SELECT * FROM daily_values

11. Longest Substring Without Repeating Characters

Company: GitHub Difficulty: medium Categories: Data engineering

def length_of_longest_substring(s: str) -> int:
char_set = set()
l = 0
res = 0

for r in range(len(s)):
    while s[r] in char_set:
        char_set.remove(s[l])
        l += 1
        
    char_set.add(s[r])
    res = max(res, r - l + 1)
    
return res

12. Fetch Paginated API Data and Store in SQLite Database

Company: GitHub Difficulty: medium Categories: Data engineering, Quality assurance

Fetch paginated JSON data from a REST API, flatten nested product information, create a SQLite database table, and insert all records using Python.

13. Mouse Hover Interaction and Hidden Element Detection

Company: GitHub Difficulty: medium πŸ”’ Premium Categories: Quality assurance

Master mouse hover actions with Selenium ActionChains. Learn to reveal hidden elements, validate visibility changes, and test interactive UI components....


πŸ”’ Premium Content

Detailed explanation and solution available for premium members.

Upgrade to Premium β†’


Ready to Practice More?

Explore interview questions from other companies or try our hands-on labs to build practical experience.