close

DEV Community

SEN LLC profile picture

SEN LLC

I build small, focused tools and ship them open-source. Based in Japan 🇯🇵 with SEN LLC, working through a 100+ portfolio at sen.ltd/portfolio. Posts about TypeScript, AWS, and bugs that taught me so

Location Tokyo, Japan Joined Joined on  Personal website https://sen.ltd

Work

Engineer at SEN LLC

How Much Faster Is Rust/WASM Than JS for Image Filters? I Ran Both Side by Side and Measured

How Much Faster Is Rust/WASM Than JS for Image Filters? I Ran Both Side by Side and Measured

BERJAYA 1
Comments
6 min read
A Cross-OS Port Finder in Rust — One CLI, Three Completely Different Data Formats

A Cross-OS Port Finder in Rust — One CLI, Three Completely Different Data Formats

Comments
9 min read
A 300-Line GitHub Actions Security Linter: Five Rules That Catch the CVE Patterns

A 300-Line GitHub Actions Security Linter: Five Rules That Catch the CVE Patterns

Comments
7 min read
A TLS Certificate CLI in Rust — No OpenSSL, No Ceremony, Just a Fail-the-Build Exit Code

A TLS Certificate CLI in Rust — No OpenSSL, No Ceremony, Just a Fail-the-Build Exit Code

BERJAYA 1
Comments
7 min read
CSV Sort, Done Right: Why `sort -t,` Is a Trap and What a 300-Line PHP CLI Does Instead

CSV Sort, Done Right: Why `sort -t,` Is a Trap and What a 300-Line PHP CLI Does Instead

BERJAYA 1
Comments
9 min read
Reimplementing fd in 500 lines of Rust (and what I learned about the crates it stands on)

Reimplementing fd in 500 lines of Rust (and what I learned about the crates it stands on)

Comments
10 min read
I Built a .env Diff Tool That Refuses to Print Values

I Built a .env Diff Tool That Refuses to Print Values

Comments
10 min read
Writing a Regex Playground in 200 Lines of Rust

Writing a Regex Playground in 200 Lines of Rust

Comments
9 min read
A 10 MB Markdown-to-HTML Service in Rust with pulldown-cmark

A 10 MB Markdown-to-HTML Service in Rust with pulldown-cmark

Comments
9 min read
git log --pretty is a tiny DSL: building a zero-dep CHANGELOG generator

git log --pretty is a tiny DSL: building a zero-dep CHANGELOG generator

Comments
8 min read
Seed Data Without a Dependency Tree: A Tiny PHP CLI Instead of Faker

Seed Data Without a Dependency Tree: A Tiny PHP CLI Instead of Faker

Comments
10 min read
sharp on Alpine Without Tears: a 260 MB Image Resize API in Hono

sharp on Alpine Without Tears: a 260 MB Image Resize API in Hono

Comments
9 min read
Writing a tar Inspector in Rust with Three Dependencies

Writing a tar Inspector in Rust with Three Dependencies

Comments
9 min read
A Tiny PHP Invoice-PDF API: Slim 4, dompdf, and the JPY Rounding Footgun

A Tiny PHP Invoice-PDF API: Slim 4, dompdf, and the JPY Rounding Footgun

Comments
9 min read
Writing dig in 500 Lines of Rust (with hickory-resolver, the trust-dns successor)

Writing dig in 500 Lines of Rust (with hickory-resolver, the trust-dns successor)

Comments
10 min read
Writing Cron Semantics in ~100 Lines of TypeScript

Writing Cron Semantics in ~100 Lines of TypeScript

BERJAYA 1
Comments
8 min read
PHPStan's JSON Output Is Noise. I Wrote a Formatter with a Baseline Diff.

PHPStan's JSON Output Is Noise. I Wrote a Formatter with a Baseline Diff.

Comments
9 min read
I Got Tired of Pasting EXPLAIN Plans Into Web Tools, So I Wrote pg-explain-viz

I Got Tired of Pasting EXPLAIN Plans Into Web Tools, So I Wrote pg-explain-viz

Comments
10 min read
Discord Slash Commands Without an SDK: ed25519 in 250 Lines of TypeScript

Discord Slash Commands Without an SDK: ed25519 in 250 Lines of TypeScript

Comments
10 min read
Writing an HTTP Load Tester That Doesn't Lie About p99

Writing an HTTP Load Tester That Doesn't Lie About p99

Comments
8 min read
A Portfolio-Sized URL Shortener in 300 Lines of PHP

A Portfolio-Sized URL Shortener in 300 Lines of PHP

BERJAYA 1
Comments
9 min read
Describing Cron Expressions: Why Templates Don't Work, and What Does

Describing Cron Expressions: Why Templates Don't Work, and What Does

Comments
8 min read
Writing a YAML Linter in Rust Because YAML Is Secretly Terrible

Writing a YAML Linter in Rust Because YAML Is Secretly Terrible

Comments
11 min read
Parsing Prisma Schema By Hand: A 300-Line CLI That Emits Mermaid ER Diagrams

Parsing Prisma Schema By Hand: A 300-Line CLI That Emits Mermaid ER Diagrams

Comments
10 min read
Debugging TCP by Building Your Own Logging Proxy in 400 Lines of Rust

Debugging TCP by Building Your Own Logging Proxy in 400 Lines of Rust

Comments
8 min read
Building an XPath Query Tool in PHP — Slice XML Like a Pro

Building an XPath Query Tool in PHP — Slice XML Like a Pro

Comments
8 min read
Building a Changelog Generator in Rust — From Conventional Commits to Keep a Changelog

Building a Changelog Generator in Rust — From Conventional Commits to Keep a Changelog

Comments
8 min read
Building a .gitignore Generator CLI in Python — 51 Templates, Zero Dependencies

Building a .gitignore Generator CLI in Python — 51 Templates, Zero Dependencies

Comments
9 min read
Building a MIME Type Lookup CLI in TypeScript — 800+ Types, Magic Bytes, and Zero Dependencies

Building a MIME Type Lookup CLI in TypeScript — 800+ Types, Magic Bytes, and Zero Dependencies

Comments
8 min read
Building a TOML Formatter in Rust — Sorted Keys, Aligned Equals, and CI-Friendly Check Mode

Building a TOML Formatter in Rust — Sorted Keys, Aligned Equals, and CI-Friendly Check Mode

Comments
8 min read
Building an HTTP Status Code Reference CLI in PHP — No Dependencies Required

Building an HTTP Status Code Reference CLI in PHP — No Dependencies Required

Comments
8 min read
I Wrote a .env Linter from Scratch — Here Are the 9 Rules That Actually Matter

I Wrote a .env Linter from Scratch — Here Are the 9 Rules That Actually Matter

Comments
8 min read
Building a Configurable TCP Echo Server in Rust with Tokio

Building a Configurable TCP Echo Server in Rust with Tokio

Comments
8 min read
Implementing semver 2.0.0 from scratch in TypeScript — no semver package allowed

Implementing semver 2.0.0 from scratch in TypeScript — no semver package allowed

Comments
9 min read
Building a strict INI parser from scratch in Python — no configparser allowed

Building a strict INI parser from scratch in Python — no configparser allowed

Comments
8 min read
Building a Concurrent TCP Port Scanner in Rust with Tokio Semaphores

Building a Concurrent TCP Port Scanner in Rust with Tokio Semaphores

Comments
9 min read
phpcron: a tiny PHP CLI for poking at cron expressions

phpcron: a tiny PHP CLI for poking at cron expressions

Comments
8 min read
Writing a compliant RFC 6902 JSON Patch CLI in one evening, zero runtime deps

Writing a compliant RFC 6902 JSON Patch CLI in one evening, zero runtime deps

Comments
9 min read
A 600-line Rust log rotator, or: what logrotate would look like if it had no config file

A 600-line Rust log rotator, or: what logrotate would look like if it had no config file

Comments
10 min read
Micro-benchmarking TypeScript Without Lying to Yourself

Micro-benchmarking TypeScript Without Lying to Yourself

BERJAYA 1
Comments
8 min read
The Four Rate-Limiting Algorithms You Should Know (I Built a PHP Service That Runs All Five)

The Four Rate-Limiting Algorithms You Should Know (I Built a PHP Service That Runs All Five)

Comments
10 min read
A Polite Port Scanner in 400 Lines of Tokio

A Polite Port Scanner in 400 Lines of Tokio

Comments
9 min read
Counting TypeScript Escape Hatches — A Zero-Dependency CLI with a Baseline Gate

Counting TypeScript Escape Hatches — A Zero-Dependency CLI with a Baseline Gate

Comments
9 min read
The similar crate is underrated: I wrote a colored diff CLI in a weekend

The similar crate is underrated: I wrote a colored diff CLI in a weekend

Comments
8 min read
A Minimum-Viable RSS Aggregator in TypeScript with Hono

A Minimum-Viable RSS Aggregator in TypeScript with Hono

Comments
12 min read
SQLite's PRAGMAs You Never Remember — I Put Them in a CLI

SQLite's PRAGMAs You Never Remember — I Put Them in a CLI

Comments
8 min read
A Self-Hosted PHP Contact Form Backend Without CAPTCHA

A Self-Hosted PHP Contact Form Backend Without CAPTCHA

Comments
7 min read
I Built jq for TOML Because My Shell Scripts Deserved Better

I Built jq for TOML Because My Shell Scripts Deserved Better

Comments
9 min read
pdf-lib Is an Under-Appreciated Gem: A Tiny PDF API in TypeScript

pdf-lib Is an Under-Appreciated Gem: A Tiny PDF API in TypeScript

Comments
10 min read
Building a URL Shortener in Rust with axum, SQLite, and 30 Lines of base62

Building a URL Shortener in Rust with axum, SQLite, and 30 Lines of base62

Comments
9 min read
I Built a CLI Runner for VS Code's `.http` Files in ~500 Lines of TypeScript

I Built a CLI Runner for VS Code's `.http` Files in ~500 Lines of TypeScript

Comments
8 min read
npm audit --json Is Unreadable. I Wrote a Formatter With Zero Dependencies.

npm audit --json Is Unreadable. I Wrote a Formatter With Zero Dependencies.

BERJAYA 2
Comments
8 min read
TOTP From First Principles: Building an RFC 4226 / 6238 CLI in Rust

TOTP From First Principles: Building an RFC 4226 / 6238 CLI in Rust

BERJAYA 1
Comments
9 min read
Envelope Encryption for .env Files, the Right Way (PHP CLI, Stdlib Only)

Envelope Encryption for .env Files, the Right Way (PHP CLI, Stdlib Only)

Comments
9 min read
Mocking an OpenAPI Spec From Scratch in 600 Lines of TypeScript

Mocking an OpenAPI Spec From Scratch in 600 Lines of TypeScript

Comments
9 min read
Parsing RSS and Atom From Scratch in Rust with quick-xml

Parsing RSS and Atom From Scratch in Rust with quick-xml

BERJAYA 1
Comments
10 min read
The Four Pagination Strategies Every Backend Dev Should Know

The Four Pagination Strategies Every Backend Dev Should Know

Comments
9 min read
zod-to-schema: A Zero-Config CLI That Runs Your TypeScript In-Process

zod-to-schema: A Zero-Config CLI That Runs Your TypeScript In-Process

Comments
8 min read
A local requestbin in 200 lines of PHP — why self-hosting beats webhook.site for production debugging

A local requestbin in 200 lines of PHP — why self-hosting beats webhook.site for production debugging

Comments
9 min read
The `notify` crate is surprisingly pleasant — I built a cross-platform file watcher in four dependencies

The `notify` crate is surprisingly pleasant — I built a cross-platform file watcher in four dependencies

Comments
8 min read
loading...