summaryrefslogtreecommitdiff
path: root/index.txt
blob: e66751d221b11cc3682bcc903d48f93327caf6ed (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# Paul Anthony Webb

**TypeScript · data models & APIs · internal tooling · self-hosted infrastructure**

paul@webb.page ·「 webb.page 」「 blog.webb.page 」「 inc.sh 」



## Profile

Paul is a design engineer with 15+ years of shipping software, currently six years at Critical Mass working on Apple’s marketing sites.

Aside from $DAYJOB he maintains Disc and Ende, a database and runtime he forked from Gel and Deno, respectively. He prefers to run his own infrastructure when possible, which makes managing these projects a fruitful experience.

He enjoys working on developer tooling due to the lack of good UX common in many of them.



## Selected Projects

### Disc ·「 disc.sh 」
- Disc is a TypeScript/Ende fork of the Gel database, created because the company behind Gel quit to work for Vercel.
- The Gel codebase contains several programming languages and disparate modules; these many moving pieces were reduced to one language/runtime and consolidated internally.
- The built-in schema codegen supports output to TypeScript, Rust, and Go from your project’s SDL.
- Many long-standing bugs are fixed and feature requests integrated.

Blog post:「 blog.webb.page/WM-095 」

### Ende ·「 ende.sh 」
- Ende is a TypeScript fork of the Deno runtime, created because the company behind Deno quit to work for Cloudflare.
- The creator of Deno complained of the bloat it has accumulated from chasing Node.js compatibility, which gave Paul the idea to strip Deno of its distractions to create a focused fork.
- Beyond a rename and surgical removal of trendy features, the future of Ende is that of common sense improvements (TypeScript 7) and increased security (permission scopes for modules).

Blog post:「 blog.webb.page/WM-105 」

### Self-hosted Infrastructure
- Paul runs several VPSes for cgit, a forum (soon to be replaced with another forum software in development), Mail-in-a-Box (soon to be replaced with Stalwart), and several websites.
- VPS authentication is passwordless, he uses SSH. `ufw` for the firewall and liberal use of `CSP`.
- Recently, the Mail-in-a-Box server was running on an ancient version of Ubuntu, which prevented the email software upgrades from happening. Paul was forced to upgrade Ubuntu in parts before the VPS was healthy enough to safely upgrade.



## Experience

### Critical Mass — Apple Marketing & Communications
**2020—present**
- **Cross-team support:** Paul regularly talks to Design and QA to offer alternatives to complicated problems. A recent notable one was the Design team using a background image of a gradient for “Siri AI” text. Paul replicated the effect in CSS and iterated with Design until it was perfect. His team lead was then approached by other teams looking to integrate the idea.
- **Scale & accessibility:** Paul helped ship marketing experiences for iPhone, AirPod, and Vision Pro, reaching millions of users whilst maintaining WCAG compliance and readability.

### Founder, Indie Developer, and Consultant
**2012—2019**
- From publishing (Gapelia), IoT (PerkinElmer), blockchain video (LBRY), Uber for Beauty (BeautyLynk) to blockchain domains (Neuenet & beachfront/) and a smattering of smaller projects.
- Many of these products/projects focused on building features 80% versus buying existing products, requiring Paul to learn how to build end-to-end from the data model, to the API, to the UI.



## AI Policy
Paul uses LLMs for grok’ing unfamiliar code, porting large codebases in the style he prefers, and sanity checking forgotten techniques. LLM-generated code is reviewed and refined where appropriate. LLMs have no place in his design or personal writing.



## Technical Skills
**Languages:** TypeScript, JavaScript
**Back-end & Data:** GraphQL APIs, data modeling, Disc, API integration
**Runtimes:** Ende/Deno, Bun, NodeJS
**Operations:** Linux administration (Ubuntu), `systemd`, Caddy, nginx, Linode/VPS, SSH, `ufw`, git
**Front-end:** HTML, CSS, SvelteKit, accessibility, responsive design
**Tools:** git, Zed, Claude



## Education

**Self-directed education · 2008—present:** Aside from office politics, the most difficult thing Paul has taught himself is that having opinionated views opposite industry darlings (React) is alienating.



## Interests

- gaming ·「 nickel.video/channel/1ee3leck39n_c3IeIi_8 」
- vintage computing ·「 blog.webb.page/WM-102 」「 systemsoft.works 」
- photography ·「 blog.webb.page/WM-096 」



## Links

Github ·「 github.com/NetOpWibby 」
LinkedIn ·「 linkedin.com/in/paulanthonywebb 」