April 10, 2026

Hello, World

meta
Hello, World cover graphic for erkshitiz.com.np

I have been building software professionally for close to a decade, mostly backend systems, cloud infrastructure, and the occasional frontend when nobody else was around to do it. This blog is where I plan to write about that work in more detail than a commit message allows.

Expect posts about:

  • Backend architecture and API design
  • AWS/cloud infrastructure decisions and the tradeoffs behind them
  • Debugging stories: the kind where the fix is one line but the diagnosis took a day
  • Small, reusable code snippets I keep reaching for

Here is one of those snippets, a debounce helper I rewrite in nearly every frontend project:

function debounce<T extends (...args: unknown[]) => void>(fn: T, delayMs: number) {
  let timer: ReturnType<typeof setTimeout>;
  return (...args: Parameters<T>) => {
    clearTimeout(timer);
    timer = setTimeout(() => fn(...args), delayMs);
  };
}

And the Go equivalent of a pattern I use constantly on the backend, a context-aware retry with exponential backoff:

func retry(ctx context.Context, attempts int, fn func() error) error {
	var err error
	for i := 0; i < attempts; i++ {
		if err = fn(); err == nil {
			return nil
		}
		select {
		case <-time.After(time.Duration(1<<i) * 100 * time.Millisecond):
		case <-ctx.Done():
			return ctx.Err()
		}
	}
	return err
}

More posts soon.