Explain AWS access control and frontend typing
Company: Boeing
Role: Software Engineer
Category: Software Engineering Fundamentals
Difficulty: easy
Interview Round: Technical Screen
You are interviewing for a full-stack role. Answer the following conceptual questions.
## Part A — Cloud / AWS
1. **VPS vs EC2**
- What is a VPS conceptually, and how does an AWS EC2 instance map to (or differ from) a traditional VPS?
- What are common operational concerns (networking, storage, scaling, security) when running services on EC2?
2. **S3 pre-signed URLs**
- What is an S3 pre-signed URL?
- Describe a secure flow for **client-side upload** (browser/mobile directly to S3) using pre-signed URLs.
- What should the backend validate or constrain (object key, content type, size, expiration, bucket policy)?
3. **Permissions / IAM basics**
- Explain IAM **users**, **groups**, **roles**, and **policies**.
- What is the difference between **identity-based** and **resource-based** policies?
- Give an example of granting the minimum permissions needed to upload an object to a specific S3 prefix.
## Part B — React fundamentals
1. Explain what React **hooks** are and why they exist.
2. Walk through the purpose and typical use cases of common hooks, e.g.:
- `useState`, `useEffect`, `useMemo`, `useCallback`, `useRef`
3. What are common pitfalls with `useEffect` dependencies and stale closures, and how do you avoid them?
## Part C — TypeScript fundamentals
1. Explain **structural typing** vs **nominal typing**.
2. Provide a small example showing how TypeScript’s type compatibility works under structural typing.
3. If you wanted nominal-like behavior in TypeScript, what are common patterns to achieve it?
Quick Answer: This question evaluates cloud infrastructure and access control (EC2, S3 pre-signed URLs, IAM), frontend React fundamentals (hooks and common pitfalls), and TypeScript typing concepts (structural vs nominal), focusing on security, scalability, and type-safety competencies.