# Duncan McArdle

Full-stack software developer from the UK, author of the Aftermath book series, full time tech-nerd.

Joined on

Education

Edge Hill University

Work

Full Stack Software Engineer at Isosec

What is LeetCode, and why do I post solutions to it on online?

## What is LeetCode, and why do I post solutions to it on online?

LeetCode problem #5 — Longest Palindromic Substring (JavaScript)

## LeetCode problem #5 — Longest Palindromic Substring (JavaScript)

LeetCode problem #4 — Median of two sorted arrays (JavaScript)

## LeetCode problem #4 — Median of two sorted arrays (JavaScript)

LeetCode problem #3 — Longest substring without repeating characters (JavaScript)

## LeetCode problem #3 — Longest substring without repeating characters (JavaScript)

LeetCode problem #2 — Add two numbers (JavaScript)

## LeetCode problem #2 — Add two numbers (JavaScript)

LeetCode problem #1 — Two-sum (JavaScript)

## LeetCode problem #1 — Two-sum (JavaScript)

Sorting algorithms 101

## Sorting algorithms 101

Quick Sort (JavaScript)

## Quick Sort (JavaScript)

Merge Sort (JavaScript)

## Merge Sort (JavaScript)

Binary search (JavaScript)

## Binary search (JavaScript)

SOLID principle #5: Dependency Inversion (JavaScript)

## SOLID principle #5: Dependency Inversion (JavaScript)

SOLID principle #4: Interface Segregation (JavaScript)

## SOLID principle #4: Interface Segregation (JavaScript)

SOLID principle #3: Liskov Substitution (JavaScript)

## SOLID principle #3: Liskov Substitution (JavaScript)

SOLID principle #2: Open-Closed (JavaScript)

## SOLID principle #2: Open-Closed (JavaScript)

SOLID principle #1: Single responsibility (JavaScript)

## SOLID principle #1: Single responsibility (JavaScript)

FileSync — The Android app I made for synchronising files & folders between devices

## FileSync — The Android app I made for synchronising files & folders between devices

Call, Apply and Bind in JavaScript

## Call, Apply and Bind in JavaScript

Maps & Sets in JavaScript

## Maps & Sets in JavaScript

Battle of the JavaScript for loops (for, for…in, for…of, forEach, etc.)

## Battle of the JavaScript for loops (for, for…in, for…of, forEach, etc.)

let, const & var in JavaScript

## let, const & var in JavaScript

Closures in JavaScript

## Closures in JavaScript

JavaScript labels (a better way to break out of nested loops)

## JavaScript labels (a better way to break out of nested loops)

Arrow functions in JavaScript (=>)

## Arrow functions in JavaScript (=>)

WikiMap — a live map view of Wikipedia edits

## WikiMap — a live map view of Wikipedia edits

Migrating from MediaWiki to Confluence

## Migrating from MediaWiki to Confluence

Migrating from GitLab to GitHub

## Migrating from GitLab to GitHub

The ONLY correct way to handle users changing their email address