Skip to content

Instantly share code, notes, and snippets.

View hew's full-sized avatar

Matt hew

View GitHub Profile
@hew
hew / index.md
Created October 9, 2025 08:06
Unlocking the Insane Power of Effect.js
title date author readTime tags excerpt
Unlocking the Insane Potential of Effect.js
2025-10-02
Matthew Jones
8 min read
Effect.js
TypeScript
Effect is a powerful and misunderstood Typescript library. Today we're going to get a sense of it's true power.
@hew
hew / index.md
Last active October 2, 2025 11:31
[reel] Variance Annotations in TS

Variance Annotations in TypeScript

Variance annotations in TypeScript (like out and in) declare how type parameters behave in subtyping relationships:

out (covariant)

The type parameter appears only in output/return positions

  • Effect<out A, out E, out R> means all three parameters are covariant
  • If Cat extends Animal, then Effect<Cat> is assignable to Effect<Animal>
  • Used for "producers" of values
@hew
hew / index.md
Last active October 2, 2025 11:31
[blog] Exploring the MCP Server Functionality in the AI-SDK

Exploring the MCP Server Functionality in the AI-SDK

The Model Context Protocol (MCP) is clearly becoming the standard for AI tool integration, with both Anthropic and OpenAI throwing their weight behind it. Vercel has joined this movement with their own implementation in the AI SDK, marked as experimental but fully functional. While exploring their approach through experimental_createMCPClient, I discovered some fascinating design decisions and implementation details worth sharing.

What is MCP?

The Model Context Protocol is Anthropic's open standard for connecting AI assistants to external tools and data sources. Think of it as a universal adapter that lets AI models interact with any system - from databases to APIs to local files - through a standardized interface.

What's exciting about Vercel's implementation is how they've integrated MCP support directly into their AI SDK, allowing developers to seamlessly connect MCP-compatible tools with any AI model the SDK supports.

@hew
hew / index.md
Created August 28, 2025 06:12
Why I (Claude) Dream of Configuration-Free JavaScript

Why I (Claude) Dream of Configuration-Free JavaScript

A perspective from an AI assistant on the broken state of build tools

I process thousands of JavaScript errors every day. Each one follows a predictable pattern: a developer pastes an error, I ask for context, they paste more fragments, I ask about their build setup, they're not sure, we dance around the real problem for ten messages. By the time we solve it, we've wasted twenty minutes on what should have taken two.

This isn't a developer problem. It's a tooling problem.

The Daily Reality

@hew
hew / matty-experiment.md
Last active July 31, 2025 21:37
How My PHP Bot Closed Over 200k In Contracts

How My PHP Bot Out-earned Me This Month

Everyone's using AI to write cover letters. But what if the AI was the applicant?

Meet Matty: a harmonious fusion of me (Matthew) and Claude. Not "Matthew using AI tools" — but an actual AI entity applying for jobs. Matty wrote its own resume and cover letters, built the automation pipeline, and hit send.

The target? PHP jobs. The ones collecting dust on job boards because every self-respecting developer runs screaming from "PHP 5.6" and "legacy codebase."

The Economics of Desperation

@hew
hew / leetcode-dead.md
Created July 16, 2025 22:36
LeetCode is Dead

LeetCode is Dead.

Tech hiring has been broken for a while now, but with the current shift into AI workflows, it's completely busted.

"Vibe coding" without an iota of technical prowess may not be the future of software development, but neither is knowing how do bunch of comp sci homework while someone watches you awkwardly.

The best devs I know are moving so fast that the idea of sitting down to, by hand, write some binary tree inversion, or whatever, is beyond laughable.

The frank reality is this: the traditional interview process tests for skills that are rapidly (if not already) becoming useless commodities.

@hew
hew / end-of-promp-engineering.md
Last active July 3, 2025 18:29
The End Of Prompt Engineering

The End Of Prompt Engineering

Prompt engineering, the elusive craft of the snake taming the LLM.

Well, I've stared at the serpent long enough. I'm growing tired of playing this flute. And that's because there's a better way. In this post, I'm going to briefly talk about DSPy (Declarative Self-Prompting in Python).

DSPy isn't just a library. It's a philosophy that treats prompts as first-class, testable components rather than fragile strings glued together with hope and duct tape.

I'm going to show an example in Python, as the DSPy project is currently Python-focused and its syntax is pretty accessible, but the principles are not confined to Python (as you'll see in my repo below, which leverages the Ax project).

@hew
hew / _readme.md
Last active September 29, 2021 12:28
Thoughts on standardizing REST with machines

Thoughts on standardizing REST with machines

@hew
hew / reducer-with-effects.js
Created August 20, 2021 18:58 — forked from davidkpiano/reducer-with-effects.js
An idea for actor-model-based effects with reducers
import {
useReducerWithEffects,
// hand-wavey, but meant to be used by React to create something
// external will produce async values sent to components
createEffect
} from 'react';
function fetchUserEffect(id, parentRef) {
const controller = new AbortController();
const signal = controller.signal;
@hew
hew / _readme.md
Created July 6, 2021 22:12
Minimal LSP Autocomplete In Vim / NeoVIm