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.
Table of Contents
- Fix HTTPS Certificate Error (medium)
- Docker Storage Driver Performance (medium)
- Rebase Feature Branch (easy)
- Word Search (medium)
- Clone Graph (medium)
- Fix Broken TLS Certificate Chain (easy) π
- Sort Avro Employee Records by Salary (easy)
- Department Budget Variance (hard)
- Amusement Park Rating Anomalies (medium)
- Daily PE Portfolio Value (medium)
- Longest Substring Without Repeating Characters (medium)
- Fetch Paginated API Data and Store in SQLite Database (medium)
- Mouse Hover Interaction and Hidden Element Detection (medium) π
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
Ready to Practice More?
Explore interview questions from other companies or try our hands-on labs to build practical experience.