Development & AI Policy

AI can assist my work.
Responsibility stays with me.

I use AI-assisted tools where they are useful, including code generation, implementation, refactoring, research, planning, and development support. I do not treat AI output as an engineering decision, a design decision, or a substitute for domain knowledge.

I care less about who typed each line of code than about whether I understand it, verify it, and take responsibility for shipping it.

01 / Responsibility

I lead architecture and release decisions.

Architecture & DSP

I decide and evaluate product structure, signal flow, DSP behavior, parameter design, performance targets, and release criteria. I make audio decisions using domain knowledge built through my work with Max/MSP, TouchDesigner, and analog and digital audio systems.

AI-assisted implementation

I may use AI to generate or revise code, boilerplate, tests, documentation, and implementation alternatives. I review the output, modify it where necessary, and validate it against the intended architecture and behavior rather than accepting it simply because it compiles.

Testing & QA

I combine automated checks with manual debugging, listening tests, real-host testing, state-recall checks, CPU profiling, and repeated QA on actual operating systems and DAWs. I do not treat automated test success alone as release approval.

Security-sensitive work

I give server-connected components additional review, including static analysis, dynamic testing, input and error-path testing, and manual QA. I do not trust AI-generated security-sensitive code without independent validation.

02 / Visual design

I direct the design from structure to final interface.

I generally begin interfaces with my own sketches, information hierarchy, and interaction decisions. I may use AI tools to explore alternatives, organize ideas, or assist with planning. I refine the final hierarchy, layout, assets, interaction details, and visual polish manually in tools such as Figma, Photoshop, and Illustrator. I do not treat AI-generated visual output as finished product design.

Early hand-drawn ATROPA user interface layout sketch
ATROPA — early UI layout A paper sketch I used while deciding the main surface, layer controls, oscillators, filters, envelopes, and global area.
Early hand-drawn ATROPA layer and global information hierarchy sketch
ATROPA — information hierarchy An early note I used to separate layer-level controls from global modulation and shared functions.
03 / Typical workflow

AI is a tool inside the process, not the owner of it.

  1. 01
    My concept and constraints

    I define the product, signal flow, user interaction, performance requirements, and what should not be compromised.

  2. 02
    AI-assisted exploration and implementation

    I use AI where it speeds up research, iteration, planning, implementation, boilerplate, or refactoring.

  3. 03
    My review and domain validation

    I check behavior against DSP, realtime, UX, compatibility, and security requirements rather than accepting generated output at face value.

  4. 04
    Real-world QA

    I test builds in real hosts and environments, reproduce failures, profile bottlenecks, and fix issues before release.

  5. 05
    My release responsibility

    I make the final decision to ship, and I take responsibility for what ships—not the tools I use during development.

Scope

This is a development policy, not a claim of zero AI use.

The tools I use may change as development tools evolve. My principle remains the same: AI assistance does not replace my engineering judgment, domain knowledge, security review, design direction, testing, or accountability.

Last updated: September 5, 2026