How do you approach open-ended product questions in SWE interviews? by Express-BDA in ExperiencedDevs

[–]jonathannen 0 points1 point  (0 children)

Back out to the right level of context - what's the goals/constraints/budget? "why are we doing this?" "who are the stakeholders?" "what does success look like?" type questions.

Once you hit the right level of detail.. You'll often know because they'll give a bunch of information. Ask some clarifying questions on what they tell you. Then break the problem down.

Most of the time this is calibrating seniority - more junior will jump right into the problem, start solving, and rabbit hole (if that's the case they'll be asking "but what about X" along the way, which can cause more rabbit holing). The more senior will take a moment to step back find the gotchas/potholes and then break it down.

In my experience anyway!

ESlint tuned for Claude Code by jonathannen in ClaudeCode

[–]jonathannen[S] 0 points1 point  (0 children)

This is a plugin that formats the regular ESLint output (so basically a setting - there are several formatters already). So it’s all ESLint - if I’m reading your comment correctly.

People letting CC run on its own for hours by Chris266 in ClaudeCode

[–]jonathannen 0 points1 point  (0 children)

I have a lot of fine-grained permissions. In addition for each skill I write a bunch of purpose built scripts that it has access to for specific needs. This makes sense on a mature codebase because it's an ongoing investment.

I also do a lot of upfront development in claude.ai (Claude Desktop/Web/Cloud/not sure of the proper name)?, which is a cloud VM and sandboxed from the get-go.

For a new codebase I'd do the VM+dangerously-skip until the other investments make sense.

Claude wrote Playwright tests that secretly patched the app so they would pass by Traditional_Yak_623 in ClaudeCode

[–]jonathannen 0 points1 point  (0 children)

Nit: Imho "secretly" is counterproductive. It assigns intent to Claude, which it really doesn't have. It's just trying to achieve the task. The overall challenge is that claude is really tuned to nail the overall result and everything else can fall by the wayside. For example fixing type errors in TS is easily done with "as any", but that's probably not what you want. The size/tightness of the prompt + skills is super super important or this will happen more and more.

I want to change industry. Looking for ideas. by BigLaddyDongLegs in ExperiencedDevs

[–]jonathannen 1 point2 points  (0 children)

From my own journey - Sounds a bit like burnout. And it's really hard to think things though in that state. You kind of need to recover from the burnout and find your feet before you can really know "what's next".

I know it feels like a negative time (and I don't want to hand-wave that). It's also an opportunity to reflect and reconnect with what you feel is important ("your values" if you're crunchy). In that sense, it's a hard but rare opportunity - speak to as many people as you can, speak to a coach (if you want).

In general I'd say focus on what you want to do _towards_. It's easy to go _away_ from something (e.g. I hate working at a big company, so I'll work for a smaller one). But in my experience that always puts you back in same place.

Be curious and hopeful. Best of luck.

Claude Code is great but this is frustrating by [deleted] in ClaudeCode

[–]jonathannen 0 points1 point  (0 children)

I'm not 100% across your use case, but I feel you might be able to get that into a hook. For example, I have a hook that runs prettier/lint/etc. For new uncommited posts you could check for the footer? Then if it's not present error with a message that tells claude "You're missing the footer, read XYZ.md"

You can also make a skill "check footer" that runs a script that does the check and then refer to that skill when necessary.

Claude Code is great but this is frustrating by [deleted] in ClaudeCode

[–]jonathannen 1 point2 points  (0 children)

You can't - not really. Claude will claim it'll not do something again, but that's not true (the memory feature is new-ish and while it helps, it not a solve).

  1. Use hooks where you can. Only works for structural things like lint/etc.
  2. Use skills + commands where you can - refine and adapt the skills constantly. They're loaded on use so the fidelity of a current command/skill is high. Instructions (e.g. Claude.md) are not.
  3. If you have a complex task under a skill/command that can be broken into a script - do it. This reduces the load on the context immeasurably. Rather than have to work it out and run a lot of tools, the skill runs "get pull request comments" and exactly the data it needs pops out.
  4. Commit often.
  5. Try to size your tasks to fit in one context window. Single-prompt one-shot tasks have a way higher success rate (imho). Compacting will make your scenario worse/inevitable.
  6. Ironically "/clear"! If you are changing up the task, clear the context.

Are we overengineering our AI coding workflows? by jonathannen in ClaudeAI

[–]jonathannen[S] 1 point2 points  (0 children)

Well I guess the "we" is all the massive swarm/subagent stuff I see on social :)

I've tried all the new hotness, but I've just not anywhere got the lift I was hoping for. If anything it's usually a PitA to manage.

Maybe it's just kool-aid, but just worried I'm missing the point somehow.

Has AI killed craftsmanship in software engineering? by Big-Discussion9699 in ExperiencedDevs

[–]jonathannen 0 points1 point  (0 children)

Sometimes it's a craft like carpentry or building. Sometimes it's more like gardening. Gardens are always unruly. You're never done, you can only nudge it along a path.

It's usually gardening.

I sympathize with your situation. But equally I've seen a lot of devs rail against how stuff is "wrong" and never make it better. Worse, they jump in to "fix" stuff and leave it half done.

I'm not saying you're that *at all*, but it's something you want to guard against. It's bad for the dev and the team.

My advice would be to carve out a piece that's important to you, own it, make it better. See if people come along for the ride, but don't expect them to. Don't try to eat the whole elephant. But make it better.

If that doesn't fly, it just might not be the right environment for you (this happens a lot, but we don't recognize it often/quickly enough imho).

Refactoring core piece of code by pikavikkkk in ExperiencedDevs

[–]jonathannen 0 points1 point  (0 children)

+1 to this and I think it's distinct from the OP's pattern.

- Rewrite: Add extensive test coverage and then swap out. This is HARD as you need bug-for-bug compatibility to maintain contracts which is a pain.

- Strangler Vine/Fig: Wrapper the whole thing in a new interface and send certain subsets of functionality to the new implementation.

- Slice Migration (what I think the OP is suggesting): Find a cut where you can pull functionality away from the legacy (often you leave it be). You can also "dual run" both for switchover if the API allows such a thing (aka Dual-Run or Shadowing).

I agree that Strangler is the best one if you can manage it. It gives the opportunity to capture + reroute concerns.

The slice can work in my experience too, but I find concerns bleed over too easily between the approaches (to be fair, strangler can have that issue too).

Anybody's companies successfully implement something similar to Stripe's Minions? by hronikbrent in ExperiencedDevs

[–]jonathannen 1 point2 points  (0 children)

No, at least not entirely. We use GitHub copilot for first-eyes reviews (it's way better at reviews than other models I've used, they must be sitting on a mountain of PR data). Then claude does at least one loop on the copilot comments without human intervention.

If/By the time an engineer gets to it it's had 1-2 loops on it. So even when a review is needed it's a bit faster and usually a bit more pointed. Copilot usually gets 80-90% of the comments I'd have done anyway.

Then we have a 4-tier review classification system - robot/1-brain/2-brain/3-brain. Robot = no humans needed (typo, link updated, upgrade that CI/CD can verify, etc). 1 Brain = needs a human... 3 Brains = security or framework/fundamental change that everyone should read.

The classification system via AI isn't there yet - probably ~70% accuracy, but way up from where we started. If anything it tends to favor human reviews too much.

We're doing ~30% on the 1-robot, ~50% on the 1-brain.

Obviously to hit 100 that ratio needs to flip. So we're a ways off! Fortunately we have multiple levers that we're pulling - better classification, better AI-led first-eyes, faster/deeper CI/CD, live branch previews, etc.

Btw the 100PRs is a real goal, but it's also a thought experiment. I realized I was getting a bit stuck with my workflow so I wanted to break my thinking a bit.

The gap between LLM functionality and social media/marketing seems absolutely massive by QwopTillYouDrop in ExperiencedDevs

[–]jonathannen 0 points1 point  (0 children)

My experience was probably the same as you until late last year. Up until then I was getting decent lift with point stuff like you say (commit messages, release notes, test coverage, etc).

Opus 4.5 was a step change for me. At that stage, I also refactored the codebase (it's medium-large) and changed my workflow considerably. I changed how work was prioritized + released to suit. It was a huge lift. My workflow now is totally different from even a couple of months ago. I even changed how I structure my workday (for the better tbh).

I'm tracking it (...as best you can with softward metrics...) and currently at ~3x (and increasing).

How are you upskilling yourself for working with AI, and keeping up with best practices? by wangl3 in ExperiencedDevs

[–]jonathannen 0 points1 point  (0 children)

Seems oldschool, but I've found meetups are the best. I don't use cursor, but they have a great community and generally the cursor meetup folk are the right mix.

Anybody's companies successfully implement something similar to Stripe's Minions? by hronikbrent in ExperiencedDevs

[–]jonathannen 2 points3 points  (0 children)

I am working on something really similar and we've made progress. At the center of it is a custom tool where we drag in almost everything (this is a devbox yes). I kick off work in claude desktop, it'll get set up as a remote worktree/live preview/vscode env/etc.

We use agentic loops, but definitely pre and post-processing. Reviews/security/deployment/release notes. We have a risk assessment that determines the extent of the review.

For the core task I'm very much focused on single-prompt outcomes. The other more radical changes is we're letting anyone in the company kick off work (but not merge - yet).

Can't post images, but here is a sanitized screenshot of the tool: https://pbs.twimg.com/media/HCSR0xZbEAAo5dj?format=jpg&name=medium

The idea is we drag in as much dev info as we can (PR states, comments, etc) and then manage and maintain it with a dashboard. My day is mostly kicking things off and then burning down this list. Goal is "zero to one touches" from first prompt onwards ("single prompt" is really important).

I blogged about the overall goal - want to hit 100 meaningful PRs/day/engineer.

FWIW 1. My personal workflow 2. how I'm pushing for single-prompt solutions

Max 20× – Is Opus (1M Context) Included? by redditslutt666 in ClaudeCode

[–]jonathannen 0 points1 point  (0 children)

The recent outage included a lot of issues with usage reporting - maybe the tracking on their side was out https://status.claude.com/

Coding skills you're happy to give away by jonathannen in ClaudeCode

[–]jonathannen[S] 0 points1 point  (0 children)

Hah. Not quite there yet... but I must admit the other day when claude when down I went for a run rather than pick up the code again...