Describe Linux and SQL experience
Company: Amazon
Role: Software Engineer
Category: Software Engineering Fundamentals
Difficulty: medium
Interview Round: Technical Screen
You are being assessed on basic tooling skills as an engineer.
Answer:
1. Linux/Unix commands: list commands you are comfortable with and briefly explain how you use them in day-to-day work.
2. SQL skills: describe the types of SQL queries you can write and how you translate an informal business or analytics question into a concrete query.
### Constraints & Assumptions
- Focus on tools you can actually explain and use.
- Group Linux commands by purpose rather than listing random commands.
- For SQL, discuss query structure, joins, aggregations, subqueries/CTEs, window functions, and validation.
- Mention production or debugging workflows when relevant.
### Clarifying Questions to Ask
- Are you looking for basic command familiarity or debugging examples?
- Which SQL dialect is most relevant: PostgreSQL, MySQL, BigQuery, SQL Server, or another?
- Should I focus on analytics SQL, transactional queries, or performance tuning?
### What a Strong Answer Covers
- File, directory, search, process, networking, permission, compression, and development commands.
- Concrete examples such as reading logs, filtering request IDs, copying files, checking disk usage, or monitoring processes.
- SQL filters, joins, aggregations, CTEs, subqueries, windows, date handling, and query validation.
- A systematic approach from business question to tables, grain, joins, filters, and checks.
### Follow-up Questions
- How would you debug a service using logs from the shell?
- What is the difference between `WHERE` and `HAVING`?
- How do joins affect row counts?
- How would you find the latest record per user in SQL?
Quick Answer: Prepare an engineering interview answer on Linux commands and SQL experience. Covers shell workflows, log debugging, file and process commands, SQL joins, aggregations, CTEs, window functions, and translating business questions into queries.