Resources for working developers

Tutorials, guides, documentation and snippets you can copy straight into your project. Written by engineers, reviewed by engineers.

17 resources

Guide8 min

How to Read a Stack Trace Without Panicking

A stack trace lists the chain of function calls that led to an error. Learn where to look first, how to ignore the noise, and how to find your own code quickly.

  • Debugging
  • Fundamentals
Read
Guide9 min

Caching Explained for Web Developers

Caching makes sites faster and cheaper, but it can also show people stale data. Learn the layers of a cache, how Cache-Control works, and how to avoid the classic mistakes.

  • Performance
  • Web
Read
Guide10 min

A Practical Guide to API Versioning

URL, header or date-based? A clear comparison of the common versioning styles, what counts as a breaking change, and a calm way to deprecate old versions.

  • APIs
  • Design
Read
DocumentationReference

Authentication reference

API keys, OAuth 2.0 and short-lived tokens across every DeveloperJar API.

  • Docs
  • Security
Read
SnippetJavaScript

Retry with exponential backoff

A small, dependency-free retry helper with jitter for flaky network calls.

JavaScript
async function retry(fn, { retries = 4, base = 300 } = {}) {
  for (let i = 0; ; i++) {
    try { return await fn(); }
    catch (err) {
      if (i >= retries) throw err;
      const wait = base * 2 ** i + Math.random() * 100;
      await new Promise(r => setTimeout(r, wait));
    }
  }
}
  • JavaScript
  • Reliability
Article7 min

Why We Stopped Writing Changelogs by Hand

How generating release notes from pull requests saved hours and made them better, plus the small habits that make an automated changelog worth reading.

  • Process
  • Docs
Read
SnippetPython

Chunk any iterable in Python

Process large lists in fixed-size batches without loading everything into memory.

Python
from itertools import islice

def chunked(items, size):
    it = iter(items)
    while batch := list(islice(it, size)):
        yield batch
  • Python
  • Performance
SnippetBash

Delete merged Git branches

One line to tidy your local repo after a busy sprint.

Bash
# keep main and the current branch
git branch --merged | grep -v "\*\|main" | xargs -n 1 git branch -d
  • Git
  • Productivity
Article8 min

Notes on Building Offline-First Developer Tools

Local-first sync, conflict handling and why your CLI should work on a plane. Practical notes on designing developer tools that do not depend on a connection.

  • Architecture
  • Rust
Read