개발자 면접 질문들

컴공 기초

  1. Concurrency: Threads Deadlocks, Starvation, Parallelization, Consistency & Coherence
  2. Networking: Inter-process communication, TCP/IP, DNS, Router, Load Balancer, Firewall
  3. Abstraction: OS, File system, DB, Cache
  4. Real-world performance: RAM, Disk, SSD
  5. Estimation: back-of-the-envelop calculation, Prototypes of Micro-benchmarks
  6. Distributed system: Availability, Reliability

대규모 시스템 디자인

  1. Clarifty constrains: Scope, Scales(request throughput, data read/write per second)
  2. High-level architecture: Component & Connections
    1. Front-end, Back-end, DB, Cache
  3. Component design: API, DB Schema, Class definition
  4. Design: Policies, Processes, Procedures, Methods, Tests, Components
  5. Topics: Feature sets, Interfaces, Class hierarchies
  6. Distributed systems under constraints: Simplicity, Limitations, Robustress, Trade-offs
  7. Graph: Graph traversal, Graph Runtime complexity, Distributed Hash table
  8. Resource estimation, Big Product design picture, Translation of abstract problems to a system
  9. API discusstions
  10. Binary tree, Cache, MapReduce
  11. Loop problems
  12. Index, Reverse Linked-list
  13. Compilers
  14. Memory Cache

운영체제

  1. Process / Thread : Resources
  2. Concurrency issues
  3. Locks: Mutex,Semaphore, Monitor
  4. Deadlock vs Livelock, how to avoid
  5. Context switching by OS or HW
  6. Scheduling
  7. Multi-core: “Modern” concurrency constraints

알고리듬

  1. Sort: Insertion, Radix, Quick, Merge, Heap
  2. Search: Binary, Quick
  3. Data structure: Array, Linked List, Stack, Queue, Set, Map, Tree, Binary Tree, Heap, Graph
  4. Math: Count, Probability, nCk
  5. Graph: Pointer, Matrix, Adjacency List
  6. Graph Traversal: BFS, DFS
  7. Recursion

실무 경험

  1. Monad Pattern
  2. git merge –> conflict
  3. Microservices: MSSQL to MySQL
  4. Vimeo CDS js file was hanging – CDN to local or <script async or defer>
  5. Dev process faster: Daily scrum
  6. Legacy codes managing
  7. Week point – cannot do things alone. needs someone to work with
  8. Redis global lock – restart – timeout – exxception json
  9. When requirements changed – Simplify then phase
  10. SSL management
  11. Customer obsession – but if customers are many? like vendors vs. buyers to reconcile
  12. PDF generation was slow – VARCHAR index was not working – changed to NVARCHAR – benchmark O(n) to O(logn)
  13. Horizontal team culture – all teams have the same power – daily scrum routine – but communcation cost higher – restrospective meeting after that
  14. Project Management – Breakdown tasks – Phase – Daily/Weekly check – Using Groupware(Asana) – Remote work between NJ and CA
  15. Refund logic – Clarify logic and sample numbers first using Excel and whiteboard
  16. Client-side / Server-side rendering for SEO
  17. Interface for all Classes?
  18. How to do Documantation
  19. Bug issuese – cannot resolve all – Prioritize, Merge, Leave as know issues
  20. Ad bidding policy – Work with Legal team, Biz team
  21. UX drag & drop feature – button position, trigger search event – develop with design team
  22. Benchmark performance & documentation for later use
  23. Explain current situation – Workaround, Mitigation – Permanent solution
  24. New coupon feature in 2 months – Drop requirements on customer side
  25. update npm – dependency issue – mobile app not working – roll back – keep legacy!
  26. Stripe pay API – Verify before sending – early warning
  27. git branch strategy – Git flow vs. Github flow – pull request, Code Review
  28. Performance improvement – all requests under 3 seconds to 1 second

Loading

Published
Categorized as xacdo

By xacdo

Kyungwoo Hyun

Leave a comment

Your email address will not be published. Required fields are marked *