2HAASStart a project
All posts

Blog

Tech Tips.

Small, practical changes that make software faster, safer or easier to maintain.

16 postsPage 1 of 2RSS feed

  1. 2 min read

    Async error handling in JavaScript: try/catch done right

    Unhandled promise rejections crash Node.js services and leave browser apps quietly broken. Catch async errors with try/catch, .catch and a global safety net.

  2. 2 min read

    Refactoring with AI assistants: a safe workflow

    AI assistants can untangle a long function in seconds, and introduce a subtle bug just as fast. This workflow keeps the speed and puts tests and review in charge.

  3. 2 min read

    Prompt engineering for developers: 5 habits that work

    Vague prompts get vague code. Five habits make AI models far more useful for development work: clear instructions, context, examples, small steps and iteration.

  4. 2 min read

    Speed up Docker builds with layer caching

    Slow Docker builds delay every pull request. Order your Dockerfile for the layer cache, shrink the build context and use BuildKit cache mounts to cut build time.

  5. 2 min read

    WebP and AVIF: modern image formats with a fallback

    WebP and AVIF produce much smaller files than JPEG and PNG at the same visual quality. How to convert your images and serve them with the picture element.

  6. 2 min read

    Structured logging: make your logs searchable

    Plain text logs are easy to write and painful to search. Structured JSON logs with levels and consistent fields turn finding one failed order into a single query.

  7. 2 min read

    Dependency hygiene: audit, update and prune npm packages

    Outdated and unused packages are a security risk and a tax on every install. A short routine with npm audit, npm outdated and a cleanup tool keeps a project healthy.

  8. 2 min read

    Client-side caching for API responses

    Refetching the same data on every visit wastes time and bandwidth. HTTP cache headers, an in-memory cache and browser storage each solve a different part of the problem.

  9. 2 min read

    Tree shaking: why your bundle still ships unused code

    Tree shaking removes code you never import, but only when the bundler can prove it is unused. ES modules, the sideEffects flag and your import style decide what goes.

  10. 2 min read

    JavaScript debugging beyond console.log

    console.log works until the bug is three calls deep. Breakpoints, conditional breakpoints, logpoints and the call stack show what the code does while it runs.

  11. 2 min read

    Native image lazy loading: one attribute, used well

    The loading attribute delays offscreen images until the user scrolls near them. It takes one word, but on the wrong image it makes a page slower. Where it belongs.

  12. 2 min read

    Serverless cold starts: causes and fixes

    The first request to an idle serverless function is slow because the platform has to start it. What happens during a cold start and six ways to shorten or avoid it.

Tell us what’s in the way.

A few lines is enough. You get a candid yes, a candid no, or a sharper question.

  • Working software in week four
  • A reply in one business day
  • Handover is the deliverable

Prefer email? [email protected]

The problem, who it is for, and what is in the way right now.

One business day to a real reply. No sales sequence, no call required.