Katkat

Compare Core Networking and Language Runtime Concepts

MathWorksSoftware Engineer · Onsite

Last updated

Compare pointer ownership and storage duration, HTTP with HTTPS, and TCP with UDP using concrete technical examples. Strong responses separate guarantees from common implementations, connect concepts to production failures, and avoid simplistic claims about memory or network speed.

Explain the following core software-engineering concepts as if answering a technical screen. Use concrete examples, distinguish guarantees from common implementations, and call out mistakes that lead to production defects.

Clarifying Questions to Ask

  • Does “static versus dynamic pointers” refer to storage duration and allocation, or to static versus dynamic dispatch?
  • Should networking comparisons focus on application behavior, protocol mechanics, or operational trade-offs?
  • Is the expected depth language-specific?

Part 1 - Static and Dynamic Storage with Pointers

Compare objects with static storage duration to dynamically allocated objects. Explain lifetime, ownership, where pointers may refer, common dangling-pointer and leak scenarios, and how RAII or garbage collection changes the risks.

What This Part Should Cover

  • Separates storage duration from the pointer variable itself.
  • Explains ownership and lifetime with at least one concrete failure mode.
  • Avoids claiming that all static objects are on a stack or all dynamic objects require manual freeing.

Part 2 - HTTP and HTTPS

Explain what HTTPS adds to HTTP, including authentication, confidentiality, integrity, certificate validation, and the relationship between an HTTP request and the underlying secure transport. Discuss what HTTPS does not protect.

What This Part Should Cover

  • Describes TLS without treating HTTPS as a different application protocol.
  • Explains server identity validation and optional client authentication.
  • Identifies endpoint, logging, metadata, and application-level risks that encryption does not remove.

Part 3 - TCP and UDP

Compare TCP and UDP in connection setup, ordering, reliability, congestion behavior, message boundaries, and typical use cases. Explain why “UDP is faster” is an incomplete answer.

What This Part Should Cover

  • Distinguishes a reliable byte stream from independent datagrams.
  • Discusses latency and loss trade-offs rather than making an absolute speed claim.
  • Notes that an application can build reliability or congestion control above UDP.

Follow-up questions

  • How can a pointer remain non-null yet still be invalid?
  • What happens during a typical TLS certificate-validation failure?
  • Why might a modern transport choose UDP as a substrate while still providing reliable streams?