---
title: "Adam Lewis (@nark3d) | Hashnode"
description: "Product Engineer/Architect navigating the AI revolution. Read the latest articles by Adam Lewis on Hashnode."
url: "https://hashnode.com/@nark3d"
---

@nark3d

# Adam Lewis

@nark3d · Bedford, UK · Joined June 2026

Product Engineer/Architect navigating the AI revolution

### [Simplicity: the cap only enforces the part you can count](https://prickles.hashnode.dev/simplicity-the-cap-only-enforces-the-part-you-can-count?utm_source=hashnode&utm_medium=feed)

I've watched F4 get agreed in the retro and violated by lunchtime. The deadline closes, a parameter gets added for the next time it is needed, a helper grows a flag so one caller can opt out of half o

2 min read · [prickles.hashnode.dev](https://prickles.hashnode.dev/simplicity-the-cap-only-enforces-the-part-you-can-count?utm_source=hashnode&utm_medium=feed)

[Oct 13](https://hashnode.com/posts/simplicity-the-cap-only-enforces-the-part-you-can-count/6acde6bbac9aae0433fb676f)

### [Don't Repeat Yourself: the second copy is the bug](https://prickles.hashnode.dev/don-t-repeat-yourself-the-second-copy-is-the-bug?utm_source=hashnode&utm_medium=feed)

I watched a team spend a fortnight arguing about a helper function. Six callers, four boolean flags, a name that had been accurate for the first caller and never since. Everyone agreed it was fine bec

3 min read · [prickles.hashnode.dev](https://prickles.hashnode.dev/don-t-repeat-yourself-the-second-copy-is-the-bug?utm_source=hashnode&utm_medium=feed)

[1](https://hashnode.com/posts/don-t-repeat-yourself-the-second-copy-is-the-bug/6abb71d1a5ec1a600edd48cc) [Sep 29](https://hashnode.com/posts/don-t-repeat-yourself-the-second-copy-is-the-bug/6abb71d1a5ec1a600edd48cc)

### [Persistent Brief: commit the paragraph so the agent stops guessing](https://prickles.hashnode.dev/persistent-brief-commit-the-paragraph-so-the-agent-stops-guessing?utm_source=hashnode&utm_medium=feed)

I have watched teams solve the same problem thirty times in a chat box and call it a workflow. Session one opens with a paragraph: Tailwind, no inline styles, single quotes, named exports, no comments

2 min read · [prickles.hashnode.dev](https://prickles.hashnode.dev/persistent-brief-commit-the-paragraph-so-the-agent-stops-guessing?utm_source=hashnode&utm_medium=feed)

[Sep 19](https://hashnode.com/posts/persistent-brief-commit-the-paragraph-so-the-agent-stops-guessing/6aae6248cfd5f875d5963d9d)

### [Parameter objects: max-params 3 was always a proxy](https://prickles.hashnode.dev/parameter-objects-max-params-3-was-always-a-proxy?utm_source=hashnode&utm_medium=feed)

I have lost count of the times I have read a function call with five positional arguments and had to count the commas backwards to work out which one is the timeout and which is the retry count. The f

2 min read · [prickles.hashnode.dev](https://prickles.hashnode.dev/parameter-objects-max-params-3-was-always-a-proxy?utm_source=hashnode&utm_medium=feed)

[Sep 18](https://hashnode.com/posts/parameter-objects-max-params-3-was-always-a-proxy/6aad068b13828b2920007abd)

### [Naming: if you have to open the body, the name isn't done](https://prickles.hashnode.dev/naming-if-you-have-to-open-the-body-the-name-isn-t-done?utm_source=hashnode&utm_medium=feed)

Everyone I've worked with agrees that naming matters. Almost nobody spends any time on it. The name gets picked while the code is half written and then it sticks, because renaming feels like fuss once

3 min read · [prickles.hashnode.dev](https://prickles.hashnode.dev/naming-if-you-have-to-open-the-body-the-name-isn-t-done?utm_source=hashnode&utm_medium=feed)

[1](https://hashnode.com/posts/naming-if-you-have-to-open-the-body-the-name-isn-t-done/6a97fee7b71233486a849403) [Sep 2](https://hashnode.com/posts/naming-if-you-have-to-open-the-body-the-name-isn-t-done/6a97fee7b71233486a849403)
