Skip to main content
Ice's Stack

Engineer

Full-stack engineer in Copenhagen. TypeScript from the interface to the database.

  • React
  • Next.js
  • TypeScript
  • Node.js
  • PostgreSQL
Now
Product engineer at Trailr AI, an early-stage AI video startup, part-time with equity warrants. I joined as a frontend intern and led the platform's UI/UX redesign, scoped to what the existing backend could support.
Before
Four cycles at Millennial Consulting, from Operations Assistant to Operations Manager to Head of Organization, coordinating around five client projects per cycle with no full-time staff.
Script of card “Ice's Stack”
function atkinson(gray, width, height) {
  const px = Float32Array.from(gray);
  const out = Buffer.alloc(width * height);
  const spread = [
    [1, 0], [2, 0],
    [-1, 1], [0, 1], [1, 1],
    [0, 2],
  ];
  for (let y = 0; y < height; y++) {
    for (let x = 0; x < width; x++) {
      const i = y * width + x;
      const value = px[i] < 128 ? 0 : 255;
      out[i] = value;
      const err = (px[i] - value) / 8;
      for (const [dx, dy] of spread) {
        const nx = x + dx;
        const ny = y + dy;
        if (nx < 0 || nx >= width || ny >= height) continue;
        px[ny * width + nx] += err;
      }
    }
  }
  return out;
}

The function that drew every picture in this stack. Bill Atkinson's dither, the one MacPaint and HyperCard shipped, running in this site's build script.