From 2eaec046173493e79b79189aa50e97535199b0cc Mon Sep 17 00:00:00 2001
From: breeworks <146777330+breeworks@users.noreply.github.com>
Date: Wed, 26 Mar 2025 07:22:05 +0530
Subject: [PATCH 01/15] fix: created a margin between buttons (#693)

---
 apps/website/src/pages/index.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/apps/website/src/pages/index.js b/apps/website/src/pages/index.js
index 2cbf97c773..0fc201966e 100755
--- a/apps/website/src/pages/index.js
+++ b/apps/website/src/pages/index.js
@@ -801,7 +801,7 @@ function SponsorshipSection() {
             </div>
             <div className="margin-top--lg text--center">
               <a
-                className="button button--primary button--lg margin-right--md"
+                className="button button--primary button--lg margin-right--md margin-bottom--sm"
                 href="mailto:contact@techinterviewhandbook.org"
                 rel="noopener"
                 target="_blank">

From f02a5fac49d4257c7946f21062a4ea5fadc46eff Mon Sep 17 00:00:00 2001
From: Saurav Kumar <saurav.kumar@razorpay.com>
Date: Mon, 28 Apr 2025 06:03:05 +0530
Subject: [PATCH 02/15] fix: update the broken hyperlink for "Master the
 sliding window technique" on arrays (#697)

---
 apps/website/contents/algorithms/array.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/apps/website/contents/algorithms/array.md b/apps/website/contents/algorithms/array.md
index c65ad37406..e63e367382 100644
--- a/apps/website/contents/algorithms/array.md
+++ b/apps/website/contents/algorithms/array.md
@@ -82,7 +82,7 @@ Note that because both arrays and strings are sequences (a string is an array of
 
 ### Sliding window
 
-Master the [sliding window technique](https://discuss.leetcode.com/topic/30941/here-is-a-10-line-template-that-can-solve-most-substring-problems) that applies to many subarray/substring problems. In a sliding window, the two pointers usually move in the same direction will never overtake each other. This ensures that each value is only visited at most twice and the time complexity is still O(n). Examples: [Longest Substring Without Repeating Characters](https://leetcode.com/problems/longest-substring-without-repeating-characters/), [Minimum Size Subarray Sum](https://leetcode.com/problems/minimum-size-subarray-sum/), [Minimum Window Substring](https://leetcode.com/problems/minimum-window-substring/)
+Master the [sliding window technique](https://leetcode.com/problems/minimum-window-substring/solutions/26808/here-is-a-10-line-template-that-can-solve-most-substring-problems/) that applies to many subarray/substring problems. In a sliding window, the two pointers usually move in the same direction will never overtake each other. This ensures that each value is only visited at most twice and the time complexity is still O(n). Examples: [Longest Substring Without Repeating Characters](https://leetcode.com/problems/longest-substring-without-repeating-characters/), [Minimum Size Subarray Sum](https://leetcode.com/problems/minimum-size-subarray-sum/), [Minimum Window Substring](https://leetcode.com/problems/minimum-window-substring/)
 
 ### Two pointers
 

From 3d61290d736bdd32b9e6ad618fbde6ba5f43b65c Mon Sep 17 00:00:00 2001
From: joe felix <70349599+kn9ck@users.noreply.github.com>
Date: Thu, 5 Jun 2025 20:00:42 -0700
Subject: [PATCH 03/15] [fix] remove extra word 'the', invalid grammar. (#700)

---
 apps/website/contents/behavioral-interview-rubrics.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/apps/website/contents/behavioral-interview-rubrics.md b/apps/website/contents/behavioral-interview-rubrics.md
index d1064b6125..12084fffb9 100644
--- a/apps/website/contents/behavioral-interview-rubrics.md
+++ b/apps/website/contents/behavioral-interview-rubrics.md
@@ -37,7 +37,7 @@ To assess these focus areas, interviewers ask questions on your work history and
 
 ## Example questions and responses
 
-Below are questions and answers illustrating how interviewers collect signals on the candidate for each focus area. In a typical interview, they'll ask the you five or six questions and dive deep into the details of each situation. Each question may provide signals on more than one focus area.
+Below are questions and answers illustrating how interviewers collect signals on the candidate for each focus area. In a typical interview, they'll ask you five or six questions and dive deep into the details of each situation. Each question may provide signals on more than one focus area.
 
 ### Motivation
 

From 9e4909cbf7ecac6bbad0906e4f783a3f812cfa69 Mon Sep 17 00:00:00 2001
From: Atharva <atharvakhadake7@gmail.com>
Date: Fri, 6 Jun 2025 08:31:48 +0530
Subject: [PATCH 04/15] contents/algorithms: fix incorrect time complexity for
 anagrams (#692)

Co-authored-by: Atharva <atharvakhadake759@gmail.com>
---
 apps/website/contents/algorithms/string.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/apps/website/contents/algorithms/string.md b/apps/website/contents/algorithms/string.md
index 74472413de..c7c183f498 100644
--- a/apps/website/contents/algorithms/string.md
+++ b/apps/website/contents/algorithms/string.md
@@ -95,7 +95,7 @@ An anagram is word switch or word play. It is the result of rearranging the lett
 
 To determine if two strings are anagrams, there are a few approaches:
 
-- Sorting both strings should produce the same resulting string. This takes O(n.log(n)) time and O(log(n)) space.
+- Sorting both strings should produce the same resulting string. This takes O(n.log(n)) time and O(n) space.
 - If we map each character to a prime number and we multiply each mapped number together, anagrams should have the same multiple (prime factor decomposition). This takes O(n) time and O(1) space. Examples: [Group Anagram](https://leetcode.com/problems/group-anagrams/)
 - Frequency counting of characters will help to determine if two strings are anagrams. This also takes O(n) time and O(1) space.
 

From f11ef4168633276479a57b2558337c022e3189d5 Mon Sep 17 00:00:00 2001
From: Zhou Yuhang <54398705+xquisite0@users.noreply.github.com>
Date: Wed, 9 Jul 2025 08:56:24 +0800
Subject: [PATCH 05/15] seo: fix canonical points to redirect issue (#703)

---
 .../2019-11-03-are-front-end-development-enough-for-a-career.md | 2 +-
 ...12-importance-of-communicating-effectively-as-an-engineer.md | 2 +-
 .../blog/2021-08-19-facebook-career-questions-and-answers.md    | 2 +-
 apps/website/blog/2021-08-28-front-end-career-questions.md      | 2 +-
 .../blog/2021-08-30-a-glimpse-into-front-end-interviews.md      | 2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/apps/website/blog/2019-11-03-are-front-end-development-enough-for-a-career.md b/apps/website/blog/2019-11-03-are-front-end-development-enough-for-a-career.md
index e6136139eb..4516b87fb7 100644
--- a/apps/website/blog/2019-11-03-are-front-end-development-enough-for-a-career.md
+++ b/apps/website/blog/2019-11-03-are-front-end-development-enough-for-a-career.md
@@ -15,7 +15,7 @@ Recently, an undergrad freshmen I met at an event asked me a question regarding
 <!--truncate-->
 
 <head>
-  <link rel="canonical" href="https://yangshuntay.com/blog/are-front-end-development-skills-enough-for-a-career/" />
+  <link rel="canonical" href="https://www.yangshuntay.com/blog/are-front-end-development-skills-enough-for-a-career" />
 </head>
 
 > I'm honestly quite into front end development — web technologies, UI/UX, web design and stuff. But with there being more and more accessible to new developers (create-react-app, parcel and such), I just can't help but wonder if these skills are sufficient to survive in the tech industry today. Not that it's a bad thing! Lowering the barrier to entry for programmers is always good. However, for those like myself who would like to pursue front end development as a career, I'm just wondering if having these skills are enough.
diff --git a/apps/website/blog/2021-04-12-importance-of-communicating-effectively-as-an-engineer.md b/apps/website/blog/2021-04-12-importance-of-communicating-effectively-as-an-engineer.md
index 4a6e8be13e..66639d66c2 100644
--- a/apps/website/blog/2021-04-12-importance-of-communicating-effectively-as-an-engineer.md
+++ b/apps/website/blog/2021-04-12-importance-of-communicating-effectively-as-an-engineer.md
@@ -18,7 +18,7 @@ At Facebook where I work at, strong communication is crucial for a successful ca
 <!--truncate-->
 
 <head>
-  <link rel="canonical" href="https://yangshuntay.com/blog/importance-of-communicating-effectively-as-engineers/" />
+  <link rel="canonical" href="https://www.yangshuntay.com/blog/importance-of-communicating-effectively-as-engineers" />
 </head>
 
 I love to code. Personally, I would love to shut off all communication channels and focus entirely on coding if I could. However, doing that will probably have disastrous effects. Communication is super important and I learnt that the hard way when I first started at Facebook. In my first year at Facebook, I made a few painful mistakes related to communication. I changed the project plans and timeline without informing my tech lead, resulting in my teammate having to cover me at the last minute and do the work I reprioritized without telling anyone. In another instance, I didn't communicate that I was going to do some work that my teammate had planned to do, resulting in wasted efforts. From then on, I made a mental note to myself to communicate broadly and early wherever possible and seek alignment. I'd err on the side of over-communicating rather than under-communicating (though sometimes I still forget).
diff --git a/apps/website/blog/2021-08-19-facebook-career-questions-and-answers.md b/apps/website/blog/2021-08-19-facebook-career-questions-and-answers.md
index c1b34c64b3..8d8004ae9b 100644
--- a/apps/website/blog/2021-08-19-facebook-career-questions-and-answers.md
+++ b/apps/website/blog/2021-08-19-facebook-career-questions-and-answers.md
@@ -14,7 +14,7 @@ A number of students from the Project Intern group have been asking me questions
 <!--truncate-->
 
 <head>
-  <link rel="canonical" href="https://yangshuntay.com/blog/facebook-career-questions-and-answers/" />
+  <link rel="canonical" href="https://www.yangshuntay.com/blog/facebook-career-questions-and-answers" />
 </head>
 
 **_I am not a recruiter and I might have answered some of the recruiting or internship-related questions wrongly, so take them with a grain of salt. Opinions expressed are my own and do not represent the views of my employer._**
diff --git a/apps/website/blog/2021-08-28-front-end-career-questions.md b/apps/website/blog/2021-08-28-front-end-career-questions.md
index 2b8dcb64b9..be8273c604 100644
--- a/apps/website/blog/2021-08-28-front-end-career-questions.md
+++ b/apps/website/blog/2021-08-28-front-end-career-questions.md
@@ -14,7 +14,7 @@ Recently a junior front end engineer at a startup in Singapore reached out to me
 <!--truncate-->
 
 <head>
-  <link rel="canonical" href="https://yangshuntay.com/blog/front-end-career-questions/" />
+  <link rel="canonical" href="https://www.yangshuntay.com/blog/front-end-career-questions" />
 </head>
 
 ### My manager told me that currently it's a bit hard to define requirements & expectations for higher tier / higher Individual Contributor (IC) level for Front End engineers in the organization. Since you are working at Facebook, I am wondering what are some requirements & expectations for higher IC level there for Front End engineers (maybe around IC4, IC5 and above if that's kinda the level you use there)?
diff --git a/apps/website/blog/2021-08-30-a-glimpse-into-front-end-interviews.md b/apps/website/blog/2021-08-30-a-glimpse-into-front-end-interviews.md
index 268c7100d2..32bad57fd8 100644
--- a/apps/website/blog/2021-08-30-a-glimpse-into-front-end-interviews.md
+++ b/apps/website/blog/2021-08-30-a-glimpse-into-front-end-interviews.md
@@ -14,7 +14,7 @@ A glimpse into the front end interview process and questions that frequently com
 <!--truncate-->
 
 <head>
-  <link rel="canonical" href="https://lik.ai/blog/a-glimpse-into-front-end-interviews" />
+  <link rel="canonical" href="https://lik.ai/blog/a-glimpse-into-front-end-interviews/" />
 </head>
 
 ## Interview Process

From 8b63483aa2dcada4f31f94ad289ab97e253dd80b Mon Sep 17 00:00:00 2001
From: Zhou Yuhang <54398705+xquisite0@users.noreply.github.com>
Date: Wed, 9 Jul 2025 08:56:45 +0800
Subject: [PATCH 06/15] seo: fix canonical points to 4xx issue (#704)

---
 ...21-12-23-front-end-vs-back-end-system-design-interviews.md | 4 ----
 ...2022-04-20-take-control-over-your-coding-interview copy.md | 4 ----
 2 files changed, 8 deletions(-)

diff --git a/apps/website/blog/2021-12-23-front-end-vs-back-end-system-design-interviews.md b/apps/website/blog/2021-12-23-front-end-vs-back-end-system-design-interviews.md
index aef0d3503b..a69e6202d9 100644
--- a/apps/website/blog/2021-12-23-front-end-vs-back-end-system-design-interviews.md
+++ b/apps/website/blog/2021-12-23-front-end-vs-back-end-system-design-interviews.md
@@ -13,10 +13,6 @@ Walkthrough of similarities and differences between front end vs. back end syste
 
 <!-- truncate -->
 
-<head>
-  <link rel="canonical" href="https://www.zhenghao.io/posts/system-design-interviews" />
-</head>
-
 ## Context
 
 As I mentioned in my post on [coding interviews frameworks](https://www.zhenghao.io/posts/framework-for-coding-interview), I have been interviewing a lot for the past year - not conducting interviews, I was the candidate being interviewed. Most of the interview processes I had with big tech companies consisted of 1-2 system design rounds depending on the level of the role. Unlike traditional back end-focused system design questions, for which you can find lots of prep resources online such as the famous Grokking System Design Interview or System Design Primer, I didn't know what to expect for a front end-focused system design interview as there are very few resources out there talking about this type of interviews.
diff --git a/apps/website/blog/2022-04-20-take-control-over-your-coding-interview copy.md b/apps/website/blog/2022-04-20-take-control-over-your-coding-interview copy.md
index 68e715b7f4..06b9a94e2f 100644
--- a/apps/website/blog/2022-04-20-take-control-over-your-coding-interview copy.md	
+++ b/apps/website/blog/2022-04-20-take-control-over-your-coding-interview copy.md	
@@ -22,10 +22,6 @@ purchase quantity                                  price per unit
 
 <!--truncate-->
 
-<head>
-  <link rel="canonical" href="https://www.zhenghao.io/posts/take-control-coding-interview" />
-</head>
-
 The task the interviewer asks you to do is to write out a function that takes the amount of the times being purchased as the input and output the price per unit according the table. So if the input is 5, the function returns 5, and if the input is 6, the function returns 4... you get the idea.
 
 That's it. That is the whole question. "This is even simpler than [Fizz Buzz](https://leetcode.com/problems/fizz-buzz/)," you think to yourself, "but it might lead to more difficult follow-up questions, like it might get tweaked into a binary search problem or something". So you start to write the following simple solution, expecting more in-depth follow-up questions to come.

From fa94b9dba053b2c0a80a0417fa6baa69b83e1980 Mon Sep 17 00:00:00 2001
From: Zhou Yuhang <54398705+xquisite0@users.noreply.github.com>
Date: Wed, 9 Jul 2025 08:57:10 +0800
Subject: [PATCH 07/15] seo: fix title tag missing (#705)

---
 apps/portal/src/pages/resumes/about.tsx | 181 ++++++++++++------------
 1 file changed, 94 insertions(+), 87 deletions(-)

diff --git a/apps/portal/src/pages/resumes/about.tsx b/apps/portal/src/pages/resumes/about.tsx
index 8eb6a5f746..09d9f8e97b 100644
--- a/apps/portal/src/pages/resumes/about.tsx
+++ b/apps/portal/src/pages/resumes/about.tsx
@@ -1,3 +1,5 @@
+import Head from 'next/head';
+
 import Container from '~/components/shared/Container';
 
 const people = [
@@ -29,102 +31,107 @@ const people = [
 
 export default function AboutUsPage() {
   return (
-    <div className="lg:py-18 bg-white py-12">
-      <Container variant="xs">
-        <div className="space-y-12">
-          <div className="space-y-6 text-center">
-            <h1 className="text-3xl font-bold tracking-tight sm:text-4xl">
-              Resume Review Portal
-            </h1>
-            <div className="flex justify-center text-2xl font-bold">
-              <div className="font-display sm:text-md mx-auto max-w-xl text-2xl font-medium italic tracking-tight text-slate-500">
-                Resume reviews{' '}
-                <span className="text-primary-500 relative whitespace-nowrap">
-                  <svg
-                    aria-hidden="true"
-                    className="absolute top-2/3 left-0 h-[0.58em] w-full fill-blue-300/70"
-                    preserveAspectRatio="none"
-                    viewBox="0 0 418 42">
-                    <path d="M203.371.916c-26.013-2.078-76.686 1.963-124.73 9.946L67.3 12.749C35.421 18.062 18.2 21.766 6.004 25.934 1.244 27.561.828 27.778.874 28.61c.07 1.214.828 1.121 9.595-1.176 9.072-2.377 17.15-3.92 39.246-7.496C123.565 7.986 157.869 4.492 195.942 5.046c7.461.108 19.25 1.696 19.17 2.582-.107 1.183-7.874 4.31-25.75 10.366-21.992 7.45-35.43 12.534-36.701 13.884-2.173 2.308-.202 4.407 4.442 4.734 2.654.187 3.263.157 15.593-.78 35.401-2.686 57.944-3.488 88.365-3.143 46.327.526 75.721 2.23 130.788 7.584 19.787 1.924 20.814 1.98 24.557 1.332l.066-.011c1.201-.203 1.53-1.825.399-2.335-2.911-1.31-4.893-1.604-22.048-3.261-57.509-5.556-87.871-7.36-132.059-7.842-23.239-.254-33.617-.116-50.627.674-11.629.54-42.371 2.494-46.696 2.967-2.359.259 8.133-3.625 26.504-9.81 23.239-7.825 27.934-10.149 28.304-14.005.417-4.348-3.529-6-16.878-7.066Z" />
-                  </svg>
-                  <span className="relative">made simple</span>
-                </span>
+    <>
+      <Head>
+        <title>About Us</title>
+      </Head>
+      <div className="lg:py-18 bg-white py-12">
+        <Container variant="xs">
+          <div className="space-y-12">
+            <div className="space-y-6 text-center">
+              <h1 className="text-3xl font-bold tracking-tight sm:text-4xl">
+                Resume Review Portal
+              </h1>
+              <div className="flex justify-center text-2xl font-bold">
+                <div className="font-display sm:text-md mx-auto max-w-xl text-2xl font-medium italic tracking-tight text-slate-500">
+                  Resume reviews{' '}
+                  <span className="text-primary-500 relative whitespace-nowrap">
+                    <svg
+                      aria-hidden="true"
+                      className="absolute top-2/3 left-0 h-[0.58em] w-full fill-blue-300/70"
+                      preserveAspectRatio="none"
+                      viewBox="0 0 418 42">
+                      <path d="M203.371.916c-26.013-2.078-76.686 1.963-124.73 9.946L67.3 12.749C35.421 18.062 18.2 21.766 6.004 25.934 1.244 27.561.828 27.778.874 28.61c.07 1.214.828 1.121 9.595-1.176 9.072-2.377 17.15-3.92 39.246-7.496C123.565 7.986 157.869 4.492 195.942 5.046c7.461.108 19.25 1.696 19.17 2.582-.107 1.183-7.874 4.31-25.75 10.366-21.992 7.45-35.43 12.534-36.701 13.884-2.173 2.308-.202 4.407 4.442 4.734 2.654.187 3.263.157 15.593-.78 35.401-2.686 57.944-3.488 88.365-3.143 46.327.526 75.721 2.23 130.788 7.584 19.787 1.924 20.814 1.98 24.557 1.332l.066-.011c1.201-.203 1.53-1.825.399-2.335-2.911-1.31-4.893-1.604-22.048-3.261-57.509-5.556-87.871-7.36-132.059-7.842-23.239-.254-33.617-.116-50.627.674-11.629.54-42.371 2.494-46.696 2.967-2.359.259 8.133-3.625 26.504-9.81 23.239-7.825 27.934-10.149 28.304-14.005.417-4.348-3.529-6-16.878-7.066Z" />
+                    </svg>
+                    <span className="relative">made simple</span>
+                  </span>
+                </div>
               </div>
             </div>
-          </div>
 
-          {/* About Us Section */}
-          <div className="space-y-6">
-            <h2 className="text-2xl font-bold tracking-tight sm:text-3xl">
-              About Us 🤓
-            </h2>
-            <p className="text-lg text-slate-500">
-              As you apply for your dream jobs or internships, have you ever
-              felt unsure about your resume? Have you wondered about how others
-              got past resume screening in a breeze? Wonder no more!
-            </p>
-            <p className="text-lg text-slate-500">
-              Tech Interview Handbook's very own Resume Review portal is here to
-              help! Simply submit your resume and collect invaluable feedback
-              from our community of Software Engineers, Hiring Managers and so
-              many more...
-            </p>
-          </div>
+            {/* About Us Section */}
+            <div className="space-y-6">
+              <h2 className="text-2xl font-bold tracking-tight sm:text-3xl">
+                About Us 🤓
+              </h2>
+              <p className="text-lg text-slate-500">
+                As you apply for your dream jobs or internships, have you ever
+                felt unsure about your resume? Have you wondered about how
+                others got past resume screening in a breeze? Wonder no more!
+              </p>
+              <p className="text-lg text-slate-500">
+                Tech Interview Handbook's very own Resume Review portal is here
+                to help! Simply submit your resume and collect invaluable
+                feedback from our community of Software Engineers, Hiring
+                Managers and so many more...
+              </p>
+            </div>
 
-          {/* Feedback */}
-          <div className="space-y-6">
-            <h2 className="text-2xl font-bold tracking-tight sm:text-3xl">
-              Feedback? New Features? BUGS?! 😱
-            </h2>
+            {/* Feedback */}
+            <div className="space-y-6">
+              <h2 className="text-2xl font-bold tracking-tight sm:text-3xl">
+                Feedback? New Features? BUGS?! 😱
+              </h2>
 
-            <p className="text-lg text-slate-500">
-              Submit your feedback
-              <a
-                className="text-primary-600 hover:text-primary-500 ml-1"
-                href="https://forms.gle/KgA6KWDD4XNa53uJA"
-                rel="noreferrer"
-                target="_blank">
-                here
-              </a>
-              .
-            </p>
-          </div>
+              <p className="text-lg text-slate-500">
+                Submit your feedback
+                <a
+                  className="text-primary-600 hover:text-primary-500 ml-1"
+                  href="https://forms.gle/KgA6KWDD4XNa53uJA"
+                  rel="noreferrer"
+                  target="_blank">
+                  here
+                </a>
+                .
+              </p>
+            </div>
 
-          <div className="space-y-6">
-            <h2 className="text-2xl font-bold tracking-tight sm:text-3xl">
-              Meet the Team
-            </h2>
-            <ul
-              className="grid grid-cols-2 items-start gap-8 md:grid-cols-1 md:items-start md:space-y-0"
-              role="list">
-              {people.map((person) => (
-                <li key={person.name}>
-                  <div className="space-y-4 sm:grid sm:grid-cols-4 sm:gap-6 sm:space-y-0 lg:gap-8">
-                    <div className="aspect-w-2 aspect-h-2 h-0">
-                      <img
-                        alt={person.name}
-                        className="rounded-lg object-cover shadow-lg"
-                        src={person.imageUrl}
-                      />
-                    </div>
-                    <div className="sm:col-span-3">
-                      <div className="space-y-4">
-                        <div className="text-md space-y-1 font-medium leading-6 sm:text-lg">
-                          <h3>{person.name}</h3>
-                          <p className="text-primary-600">{person.role}</p>
-                        </div>
-                        <div className="text-sm sm:text-lg">
-                          <p className="text-slate-500">{person.bio}</p>
+            <div className="space-y-6">
+              <h2 className="text-2xl font-bold tracking-tight sm:text-3xl">
+                Meet the Team
+              </h2>
+              <ul
+                className="grid grid-cols-2 items-start gap-8 md:grid-cols-1 md:items-start md:space-y-0"
+                role="list">
+                {people.map((person) => (
+                  <li key={person.name}>
+                    <div className="space-y-4 sm:grid sm:grid-cols-4 sm:gap-6 sm:space-y-0 lg:gap-8">
+                      <div className="aspect-w-2 aspect-h-2 h-0">
+                        <img
+                          alt={person.name}
+                          className="rounded-lg object-cover shadow-lg"
+                          src={person.imageUrl}
+                        />
+                      </div>
+                      <div className="sm:col-span-3">
+                        <div className="space-y-4">
+                          <div className="text-md space-y-1 font-medium leading-6 sm:text-lg">
+                            <h3>{person.name}</h3>
+                            <p className="text-primary-600">{person.role}</p>
+                          </div>
+                          <div className="text-sm sm:text-lg">
+                            <p className="text-slate-500">{person.bio}</p>
+                          </div>
                         </div>
                       </div>
                     </div>
-                  </div>
-                </li>
-              ))}
-            </ul>
+                  </li>
+                ))}
+              </ul>
+            </div>
           </div>
-        </div>
-      </Container>
-    </div>
+        </Container>
+      </div>
+    </>
   );
 }

From 983537ac2c1c3bb1f21fc6b3ce2c6b5ba9fa5484 Mon Sep 17 00:00:00 2001
From: Zhou Yuhang <54398705+xquisite0@users.noreply.github.com>
Date: Wed, 9 Jul 2025 08:57:28 +0800
Subject: [PATCH 08/15] seo: fix page has broken image issue (#706)

---
 ...end-vs-back-end-system-design-interviews.md |   2 +-
 ...-control-over-your-coding-interview copy.md |   2 +-
 ...clude-debugging-in-the-interview-process.md |   2 +-
 apps/website/static/img/authors/zhenghao.jpg   | Bin 0 -> 184485 bytes
 4 files changed, 3 insertions(+), 3 deletions(-)
 create mode 100644 apps/website/static/img/authors/zhenghao.jpg

diff --git a/apps/website/blog/2021-12-23-front-end-vs-back-end-system-design-interviews.md b/apps/website/blog/2021-12-23-front-end-vs-back-end-system-design-interviews.md
index a69e6202d9..7aad828f5f 100644
--- a/apps/website/blog/2021-12-23-front-end-vs-back-end-system-design-interviews.md
+++ b/apps/website/blog/2021-12-23-front-end-vs-back-end-system-design-interviews.md
@@ -4,7 +4,7 @@ slug: front-end-vs-back-end-system-design-interviews
 author: Zhenghao He
 author_title: Senior Software Engineer at Instacart, ex-Amazon
 author_url: https://twitter.com/he_zhenghao
-author_image_url: https://pbs.twimg.com/profile_images/1489749168767660032/M_us3Mu2_400x400.jpg
+author_image_url: /img/authors/zhenghao.jpg
 tags: [front end, back end, system design, interview]
 hide_table_of_contents: true
 ---
diff --git a/apps/website/blog/2022-04-20-take-control-over-your-coding-interview copy.md b/apps/website/blog/2022-04-20-take-control-over-your-coding-interview copy.md
index 06b9a94e2f..705c804ce7 100644
--- a/apps/website/blog/2022-04-20-take-control-over-your-coding-interview copy.md	
+++ b/apps/website/blog/2022-04-20-take-control-over-your-coding-interview copy.md	
@@ -4,7 +4,7 @@ slug: take-control-over-your-coding-interview
 author: Zhenghao He
 author_title: Senior Software Engineer at Instacart, ex-Amazon
 author_url: https://twitter.com/he_zhenghao
-author_image_url: https://pbs.twimg.com/profile_images/1489749168767660032/M_us3Mu2_400x400.jpg
+author_image_url: /img/authors/zhenghao.jpg
 tags: [interview]
 ---
 
diff --git a/apps/website/blog/2022-04-21-why-you-should-include-debugging-in-the-interview-process.md b/apps/website/blog/2022-04-21-why-you-should-include-debugging-in-the-interview-process.md
index 475954e8ae..3c712561e6 100644
--- a/apps/website/blog/2022-04-21-why-you-should-include-debugging-in-the-interview-process.md
+++ b/apps/website/blog/2022-04-21-why-you-should-include-debugging-in-the-interview-process.md
@@ -4,7 +4,7 @@ slug: why-you-should-include-debugging-in-the-interview-process
 author: Zhenghao He
 author_title: Senior Software Engineer at Instacart, ex-Amazon
 author_url: https://twitter.com/he_zhenghao
-author_image_url: https://pbs.twimg.com/profile_images/1489749168767660032/M_us3Mu2_400x400.jpg
+author_image_url: /img/authors/zhenghao.jpg
 tags: [interview, debugging]
 ---
 
diff --git a/apps/website/static/img/authors/zhenghao.jpg b/apps/website/static/img/authors/zhenghao.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3bb8eb459d3cb64a6b2dca632134239779c4f7fa
GIT binary patch

From ea9d14a658332d93406a7ddad93e3254b704c47d Mon Sep 17 00:00:00 2001
From: Zhou Yuhang <54398705+xquisite0@users.noreply.github.com>
Date: Wed, 9 Jul 2025 08:59:16 +0800
Subject: [PATCH 09/15] seo: fix non canonical page in sitemap (#707)

---
 apps/website/docusaurus.config.js | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/apps/website/docusaurus.config.js b/apps/website/docusaurus.config.js
index af0b369856..6a872524d9 100755
--- a/apps/website/docusaurus.config.js
+++ b/apps/website/docusaurus.config.js
@@ -196,6 +196,20 @@ module.exports = {
         blog: {
           blogSidebarCount: 15,
         },
+        sitemap: {
+          ignorePatterns: [
+            '/blog/',
+            '/blog/a-glimpse-into-front-end-interviews/',
+            '/blog/are-front-end-development-skills-enough-for-a-career/',
+            '/blog/facebook-career-questions-and-answers/',
+            '/blog/importance-of-communicating-effectively-as-engineers/',
+            '/blog/front-end-career-questions/',
+            '/blog/how-to-have-successful-software-engineering-internship/',
+            '/blog/tags/career/',
+            '/blog/tags/meta/',
+            '/blog/tags/facebook/',
+          ],
+        },
       },
     ],
   ],

From 5cba1c55506d44ba6ed17f01349f54f6d2e9f781 Mon Sep 17 00:00:00 2001
From: Zhou Yuhang <54398705+xquisite0@users.noreply.github.com>
Date: Wed, 9 Jul 2025 11:20:10 +0800
Subject: [PATCH 10/15] seo: fix page has links to redirect (#708)

Co-authored-by: Yangshun Tay <tay.yang.shun@gmail.com>
---
 README.md                                     |  12 +-
 apps/portal/src/pages/offers/about.tsx        |   2 +-
 apps/portal/src/pages/offers/features.tsx     |   2 +-
 ...y-experience-working-as-a-meta-engineer.md |  11 +-
 ...-getting-a-tech-job-as-an-undergraduate.md |   2 +-
 .../contents/_components/QuestionGroups.json  | 150 +++++++++---------
 .../contents/_courses/AlgorithmCourses.md     |   4 +-
 apps/website/contents/algorithms/array.md     |   2 +-
 .../algorithms/dynamic-programming.md         |   6 +-
 apps/website/contents/algorithms/graph.md     |   6 +-
 .../website/contents/algorithms/hash-table.md |   6 +-
 apps/website/contents/algorithms/heap.md      |   4 +-
 apps/website/contents/algorithms/queue.md     |  10 +-
 apps/website/contents/algorithms/recursion.md |   2 +-
 .../contents/algorithms/sorting-searching.md  |   4 +-
 apps/website/contents/algorithms/stack.md     |  22 +--
 apps/website/contents/algorithms/string.md    |   4 +-
 apps/website/contents/algorithms/trie.md      |   8 +-
 .../behavioral-interview-questions.md         |   4 +-
 .../contents/behavioral-interview-rubrics.md  |   2 +-
 apps/website/contents/behavioral-interview.md |   4 +-
 .../contents/best-practice-questions.md       |   8 +-
 apps/website/contents/career-growth.md        |  10 +-
 .../contents/choosing-between-companies.md    |   2 +-
 .../website/contents/coding-interview-prep.md |  10 +-
 .../contents/coding-interview-techniques.md   |   2 +-
 apps/website/contents/engineering-levels.md   |   2 +-
 apps/website/contents/mock-interviews.md      |   8 +-
 apps/website/contents/negotiation-rules.md    |   2 +-
 .../software-engineering-interview-guide.md   |  14 +-
 apps/website/contents/system-design.md        |  14 +-
 apps/website/docusaurus.config.js             |   6 +-
 apps/website/experimental/design/README.md    |  12 +-
 .../website/src/components/SidebarAd/index.js |   2 +-
 apps/website/src/data/successStories.js       |   6 +-
 apps/website/src/pages/index.js               |   2 +-
 36 files changed, 183 insertions(+), 184 deletions(-)

diff --git a/README.md b/README.md
index b82baa6a8a..fd6916d7b0 100644
--- a/README.md
+++ b/README.md
@@ -9,7 +9,7 @@
     <a href="https://www.techinterviewhandbook.org/">Read on the website</a>
   </h3>
   <p>
-    Join/follow us on <a href="https://discord.gg/usMqNaPczq" target="_blank">Discord</a> | <a href="https://twitter.com/techinterviewhb" target="_blank">𝕏 (Twitter)</a> | <a href="https://t.me/techinterviewhandbook" target="_blank">Telegram</a> |  <a href="https://facebook.com/techinterviewhandbook" target="_blank">Facebook</a>
+    Join/follow us on <a href="https://discord.com/invite/usMqNaPczq" target="_blank">Discord</a> | <a href="https://twitter.com/techinterviewhb" target="_blank">𝕏 (Twitter)</a> | <a href="https://t.me/techinterviewhandbook" target="_blank">Telegram</a> |  <a href="https://facebook.com/techinterviewhandbook" target="_blank">Facebook</a>
   </p>
 </div>
 
@@ -26,7 +26,7 @@ Not everyone has the time to do a few hundred LeetCode questions. Here are _free
 Besides the usual algorithm questions, other **awesome** stuff includes:
 
 - [Best practice questions](https://www.techinterviewhandbook.org/coding-interview-study-plan/) for coding interviews
-- [Grind 75](https://www.techinterviewhandbook.org/grind75) - the next evolution of Blind 75, bigger and better
+- [Grind 75](https://www.techinterviewhandbook.org/grind75/) - the next evolution of Blind 75, bigger and better
 - [How to prepare](https://www.techinterviewhandbook.org/coding-interview-prep/) for coding interviews
 - [Coding interview best practices](https://www.techinterviewhandbook.org/coding-interview-cheatsheet/) - Straight-to-the-point Do's and Don'ts
 - [Algorithm cheatsheets and tips](https://www.techinterviewhandbook.org/algorithms/study-cheatsheet/) categorized by topic
@@ -50,7 +50,7 @@ Anybody who wants to land a job at a tech company but is new to technical interv
 
 <div align="center">
   <h3>💡 Stop grinding mindlessly! Study coding question patterns efficiently with
-    <a href="https://designgurus.org/link/kJSIoU?url=https%3A%2F%2Fdesigngurus.org%2Fcourse%3Fcourseid%3Dgrokking-the-coding-interview">Grokking the Coding Interview</a> by Design Gurus 💡
+    <a href="https://www.designgurus.io/course/grokking-the-coding-interview?aff=kJSIoU">Grokking the Coding Interview</a> by Design Gurus 💡
   </h3>
 </div>
 
@@ -68,9 +68,9 @@ Also, existing resources focus mainly on algorithm questions and lack coverage f
 
 AlgoMonster aims to help you ace the technical interview **in the shortest time possible**. By Google engineers, AlgoMonster uses a data-driven approach to teach you the most useful key question patterns and has contents to help you quickly revise basic data structures and algorithms. Best of all, AlgoMonster is not subscription-based - pay a one-time fee and get **lifetime access**. [**Join today for a 70% discount →**](https://shareasale.com/r.cfm?b=1873647&u=3114753&m=114505&urllink=&afftrack=)
 
-### [Grokking the Coding Interview: Patterns for Coding Questions](https://designgurus.org/link/kJSIoU?url=https%3A%2F%2Fdesigngurus.org%2Fcourse%3Fcourseid%3Dgrokking-the-coding-interview)
+### [Grokking the Coding Interview: Patterns for Coding Questions](https://www.designgurus.io/course/grokking-the-coding-interview?aff=kJSIoU)
 
-This course by Design Gurus expands upon the questions on the recommended practice questions but approaches the practicing from a questions pattern perspective, which is an approach I also agree with for learning and have personally used to get better at coding interviews. The course allows you to practice selected questions in Java, Python, C++, JavaScript and also provides sample solutions in those languages. **Learn and understand patterns, not memorize answers!** [**Get lifetime access today →**](https://designgurus.org/link/kJSIoU?url=https%3A%2F%2Fdesigngurus.org%2Fcourse%3Fcourseid%3Dgrokking-the-coding-interview)
+This course by Design Gurus expands upon the questions on the recommended practice questions but approaches the practicing from a questions pattern perspective, which is an approach I also agree with for learning and have personally used to get better at coding interviews. The course allows you to practice selected questions in Java, Python, C++, JavaScript and also provides sample solutions in those languages. **Learn and understand patterns, not memorize answers!** [**Get lifetime access today →**](https://www.designgurus.io/course/grokking-the-coding-interview?aff=kJSIoU)
 
 ## Looking for Front End content?
 
@@ -78,7 +78,7 @@ Front-end-related content has been moved to a separate website - [Front End Inte
 
 ## Looking for System Design content?
 
-We're still working on System Design content. In the meanwhile, check out [ByteByteGo's System Design Interview course](https://bytebytego.com?fpr=techinterviewhandbook) or Design Gurus' [Grokking the System Design Interview course](https://designgurus.org/link/kJSIoU?url=https%3A%2F%2Fdesigngurus.org%2Fcourse%3Fcourseid%3Dgrokking-the-system-design-interview), which in our opinion are among the most useful resources for getting started on system design interviews preparation.
+We're still working on System Design content. In the meanwhile, check out [ByteByteGo's System Design Interview course](https://bytebytego.com?fpr=techinterviewhandbook) or Design Gurus' [Grokking the System Design Interview course](https://www.designgurus.io/course/grokking-the-system-design-interview?aff=kJSIoU), which in our opinion are among the most useful resources for getting started on system design interviews preparation.
 
 ## Contents
 
diff --git a/apps/portal/src/pages/offers/about.tsx b/apps/portal/src/pages/offers/about.tsx
index 8b6d35ea44..a9638433af 100644
--- a/apps/portal/src/pages/offers/about.tsx
+++ b/apps/portal/src/pages/offers/about.tsx
@@ -61,7 +61,7 @@ export default function AboutPage() {
                 feedback / feature request / bug report
                 <a
                   className="text-primary-600 hover:text-primary-500 ml-1"
-                  href="https://forms.gle/6zV5yimPyiByKqDy8"
+                  href="https://docs.google.com/forms/d/e/1FAIpQLScbhjhlCdcmu9SGyASevqrqLl_HOr4W1B_bpTXUgs78yClr_w/viewform?usp=send_form"
                   rel="noreferrer"
                   target="_blank">
                   here
diff --git a/apps/portal/src/pages/offers/features.tsx b/apps/portal/src/pages/offers/features.tsx
index 90690bd915..4f2d03c14a 100644
--- a/apps/portal/src/pages/offers/features.tsx
+++ b/apps/portal/src/pages/offers/features.tsx
@@ -116,7 +116,7 @@ export default function LandingPage() {
                   </a>
                   <a
                     className="bg-primary-500 flex items-center justify-center rounded-md border border-transparent px-4 py-3 text-base font-medium text-white shadow-sm hover:bg-opacity-70 sm:px-8"
-                    href="https://youtu.be/e4g1lS6zWGA">
+                    href="https://www.youtube.com/watch?v=e4g1lS6zWGA&feature=youtu.be">
                     Promo Video
                   </a>
                 </div>
diff --git a/apps/website/blog/2021-10-30-my-experience-working-as-a-meta-engineer.md b/apps/website/blog/2021-10-30-my-experience-working-as-a-meta-engineer.md
index 7b49b28400..19ae1fef2d 100644
--- a/apps/website/blog/2021-10-30-my-experience-working-as-a-meta-engineer.md
+++ b/apps/website/blog/2021-10-30-my-experience-working-as-a-meta-engineer.md
@@ -34,21 +34,20 @@ Commerce Engineering (hardware sales) is Meta's next up and coming revenue strea
 
 Some stories from engineers in Commerce Engineering:
 
-- [Help 10 People—or Billions? Engineering Impact on a Global Scale](https://www.metacareers.com/life/help-10-peopleor-billions/), Nishita A., Software Engineering Manager, Commerce Engineering
-- [Embracing Change to Evolve Her Engineering Journey](https://www.metacareers.com/life/embracing-change-to-evolve-her-engineering-journey), Michelle T., Software Engineer, Commerce Engineering
+- [Help 10 People—or Billions? Engineering Impact on a Global Scale](https://www.metacareers.com/blog/help-10-peopleor-billions/), Nishita A., Software Engineering Manager, Commerce Engineering
+- [Embracing Change to Evolve Her Engineering Journey](https://www.metacareers.com/blog/embracing-change-to-evolve-her-engineering-journey/), Michelle T., Software Engineer, Commerce Engineering
 
 On the Ads and Business organization, there are these teams:
 
 - **Business Integrity**: They work on building tools to catch bad advertisers (advertisers who create ads which violate our policies). They want to maximize Business Integrity outcomes by building a human review system for ads & commerce on Meta, driving end-to-end improvements in the workflows, and providing best-in-class tools to IP rights holders, etc.
-  - [Software Engineering in APAC: Building for Rapid Growth](https://www.metacareers.com/life/software-engineering-in-apac)
-  - [Curiosity and Passion: Software Engineering at Facebook](https://www.metacareers.com/life/curiosity-and-passion-software-engineering-at-facebook), Henry B., Software Engineer, Business Integrity
+  - [Software Engineering in APAC: Building for Rapid Growth](https://www.metacareers.com/blog/software-engineering-in-apac/)
 - **Business Support Platform**: They redefine the support experience across all Meta business products, making it available, effective and effortless for all businesses. They make sure businesses can identify the help resources available to them when they need assistance in accomplishing their goals across Meta's suite of business tools. Their tools will also effortlessly help marketers diagnose their issues and connect them to the best solution to solve their problem. They have also some investment into the machine learning space.
 - **Business Messaging Commerce**: They build products that enable the Business Messaging ecosystem across Messenger, Instagram, and WhatsApp.
 
 Enterprise Engineering has a sizable presence in Singapore as well:
 
-- [Enterprise Engineering in APAC: Building Products That Scale](https://www.metacareers.com/life/enterprise-engineering-in-apac)
-- [Opportunity and Trust: Growing an Engineering Career at Meta](https://www.metacareers.com/life/opportunity-and-trust-growing-an-engineering-career-at-facebook), Shuhong W., Enterprise Engineering Manager
+- [Enterprise Engineering in APAC: Building Products That Scale](https://www.metacareers.com/blog/enterprise-engineering-in-apac/)
+- [Opportunity and Trust: Growing an Engineering Career at Meta](https://www.metacareers.com/blog/opportunity-and-trust-growing-an-engineering-career-at-facebook/), Shuhong W., Enterprise Engineering Manager
 
 ## Career progression/compensation
 
diff --git a/apps/website/blog/2022-07-09-getting-a-tech-job-as-an-undergraduate.md b/apps/website/blog/2022-07-09-getting-a-tech-job-as-an-undergraduate.md
index 3c8541ce75..2d823a55c8 100644
--- a/apps/website/blog/2022-07-09-getting-a-tech-job-as-an-undergraduate.md
+++ b/apps/website/blog/2022-07-09-getting-a-tech-job-as-an-undergraduate.md
@@ -19,7 +19,7 @@ Before I share my resources and how to get a gentle start on this handbook, let
 
 In most companies, the resume stage is the most important as it is the first stage that you will need to clear! For undergraduates, most hiring managers would only look at resumes that are within one page. The moment the second page is seen, they will not tend to consider. Hence, here are some tips that can help you to prepare your resume in under an hour to reduce your agony.
 
-1. Use a <strong>career hiring tool</strong> like [Kinobi](https://app.kinobi.asia/resume). Kinobi saves you time in having to fix alignments unlike word as this career tool formats everything for you. Furthermore, they help you to score your resume so that you know where you stand when applying for a job.
+1. Use a <strong>career hiring tool</strong> like [Kinobi](https://kinobi.tech/resume). Kinobi saves you time in having to fix alignments unlike word as this career tool formats everything for you. Furthermore, they help you to score your resume so that you know where you stand when applying for a job.
 
 2. As far as possible, <strong>attend career talks</strong> by your favorite companies because hiring managers are there and you can get some feedback about your resume. It is indeed helpful because you know what to look out for when applying.
 
diff --git a/apps/website/contents/_components/QuestionGroups.json b/apps/website/contents/_components/QuestionGroups.json
index 04b6d72759..0e297d57ef 100644
--- a/apps/website/contents/_components/QuestionGroups.json
+++ b/apps/website/contents/_components/QuestionGroups.json
@@ -3,7 +3,7 @@
     {
       "slug": "two-sum",
       "title": "Two Sum",
-      "url": "https://leetcode.com/problems/two-sum",
+      "url": "https://leetcode.com/problems/two-sum/",
       "duration": 15,
       "epi": null,
       "difficulty": "Easy",
@@ -14,7 +14,7 @@
     {
       "slug": "valid-parentheses",
       "title": "Valid Parentheses",
-      "url": "https://leetcode.com/problems/valid-parentheses",
+      "url": "https://leetcode.com/problems/valid-parentheses/",
       "duration": 20,
       "epi": 3,
       "difficulty": "Easy",
@@ -25,7 +25,7 @@
     {
       "slug": "merge-two-sorted-lists",
       "title": "Merge Two Sorted Lists",
-      "url": "https://leetcode.com/problems/merge-two-sorted-lists",
+      "url": "https://leetcode.com/problems/merge-two-sorted-lists/",
       "duration": 20,
       "epi": 0,
       "difficulty": "Easy",
@@ -36,7 +36,7 @@
     {
       "slug": "best-time-to-buy-and-sell-stock",
       "title": "Best Time to Buy and Sell Stock",
-      "url": "https://leetcode.com/problems/best-time-to-buy-and-sell-stock",
+      "url": "https://leetcode.com/problems/best-time-to-buy-and-sell-stock/",
       "duration": 20,
       "epi": 0,
       "difficulty": "Easy",
@@ -47,7 +47,7 @@
     {
       "slug": "valid-palindrome",
       "title": "Valid Palindrome",
-      "url": "https://leetcode.com/problems/valid-palindrome",
+      "url": "https://leetcode.com/problems/valid-palindrome/",
       "duration": 15,
       "epi": 2,
       "difficulty": "Easy",
@@ -58,7 +58,7 @@
     {
       "slug": "invert-binary-tree",
       "title": "Invert Binary Tree",
-      "url": "https://leetcode.com/problems/invert-binary-tree",
+      "url": "https://leetcode.com/problems/invert-binary-tree/",
       "duration": 15,
       "epi": null,
       "difficulty": "Easy",
@@ -69,7 +69,7 @@
     {
       "slug": "valid-anagram",
       "title": "Valid Anagram",
-      "url": "https://leetcode.com/problems/valid-anagram",
+      "url": "https://leetcode.com/problems/valid-anagram/",
       "duration": 15,
       "epi": null,
       "difficulty": "Easy",
@@ -80,7 +80,7 @@
     {
       "slug": "binary-search",
       "title": "Binary Search",
-      "url": "https://leetcode.com/problems/binary-search",
+      "url": "https://leetcode.com/problems/binary-search/",
       "duration": 15,
       "epi": null,
       "difficulty": "Easy",
@@ -91,7 +91,7 @@
     {
       "slug": "flood-fill",
       "title": "Flood Fill",
-      "url": "https://leetcode.com/problems/flood-fill",
+      "url": "https://leetcode.com/problems/flood-fill/",
       "duration": 20,
       "epi": 2,
       "difficulty": "Easy",
@@ -102,7 +102,7 @@
     {
       "slug": "lowest-common-ancestor-of-a-binary-search-tree",
       "title": "Lowest Common Ancestor of a Binary Search Tree",
-      "url": "https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree",
+      "url": "https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/",
       "duration": 20,
       "epi": 1,
       "difficulty": "Easy",
@@ -113,7 +113,7 @@
     {
       "slug": "balanced-binary-tree",
       "title": "Balanced Binary Tree",
-      "url": "https://leetcode.com/problems/balanced-binary-tree",
+      "url": "https://leetcode.com/problems/balanced-binary-tree/",
       "duration": 15,
       "epi": 0,
       "difficulty": "Easy",
@@ -124,7 +124,7 @@
     {
       "slug": "linked-list-cycle",
       "title": "Linked List Cycle",
-      "url": "https://leetcode.com/problems/linked-list-cycle",
+      "url": "https://leetcode.com/problems/linked-list-cycle/",
       "duration": 20,
       "epi": 1,
       "difficulty": "Easy",
@@ -137,7 +137,7 @@
     {
       "slug": "implement-queue-using-stacks",
       "title": "Implement Queue using Stacks",
-      "url": "https://leetcode.com/problems/implement-queue-using-stacks",
+      "url": "https://leetcode.com/problems/implement-queue-using-stacks/",
       "duration": 20,
       "epi": 3,
       "difficulty": "Easy",
@@ -148,7 +148,7 @@
     {
       "slug": "first-bad-version",
       "title": "First Bad Version",
-      "url": "https://leetcode.com/problems/first-bad-version",
+      "url": "https://leetcode.com/problems/first-bad-version/",
       "duration": 20,
       "epi": null,
       "difficulty": "Easy",
@@ -159,7 +159,7 @@
     {
       "slug": "ransom-note",
       "title": "Ransom Note",
-      "url": "https://leetcode.com/problems/ransom-note",
+      "url": "https://leetcode.com/problems/ransom-note/",
       "duration": 15,
       "epi": 0,
       "difficulty": "Easy",
@@ -170,7 +170,7 @@
     {
       "slug": "climbing-stairs",
       "title": "Climbing Stairs",
-      "url": "https://leetcode.com/problems/climbing-stairs",
+      "url": "https://leetcode.com/problems/climbing-stairs/",
       "duration": 20,
       "epi": null,
       "difficulty": "Easy",
@@ -181,7 +181,7 @@
     {
       "slug": "longest-palindrome",
       "title": "Longest Palindrome",
-      "url": "https://leetcode.com/problems/longest-palindrome",
+      "url": "https://leetcode.com/problems/longest-palindrome/",
       "duration": 20,
       "epi": 2,
       "difficulty": "Easy",
@@ -192,7 +192,7 @@
     {
       "slug": "reverse-linked-list",
       "title": "Reverse Linked List",
-      "url": "https://leetcode.com/problems/reverse-linked-list",
+      "url": "https://leetcode.com/problems/reverse-linked-list/",
       "duration": 20,
       "epi": 1,
       "difficulty": "Easy",
@@ -203,7 +203,7 @@
     {
       "slug": "majority-element",
       "title": "Majority Element",
-      "url": "https://leetcode.com/problems/majority-element",
+      "url": "https://leetcode.com/problems/majority-element/",
       "duration": 20,
       "epi": 2,
       "difficulty": "Easy",
@@ -214,7 +214,7 @@
     {
       "slug": "add-binary",
       "title": "Add Binary",
-      "url": "https://leetcode.com/problems/add-binary",
+      "url": "https://leetcode.com/problems/add-binary/",
       "duration": 15,
       "epi": null,
       "difficulty": "Easy",
@@ -225,7 +225,7 @@
     {
       "slug": "diameter-of-binary-tree",
       "title": "Diameter of Binary Tree",
-      "url": "https://leetcode.com/problems/diameter-of-binary-tree",
+      "url": "https://leetcode.com/problems/diameter-of-binary-tree/",
       "duration": 30,
       "epi": null,
       "difficulty": "Easy",
@@ -236,7 +236,7 @@
     {
       "slug": "middle-of-the-linked-list",
       "title": "Middle of the Linked List",
-      "url": "https://leetcode.com/problems/middle-of-the-linked-list",
+      "url": "https://leetcode.com/problems/middle-of-the-linked-list/",
       "duration": 20,
       "epi": null,
       "difficulty": "Easy",
@@ -247,7 +247,7 @@
     {
       "slug": "maximum-depth-of-binary-tree",
       "title": "Maximum Depth of Binary Tree",
-      "url": "https://leetcode.com/problems/maximum-depth-of-binary-tree",
+      "url": "https://leetcode.com/problems/maximum-depth-of-binary-tree/",
       "duration": 15,
       "epi": null,
       "difficulty": "Easy",
@@ -258,7 +258,7 @@
     {
       "slug": "contains-duplicate",
       "title": "Contains Duplicate",
-      "url": "https://leetcode.com/problems/contains-duplicate",
+      "url": "https://leetcode.com/problems/contains-duplicate/",
       "duration": 15,
       "epi": null,
       "difficulty": "Easy",
@@ -271,7 +271,7 @@
     {
       "slug": "min-stack",
       "title": "Min Stack",
-      "url": "https://leetcode.com/problems/min-stack",
+      "url": "https://leetcode.com/problems/min-stack/",
       "duration": 20,
       "epi": 0,
       "difficulty": "Medium",
@@ -282,7 +282,7 @@
     {
       "slug": "maximum-subarray",
       "title": "Maximum Subarray",
-      "url": "https://leetcode.com/problems/maximum-subarray",
+      "url": "https://leetcode.com/problems/maximum-subarray/",
       "duration": 20,
       "epi": null,
       "difficulty": "Medium",
@@ -293,7 +293,7 @@
     {
       "slug": "insert-interval",
       "title": "Insert Interval",
-      "url": "https://leetcode.com/problems/insert-interval",
+      "url": "https://leetcode.com/problems/insert-interval/",
       "duration": 25,
       "epi": null,
       "difficulty": "Medium",
@@ -304,7 +304,7 @@
     {
       "slug": "01-matrix",
       "title": "01 Matrix",
-      "url": "https://leetcode.com/problems/01-matrix",
+      "url": "https://leetcode.com/problems/01-matrix/",
       "duration": 30,
       "epi": null,
       "difficulty": "Medium",
@@ -315,7 +315,7 @@
     {
       "slug": "k-closest-points-to-origin",
       "title": "K Closest Points to Origin",
-      "url": "https://leetcode.com/problems/k-closest-points-to-origin",
+      "url": "https://leetcode.com/problems/k-closest-points-to-origin/",
       "duration": 30,
       "epi": 1,
       "difficulty": "Medium",
@@ -326,7 +326,7 @@
     {
       "slug": "longest-substring-without-repeating-characters",
       "title": "Longest Substring Without Repeating Characters",
-      "url": "https://leetcode.com/problems/longest-substring-without-repeating-characters",
+      "url": "https://leetcode.com/problems/longest-substring-without-repeating-characters/",
       "duration": 30,
       "epi": null,
       "difficulty": "Medium",
@@ -337,7 +337,7 @@
     {
       "slug": "3sum",
       "title": "3Sum",
-      "url": "https://leetcode.com/problems/3sum",
+      "url": "https://leetcode.com/problems/3sum/",
       "duration": 30,
       "epi": 0,
       "difficulty": "Medium",
@@ -348,7 +348,7 @@
     {
       "slug": "binary-tree-level-order-traversal",
       "title": "Binary Tree Level Order Traversal",
-      "url": "https://leetcode.com/problems/binary-tree-level-order-traversal",
+      "url": "https://leetcode.com/problems/binary-tree-level-order-traversal/",
       "duration": 20,
       "epi": 1,
       "difficulty": "Medium",
@@ -359,7 +359,7 @@
     {
       "slug": "clone-graph",
       "title": "Clone Graph",
-      "url": "https://leetcode.com/problems/clone-graph",
+      "url": "https://leetcode.com/problems/clone-graph/",
       "duration": 25,
       "epi": null,
       "difficulty": "Medium",
@@ -370,7 +370,7 @@
     {
       "slug": "evaluate-reverse-polish-notation",
       "title": "Evaluate Reverse Polish Notation",
-      "url": "https://leetcode.com/problems/evaluate-reverse-polish-notation",
+      "url": "https://leetcode.com/problems/evaluate-reverse-polish-notation/",
       "duration": 30,
       "epi": 2,
       "difficulty": "Medium",
@@ -383,7 +383,7 @@
     {
       "slug": "course-schedule",
       "title": "Course Schedule",
-      "url": "https://leetcode.com/problems/course-schedule",
+      "url": "https://leetcode.com/problems/course-schedule/",
       "duration": 30,
       "epi": null,
       "difficulty": "Medium",
@@ -394,7 +394,7 @@
     {
       "slug": "implement-trie-prefix-tree",
       "title": "Implement Trie (Prefix Tree)",
-      "url": "https://leetcode.com/problems/implement-trie-prefix-tree",
+      "url": "https://leetcode.com/problems/implement-trie-prefix-tree/",
       "duration": 35,
       "epi": null,
       "difficulty": "Medium",
@@ -405,7 +405,7 @@
     {
       "slug": "coin-change",
       "title": "Coin Change",
-      "url": "https://leetcode.com/problems/coin-change",
+      "url": "https://leetcode.com/problems/coin-change/",
       "duration": 25,
       "epi": null,
       "difficulty": "Medium",
@@ -416,7 +416,7 @@
     {
       "slug": "product-of-array-except-self",
       "title": "Product of Array Except Self",
-      "url": "https://leetcode.com/problems/product-of-array-except-self",
+      "url": "https://leetcode.com/problems/product-of-array-except-self/",
       "duration": 30,
       "epi": null,
       "difficulty": "Medium",
@@ -427,7 +427,7 @@
     {
       "slug": "validate-binary-search-tree",
       "title": "Validate Binary Search Tree",
-      "url": "https://leetcode.com/problems/validate-binary-search-tree",
+      "url": "https://leetcode.com/problems/validate-binary-search-tree/",
       "duration": 20,
       "epi": null,
       "difficulty": "Medium",
@@ -438,7 +438,7 @@
     {
       "slug": "number-of-islands",
       "title": "Number of Islands",
-      "url": "https://leetcode.com/problems/number-of-islands",
+      "url": "https://leetcode.com/problems/number-of-islands/",
       "duration": 25,
       "epi": null,
       "difficulty": "Medium",
@@ -449,7 +449,7 @@
     {
       "slug": "rotting-oranges",
       "title": "Rotting Oranges",
-      "url": "https://leetcode.com/problems/rotting-oranges",
+      "url": "https://leetcode.com/problems/rotting-oranges/",
       "duration": 30,
       "epi": null,
       "difficulty": "Medium",
@@ -460,7 +460,7 @@
     {
       "slug": "search-in-rotated-sorted-array",
       "title": "Search in Rotated Sorted Array",
-      "url": "https://leetcode.com/problems/search-in-rotated-sorted-array",
+      "url": "https://leetcode.com/problems/search-in-rotated-sorted-array/",
       "duration": 30,
       "epi": 2,
       "difficulty": "Medium",
@@ -473,7 +473,7 @@
     {
       "slug": "combination-sum",
       "title": "Combination Sum",
-      "url": "https://leetcode.com/problems/combination-sum",
+      "url": "https://leetcode.com/problems/combination-sum/",
       "duration": 30,
       "epi": null,
       "difficulty": "Medium",
@@ -484,7 +484,7 @@
     {
       "slug": "permutations",
       "title": "Permutations",
-      "url": "https://leetcode.com/problems/permutations",
+      "url": "https://leetcode.com/problems/permutations/",
       "duration": 30,
       "epi": 2,
       "difficulty": "Medium",
@@ -495,7 +495,7 @@
     {
       "slug": "merge-intervals",
       "title": "Merge Intervals",
-      "url": "https://leetcode.com/problems/merge-intervals",
+      "url": "https://leetcode.com/problems/merge-intervals/",
       "duration": 30,
       "epi": 3,
       "difficulty": "Medium",
@@ -506,7 +506,7 @@
     {
       "slug": "lowest-common-ancestor-of-a-binary-tree",
       "title": "Lowest Common Ancestor of a Binary Tree",
-      "url": "https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree",
+      "url": "https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/",
       "duration": 25,
       "epi": null,
       "difficulty": "Medium",
@@ -517,7 +517,7 @@
     {
       "slug": "time-based-key-value-store",
       "title": "Time Based Key-Value Store",
-      "url": "https://leetcode.com/problems/time-based-key-value-store",
+      "url": "https://leetcode.com/problems/time-based-key-value-store/",
       "duration": 35,
       "epi": null,
       "difficulty": "Medium",
@@ -528,7 +528,7 @@
     {
       "slug": "accounts-merge",
       "title": "Accounts Merge",
-      "url": "https://leetcode.com/problems/accounts-merge",
+      "url": "https://leetcode.com/problems/accounts-merge/",
       "duration": 30,
       "epi": null,
       "difficulty": "Medium",
@@ -539,7 +539,7 @@
     {
       "slug": "sort-colors",
       "title": "Sort Colors",
-      "url": "https://leetcode.com/problems/sort-colors",
+      "url": "https://leetcode.com/problems/sort-colors/",
       "duration": 25,
       "epi": 0,
       "difficulty": "Medium",
@@ -550,7 +550,7 @@
     {
       "slug": "word-break",
       "title": "Word Break",
-      "url": "https://leetcode.com/problems/word-break",
+      "url": "https://leetcode.com/problems/word-break/",
       "duration": 30,
       "epi": 2,
       "difficulty": "Medium",
@@ -563,7 +563,7 @@
     {
       "slug": "partition-equal-subset-sum",
       "title": "Partition Equal Subset Sum",
-      "url": "https://leetcode.com/problems/partition-equal-subset-sum",
+      "url": "https://leetcode.com/problems/partition-equal-subset-sum/",
       "duration": 30,
       "epi": 2,
       "difficulty": "Medium",
@@ -574,7 +574,7 @@
     {
       "slug": "string-to-integer-atoi",
       "title": "String to Integer (atoi)",
-      "url": "https://leetcode.com/problems/string-to-integer-atoi",
+      "url": "https://leetcode.com/problems/string-to-integer-atoi/",
       "duration": 25,
       "epi": 0,
       "difficulty": "Medium",
@@ -585,7 +585,7 @@
     {
       "slug": "spiral-matrix",
       "title": "Spiral Matrix",
-      "url": "https://leetcode.com/problems/spiral-matrix",
+      "url": "https://leetcode.com/problems/spiral-matrix/",
       "duration": 25,
       "epi": 1,
       "difficulty": "Medium",
@@ -596,7 +596,7 @@
     {
       "slug": "subsets",
       "title": "Subsets",
-      "url": "https://leetcode.com/problems/subsets",
+      "url": "https://leetcode.com/problems/subsets/",
       "duration": 30,
       "epi": 3,
       "difficulty": "Medium",
@@ -607,7 +607,7 @@
     {
       "slug": "binary-tree-right-side-view",
       "title": "Binary Tree Right Side View",
-      "url": "https://leetcode.com/problems/binary-tree-right-side-view",
+      "url": "https://leetcode.com/problems/binary-tree-right-side-view/",
       "duration": 20,
       "epi": null,
       "difficulty": "Medium",
@@ -618,7 +618,7 @@
     {
       "slug": "longest-palindromic-substring",
       "title": "Longest Palindromic Substring",
-      "url": "https://leetcode.com/problems/longest-palindromic-substring",
+      "url": "https://leetcode.com/problems/longest-palindromic-substring/",
       "duration": 25,
       "epi": null,
       "difficulty": "Medium",
@@ -629,7 +629,7 @@
     {
       "slug": "unique-paths",
       "title": "Unique Paths",
-      "url": "https://leetcode.com/problems/unique-paths",
+      "url": "https://leetcode.com/problems/unique-paths/",
       "duration": 20,
       "epi": 2,
       "difficulty": "Medium",
@@ -640,7 +640,7 @@
     {
       "slug": "construct-binary-tree-from-preorder-and-inorder-traversal",
       "title": "Construct Binary Tree from Preorder and Inorder Traversal",
-      "url": "https://leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal",
+      "url": "https://leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/",
       "duration": 25,
       "epi": 2,
       "difficulty": "Medium",
@@ -651,7 +651,7 @@
     {
       "slug": "container-with-most-water",
       "title": "Container With Most Water",
-      "url": "https://leetcode.com/problems/container-with-most-water",
+      "url": "https://leetcode.com/problems/container-with-most-water/",
       "duration": 35,
       "epi": 2,
       "difficulty": "Medium",
@@ -664,7 +664,7 @@
     {
       "slug": "letter-combinations-of-a-phone-number",
       "title": "Letter Combinations of a Phone Number",
-      "url": "https://leetcode.com/problems/letter-combinations-of-a-phone-number",
+      "url": "https://leetcode.com/problems/letter-combinations-of-a-phone-number/",
       "duration": 30,
       "epi": 3,
       "difficulty": "Medium",
@@ -675,7 +675,7 @@
     {
       "slug": "word-search",
       "title": "Word Search",
-      "url": "https://leetcode.com/problems/word-search",
+      "url": "https://leetcode.com/problems/word-search/",
       "duration": 30,
       "epi": null,
       "difficulty": "Medium",
@@ -686,7 +686,7 @@
     {
       "slug": "find-all-anagrams-in-a-string",
       "title": "Find All Anagrams in a String",
-      "url": "https://leetcode.com/problems/find-all-anagrams-in-a-string",
+      "url": "https://leetcode.com/problems/find-all-anagrams-in-a-string/",
       "duration": 30,
       "epi": null,
       "difficulty": "Medium",
@@ -697,7 +697,7 @@
     {
       "slug": "minimum-height-trees",
       "title": "Minimum Height Trees",
-      "url": "https://leetcode.com/problems/minimum-height-trees",
+      "url": "https://leetcode.com/problems/minimum-height-trees/",
       "duration": 30,
       "epi": null,
       "difficulty": "Medium",
@@ -708,7 +708,7 @@
     {
       "slug": "task-scheduler",
       "title": "Task Scheduler",
-      "url": "https://leetcode.com/problems/task-scheduler",
+      "url": "https://leetcode.com/problems/task-scheduler/",
       "duration": 35,
       "epi": null,
       "difficulty": "Medium",
@@ -719,7 +719,7 @@
     {
       "slug": "lru-cache",
       "title": "LRU Cache",
-      "url": "https://leetcode.com/problems/lru-cache",
+      "url": "https://leetcode.com/problems/lru-cache/",
       "duration": 30,
       "epi": null,
       "difficulty": "Medium",
@@ -730,7 +730,7 @@
     {
       "slug": "kth-smallest-element-in-a-bst",
       "title": "Kth Smallest Element in a BST",
-      "url": "https://leetcode.com/problems/kth-smallest-element-in-a-bst",
+      "url": "https://leetcode.com/problems/kth-smallest-element-in-a-bst/",
       "duration": 25,
       "epi": null,
       "difficulty": "Medium",
@@ -741,7 +741,7 @@
     {
       "slug": "minimum-window-substring",
       "title": "Minimum Window Substring",
-      "url": "https://leetcode.com/problems/minimum-window-substring",
+      "url": "https://leetcode.com/problems/minimum-window-substring/",
       "duration": 30,
       "epi": 3,
       "difficulty": "Hard",
@@ -754,7 +754,7 @@
     {
       "slug": "serialize-and-deserialize-binary-tree",
       "title": "Serialize and Deserialize Binary Tree",
-      "url": "https://leetcode.com/problems/serialize-and-deserialize-binary-tree",
+      "url": "https://leetcode.com/problems/serialize-and-deserialize-binary-tree/",
       "duration": 40,
       "epi": null,
       "difficulty": "Hard",
@@ -765,7 +765,7 @@
     {
       "slug": "trapping-rain-water",
       "title": "Trapping Rain Water",
-      "url": "https://leetcode.com/problems/trapping-rain-water",
+      "url": "https://leetcode.com/problems/trapping-rain-water/",
       "duration": 35,
       "epi": null,
       "difficulty": "Hard",
@@ -776,7 +776,7 @@
     {
       "slug": "find-median-from-data-stream",
       "title": "Find Median from Data Stream",
-      "url": "https://leetcode.com/problems/find-median-from-data-stream",
+      "url": "https://leetcode.com/problems/find-median-from-data-stream/",
       "duration": 30,
       "epi": 3,
       "difficulty": "Hard",
@@ -787,7 +787,7 @@
     {
       "slug": "word-ladder",
       "title": "Word Ladder",
-      "url": "https://leetcode.com/problems/word-ladder",
+      "url": "https://leetcode.com/problems/word-ladder/",
       "duration": 45,
       "epi": null,
       "difficulty": "Hard",
@@ -798,7 +798,7 @@
     {
       "slug": "basic-calculator",
       "title": "Basic Calculator",
-      "url": "https://leetcode.com/problems/basic-calculator",
+      "url": "https://leetcode.com/problems/basic-calculator/",
       "duration": 40,
       "epi": null,
       "difficulty": "Hard",
@@ -809,7 +809,7 @@
     {
       "slug": "maximum-profit-in-job-scheduling",
       "title": "Maximum Profit in Job Scheduling",
-      "url": "https://leetcode.com/problems/maximum-profit-in-job-scheduling",
+      "url": "https://leetcode.com/problems/maximum-profit-in-job-scheduling/",
       "duration": 45,
       "epi": null,
       "difficulty": "Hard",
@@ -820,7 +820,7 @@
     {
       "slug": "merge-k-sorted-lists",
       "title": "Merge k Sorted Lists",
-      "url": "https://leetcode.com/problems/merge-k-sorted-lists",
+      "url": "https://leetcode.com/problems/merge-k-sorted-lists/",
       "duration": 30,
       "epi": null,
       "difficulty": "Hard",
@@ -831,7 +831,7 @@
     {
       "slug": "largest-rectangle-in-histogram",
       "title": "Largest Rectangle in Histogram",
-      "url": "https://leetcode.com/problems/largest-rectangle-in-histogram",
+      "url": "https://leetcode.com/problems/largest-rectangle-in-histogram/",
       "duration": 35,
       "epi": 3,
       "difficulty": "Hard",
diff --git a/apps/website/contents/_courses/AlgorithmCourses.md b/apps/website/contents/_courses/AlgorithmCourses.md
index 82a8be5889..976ccb7051 100644
--- a/apps/website/contents/_courses/AlgorithmCourses.md
+++ b/apps/website/contents/_courses/AlgorithmCourses.md
@@ -2,9 +2,9 @@
 
 AlgoMonster aims to help you ace the technical interview **in the shortest time possible**. By Google engineers, AlgoMonster uses a data-driven approach to teach you the most useful key question patterns and has contents to help you quickly revise basic data structures and algorithms. Best of all, AlgoMonster is not subscription-based - pay a one-time fee and get **lifetime access**. [**Join today for a 70% discount →**](https://shareasale.com/r.cfm?b=1873647&u=3114753&m=114505&urllink=&afftrack=)
 
-### [Grokking the Coding Interview: Patterns for Coding Questions](https://designgurus.org/link/kJSIoU?url=https%3A%2F%2Fdesigngurus.org%2Fcourse%3Fcourseid%3Dgrokking-the-coding-interview)
+### [Grokking the Coding Interview: Patterns for Coding Questions](https://www.designgurus.io/course/grokking-the-coding-interview?aff=kJSIoU)
 
-This course on by Design Gurus expands upon the questions on the recommended practice questions but approaches the practicing from a questions pattern perspective, which is an approach I also agree with for learning and have personally used to get better at coding interviews. The course allows you to practice selected questions in Java, Python, C++, JavaScript and also provides sample solutions in those languages along with step-by-step visualizations. **Learn and understand patterns, not memorize answers!** [**Get lifetime access now →**](https://designgurus.org/link/kJSIoU?url=https%3A%2F%2Fdesigngurus.org%2Fcourse%3Fcourseid%3Dgrokking-the-coding-interview)
+This course on by Design Gurus expands upon the questions on the recommended practice questions but approaches the practicing from a questions pattern perspective, which is an approach I also agree with for learning and have personally used to get better at coding interviews. The course allows you to practice selected questions in Java, Python, C++, JavaScript and also provides sample solutions in those languages along with step-by-step visualizations. **Learn and understand patterns, not memorize answers!** [**Get lifetime access now →**](https://www.designgurus.io/course/grokking-the-coding-interview?aff=kJSIoU)
 
 ### [Master the Coding Interview: Data Structures + Algorithms](https://www.udemy.com/course/master-the-coding-interview-data-structures-algorithms/)
 
diff --git a/apps/website/contents/algorithms/array.md b/apps/website/contents/algorithms/array.md
index e63e367382..c9e354bb74 100644
--- a/apps/website/contents/algorithms/array.md
+++ b/apps/website/contents/algorithms/array.md
@@ -102,7 +102,7 @@ Can you sort the array? Sometimes sorting the array first may significantly simp
 
 ### Precomputation
 
-For questions where summation or multiplication of a subarray is involved, pre-computation using hashing or a prefix/suffix sum/product might be useful. Examples: [Product of Array Except Self](https://leetcode.com/problems/product-of-array-except-self/), [Minimum Size Subarray Sum](https://leetcode.com/problems/minimum-size-subarray-sum/), [LeetCode questions tagged "prefix-sum"](https://leetcode.com/tag/prefix-sum/)
+For questions where summation or multiplication of a subarray is involved, pre-computation using hashing or a prefix/suffix sum/product might be useful. Examples: [Product of Array Except Self](https://leetcode.com/problems/product-of-array-except-self/), [Minimum Size Subarray Sum](https://leetcode.com/problems/minimum-size-subarray-sum/), [LeetCode questions tagged "prefix-sum"](https://leetcode.com/problem-list/prefix-sum/)
 
 ### Index as a hash key
 
diff --git a/apps/website/contents/algorithms/dynamic-programming.md b/apps/website/contents/algorithms/dynamic-programming.md
index cf0de19382..ed5bbfc013 100644
--- a/apps/website/contents/algorithms/dynamic-programming.md
+++ b/apps/website/contents/algorithms/dynamic-programming.md
@@ -25,7 +25,7 @@ Dynamic Programming (DP) is usually used to solve optimization problems. The onl
 
 ## Learning resources
 
-- [Demystifying Dynamic Programming](https://medium.freecodecamp.org/demystifying-dynamic-programming-3efafb8d4296)
+- [Demystifying Dynamic Programming](https://www.freecodecamp.org/news/demystifying-dynamic-programming-3efafb8d4296)
 - [Dynamic Programming – 7 Steps to Solve any DP Interview Problem](https://dev.to/nikolaotasevic/dynamic-programming--7-steps-to-solve-any-dp-interview-problem-3870)
 - [Less Repetition, More Dynamic Programming](https://medium.com/basecs/less-repetition-more-dynamic-programming-43d29830a630), basecs
 - [Dynamic Programming](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#dynamicProgramming), James Aspnes, Yale University
@@ -60,8 +60,8 @@ _These are recommended questions to practice after you have studied for the topi
 
 import AlgorithmCourses from '../\_courses/AlgorithmCourses.md'
 
-### [Grokking Dynamic Programming Patterns for Coding Interviews](https://designgurus.org/link/kJSIoU?url=https%3A%2F%2Fdesigngurus.org%2Fcourse%3Fcourseid%3Dgrokking-dynamic-programming)
+### [Grokking Dynamic Programming Patterns for Coding Interviews](https://www.designgurus.io/course/grokking-dynamic-programming?aff=kJSIoU)
 
-Brought to you by the same folks behind the famous ["Grokking the Coding Interview"](https://designgurus.org/link/kJSIoU?url=https%3A%2F%2Fdesigngurus.org%2Fcourse%3Fcourseid%3Dgrokking-the-coding-interview), this is one of the rare few courses focused on helping you get better at Dynamic Programming questions. If you are interviewing for companies who are famous for asking Dynamic Programming questions (-cough- Google -cough-), this course should be helpful.
+Brought to you by the same folks behind the famous ["Grokking the Coding Interview"](https://www.designgurus.io/course/grokking-the-coding-interview?aff=kJSIoU), this is one of the rare few courses focused on helping you get better at Dynamic Programming questions. If you are interviewing for companies who are famous for asking Dynamic Programming questions (-cough- Google -cough-), this course should be helpful.
 
 <AlgorithmCourses />
diff --git a/apps/website/contents/algorithms/graph.md b/apps/website/contents/algorithms/graph.md
index 5da3ec592c..b8f7fc450d 100644
--- a/apps/website/contents/algorithms/graph.md
+++ b/apps/website/contents/algorithms/graph.md
@@ -155,7 +155,7 @@ While DFS is implemented using recursion in this sample, it could also be implem
 
 :::
 
-For additional tips on BFS and DFS, you can refer to this [LeetCode post](https://leetcode.com/problems/pacific-atlantic-water-flow/discuss/90774/Python-solution-with-detailed-explanation)
+For additional tips on BFS and DFS, you can refer to this [LeetCode post](https://leetcode.com/problems/pacific-atlantic-water-flow/discuss/90774/Python-solution-with-detailed-explanation/)
 
 ### Topological sorting
 
@@ -197,7 +197,7 @@ print(graph_topo_sort(4, [[0, 1], [0, 2], [2, 1], [3, 0]]))
 _These are essential questions to practice if you're studying for this topic._
 
 - [Number of Islands](https://leetcode.com/problems/number-of-islands/)
-- [Flood Fill](https://leetcode.com/problems/flood-fill)
+- [Flood Fill](https://leetcode.com/problems/flood-fill/)
 - [01 Matrix](https://leetcode.com/problems/01-matrix/)
 
 ## Recommended practice questions
@@ -206,7 +206,7 @@ _These are recommended questions to practice after you have studied for the topi
 
 - Breadth-first search
   - [Rotting Oranges](https://leetcode.com/problems/rotting-oranges/)
-  - [Minimum Knight Moves (LeetCode Premium)](https://leetcode.com/problems/minimum-knight-moves)
+  - [Minimum Knight Moves (LeetCode Premium)](https://leetcode.com/problems/minimum-knight-moves/)
 - Either search
   - [Clone Graph](https://leetcode.com/problems/clone-graph/)
   - [Pacific Atlantic Water Flow](https://leetcode.com/problems/pacific-atlantic-water-flow/)
diff --git a/apps/website/contents/algorithms/hash-table.md b/apps/website/contents/algorithms/hash-table.md
index d376d011a5..cff64760e6 100644
--- a/apps/website/contents/algorithms/hash-table.md
+++ b/apps/website/contents/algorithms/hash-table.md
@@ -43,7 +43,7 @@ In the case of hash collisions, there are a number of collision resolution techn
 
 | Language | API |
 | --- | --- |
-| C++ | [`std::unordered_map`](https://docs.microsoft.com/en-us/cpp/standard-library/unordered-map) |
+| C++ | [`std::unordered_map`](https://learn.microsoft.com/en-us/cpp/standard-library/unordered-map) |
 | Java | [`java.util.Map`](https://docs.oracle.com/javase/10/docs/api/java/util/Map.html). Use [`java.util.HashMap`](https://docs.oracle.com/javase/10/docs/api/java/util/HashMap.html) |
 | Python | [`dict`](https://docs.python.org/3/tutorial/datastructures.html#dictionaries) |
 | JavaScript | [`Object`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) or [`Map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) |
@@ -68,8 +68,8 @@ _\* This is the average case, but in interviews we only care about the average c
 
 _These are essential questions to practice if you're studying for this topic._
 
-- [Two Sum](https://leetcode.com/problems/two-sum)
-- [Ransom Note](https://leetcode.com/problems/ransom-note)
+- [Two Sum](https://leetcode.com/problems/two-sum/)
+- [Ransom Note](https://leetcode.com/problems/ransom-note/)
 
 ## Recommended practice questions
 
diff --git a/apps/website/contents/algorithms/heap.md b/apps/website/contents/algorithms/heap.md
index 9b6f09a922..e778698487 100644
--- a/apps/website/contents/algorithms/heap.md
+++ b/apps/website/contents/algorithms/heap.md
@@ -38,9 +38,9 @@ In the context of algorithm interviews, heaps and priority queues can be treated
 
 | Language | API |
 | --- | --- |
-| C++ | [`std::priority_queue`](https://docs.microsoft.com/en-us/cpp/standard-library/priority-queue-class) |
+| C++ | [`std::priority_queue`](https://learn.microsoft.com/en-us/cpp/standard-library/priority-queue-class) |
 | Java | [`java.util.PriorityQueue`](https://docs.oracle.com/javase/10/docs/api/java/util/PriorityQueue.html) |
-| Python | [`heapq`](https://docs.python.org/library/heapq.html) |
+| Python | [`heapq`](https://docs.python.org/3/library/heapq.html) |
 | JavaScript | N/A |
 
 ## Time complexity
diff --git a/apps/website/contents/algorithms/queue.md b/apps/website/contents/algorithms/queue.md
index 7341992f31..8feb8e914b 100644
--- a/apps/website/contents/algorithms/queue.md
+++ b/apps/website/contents/algorithms/queue.md
@@ -38,7 +38,7 @@ Breadth-first search is commonly implemented using queues.
 
 | Language | API |
 | --- | --- |
-| C++ | [`std::queue`](https://docs.microsoft.com/en-us/cpp/standard-library/queue-class) |
+| C++ | [`std::queue`](https://learn.microsoft.com/en-us/cpp/standard-library/queue-class) |
 | Java | [`java.util.Queue`](https://docs.oracle.com/javase/10/docs/api/java/util/Queue.html).Use [`java.util.ArrayDeque`](https://docs.oracle.com/javase/10/docs/api/java/util/ArrayDeque.html) |
 | Python | [`queue`](https://docs.python.org/3/library/queue.html) |
 | JavaScript | N/A |
@@ -67,15 +67,15 @@ Most languages don't have a built-in Queue class which can be used, and candidat
 
 _These are essential questions to practice if you're studying for this topic._
 
-- [Implement Stack using Queues](https://leetcode.com/problems/implement-stack-using-queues)
+- [Implement Stack using Queues](https://leetcode.com/problems/implement-stack-using-queues/)
 
 ## Recommended practice questions
 
 _These are recommended questions to practice after you have studied for the topic and have practiced the essential questions._
 
-- [Implement Queue using Stacks](https://leetcode.com/problems/implement-queue-using-stacks)
-- [Design Circular Queue](https://leetcode.com/problems/design-circular-queue)
-- [Design Hit Counter (LeetCode Premium)](https://leetcode.com/problems/design-hit-counter)
+- [Implement Queue using Stacks](https://leetcode.com/problems/implement-queue-using-stacks/)
+- [Design Circular Queue](https://leetcode.com/problems/design-circular-queue/)
+- [Design Hit Counter (LeetCode Premium)](https://leetcode.com/problems/design-hit-counter/)
 
 ## Recommended courses
 
diff --git a/apps/website/contents/algorithms/recursion.md b/apps/website/contents/algorithms/recursion.md
index 34cb1659b4..55ea04e197 100644
--- a/apps/website/contents/algorithms/recursion.md
+++ b/apps/website/contents/algorithms/recursion.md
@@ -45,7 +45,7 @@ Many algorithms relevant in coding interviews make heavy use of recursion - bina
 ## Learning resources
 
 - Readings
-  - [Recursion](https://www.cs.utah.edu/~germain/PPS/Topics/recursion.html), University of Utah
+  - [Recursion](https://users.cs.utah.edu/~germain/PPS/Topics/recursion.html), University of Utah
 - Videos
   - [Tail Recursion](https://www.coursera.org/lecture/programming-languages/tail-recursion-YZic1), University of Washington
 
diff --git a/apps/website/contents/algorithms/sorting-searching.md b/apps/website/contents/algorithms/sorting-searching.md
index 140590b67e..e67c818711 100644
--- a/apps/website/contents/algorithms/sorting-searching.md
+++ b/apps/website/contents/algorithms/sorting-searching.md
@@ -45,8 +45,8 @@ While you're unlikely to be asked to implement a sorting algorithm from scratch
   - [Counting Linearly With Counting Sort](https://medium.com/basecs/counting-linearly-with-counting-sort-cd8516ae09b3), basecs
   - [Getting To The Root Of Sorting With Radix Sort](https://medium.com/basecs/getting-to-the-root-of-sorting-with-radix-sort-f8e9240d4224), basecs
 - Videos
-  - [Heapsort](https://youtu.be/ryRfapIQHW0) ([slides](https://samuelalbanie.com/files/digest-slides/2022-12-brief-guide-to-heapsort-and-binary-heaps.pdf)), Samuel Albanie, University of Cambridge
-  - [Quicksort](https://youtu.be/kbiKn1K08RM) ([slides](https://samuelalbanie.com/files/digest-slides/2023-01-brief-guide-to-quicksort.pdf)), Samuel Albanie, University of Cambridge
+  - [Heapsort](https://www.youtube.com/watch?v=ryRfapIQHW0&feature=youtu.be) ([slides](https://samuelalbanie.com/files/digest-slides/2022-12-brief-guide-to-heapsort-and-binary-heaps.pdf)), Samuel Albanie, University of Cambridge
+  - [Quicksort](https://www.youtube.com/watch?v=kbiKn1K08RM&feature=youtu.be) ([slides](https://samuelalbanie.com/files/digest-slides/2023-01-brief-guide-to-quicksort.pdf)), Samuel Albanie, University of Cambridge
   - [Lower bounds for comparison sorts](https://www.youtube.com/watch?v=JWSiXs9aB5U) ([slides](https://samuelalbanie.com/files/digest-slides/2023-01-brief-guide-to-comparison-sorting-lower-bounds.pdf)), Samuel Albanie, University of Cambridge
   - [Counting sort](https://www.youtube.com/watch?v=0aMcZpAySjw) ([slides](https://samuelalbanie.com/files/digest-slides/2023-01-brief-guide-to-counting-sort.pdf)), Samuel Albanie, University of Cambridge
   - [Radix sort](https://www.youtube.com/watch?v=HzPbzQi9404) ([slides](https://samuelalbanie.com/files/digest-slides/2023-01-brief-guide-to-radix-sort.pdf)), Samuel Albanie, University of Cambridge
diff --git a/apps/website/contents/algorithms/stack.md b/apps/website/contents/algorithms/stack.md
index 2b8889ccef..5f201daa8d 100644
--- a/apps/website/contents/algorithms/stack.md
+++ b/apps/website/contents/algorithms/stack.md
@@ -38,7 +38,7 @@ Stacks are an important way of supporting nested or recursive function calls and
 
 | Language | API |
 | --- | --- |
-| C++ | [`std::stack`](https://docs.microsoft.com/en-us/cpp/standard-library/stack-class) |
+| C++ | [`std::stack`](https://learn.microsoft.com/en-us/cpp/standard-library/stack-class) |
 | Java | [`java.util.Stack`](https://docs.oracle.com/javase/10/docs/api/java/util/Stack.html) |
 | Python | Simulated using [List](https://docs.python.org/3/tutorial/datastructures.html) |
 | JavaScript | Simulated using [Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array) |
@@ -67,22 +67,22 @@ TODO: Monotonic stacks -->
 
 _These are essential questions to practice if you're studying for this topic._
 
-- [Valid Parentheses](https://leetcode.com/problems/valid-parentheses)
-- [Implement Queue using Stacks](https://leetcode.com/problems/implement-queue-using-stacks)
+- [Valid Parentheses](https://leetcode.com/problems/valid-parentheses/)
+- [Implement Queue using Stacks](https://leetcode.com/problems/implement-queue-using-stacks/)
 
 ## Recommended practice questions
 
 _These are recommended questions to practice after you have studied for the topic and have practiced the essential questions._
 
 - [Implement Stack using Queues](https://leetcode.com/problems/implement-stack-using-queues/)
-- [Min Stack](https://leetcode.com/problems/min-stack)
-- [Asteroid Collision](https://leetcode.com/problems/asteroid-collision)
-- [Evaluate Reverse Polish Notation](https://leetcode.com/problems/evaluate-reverse-polish-notation)
-- [Basic Calculator](https://leetcode.com/problems/basic-calculator)
-- [Basic Calculator II](https://leetcode.com/problems/basic-calculator-ii)
-- [Daily Temperatures](https://leetcode.com/problems/daily-temperatures)
-- [Trapping Rain Water](https://leetcode.com/problems/trapping-rain-water)
-- [Largest Rectangle in Histogram](https://leetcode.com/problems/largest-rectangle-in-histogram)
+- [Min Stack](https://leetcode.com/problems/min-stack/)
+- [Asteroid Collision](https://leetcode.com/problems/asteroid-collision/)
+- [Evaluate Reverse Polish Notation](https://leetcode.com/problems/evaluate-reverse-polish-notation/)
+- [Basic Calculator](https://leetcode.com/problems/basic-calculator/)
+- [Basic Calculator II](https://leetcode.com/problems/basic-calculator-ii/)
+- [Daily Temperatures](https://leetcode.com/problems/daily-temperatures/)
+- [Trapping Rain Water](https://leetcode.com/problems/trapping-rain-water/)
+- [Largest Rectangle in Histogram](https://leetcode.com/problems/largest-rectangle-in-histogram/)
 
 ## Recommended courses
 
diff --git a/apps/website/contents/algorithms/string.md b/apps/website/contents/algorithms/string.md
index c7c183f498..046d4872b6 100644
--- a/apps/website/contents/algorithms/string.md
+++ b/apps/website/contents/algorithms/string.md
@@ -119,7 +119,7 @@ When a question is about counting the number of palindromes, a common trick is t
 
 _These are essential questions to practice if you're studying for this topic._
 
-- [Valid Anagram](https://leetcode.com/problems/valid-anagram)
+- [Valid Anagram](https://leetcode.com/problems/valid-anagram/)
 - [Valid Palindrome](https://leetcode.com/problems/valid-palindrome/)
 - [Longest Substring Without Repeating Characters](https://leetcode.com/problems/longest-substring-without-repeating-characters/)
 
@@ -128,7 +128,7 @@ _These are essential questions to practice if you're studying for this topic._
 _These are recommended questions to practice after you have studied for the topic and have practiced the essential questions._
 
 - [Longest Repeating Character Replacement](https://leetcode.com/problems/longest-repeating-character-replacement/)
-- [Find All Anagrams in a String](https://leetcode.com/problems/find-all-anagrams-in-a-string)
+- [Find All Anagrams in a String](https://leetcode.com/problems/find-all-anagrams-in-a-string/)
 - [Minimum Window Substring](https://leetcode.com/problems/minimum-window-substring/description/)
 - [Group Anagrams](https://leetcode.com/problems/group-anagrams/)
 - [Longest Palindromic Substring](https://leetcode.com/problems/longest-palindromic-substring/)
diff --git a/apps/website/contents/algorithms/trie.md b/apps/website/contents/algorithms/trie.md
index 72b4fb15f9..7b4a17703c 100644
--- a/apps/website/contents/algorithms/trie.md
+++ b/apps/website/contents/algorithms/trie.md
@@ -29,7 +29,7 @@ Be familiar with implementing from scratch, a `Trie` class and its `add`, `remov
 
 - Readings
   - [Trying to Understand Tries](https://medium.com/basecs/trying-to-understand-tries-3ec6bede0014), basecs
-  - [Implement Trie (Prefix Tree)](https://leetcode.com/articles/implement-trie-prefix-tree/), LeetCode
+  - [Implement Trie (Prefix Tree)](https://leetcode.com/problems/implement-trie-prefix-tree/solution/), LeetCode
 - Additional (only if you have time)
   - [Compressing Radix Trees Without (Too Many) Tears](https://medium.com/basecs/compressing-radix-trees-without-too-many-tears-a2e658adb9a0), basecs
 
@@ -56,14 +56,14 @@ Sometimes preprocessing a dictionary of words (given in a list) into a trie, wil
 
 _These are essential questions to practice if you're studying for this topic._
 
-- [Implement Trie (Prefix Tree)](https://leetcode.com/problems/implement-trie-prefix-tree)
+- [Implement Trie (Prefix Tree)](https://leetcode.com/problems/implement-trie-prefix-tree/)
 
 ## Recommended practice questions
 
 _These are recommended questions to practice after you have studied for the topic and have practiced the essential questions._
 
-- [Add and Search Word](https://leetcode.com/problems/add-and-search-word-data-structure-design)
-- [Word Break](https://leetcode.com/problems/word-break)
+- [Add and Search Word](https://leetcode.com/problems/design-add-and-search-words-data-structure/)
+- [Word Break](https://leetcode.com/problems/word-break/)
 - [Word Search II](https://leetcode.com/problems/word-search-ii/)
 
 ## Recommended courses
diff --git a/apps/website/contents/behavioral-interview-questions.md b/apps/website/contents/behavioral-interview-questions.md
index 6d62dda596..cabbd9d5ab 100644
--- a/apps/website/contents/behavioral-interview-questions.md
+++ b/apps/website/contents/behavioral-interview-questions.md
@@ -136,7 +136,7 @@ Source: [Glassdoor](https://www.glassdoor.com/Interview/Dropbox-Interview-Questi
 - Where do you want to be in five years?
 - Tell me about a time you needed information from someone who wasn't responsive. What did you do?
 
-Source: [Glassdoor](https://hired.com/blog/candidates/10-top-interview-questions-how-to-answer/)
+Source: Glassdoor
 
 ## Lyft Software Engineer behavioral interview questions
 
@@ -190,7 +190,7 @@ Source: [Glassdoor](https://www.glassdoor.com/Interview/Slack-Interview-Question
 - Why do you want to work here?
 - How do you handle disagreements with co-workers?
 
-Source: [Glassdoor](https://hired.com/blog/candidates/10-top-interview-questions-how-to-answer/)
+Source: Glassdoor
 
 ## Stripe Software Engineer behavioral interview questions
 
diff --git a/apps/website/contents/behavioral-interview-rubrics.md b/apps/website/contents/behavioral-interview-rubrics.md
index 12084fffb9..c52531ded9 100644
--- a/apps/website/contents/behavioral-interview-rubrics.md
+++ b/apps/website/contents/behavioral-interview-rubrics.md
@@ -16,7 +16,7 @@ keywords:
 sidebar_label: Behavioral interview rubrics
 ---
 
-_The following page is contributed by [Lior Neu-ner](https://www.linkedin.com/in/liornn/) — former Meta engineering manager and founder of [Remote Rocketship](http://remoterocketship.com/), a job board for remote tech jobs._
+_The following page is contributed by [Lior Neu-ner](https://www.linkedin.com/in/liornn/) — former Meta engineering manager and founder of [Remote Rocketship](https://remoterocketship.com/), a job board for remote tech jobs._
 
 ## How behavioral interviews are evaluated
 
diff --git a/apps/website/contents/behavioral-interview.md b/apps/website/contents/behavioral-interview.md
index 815b5a0f0d..cdeab25e1d 100644
--- a/apps/website/contents/behavioral-interview.md
+++ b/apps/website/contents/behavioral-interview.md
@@ -26,7 +26,7 @@ import InDocAd from './\_components/InDocAd';
 
 Succeeding in an engineering career involves more than just technical skills. People skills become more important as an engineer becomes more senior. Senior engineers should have the ability to lead and influence, resolve conflicts, anticipate risks, plan the roadmap, and more.
 
-Hiring a talented engineer that cannot work with others can ultimately be a net deficit for companies. Companies don't want to hire [brilliant jerks](http://www.brendangregg.com/blog/2017-11-13/brilliant-jerks.html). The company is better off not hiring a very talented engineer who refuses to work with others or causes an entire team to be unproductive. Companies want to hire the right person that will work well with the existing employees and help the team and company achieve greater heights, and behavioral interviews are one way of determining if someone will be good to work with from a non-technical standpoint.
+Hiring a talented engineer that cannot work with others can ultimately be a net deficit for companies. Companies don't want to hire [brilliant jerks](https://www.brendangregg.com/blog/2017-11-13/brilliant-jerks.html). The company is better off not hiring a very talented engineer who refuses to work with others or causes an entire team to be unproductive. Companies want to hire the right person that will work well with the existing employees and help the team and company achieve greater heights, and behavioral interviews are one way of determining if someone will be good to work with from a non-technical standpoint.
 
 Typically, behavioral interview questions can be split into several types:
 
@@ -100,5 +100,5 @@ If you would like to practice behavioral interviews with professional interviewe
 
 I don't really think one needs to attend a course on behavioral interviews, but your mileage may vary. I've seen candidates get rejected for failing the behavioral round even though they did super well on the coding and system design interviews. If you want to take a course on behavioral interviews, I'd recommend the following courses:
 
-- ["Behavioral Interviews" by Exponent](https://www.tryexponent.com/courses/behavioral?ref=techinterviewhandbook) - While Exponent also has courses on technical content, what really makes them stand out from the other interview preparation platform is their availability of content for non-software engineering roles such as Product Management and Product Marketing. Their behavioral interview course is a mix of videos (by the Exponent CEO himself!) and text, going through the most common questions and imparting you with techniques to help you ace the interview. To top it off, they also have an interview question bank for behavioral questions with responses from the platform's helpful community. While the subscription might be a little pricey for just the behavioral interviews content, they also offer quality technical content for [System Design](https://www.tryexponent.com/courses/system-design-interview?ref=techinterviewhandbook), [Data Structures](https://www.tryexponent.com/courses/swe-practice?ref=techinterviewhandbook) and [Algorithms](https://www.tryexponent.com/courses/algorithms?ref=techinterviewhandbook). The convenience of a one-stop platform which covers all aspects of technical interview preparation is very enticing.
+- ["Behavioral Interviews" by Exponent](https://www.tryexponent.com/courses/behavioral?ref=techinterviewhandbook) - While Exponent also has courses on technical content, what really makes them stand out from the other interview preparation platform is their availability of content for non-software engineering roles such as Product Management and Product Marketing. Their behavioral interview course is a mix of videos (by the Exponent CEO himself!) and text, going through the most common questions and imparting you with techniques to help you ace the interview. To top it off, they also have an interview question bank for behavioral questions with responses from the platform's helpful community. While the subscription might be a little pricey for just the behavioral interviews content, they also offer quality technical content for [System Design](https://www.tryexponent.com/courses/system-design-interviews?ref=techinterviewhandbook), [Data Structures](https://www.tryexponent.com/courses/swe-practice?ref=techinterviewhandbook) and [Algorithms](https://www.tryexponent.com/courses/algorithms?ref=techinterviewhandbook). The convenience of a one-stop platform which covers all aspects of technical interview preparation is very enticing.
 - ["Grokking the Behavioral Interview" on Educative](https://www.educative.io/courses/grokking-the-behavioral-interview?aff=x23W) - As per other courses on Educative, this course is text-based and they believe that text-based courses are the more efficient than video courses. One thing that stands out about this course is that they teach you **patterns** for behavioral interviews, not just about memorizing questions and preparing answers.
diff --git a/apps/website/contents/best-practice-questions.md b/apps/website/contents/best-practice-questions.md
index 96eb369610..3769eee381 100644
--- a/apps/website/contents/best-practice-questions.md
+++ b/apps/website/contents/best-practice-questions.md
@@ -19,7 +19,7 @@ import InDocAd from './\_components/InDocAd';
 
 :::tip
 
-As of April 2022, I've developed a [12-week study plan](./coding-interview-study-plan.md) which includes a curriculum for revision and practice questions. If you want to customize your own practice questions, I've also developed [Grind 75](https://www.techinterviewhandbook.org/grind75) which is a modern version of Blind 75 that you can customize.
+As of April 2022, I've developed a [12-week study plan](./coding-interview-study-plan.md) which includes a curriculum for revision and practice questions. If you want to customize your own practice questions, I've also developed [Grind 75](https://www.techinterviewhandbook.org/grind75/) which is a modern version of Blind 75 that you can customize.
 
 :::
 
@@ -27,7 +27,7 @@ Hey there, the author of Blind 75 here 👋!
 
 Practicing is the best way to prepare for coding interviews. LeetCode has over a thousand questions. Which should you practice? Hence years ago, I curated a list of the most important 75 questions on [LeetCode](https://leetcode.com). Many other LeetCode questions are a mash of the techniques from these individual questions. I used this list in my last job hunt to only do the important questions.
 
-I [shared this list on Blind](https://www.teamblind.com/post/New-Year-Gift---Curated-List-of-Top-100-LeetCode-Questions-to-Save-Your-Time-OaM1orEU) by extracting the questions from [my freeCodeCamp article](https://www.freecodecamp.org/news/coding-interviews-for-dummies-5e048933b82b/) to save peoples' time when revising and someone reposted this list on [the LeetCode forum](https://leetcode.com/discuss/general-discussion/460599/blind-75-leetcode-questions). It somehow blew up and became super famous in the coding interview scene, people even gave it a name - **Blind 75**. The Blind 75 questions as a LeetCode list can be found [here](https://leetcode.com/list/xi4ci4ig/).
+I [shared this list on Blind](https://www.teamblind.com/post/New-Year-Gift---Curated-List-of-Top-100-LeetCode-Questions-to-Save-Your-Time-OaM1orEU) by extracting the questions from [my freeCodeCamp article](https://www.freecodecamp.org/news/coding-interviews-for-dummies-5e048933b82b/) to save peoples' time when revising and someone reposted this list on [the LeetCode forum](https://leetcode.com/discuss/general-discussion/460599/blind-75-leetcode-questions/). It somehow blew up and became super famous in the coding interview scene, people even gave it a name - **Blind 75**. The Blind 75 questions as a LeetCode list can be found [here](https://leetcode.com/list/xi4ci4ig/).
 
 Years later, I further distilled the list down into only 50 questions and spread them across a 5-week schedule. Here is the suggested schedule for revising and practicing algorithm questions on LeetCode. Sign up for an account if you don't already have one, it's critical to your success in interviewing!
 
@@ -119,7 +119,7 @@ Week 4 builds up on knowledge from previous weeks but questions are of increased
 | Subtree of Another Tree | Easy | [Link](https://leetcode.com/problems/subtree-of-another-tree/) |
 | Lowest Common Ancestor of BST | Easy | [Link](https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/) |
 | Implement Trie (Prefix Tree) | Medium | [Link](https://leetcode.com/problems/implement-trie-prefix-tree/) |
-| Add and Search Word | Medium | [Link](https://leetcode.com/problems/add-and-search-word-data-structure-design/) |
+| Add and Search Word | Medium | [Link](https://leetcode.com/problems/design-add-and-search-words-data-structure/) |
 | Kth Smallest Element in a BST | Medium | [Link](https://leetcode.com/problems/kth-smallest-element-in-a-bst/) |
 | Merge K Sorted Lists | Hard | [Link](https://leetcode.com/problems/merge-k-sorted-lists/) |
 | Find Median from Data Stream | Hard | [Link](https://leetcode.com/problems/find-median-from-data-stream/) |
@@ -162,7 +162,7 @@ Practically speaking the return of investment (ROI) on studying and practicing f
 
 #### Dynamic programming course
 
-- [Grokking the Dynamic Programming Patterns for Coding Interviews](https://designgurus.org/link/kJSIoU?url=https%3A%2F%2Fdesigngurus.org%2Fcourse%3Fcourseid%3Dgrokking-dynamic-programming)
+- [Grokking the Dynamic Programming Patterns for Coding Interviews](https://www.designgurus.io/course/grokking-dynamic-programming?aff=kJSIoU)
 
 ## Quality courses
 
diff --git a/apps/website/contents/career-growth.md b/apps/website/contents/career-growth.md
index a74afb64d1..79bda0b046 100644
--- a/apps/website/contents/career-growth.md
+++ b/apps/website/contents/career-growth.md
@@ -14,12 +14,12 @@ After being hired, it's crucial to focus on your career growth so you don't stag
 - [The Pragmatic Engineer](https://newsletter.pragmaticengineer.com/)
 - [Level Up Software Engineering](https://levelupsoftwareengineering.substack.com/)
 - [Peak Performance](https://addyo.substack.com/)
-- [Engineer's Codex](https://engineercodex.substack.com/)
-- [Techlead Mentor](https://open.substack.com/pub/ravirajachar)
+- [Engineer's Codex](https://read.engineerscodex.com/)
+- [Techlead Mentor](https://newsletter.techleadmentor.com/)
 - [The Caring Techie](https://www.thecaringtechie.com/)
 - [Refactoring](https://refactoring.fm/)
-- [Strategize Your Career](https://strategizeyourcareer.substack.com/)
-- [Hungry Minds](https://hungryminds.dev/)
+- [Strategize Your Career](https://strategizeyourcareer.com/)
+- [Hungry Minds](https://www.hungryminds.dev/)
 - [Saiyan Growth Letter](https://www.saiyangrowthletter.com/)
 - [Data Engineering Newsletter](https://blog.dataengineer.io/)
 - [16x Engineer](https://16x.engineer/)
@@ -59,7 +59,7 @@ After being hired, it's crucial to focus on your career growth so you don't stag
 
 - [Taro](https://www.jointaro.com/)
 - [Kent C. Dodds Discord Community](https://kentcdodds.com/discord)
-- [GreatFrontEnd](https://discord.gg/NDFx8f6P6B)
+- [GreatFrontEnd](https://discord.com/invite/NDFx8f6P6B)
 
 ## References
 
diff --git a/apps/website/contents/choosing-between-companies.md b/apps/website/contents/choosing-between-companies.md
index c00e97d751..6784935ca0 100644
--- a/apps/website/contents/choosing-between-companies.md
+++ b/apps/website/contents/choosing-between-companies.md
@@ -13,7 +13,7 @@ Do your due diligence by researching on the companies before deciding!
 
 First and foremost, compensation. Most technical roles at tech companies would receive compensation in similar components - Base salary, Bonuses, Stocks, and Sign On. The [Understanding Compensation](./understanding-compensation.md) section goes into more detail. Some companies are more flexible in their offer and allow candidates to choose between higher base salary or higher stocks. Base salary is the most straightforward to understand and you are being paid that same amount regardless of how well/poorly the company is doing. Bonuses are also usually a percentage of the base salary, so a high base salary is great for the risk-adverse.
 
-Not all stock grants are equal as well. Some companies have linear vesting cycles (you vest the same amount every year), some companies like Amazon and Snap have backloaded schemes (you vest less in the earlier years, more later), and there are pay attention to cliffs as well. [Stripe and Lyft](https://www.theinformation.com/articles/stripe-and-lyft-speed-up-equity-payouts-to-first-year) recently changed their stock structure and announced that they will speed up equity payouts to the first year. This sounds good initially, [but in reality there are some nuances](https://tanay.substack.com/p/employee-compensation-and-one-year).
+Not all stock grants are equal as well. Some companies have linear vesting cycles (you vest the same amount every year), some companies like Amazon and Snap have backloaded schemes (you vest less in the earlier years, more later), and there are pay attention to cliffs as well. [Stripe and Lyft](https://www.theinformation.com/articles/stripe-and-lyft-speed-up-equity-payouts-to-first-year) recently changed their stock structure and announced that they will speed up equity payouts to the first year. This sounds good initially, [but in reality there are some nuances](https://www.tanayj.com/p/employee-compensation-and-one-year).
 
 Regardless of company, **always negotiate** your offer, especially if you have multiple offers to choose from! Having multiple offers in hand is the best bargaining chip you can have for negotiation and you should leverage it. We go into this more in the [Negotiation](./negotiation.md) section. Use [Rora](https://www.teamrora.com/?utm_source=techinterviewhandbook&utm_medium=referral&utm_content=website_choosing_between_companies) for risk-free negotiation services.
 
diff --git a/apps/website/contents/coding-interview-prep.md b/apps/website/contents/coding-interview-prep.md
index 9802da9098..1b0138ce53 100644
--- a/apps/website/contents/coding-interview-prep.md
+++ b/apps/website/contents/coding-interview-prep.md
@@ -81,7 +81,7 @@ How long does it take to prepare for a coding interview? It actually depends on
 
 To start preparing for your coding interviews, always begin with a plan. Calculate the amount of time you have left to realistically prepare for your interview from now till the day of the coding test, and carefully make a plan of the topics and questions you will cover per day, prioritizing the most important ones first.
 
-But how do you know which are the most important topics and questions to practice based on the time you have left? You may use the free [Grind 75 tool](https://www.techinterviewhandbook.org/grind75) (built by me) which produces coding interview study plans for varying lengths of preparation time. The algorithm behind it includes a ranking of questions by priority and also a balance between breadth and depth of topics covered.
+But how do you know which are the most important topics and questions to practice based on the time you have left? You may use the free [Grind 75 tool](https://www.techinterviewhandbook.org/grind75/) (built by me) which produces coding interview study plans for varying lengths of preparation time. The algorithm behind it includes a ranking of questions by priority and also a balance between breadth and depth of topics covered.
 
 If you have the luxury of time to prepare, it is recommended to spend around 3 months (2-3 hours per day) to prepare more holistically. I came up with a [personal 3-month study plan](./coding-interview-study-plan.md), which takes you from start to finish on which topics and questions to complete.
 
@@ -92,15 +92,15 @@ For the sake of memory retention and efficiency, it is best to study for a singl
 Fortunately, there are already excellent coding interview preparation resources which enable you to do this very easily and systematically:
 
 1. [AlgoMonster](https://shareasale.com/r.cfm?b=1873647&u=3114753&m=114505&urllink=&afftrack=)
-1. [Grokking the Coding Interview: Patterns for Coding Questions](https://designgurus.org/link/kJSIoU?url=https%3A%2F%2Fdesigngurus.org%2Fcourse%3Fcourseid%3Dgrokking-the-coding-interview)
+1. [Grokking the Coding Interview: Patterns for Coding Questions](https://www.designgurus.io/course/grokking-the-coding-interview?aff=kJSIoU)
 
 #### [AlgoMonster](https://shareasale.com/r.cfm?b=1873647&u=3114753&m=114505&urllink=&afftrack=)
 
 Apart from helping you master important coding interview data structures and algorithm questions through practice and easy to understand guides, AlgoMonster has the added perk of synthesizing [common interview question patterns](https://algo.monster/problems/stats) that you could apply to solve any other questions you have never encountered before. Made by Google engineers, this is definitely a quality platform to use as compared to the unstructured nature of LeetCode grinding. Data structures and algorithms questions are covered in all the common languages - Python, Java, C#, JavaScript, C++, Golang, and more. [**Join today for a 70% discount →**](https://shareasale.com/r.cfm?b=1873647&u=3114753&m=114505&urllink=&afftrack=)
 
-#### [Grokking the Coding Interview: Patterns for Coding Questions](https://designgurus.org/link/kJSIoU?url=https%3A%2F%2Fdesigngurus.org%2Fcourse%3Fcourseid%3Dgrokking-the-coding-interview)
+#### [Grokking the Coding Interview: Patterns for Coding Questions](https://www.designgurus.io/course/grokking-the-coding-interview?aff=kJSIoU)
 
-This course by Design Gurus expands upon the questions on the recommended practice questions but approaches the practicing from a questions pattern perspective, which is an approach I also agree with for learning and have personally used to get better at coding interviews. The course allows you to practice selected questions in Java, Python, C++, JavaScript and also provides sample solutions in those languages along with step-by-step visualizations. **Learn and understand patterns, not memorize answers!** [**Get lifetime access today →**](https://designgurus.org/link/kJSIoU?url=https%3A%2F%2Fdesigngurus.org%2Fcourse%3Fcourseid%3Dgrokking-the-coding-interview)
+This course by Design Gurus expands upon the questions on the recommended practice questions but approaches the practicing from a questions pattern perspective, which is an approach I also agree with for learning and have personally used to get better at coding interviews. The course allows you to practice selected questions in Java, Python, C++, JavaScript and also provides sample solutions in those languages along with step-by-step visualizations. **Learn and understand patterns, not memorize answers!** [**Get lifetime access today →**](https://www.designgurus.io/course/grokking-the-coding-interview?aff=kJSIoU)
 
 <InDocAd />
 
@@ -158,7 +158,7 @@ Best of all, AlgoMonster is not subscription-based - pay a one-time fee and get
 
 This course by Design Gurus expands upon the questions on the recommended practice questions but approaches the practicing from a questions pattern perspective, which is an approach I also agree with for learning and have personally used to get better at coding interviews. The course allows you to practice selected questions in Java, Python, C++, JavaScript and also provides sample solutions in those languages.
 
-Learn and understand patterns, not memorize answers! [Join today for a 10% discount →](https://designgurus.org/link/kJSIoU?url=https%3A%2F%2Fdesigngurus.org%2Fcourse%3Fcourseid%3Dgrokking-the-coding-interview)
+Learn and understand patterns, not memorize answers! [Join today for a 10% discount →](https://www.designgurus.io/course/grokking-the-coding-interview?aff=kJSIoU)
 
 ---
 
diff --git a/apps/website/contents/coding-interview-techniques.md b/apps/website/contents/coding-interview-techniques.md
index 9e90f4eeb3..839bca96de 100644
--- a/apps/website/contents/coding-interview-techniques.md
+++ b/apps/website/contents/coding-interview-techniques.md
@@ -267,7 +267,7 @@ Note that in Software Engineering, mutating input data is generally frowned upon
 
 The [Dutch National Flag](https://leetcode.com/problems/sort-colors/) problem could be easily solved with O(n) time and O(n) space by creating a new array and filling it up with the respective values in a sorted fashion. As an added challenge and space optimization, the interviewer will usually ask for an O(n) time and O(1) space solution which involves sorting the input array in-place.
 
-An example of using the original array as a hash table is the [First Missing Positive](https://leetcode.com/problems/first-missing-positive) question. After the first for loop, all the values in the array are positive, and you can indicate presence of a number by negating the value at the index corresponding to the number. To indicate 4 is present, negate `nums[4]`.
+An example of using the original array as a hash table is the [First Missing Positive](https://leetcode.com/problems/first-missing-positive/) question. After the first for loop, all the values in the array are positive, and you can indicate presence of a number by negating the value at the index corresponding to the number. To indicate 4 is present, negate `nums[4]`.
 
 #### 2. Change a data structure
 
diff --git a/apps/website/contents/engineering-levels.md b/apps/website/contents/engineering-levels.md
index 24982fca39..2e53920679 100644
--- a/apps/website/contents/engineering-levels.md
+++ b/apps/website/contents/engineering-levels.md
@@ -71,6 +71,6 @@ These roles can vary widely between companies, and some organizations may have a
 
 - [Software Engineering Salaries at Google](https://careerkarma.com/blog/software-engineering-salary-google/)
 - [Dropbox Engineering Career Framework](https://dropbox.github.io/dbx-career-framework/overview.html)
-- [Engineering Levels at SoundCloud](https://developers.soundcloud.com/blog/engineering-levels)
+- [Engineering Levels at SoundCloud](https://developers.soundcloud.com/blog/engineering-levels/)
 - [Every Public Engineering Career Ladder](https://www.swyx.io/career-ladders)
 - [progression.fyi](https://progression.fyi/)
diff --git a/apps/website/contents/mock-interviews.md b/apps/website/contents/mock-interviews.md
index c4e22e7206..670dbc9b72 100644
--- a/apps/website/contents/mock-interviews.md
+++ b/apps/website/contents/mock-interviews.md
@@ -24,13 +24,13 @@ Interviewing is a skill that you can get better at. The steps mentioned above ca
 
 ## [interviewing.io](https://iio.sh/r/DMCa)
 
-A great resource for practicing mock coding interviews would be [interviewing.io](https://iio.sh/r/DMCa). [interviewing.io](https://iio.sh/r/DMCa) provides anonymous practice technical interviews with Google and Facebook engineers, which can lead to real jobs and internships. By virtue of being anonymous during the interview, the inclusive interview process is de-biased and low risk. At the end of the interview, both interviewer and interviewees can provide feedback to each other for the purpose of improvement. Doing well in your mock interviews will unlock the jobs page and allow candidates to book interviews (also anonymously) with top companies like Uber, Lyft, Quora, Asana and more. You can also book mock interviews for more specific roles such as Mobile, Front End, Engineering Management. For those who are totally new to technical interviews, you can even view [recorded interviews](https://interviewing.io/recordings) and see how phone interviews are like. Read more about them [here](https://techcrunch.com/2017/09/27/interviewing-io-hopes-to-close-the-engineer-diversity-gap-with-anonymous-interviews/).
+A great resource for practicing mock coding interviews would be [interviewing.io](https://iio.sh/r/DMCa). [interviewing.io](https://iio.sh/r/DMCa) provides anonymous practice technical interviews with Google and Facebook engineers, which can lead to real jobs and internships. By virtue of being anonymous during the interview, the inclusive interview process is de-biased and low risk. At the end of the interview, both interviewer and interviewees can provide feedback to each other for the purpose of improvement. Doing well in your mock interviews will unlock the jobs page and allow candidates to book interviews (also anonymously) with top companies like Uber, Lyft, Quora, Asana and more. You can also book mock interviews for more specific roles such as Mobile, Front End, Engineering Management. For those who are totally new to technical interviews, you can even view [recorded interviews](https://interviewing.io/mocks) and see how phone interviews are like. Read more about them [here](https://techcrunch.com/2017/09/27/interviewing-io-hopes-to-close-the-engineer-diversity-gap-with-anonymous-interviews/).
 
-I have used [interviewing.io](https://iio.sh/r/DMCa) both as an interviewer and an interviewee and found the experience to be really great! [Aline Lerner](https://twitter.com/alinelernerLLC), the CEO and co-founder of [interviewing.io](https://iio.sh/r/DMCa) and her team are passionate about revolutionizing the technical interview process and helping candidates to improve their skills at interviewing. She has also published a number of technical interview-related articles on the [interviewing.io blog](http://blog.interviewing.io/).
+I have used [interviewing.io](https://iio.sh/r/DMCa) both as an interviewer and an interviewee and found the experience to be really great! [Aline Lerner](https://twitter.com/alinelernerLLC), the CEO and co-founder of [interviewing.io](https://iio.sh/r/DMCa) and her team are passionate about revolutionizing the technical interview process and helping candidates to improve their skills at interviewing. She has also published a number of technical interview-related articles on the [interviewing.io blog](https://interviewing.io/blog).
 
 ## Pramp
 
-Another platform that allows you to practice coding interviews is [Pramp](https://pramp.com). Where [interviewing.io](https://iio.sh/r/DMCa) matches potential job seekers with seasoned technical interviewers, Pramp takes a different approach. Pramp pairs you up with another peer who is also a job seeker and both of you take turns to assume the role of interviewer and interviewee. Pramp also prepares questions for you, along with suggested solutions and prompts to guide the interviewee.
+Another platform that allows you to practice coding interviews is [Pramp](https://www.pramp.com/). Where [interviewing.io](https://iio.sh/r/DMCa) matches potential job seekers with seasoned technical interviewers, Pramp takes a different approach. Pramp pairs you up with another peer who is also a job seeker and both of you take turns to assume the role of interviewer and interviewee. Pramp also prepares questions for you, along with suggested solutions and prompts to guide the interviewee.
 
 Personally, I am not that fond of Pramp's approach because if I were to interview someone, I would rather choose a question I am familiar with. Also, many users of the platform do not have the experience of being interviewers and that can result in a horrible interview experience. There was once where my matched peer, as the interviewer, did not have the right understanding of the question and attempted to lead me down the wrong path of solving the question. However, this is more of a problem of the candidate than the platform though.
 
@@ -42,7 +42,7 @@ Hello Interview uses a combination of AI and expert FAANG staff engineers and ma
 
 Hello Interview offers included services from resume reviews to salary negotiation and offer decision support ensuring you're able to minimize the time spent preparing and maximize the result of your interview journey.
 
-## [Meetapro](https://meetapro.com/?utm_source=techinterviewhandbook)
+## [Meetapro](https://www.meetapro.com/?utm_source=techinterviewhandbook)
 
 **Disclaimer: This section was added by the Meetapro team**
 
diff --git a/apps/website/contents/negotiation-rules.md b/apps/website/contents/negotiation-rules.md
index f1deb8f432..b01a68988f 100644
--- a/apps/website/contents/negotiation-rules.md
+++ b/apps/website/contents/negotiation-rules.md
@@ -22,7 +22,7 @@ keywords:
 
 import InDocAd from './\_components/InDocAd';
 
-Key points extracted from "Ten Rules for Negotiating a Job Offer" [Part 1](http://haseebq.com/my-ten-rules-for-negotiating-a-job-offer/) and [Part 2](https://haseebq.com/how-not-to-bomb-your-offer-negotiation/) by Haseeb Qureshi.
+Key points extracted from "Ten Rules for Negotiating a Job Offer" [Part 1](https://haseebq.com/my-ten-rules-for-negotiating-a-job-offer/) and [Part 2](https://haseebq.com/how-not-to-bomb-your-offer-negotiation/) by Haseeb Qureshi.
 
 ## Get everything in writing
 
diff --git a/apps/website/contents/software-engineering-interview-guide.md b/apps/website/contents/software-engineering-interview-guide.md
index 5c38ef93c0..c0a1424ec8 100644
--- a/apps/website/contents/software-engineering-interview-guide.md
+++ b/apps/website/contents/software-engineering-interview-guide.md
@@ -131,13 +131,13 @@ However, LeetCode has thousands of questions and it can be daunting to know wher
 
 The recommended time period to set aside for coding interview preparation is 3 months (11 hours a week i.e. 2-3 hours a day) for a more holistic preparation. I shared my [3 month study plan here](./coding-interview-study-plan.md), which provides a list of coding interview topics with resources and practice questions that you should work through in order of priority every week. I will also be adding content on recommended 1 month and 1 week study plans soon.
 
-If you have less than 3 months to prepare, you can generate your own study plans using the [Grind 75 tool](https://www.techinterviewhandbook.org/grind75) (built by me) which generates recommended study plans for coding interviews based on the time you have left. The algorithm behind it includes a ranking of questions by priority and also a balance between breadth and depth of topics covered.
+If you have less than 3 months to prepare, you can generate your own study plans using the [Grind 75 tool](https://www.techinterviewhandbook.org/grind75/) (built by me) which generates recommended study plans for coding interviews based on the time you have left. The algorithm behind it includes a ranking of questions by priority and also a balance between breadth and depth of topics covered.
 
 ### Resources to use in your practice
 
 In the market, there are plenty of resources vying for your attention, plenty of them just vying for your money but not providing any value. If I had to prioritize - these are the top coding interview preparation resources I would use in tandem:
 
-1. [Grokking the Coding Interview: Patterns for Coding Questions](https://designgurus.org/link/kJSIoU?url=https%3A%2F%2Fdesigngurus.org%2Fcourse%3Fcourseid%3Dgrokking-the-coding-interview)
+1. [Grokking the Coding Interview: Patterns for Coding Questions](https://www.designgurus.io/course/grokking-the-coding-interview?aff=kJSIoU)
 1. [AlgoMonster](https://shareasale.com/r.cfm?b=1873647&u=3114753&m=114505&urllink=&afftrack=)
 1. My (free) coding interview best practices guide
 1. My (free) coding interview techniques guide
@@ -147,9 +147,9 @@ In the market, there are plenty of resources vying for your attention, plenty of
 
 Apart from helping you master important coding interview data structures and algorithm questions through practice and easy to understand guides, AlgoMonster has the added perk of synthesizing [common interview question patterns](https://algo.monster/problems/stats) that you could apply to solve any other questions you have never encountered before. Made by Google engineers, this is definitely a quality platform to use as compared to the unstructured nature of LeetCode grinding. Data structures and algorithms questions are covered in all the common languages - Python, Java, C#, JavaScript, C++, Golang, and more. [**Join today for a 70% discount →**](https://shareasale.com/r.cfm?b=1873647&u=3114753&m=114505&urllink=&afftrack=)
 
-#### [Grokking the Coding Interview: Patterns for Coding Questions](https://designgurus.org/link/kJSIoU?url=https%3A%2F%2Fdesigngurus.org%2Fcourse%3Fcourseid%3Dgrokking-the-coding-interview)
+#### [Grokking the Coding Interview: Patterns for Coding Questions](https://www.designgurus.io/course/grokking-the-coding-interview?aff=kJSIoU)
 
-This course by Design Gurus expands upon the questions on the recommended practice questions but approaches the practicing from a questions pattern perspective, which is an approach I also agree with for learning and have personally used to get better at coding interviews. The course allows you to practice selected questions in Java, Python, C++, JavaScript and also provides sample solutions in those languages along with step-by-step visualizations. **Learn and understand patterns, not memorize answers!** [**Get lifetime access today →**](https://designgurus.org/link/kJSIoU?url=https%3A%2F%2Fdesigngurus.org%2Fcourse%3Fcourseid%3Dgrokking-the-coding-interview)
+This course by Design Gurus expands upon the questions on the recommended practice questions but approaches the practicing from a questions pattern perspective, which is an approach I also agree with for learning and have personally used to get better at coding interviews. The course allows you to practice selected questions in Java, Python, C++, JavaScript and also provides sample solutions in those languages along with step-by-step visualizations. **Learn and understand patterns, not memorize answers!** [**Get lifetime access today →**](https://www.designgurus.io/course/grokking-the-coding-interview?aff=kJSIoU)
 
 #### My (free) coding interview best practices guide
 
@@ -188,9 +188,9 @@ The objective of system design interviews is to evaluate a candidate's skill at
 Some of the best system design interview preparation resources include:
 
 1. [ByteByteGo](https://bytebytego.com?fpr=techinterviewhandbook) - This is a new System Design course by Alex Xu, author of the System Design Interview books, a bestseller on Amazon. The course covers system designs basics, then goes into deep dives of the design of over 10 famous common products (e.g. [Designing YouTube](https://bytebytego.com/courses/system-design-interview/design-youtube), Facebook Newsfeed, etc) and multiple big data and storage systems (e.g. [Designing a Chat System](https://bytebytego.com/courses/system-design-interview/design-a-chat-system)). For each deep dive, concepts are explained and comprehensive diagrams are used, making it very approachable for any seniority level.
-1. ["Grokking the System Design Interview" by Design Gurus](https://designgurus.org/link/kJSIoU?url=https%3A%2F%2Fdesigngurus.org%2Fcourse%3Fcourseid%3Dgrokking-the-system-design-interview) - This is probably the most famous system design interview course on the internet and what makes it different from most other courses out there is that it is purely text-based, which is great for people who prefer reading over watching videos (such as myself!). It contains a repository of the popular system design problems along with a glossary of system design basics. I've personally completed this course and have recommended many others to use this. Highly recommended!
-1. ["System Design Interview Course" by Exponent](https://www.tryexponent.com/courses/system-design-interview?ref=techinterviewhandbook) - This course covers system designs basics and has a huge database of popular system design questions with videos of mock interviews. Some of the questions have text answers and a database schema and APIs for reference (which I find helpful). While the subscription might be a little pricey for just the system design interviews content, they also offer quality technical content for [Data Structures](https://www.tryexponent.com/courses/swe-practice?ref=techinterviewhandbook), [Algorithms](https://www.tryexponent.com/courses/algorithms?ref=techinterviewhandbook) and [Behavioral Interviews](https://www.tryexponent.com/courses/behavioral?ref=techinterviewhandbook). The convenience of a one-stop platform which covers all aspects of technical interview preparation is very enticing.
-1. ["Grokking the Advanced System Design Interview" by Design Gurus](https://designgurus.org/link/kJSIoU?url=https%3A%2F%2Fdesigngurus.org%2Fcourse%3Fcourseid%3Dgrokking-the-advanced-system-design-interview) - I haven't tried this but it's by the same people who created "Grokking the System Design Interview", so it should be good! In my opinion you probably wouldn't need this unless you're very senior or going for a specialist position.
+1. ["Grokking the System Design Interview" by Design Gurus](https://www.designgurus.io/course/grokking-the-system-design-interview?aff=kJSIoU) - This is probably the most famous system design interview course on the internet and what makes it different from most other courses out there is that it is purely text-based, which is great for people who prefer reading over watching videos (such as myself!). It contains a repository of the popular system design problems along with a glossary of system design basics. I've personally completed this course and have recommended many others to use this. Highly recommended!
+1. ["System Design Interview Course" by Exponent](https://www.tryexponent.com/courses/system-design-interviews?ref=techinterviewhandbook) - This course covers system designs basics and has a huge database of popular system design questions with videos of mock interviews. Some of the questions have text answers and a database schema and APIs for reference (which I find helpful). While the subscription might be a little pricey for just the system design interviews content, they also offer quality technical content for [Data Structures](https://www.tryexponent.com/courses/swe-practice?ref=techinterviewhandbook), [Algorithms](https://www.tryexponent.com/courses/algorithms?ref=techinterviewhandbook) and [Behavioral Interviews](https://www.tryexponent.com/courses/behavioral?ref=techinterviewhandbook). The convenience of a one-stop platform which covers all aspects of technical interview preparation is very enticing.
+1. ["Grokking the Advanced System Design Interview" by Design Gurus](https://www.designgurus.io/course/grokking-the-advanced-system-design-interview?aff=kJSIoU) - I haven't tried this but it's by the same people who created "Grokking the System Design Interview", so it should be good! In my opinion you probably wouldn't need this unless you're very senior or going for a specialist position.
 
 [Check out other Systems Design preparation guides and resources here.](./system-design.md)
 
diff --git a/apps/website/contents/system-design.md b/apps/website/contents/system-design.md
index f799748ac7..ab5700fb53 100644
--- a/apps/website/contents/system-design.md
+++ b/apps/website/contents/system-design.md
@@ -47,15 +47,15 @@ System design content is still work-in-progress, but the following are some reso
 
 ## Quality resources
 
-- ["Front End System Design Guidebook" by GreatFrontEnd](https://www.greatfrontend.com/system-design?fpr=yangshun): A free system design guidebook by yours truly, focused on system design for the front end, e.g. how to design Facebook's News Feed, Autocomplete components, Image Carousels and more.
-- [System Design in a Hurry](https://www.hellointerview.com/learn/system-design): Free course built by ex- Meta and Amazon engineers, covers the basics of delivery, high-level concepts, and core technologies. Worked "common problems" walk you through various design decisions in real problems and how to navigate them.
+- ["Front End System Design Guidebook" by GreatFrontEnd](https://www.greatfrontend.com/front-end-system-design-playbook?fpr=yangshun): A free system design guidebook by yours truly, focused on system design for the front end, e.g. how to design Facebook's News Feed, Autocomplete components, Image Carousels and more.
+- [System Design in a Hurry](https://www.hellointerview.com/learn/system-design/in-a-hurry/introduction): Free course built by ex- Meta and Amazon engineers, covers the basics of delivery, high-level concepts, and core technologies. Worked "common problems" walk you through various design decisions in real problems and how to navigate them.
 - [System Design Newsletter](https://newsletter.systemdesign.one/): Weekly newsletter on system design. Also get the powerful system design template for FREE.
 - [ByteByteGo](https://bytebytego.com?fpr=techinterviewhandbook): This is a new System Design course by Alex Xu, author of the System Design Interview books, a bestseller on Amazon. The course covers system designs basics, then goes into deep dives of the design of over 10 famous common products (e.g. [Designing YouTube](https://bytebytego.com/courses/system-design-interview/design-youtube?fpr=techinterviewhandbook), Facebook Newsfeed, etc) and multiple big data and storage systems (e.g. [Designing a Chat System](https://bytebytego.com/courses/system-design-interview/design-a-chat-system?fpr=techinterviewhandbook)). For each deep dive, concepts are explained and comprehensive diagrams are used, making it very approachable regardless of seniority level.
-- ["Grokking the System Design Interview" by Design Gurus](https://designgurus.org/link/kJSIoU?url=https%3A%2F%2Fdesigngurus.org%2Fcourse%3Fcourseid%3Dgrokking-the-system-design-interview): This is probably the most famous system design interview course on the internet and what makes it different from most other courses out there is that it is purely text-based, which is great for people who prefer reading over watching videos (such as myself!). It contains a repository of the popular system design problems along with a glossary of system design basics. I've personally completed this course and highly recommended many others to use this.
-- ["Grokking the Advanced System Design Interview" by Design Gurus](https://designgurus.org/link/kJSIoU?url=https%3A%2F%2Fdesigngurus.org%2Fcourse%3Fcourseid%3Dgrokking-the-advanced-system-design-interview): I haven't tried this but it's by the same people who created "Grokking the System Design Interview", so it should be good! In my opinion you probably wouldn't need this unless you're very senior or going for a specialist position.
-- ["Best of System Design" package by Design Gurus](https://designgurus.org/link/kJSIoU?url=https%3A%2F%2Fdesigngurus.org%2Fbundles%3Fbundle_id%3Dbuy-both-system-design-courses): This bundle allows you to purchase both System Design interview courses by Design Gurus at a discount. Best of all, it's lifetime and not subscription-based.
-- ["System Design Interview Course" by Exponent](https://www.tryexponent.com/courses/system-design-interview?ref=techinterviewhandbook): This course covers system designs basics and has a huge database of popular system design questions with videos of mock interviews. Some of the questions have text answers and a database schema and APIs for reference (which I find helpful). While the subscription might be a little pricey for just the system design interviews content, they also offer quality technical content for [Data Structures](https://www.tryexponent.com/courses/swe-practice?ref=techinterviewhandbook), [Algorithms](https://www.tryexponent.com/courses/algorithms?ref=techinterviewhandbook) and [Behavioral Interviews](https://www.tryexponent.com/courses/behavioral?ref=techinterviewhandbook). The convenience of a one-stop platform which covers all aspects of technical interview preparation is very enticing.
-- ["Gaurav Sen Youtube - System Design Playlist"](https://youtu.be/xpDnVSmNFX0): Gaurav Sen is a popular YouTuber who has gained a lot of recognition for his system design videos. His playlist on System Design provides a comprehensive guide for software engineers who are preparing for technical interviews or want to learn more about how to design scalable systems. The playlist consists of multiple videos, each video covering a different topic related to system design. The videos are designed in a way that simplifies complex topics and makes it easy to understand for beginners.
+- ["Grokking the System Design Interview" by Design Gurus](https://www.designgurus.io/course/grokking-the-system-design-interview?aff=kJSIoU): This is probably the most famous system design interview course on the internet and what makes it different from most other courses out there is that it is purely text-based, which is great for people who prefer reading over watching videos (such as myself!). It contains a repository of the popular system design problems along with a glossary of system design basics. I've personally completed this course and highly recommended many others to use this.
+- ["Grokking the Advanced System Design Interview" by Design Gurus](https://www.designgurus.io/course/grokking-the-advanced-system-design-interview?aff=kJSIoU): I haven't tried this but it's by the same people who created "Grokking the System Design Interview", so it should be good! In my opinion you probably wouldn't need this unless you're very senior or going for a specialist position.
+- ["Best of System Design" package by Design Gurus](https://www.designgurus.io/bundle/buy-both-system-design-courses?aff=kJSIoU): This bundle allows you to purchase both System Design interview courses by Design Gurus at a discount. Best of all, it's lifetime and not subscription-based.
+- ["System Design Interview Course" by Exponent](https://www.tryexponent.com/courses/system-design-interviews?ref=techinterviewhandbook): This course covers system designs basics and has a huge database of popular system design questions with videos of mock interviews. Some of the questions have text answers and a database schema and APIs for reference (which I find helpful). While the subscription might be a little pricey for just the system design interviews content, they also offer quality technical content for [Data Structures](https://www.tryexponent.com/courses/swe-practice?ref=techinterviewhandbook), [Algorithms](https://www.tryexponent.com/courses/algorithms?ref=techinterviewhandbook) and [Behavioral Interviews](https://www.tryexponent.com/courses/behavioral?ref=techinterviewhandbook). The convenience of a one-stop platform which covers all aspects of technical interview preparation is very enticing.
+- ["Gaurav Sen Youtube - System Design Playlist"](https://www.youtube.com/watch?v=xpDnVSmNFX0&feature=youtu.be): Gaurav Sen is a popular YouTuber who has gained a lot of recognition for his system design videos. His playlist on System Design provides a comprehensive guide for software engineers who are preparing for technical interviews or want to learn more about how to design scalable systems. The playlist consists of multiple videos, each video covering a different topic related to system design. The videos are designed in a way that simplifies complex topics and makes it easy to understand for beginners.
 
 ## Free resources
 
diff --git a/apps/website/docusaurus.config.js b/apps/website/docusaurus.config.js
index 6a872524d9..085ffa0d43 100755
--- a/apps/website/docusaurus.config.js
+++ b/apps/website/docusaurus.config.js
@@ -42,7 +42,7 @@ module.exports = {
         { label: 'Blog', to: 'blog', position: 'left' },
         {
           label: 'Grind 75',
-          href: 'https://www.techinterviewhandbook.org/grind75',
+          href: 'https://www.techinterviewhandbook.org/grind75/',
           position: 'left',
         },
         {
@@ -130,7 +130,7 @@ module.exports = {
             },
             {
               label: 'Discord',
-              href: 'https://discord.gg/usMqNaPczq',
+              href: 'https://discord.com/invite/usMqNaPczq',
             },
             {
               label: 'Telegram',
@@ -147,7 +147,7 @@ module.exports = {
           items: [
             {
               label: 'Grind 75',
-              href: 'https://www.techinterviewhandbook.org/grind75',
+              href: 'https://www.techinterviewhandbook.org/grind75/',
             },
             {
               label: 'Front End Interview Handbook',
diff --git a/apps/website/experimental/design/README.md b/apps/website/experimental/design/README.md
index efb35f86c5..2a59df21ee 100644
--- a/apps/website/experimental/design/README.md
+++ b/apps/website/experimental/design/README.md
@@ -2,15 +2,15 @@
 
 ## Quality courses
 
-- ["Grokking the System Design Interview" by Design Gurus](https://designgurus.org/link/kJSIoU?url=https%3A%2F%2Fdesigngurus.org%2Fcourse%3Fcourseid%3Dgrokking-the-system-design-interview) - This is probably the most famous system design interview course on the internet and what makes it different from most other courses out there is that it is purely text-based, which is great for people who refer reading over watching videos (such as myself!). It contains a repository of the popular system design problems along with a glossary of system design basics. I've personally completed this course and highly recommended many others to use this.
-- ["Grokking the Advanced System Design Interview" by Design Gurus](https://designgurus.org/link/kJSIoU?url=https%3A%2F%2Fdesigngurus.org%2Fcourse%3Fcourseid%3Dgrokking-the-advanced-system-design-interview) - I haven't tried this but it's by the same people who created "Grokking the System Design Interview", so it should be good! In my opinion you probably wouldn't need this unless you're very senior or going for a specialist position.
-- ["Best of System Design" package by Design Gurus](https://designgurus.org/link/kJSIoU?url=https%3A%2F%2Fdesigngurus.org%2Fbundles%3Fbundle_id%3Dbuy-both-system-design-courses) - This bundle allows you to purchase both System Design interview courses by Design Gurus at a discount. Best of all, it's lifetime and not subscription-based.
-- ["System Design Interview Course" by Exponent](https://www.tryexponent.com/courses/system-design-interview?ref=techinterviewhandbook) - This course covers system designs basics and has a huge database of popular system design questions with videos of mock interviews. Some of the questions have text answers and a database schema and APIs for reference (which I find helpful). While the subscription might be a little pricey for just the system design interviews content, they also offer quality technical content for [Data Structures](https://www.tryexponent.com/courses/swe-practice?ref=techinterviewhandbook), [Algorithms](https://www.tryexponent.com/courses/algorithms?ref=techinterviewhandbook) and [Behavioral Interviews](https://www.tryexponent.com/courses/behavioral?ref=techinterviewhandbook). The convenience of a one-stop platform which covers all aspects of technical interview preparation is very enticing.
+- ["Grokking the System Design Interview" by Design Gurus](https://www.designgurus.io/course/grokking-the-system-design-interview?aff=kJSIoU) - This is probably the most famous system design interview course on the internet and what makes it different from most other courses out there is that it is purely text-based, which is great for people who refer reading over watching videos (such as myself!). It contains a repository of the popular system design problems along with a glossary of system design basics. I've personally completed this course and highly recommended many others to use this.
+- ["Grokking the Advanced System Design Interview" by Design Gurus](https://www.designgurus.io/course/grokking-the-advanced-system-design-interview?aff=kJSIoU) - I haven't tried this but it's by the same people who created "Grokking the System Design Interview", so it should be good! In my opinion you probably wouldn't need this unless you're very senior or going for a specialist position.
+- ["Best of System Design" package by Design Gurus](https://www.designgurus.io/bundle/buy-both-system-design-courses?aff=kJSIoU) - This bundle allows you to purchase both System Design interview courses by Design Gurus at a discount. Best of all, it's lifetime and not subscription-based.
+- ["System Design Interview Course" by Exponent](https://www.tryexponent.com/courses/system-design-interviews?ref=techinterviewhandbook) - This course covers system designs basics and has a huge database of popular system design questions with videos of mock interviews. Some of the questions have text answers and a database schema and APIs for reference (which I find helpful). While the subscription might be a little pricey for just the system design interviews content, they also offer quality technical content for [Data Structures](https://www.tryexponent.com/courses/swe-practice?ref=techinterviewhandbook), [Algorithms](https://www.tryexponent.com/courses/algorithms?ref=techinterviewhandbook) and [Behavioral Interviews](https://www.tryexponent.com/courses/behavioral?ref=techinterviewhandbook). The convenience of a one-stop platform which covers all aspects of technical interview preparation is very enticing.
 
 ## Guides
 
-- [Grokking the System Design Interview](https://designgurus.org/link/kJSIoU?url=https%3A%2F%2Fdesigngurus.org%2Fcourse%3Fcourseid%3Dgrokking-the-system-design-interview)
-- [Grokking the Advanced System Design Interview](https://designgurus.org/link/kJSIoU?url=https%3A%2F%2Fdesigngurus.org%2Fcourse%3Fcourseid%3Dgrokking-the-advanced-system-design-interview)
+- [Grokking the System Design Interview](https://www.designgurus.io/course/grokking-the-system-design-interview?aff=kJSIoU)
+- [Grokking the Advanced System Design Interview](https://www.designgurus.io/course/grokking-the-advanced-system-design-interview?aff=kJSIoU)
 - https://github.com/donnemartin/system-design-primer
 - https://github.com/checkcheckzz/system-design-interview
 - https://github.com/shashank88/system_design
diff --git a/apps/website/src/components/SidebarAd/index.js b/apps/website/src/components/SidebarAd/index.js
index 110238481f..4b6f926cee 100644
--- a/apps/website/src/components/SidebarAd/index.js
+++ b/apps/website/src/components/SidebarAd/index.js
@@ -95,7 +95,7 @@ function DesignGurusSystemDesign({ position }) {
   return (
     <a
       className={clsx(styles.container, styles.backgroundGrokkingSystemDesign)}
-      href="https://designgurus.org/link/kJSIoU?url=https%3A%2F%2Fdesigngurus.org%2Fcourse%3Fcourseid%3Dgrokking-the-system-design-interview"
+      href="https://www.designgurus.io/course/grokking-the-system-design-interview?aff=kJSIoU"
       key={Math.random()}
       target="_blank"
       rel="noopener"
diff --git a/apps/website/src/data/successStories.js b/apps/website/src/data/successStories.js
index fcb81b3c7f..af561f43be 100644
--- a/apps/website/src/data/successStories.js
+++ b/apps/website/src/data/successStories.js
@@ -58,8 +58,8 @@ export default [
         <br />
         <br />
         I've learnt a few things and blogged about them on{' '}
-        <a href="https://zhenghao.io" rel="noopener">
-          https://zhenghao.io
+        <a href="https://www.zhenghao.io/" rel="noopener">
+          https://www.zhenghao.io/
         </a>
         , check them out if you're interested!
       </>
@@ -153,7 +153,7 @@ export default [
         <br />
         My favourite part is the{' '}
         <a
-          href="https://www.techinterviewhandbook.org/grind75"
+          href="https://www.techinterviewhandbook.org/grind75/"
           target="_blank"
           rel="noreferrer noopener">
           Grind 75 Tool
diff --git a/apps/website/src/pages/index.js b/apps/website/src/pages/index.js
index 0fc201966e..cbe0ff93e4 100755
--- a/apps/website/src/pages/index.js
+++ b/apps/website/src/pages/index.js
@@ -492,7 +492,7 @@ function GreatFrontEndSection() {
                 <div className="margin-vert--lg">
                   <a
                     className="button button--secondary button--lg"
-                    href="https://www.greatfrontend.com/prepare?fpr=yangshun&utm_source=techinterviewhandbook&utm_medium=referral&utm_content=homepage"
+                    href="https://www.greatfrontend.com/questions?fpr=yangshun&utm_source=techinterviewhandbook&utm_medium=referral&utm_content=homepage"
                     rel="noopener"
                     target="_blank"
                     onClick={() => {

From e4392ca04b14617962354a2fbe99afdeef716652 Mon Sep 17 00:00:00 2001
From: Zhou Yuhang <54398705+xquisite0@users.noreply.github.com>
Date: Wed, 9 Jul 2025 11:20:46 +0800
Subject: [PATCH 11/15] seo: fix page has links to broken page issue (#709)

---
 .../2019-11-03-are-front-end-development-enough-for-a-career.md | 2 +-
 ...2021-12-23-front-end-vs-back-end-system-design-interviews.md | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/apps/website/blog/2019-11-03-are-front-end-development-enough-for-a-career.md b/apps/website/blog/2019-11-03-are-front-end-development-enough-for-a-career.md
index 4516b87fb7..e1afefaca5 100644
--- a/apps/website/blog/2019-11-03-are-front-end-development-enough-for-a-career.md
+++ b/apps/website/blog/2019-11-03-are-front-end-development-enough-for-a-career.md
@@ -48,7 +48,7 @@ Having a strong foundation enables someone to make switching domains a possibili
 
 Having good tools to use (like Create React App, Parcel) doesn't eradicate the need for Front End developers to possess good software engineering skills. What will happen if you are the person tasked to build the tools? Great Front End developers (or Software Engineers really) go beneath the abstractions layer, understand how their tools work, and what problems the tool set out to solve. They also constantly seek to challenge and improve the status quo by building better technologies to cater to the ever-increasing demands.
 
-At Facebook, the Front End Engineers are Software Engineers first, domain experts second. Many of the Front End engineers I know at Facebook have a deep understanding of the technical stack and don't just work on stuff related to the browser. At Facebook scale, front end work also involves building a lot of infrastructure to make our front end code base scale well with the growing technical and people needs. That means writing [codemods](https://github.com/facebook/jscodeshift) to do large-scale refactoring, inventing new [UI](https://reactjs.org) [paradigms](http://facebook.github.io/flux/), performant [testing frameworks](https://jestjs.io), creating [type-checkers](https://flow.org) for untyped languages, changing the ways we [fetch data](https://graphql.org) from our servers and [managing it on clients](https://relay.dev). These tools wouldn't exist if the Front End engineers at Facebook didn't possess strong software engineering skills.
+At Facebook, the Front End Engineers are Software Engineers first, domain experts second. Many of the Front End engineers I know at Facebook have a deep understanding of the technical stack and don't just work on stuff related to the browser. At Facebook scale, front end work also involves building a lot of infrastructure to make our front end code base scale well with the growing technical and people needs. That means writing [codemods](https://github.com/facebook/jscodeshift) to do large-scale refactoring, inventing new [UI](https://reactjs.org) paradigms, performant [testing frameworks](https://jestjs.io), creating [type-checkers](https://flow.org) for untyped languages, changing the ways we [fetch data](https://graphql.org) from our servers and [managing it on clients](https://relay.dev). These tools wouldn't exist if the Front End engineers at Facebook didn't possess strong software engineering skills.
 
 ## Pick up new, relevant skills
 
diff --git a/apps/website/blog/2021-12-23-front-end-vs-back-end-system-design-interviews.md b/apps/website/blog/2021-12-23-front-end-vs-back-end-system-design-interviews.md
index 7aad828f5f..2966cad839 100644
--- a/apps/website/blog/2021-12-23-front-end-vs-back-end-system-design-interviews.md
+++ b/apps/website/blog/2021-12-23-front-end-vs-back-end-system-design-interviews.md
@@ -15,7 +15,7 @@ Walkthrough of similarities and differences between front end vs. back end syste
 
 ## Context
 
-As I mentioned in my post on [coding interviews frameworks](https://www.zhenghao.io/posts/framework-for-coding-interview), I have been interviewing a lot for the past year - not conducting interviews, I was the candidate being interviewed. Most of the interview processes I had with big tech companies consisted of 1-2 system design rounds depending on the level of the role. Unlike traditional back end-focused system design questions, for which you can find lots of prep resources online such as the famous Grokking System Design Interview or System Design Primer, I didn't know what to expect for a front end-focused system design interview as there are very few resources out there talking about this type of interviews.
+As I mentioned in my post on coding interviews frameworks, I have been interviewing a lot for the past year - not conducting interviews, I was the candidate being interviewed. Most of the interview processes I had with big tech companies consisted of 1-2 system design rounds depending on the level of the role. Unlike traditional back end-focused system design questions, for which you can find lots of prep resources online such as the famous Grokking System Design Interview or System Design Primer, I didn't know what to expect for a front end-focused system design interview as there are very few resources out there talking about this type of interviews.
 
 Now that I have done a fair amount of system design interviews of both types, I want to give you a summary of what to expect, especially for the front end ones since I have been mostly working on the front end side.
 

From 7f39500d5d1cb726d3f21d56f94cc9f386bcd6b1 Mon Sep 17 00:00:00 2001
From: Zhou Yuhang <54398705+xquisite0@users.noreply.github.com>
Date: Wed, 9 Jul 2025 11:21:58 +0800
Subject: [PATCH 12/15] seo: fix 3xx redirects issue (#710)

---
 .../blog/2022-07-09-getting-a-tech-job-as-an-undergraduate.md   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/apps/website/blog/2022-07-09-getting-a-tech-job-as-an-undergraduate.md b/apps/website/blog/2022-07-09-getting-a-tech-job-as-an-undergraduate.md
index 2d823a55c8..ea44c29ca0 100644
--- a/apps/website/blog/2022-07-09-getting-a-tech-job-as-an-undergraduate.md
+++ b/apps/website/blog/2022-07-09-getting-a-tech-job-as-an-undergraduate.md
@@ -51,7 +51,7 @@ I am about to recommend relevant sections to go in sequentially and how to syste
    - Now with virtual interviews, some companies tend to use HackerRank live to conduct whiteboard interviews. Prepare a pen and paper beside you as you work along. Prepare to remote desktop protocol (RDP) into your computer to show step-by-step workings.
    - Do not blurt out the solution straightaway as interviewers can tell that you memorize.
 
-4. Last but not least for algorithms heavy interviews, you might really want to save your time looking at [Grind 75](https://techinterviewhandbook.org/grind75). It's a useful curated source of questions to note how much you can prepare for your interview.
+4. Last but not least for algorithms heavy interviews, you might really want to save your time looking at [Grind 75](https://www.techinterviewhandbook.org/grind75/). It's a useful curated source of questions to note how much you can prepare for your interview.
 
 5. Always be prepared for even system design questions! You will never know what comes your way and this is where your projects come in and how much of good practices you apply in them and what do you learn. The [System Design Primer](https://github.com/donnemartin/system-design-primer) is a good start.
 

From 5c972e4e1df7349da77a0992f336785edd0a63d8 Mon Sep 17 00:00:00 2001
From: Zhou Yuhang <54398705+xquisite0@users.noreply.github.com>
Date: Thu, 10 Jul 2025 08:25:20 +0800
Subject: [PATCH 13/15] seo: fix orphan page issues (#712)

---
 apps/website/docusaurus.config.js | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/apps/website/docusaurus.config.js b/apps/website/docusaurus.config.js
index 085ffa0d43..9085911488 100755
--- a/apps/website/docusaurus.config.js
+++ b/apps/website/docusaurus.config.js
@@ -208,6 +208,10 @@ module.exports = {
             '/blog/tags/career/',
             '/blog/tags/meta/',
             '/blog/tags/facebook/',
+            '/algorithms/oop/',
+            '/search/',
+            '/resume-overview/',
+            '/blog/archive/',
           ],
         },
       },

From 0dad8507a85ab449b8bf1202744323239ddd1501 Mon Sep 17 00:00:00 2001
From: Zhou Yuhang <54398705+xquisite0@users.noreply.github.com>
Date: Thu, 10 Jul 2025 08:25:42 +0800
Subject: [PATCH 14/15] seo: fix page has links to redirect issue (#713)

---
 apps/portal/src/pages/resumes/about.tsx          | 2 +-
 apps/website/contents/algorithms/graph.md        | 2 +-
 apps/website/contents/algorithms/hash-table.md   | 2 +-
 apps/website/contents/algorithms/heap.md         | 2 +-
 apps/website/contents/algorithms/oop.md          | 2 +-
 apps/website/contents/algorithms/queue.md        | 2 +-
 apps/website/contents/algorithms/stack.md        | 2 +-
 apps/website/contents/algorithms/trie.md         | 2 +-
 apps/website/contents/best-practice-questions.md | 2 +-
 9 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/apps/portal/src/pages/resumes/about.tsx b/apps/portal/src/pages/resumes/about.tsx
index 09d9f8e97b..92f8208415 100644
--- a/apps/portal/src/pages/resumes/about.tsx
+++ b/apps/portal/src/pages/resumes/about.tsx
@@ -87,7 +87,7 @@ export default function AboutUsPage() {
                 Submit your feedback
                 <a
                   className="text-primary-600 hover:text-primary-500 ml-1"
-                  href="https://forms.gle/KgA6KWDD4XNa53uJA"
+                  href="https://docs.google.com/forms/d/e/1FAIpQLSf-eCK4ybgewGDCoyStGdpi7e0EativtWU1Iq0HW3evdLEfwQ/viewform?usp=send_form"
                   rel="noreferrer"
                   target="_blank">
                   here
diff --git a/apps/website/contents/algorithms/graph.md b/apps/website/contents/algorithms/graph.md
index b8f7fc450d..2e9f0dfeb5 100644
--- a/apps/website/contents/algorithms/graph.md
+++ b/apps/website/contents/algorithms/graph.md
@@ -155,7 +155,7 @@ While DFS is implemented using recursion in this sample, it could also be implem
 
 :::
 
-For additional tips on BFS and DFS, you can refer to this [LeetCode post](https://leetcode.com/problems/pacific-atlantic-water-flow/discuss/90774/Python-solution-with-detailed-explanation/)
+For additional tips on BFS and DFS, you can refer to this [LeetCode post](https://leetcode.com/problems/pacific-atlantic-water-flow/solutions/90774/Python-solution-with-detailed-explanation/)
 
 ### Topological sorting
 
diff --git a/apps/website/contents/algorithms/hash-table.md b/apps/website/contents/algorithms/hash-table.md
index cff64760e6..e6a4f1758b 100644
--- a/apps/website/contents/algorithms/hash-table.md
+++ b/apps/website/contents/algorithms/hash-table.md
@@ -43,7 +43,7 @@ In the case of hash collisions, there are a number of collision resolution techn
 
 | Language | API |
 | --- | --- |
-| C++ | [`std::unordered_map`](https://learn.microsoft.com/en-us/cpp/standard-library/unordered-map) |
+| C++ | [`std::unordered_map`](https://learn.microsoft.com/en-us/cpp/standard-library/unordered-map?view=msvc-170) |
 | Java | [`java.util.Map`](https://docs.oracle.com/javase/10/docs/api/java/util/Map.html). Use [`java.util.HashMap`](https://docs.oracle.com/javase/10/docs/api/java/util/HashMap.html) |
 | Python | [`dict`](https://docs.python.org/3/tutorial/datastructures.html#dictionaries) |
 | JavaScript | [`Object`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) or [`Map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) |
diff --git a/apps/website/contents/algorithms/heap.md b/apps/website/contents/algorithms/heap.md
index e778698487..9e5a6606e7 100644
--- a/apps/website/contents/algorithms/heap.md
+++ b/apps/website/contents/algorithms/heap.md
@@ -38,7 +38,7 @@ In the context of algorithm interviews, heaps and priority queues can be treated
 
 | Language | API |
 | --- | --- |
-| C++ | [`std::priority_queue`](https://learn.microsoft.com/en-us/cpp/standard-library/priority-queue-class) |
+| C++ | [`std::priority_queue`](https://learn.microsoft.com/en-us/cpp/standard-library/priority-queue-class?view=msvc-170) |
 | Java | [`java.util.PriorityQueue`](https://docs.oracle.com/javase/10/docs/api/java/util/PriorityQueue.html) |
 | Python | [`heapq`](https://docs.python.org/3/library/heapq.html) |
 | JavaScript | N/A |
diff --git a/apps/website/contents/algorithms/oop.md b/apps/website/contents/algorithms/oop.md
index 5958c0a150..cd6244ab09 100644
--- a/apps/website/contents/algorithms/oop.md
+++ b/apps/website/contents/algorithms/oop.md
@@ -16,4 +16,4 @@ toc_max_heading_level: 2
 
 ## Recommended courses
 
-- [Grokking the Object Oriented Design Interview](https://designgurus.org/link/kJSIoU?url=https%3A%2F%2Fdesigngurus.org%2Fcourse%3Fcourseid%3Dgrokking-the-object-oriented-design-interview)
+- [Grokking the Object Oriented Design Interview](https://www.designgurus.io/course/grokking-the-object-oriented-design-interview?aff=kJSIoU)
diff --git a/apps/website/contents/algorithms/queue.md b/apps/website/contents/algorithms/queue.md
index 8feb8e914b..ae268d9825 100644
--- a/apps/website/contents/algorithms/queue.md
+++ b/apps/website/contents/algorithms/queue.md
@@ -38,7 +38,7 @@ Breadth-first search is commonly implemented using queues.
 
 | Language | API |
 | --- | --- |
-| C++ | [`std::queue`](https://learn.microsoft.com/en-us/cpp/standard-library/queue-class) |
+| C++ | [`std::queue`](https://learn.microsoft.com/en-us/cpp/standard-library/queue-class?view=msvc-170) |
 | Java | [`java.util.Queue`](https://docs.oracle.com/javase/10/docs/api/java/util/Queue.html).Use [`java.util.ArrayDeque`](https://docs.oracle.com/javase/10/docs/api/java/util/ArrayDeque.html) |
 | Python | [`queue`](https://docs.python.org/3/library/queue.html) |
 | JavaScript | N/A |
diff --git a/apps/website/contents/algorithms/stack.md b/apps/website/contents/algorithms/stack.md
index 5f201daa8d..1b2f8935f2 100644
--- a/apps/website/contents/algorithms/stack.md
+++ b/apps/website/contents/algorithms/stack.md
@@ -38,7 +38,7 @@ Stacks are an important way of supporting nested or recursive function calls and
 
 | Language | API |
 | --- | --- |
-| C++ | [`std::stack`](https://learn.microsoft.com/en-us/cpp/standard-library/stack-class) |
+| C++ | [`std::stack`](https://learn.microsoft.com/en-us/cpp/standard-library/stack-class?view=msvc-170) |
 | Java | [`java.util.Stack`](https://docs.oracle.com/javase/10/docs/api/java/util/Stack.html) |
 | Python | Simulated using [List](https://docs.python.org/3/tutorial/datastructures.html) |
 | JavaScript | Simulated using [Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array) |
diff --git a/apps/website/contents/algorithms/trie.md b/apps/website/contents/algorithms/trie.md
index 7b4a17703c..3e70298b6f 100644
--- a/apps/website/contents/algorithms/trie.md
+++ b/apps/website/contents/algorithms/trie.md
@@ -29,7 +29,7 @@ Be familiar with implementing from scratch, a `Trie` class and its `add`, `remov
 
 - Readings
   - [Trying to Understand Tries](https://medium.com/basecs/trying-to-understand-tries-3ec6bede0014), basecs
-  - [Implement Trie (Prefix Tree)](https://leetcode.com/problems/implement-trie-prefix-tree/solution/), LeetCode
+  - [Implement Trie (Prefix Tree)](https://leetcode.com/problems/implement-trie-prefix-tree/editorial/), LeetCode
 - Additional (only if you have time)
   - [Compressing Radix Trees Without (Too Many) Tears](https://medium.com/basecs/compressing-radix-trees-without-too-many-tears-a2e658adb9a0), basecs
 
diff --git a/apps/website/contents/best-practice-questions.md b/apps/website/contents/best-practice-questions.md
index 3769eee381..cd470bf78b 100644
--- a/apps/website/contents/best-practice-questions.md
+++ b/apps/website/contents/best-practice-questions.md
@@ -27,7 +27,7 @@ Hey there, the author of Blind 75 here 👋!
 
 Practicing is the best way to prepare for coding interviews. LeetCode has over a thousand questions. Which should you practice? Hence years ago, I curated a list of the most important 75 questions on [LeetCode](https://leetcode.com). Many other LeetCode questions are a mash of the techniques from these individual questions. I used this list in my last job hunt to only do the important questions.
 
-I [shared this list on Blind](https://www.teamblind.com/post/New-Year-Gift---Curated-List-of-Top-100-LeetCode-Questions-to-Save-Your-Time-OaM1orEU) by extracting the questions from [my freeCodeCamp article](https://www.freecodecamp.org/news/coding-interviews-for-dummies-5e048933b82b/) to save peoples' time when revising and someone reposted this list on [the LeetCode forum](https://leetcode.com/discuss/general-discussion/460599/blind-75-leetcode-questions/). It somehow blew up and became super famous in the coding interview scene, people even gave it a name - **Blind 75**. The Blind 75 questions as a LeetCode list can be found [here](https://leetcode.com/list/xi4ci4ig/).
+I [shared this list on Blind](https://www.teamblind.com/post/New-Year-Gift---Curated-List-of-Top-100-LeetCode-Questions-to-Save-Your-Time-OaM1orEU) by extracting the questions from [my freeCodeCamp article](https://www.freecodecamp.org/news/coding-interviews-for-dummies-5e048933b82b/) to save peoples' time when revising and someone reposted this list on [the LeetCode forum](https://leetcode.com/discuss/post/460599/blind-75-leetcode-questions-by-krishnade-9xev/). It somehow blew up and became super famous in the coding interview scene, people even gave it a name - **Blind 75**. The Blind 75 questions as a LeetCode list can be found [here](https://leetcode.com/list/xi4ci4ig/).
 
 Years later, I further distilled the list down into only 50 questions and spread them across a 5-week schedule. Here is the suggested schedule for revising and practicing algorithm questions on LeetCode. Sign up for an account if you don't already have one, it's critical to your success in interviewing!
 

From c5b41471322481b513d150dce9ef0c0f8f8713f4 Mon Sep 17 00:00:00 2001
From: Zhou Yuhang <54398705+xquisite0@users.noreply.github.com>
Date: Thu, 10 Jul 2025 08:25:52 +0800
Subject: [PATCH 15/15] seo: fix HTML lang attribute missing (#714)

---
 apps/portal/src/pages/_document.tsx | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/apps/portal/src/pages/_document.tsx b/apps/portal/src/pages/_document.tsx
index 016ecd1a2f..cb9b54f177 100644
--- a/apps/portal/src/pages/_document.tsx
+++ b/apps/portal/src/pages/_document.tsx
@@ -2,7 +2,7 @@ import { Head, Html, Main, NextScript } from 'next/document';
 
 export default function Document() {
   return (
-    <Html className="bg-slate-50">
+    <Html lang="en" className="bg-slate-50">
       <Head />
       <body>
         <Main />
