dwf.dev Documentation

website·Indexed 31 days ago

https://dwf.dev

A collection of learning resources and technical guides focusing on data structures and algorithms (DSA), technical interview preparation, and software development. It includes a Tech Interview Handbook, algorithm grading rubrics, binary search templates, Big-O analysis, and guides on SQL window functions, common table expressions (CTEs), and GitHub SSH management.

Tokens
78.1K
Snippets
246
Records
493
Agent score
60%

What's inside dwf.dev

  1. Overview of Giscus for Docusaurus

    Giscus is a comments system powered by GitHub Discussions that allows visitors to leave comments and reactions on a website without requiring a dedicated database. It works by using the GitHub Discussions search API to map a page (e.g., via pathname) to a specific discussion. If no discussion exists, the giscus bot creates one when the first comment or reaction is posted. Users must authorize the giscus app on GitHub to post.
  2. Overview of Approximation Algorithms for NP-Complete problems

    For optimization versions of NP-Complete problems where finding an exact solution in polynomial time is computationally infeasible, approximation algorithms are used. These are polynomial-time algorithms that do not guarantee a perfect solution but provide a guarantee that the resulting solution's performance (or distance from the optimum) is within a specific bound.
  3. Overview of the Union-Find (Disjoint Set) data structure

    The Union-Find data structure, also known as a Disjoint Set, is used to track disjoint sets of objects. It provides three primary operations: MakeSet(x) to create a new set containing only element x, Find(x) to return a unique identifier for the set containing x, and Union(x, y) to combine the sets containing x and y into a single set. Union returns true if the elements were in different sets and false if they were already in the same set.
  4. Overview of the software engineering interview preparation process

    Preparing for a software engineering interview at top tech companies (e.g., FAANG/MANGA) involves a multi-step process focusing on both technical and non-technical skills. The recommended sequence for preparation is:

    1. Maximize shortlisting chances by optimizing the resume.
    2. Identify the specific interview format used by the company.
    3. Select a primary programming language for coding rounds.
    4. Practice coding interview problems.
    5. Prepare for system design interviews (primarily for mid-to-senior levels).
    6. Prepare for behavioral interviews.
    7. Negotiate the final offer package.
  5. Overview of common SQL window functions

    Window functions allow for analysis of a result set (such as rankings, subtotals, or period-over-period differences) after joining, filtering, grouping, and sorting have been completed. The following functions are commonly used across MySQL 8.0+, PostgreSQL, and SQL Server:
  6. Understand weighted graph applications

    Weighted graphs associate a value (weight) with each edge to model real-world constraints. The meaning of the weight depends on the problem being solved:

    • Flow Problems: Weights represent capacity (e.g., data throughput of submarine cables) to maximize flow or ensure connectivity.
    • Path Minimization: Weights represent cost or duration (e.g., flight prices or travel time) to find the shortest or cheapest path.
    • Clustering Problems: Weights represent relationships or preferences (e.g., guest compatibility in a seating chart) to partition vertices and optimize a specific function.
  7. Best practices during a coding interview

    To signal high competence and communication skills during the interview:

    • Self Introduction: Keep it concise (under 1-2 minutes) and maintain an enthusiastic, engaging tone. Avoid spending too much time here to maximize coding time.
    • Problem Clarification: Do not start coding immediately. Coding questions are often intentionally vague to test attention to detail. Ask at least 2-3 clarifying questions before implementing a solution.
  8. Understand Binary Tree Traversal (DFS)

    Tree traversal (or walking the tree) is the process of visiting every node in a tree data structure exactly once. In binary trees, Depth First Search (DFS) is categorized by the order in which the root node is visited relative to its subtrees: Pre-order, Post-order, and In-order. Traversals can be performed Left-to-Right (L->R) or Right-to-Left (R->L).
  9. Post-interview professional etiquette

    To leave a positive lasting impression after the technical evaluation:

    • Closing: Ask tailored questions about the company and thank the interviewer.
    • Documentation: Record the interview questions and your answers for future reference.
    • Follow-up: Send a thank-you email or LinkedIn invitation to the interviewer(s) shortly after the session.
  10. Prepare for the non-coding portions of a technical interview

    Beyond algorithmic practice, candidates should allocate time for self-introductions, final questions for the interviewer, and mock interviews. It is recommended to spend approximately 3 hours crafting a self-introduction and preparing a list of final questions. Mock coding interviews should be scheduled once you are roughly 60% through your study plan; platforms like interviewing.io are recommended for this purpose.
  11. Understand Topological Sorting in Directed Acyclic Graphs (DAGs)

    Topological sorting (or linear extension) is the process of arranging vertices of a directed graph in a linear order such that for every directed edge (u, v), vertex u comes before v in the ordering. This is only possible if the graph is a Directed Acyclic Graph (DAG). If the graph contains a cycle, no topological ordering exists because at least one edge would necessarily point 'backward' in any linear arrangement. Topological orderings are not necessarily unique; vertices with no dependencies or shared dependencies can appear in multiple valid positions.