Résumé · Madison, WI
Ashlie Crooks
Full-Stack Developer · AI Workflow Engineer
Full-stack developer. Three years building production Rails at a consultancy, around six years of JavaScript including React across three earlier roles, and daily AI-first development in Claude Code.
Skills
Full Stack — Ruby on Rails, React, Redux, JavaScript / ES6, TypeScript (familiar), Python (learning), Node, Express, PostgreSQL, GraphQL, REST APIs, Hotwire (Turbo & Stimulus), ViewComponents, Stripe, HTML5, CSS3, Sass, Tailwind
AI / Prompts — Claude Code, AI-Assisted Code Generation, LLM Output Validation, Specification Design, Context Engineering, Multi-Agent Orchestration, Failure-Pattern Diagnosis, Guardrail Design, Evaluation
Tooling & Infra — Git, RSpec, TDD, GitLab CI/CD, GitHub Actions, AWS, Terraform, DigitalOcean, Heroku, npm, Jekyll, WordPress, Obsidian
Leadership — Technical Communication, Client-Facing Consulting, Training & Mentoring, Curriculum Development, Hiring & Interviewing
Experience
Rails Developer — Ten Forward Consulting
- Primary technical contact for multiple clients. Joined discovery calls, scoped solutions, and shipped production code across multiple client codebases at once. By the end, touching roughly four client codebases in a single day was the norm.
- Ramped onto Ruby and Rails from zero. Read production code on day one, shipped a bug fix in the first week, and was leading projects within about 18 months.
- Led the AI-assisted frontend rewrite of a survey platform used by 2,000+ schools: Figma AI for prototyping, Claude for converting components and replacing legacy CoffeeScript with Hotwire and modern ES6. More than 10,000 lines in three weeks, rolled out to users behind a Flipper feature flag.
- Lead developer on Voter Directed Network (live at app.voterdirectednetwork.com), a Rails 7/8 civic-engagement social app built on PostgreSQL, Sass, Tailwind, and Hotwire. Owned it from data model to final pixel across all four vote types, with voting dashboard, statement forms, comments, and admin interfaces. Built the ranked-choice elimination algorithm paired with the senior engineer, working the rounds by hand on paper to build ground-truth answers, then writing the RSpec suite against them at 100% coverage on that feature.
- Drove architecture decisions through ADRs and collaborative review. Wrote decision records for the core data model and the ranked-choice design, then walked the team through each before implementing.
- Built features within and extended the firm's in-house CMS framework, a Rails platform powering content sites for clients across legal, education, banking, and dental. Work ranged from reusable content blocks to changes in the framework itself, rolled out across every site built on it.
- Maintained and modernized multiple legacy Rails apps. Upgraded older apps to current Ruby and Rails versions, handled one-off client requests, and ran full feature sprints while keeping apps live for active users.
- Self-appointed "CSS Whisperer." Modernized the team's frontend practices: flexbox and grid over floats, Dart Sass, Hotwire (Turbo and Stimulus) replacing CoffeeScript, and a ViewComponent library with Lookbook.
- Set up GitHub Actions CI on a client Rails app (bundler-audit, RSpec, and Rubocop as quality gates) and maintained CI on other client apps.
Business Design Specialist, Tech Team — Tenney 110
- Built a React dashboard (homeowner-to-contractor matching) for one of the ventures at Tenney 110, American Family Insurance's corporate venture studio, then refactored it to be reusable across future ventures.
- Built and maintained the company website with Jekyll, Terraform, AWS, and GitLab CI/CD.
- Ran early-stage customer discovery across several ventures, interviewing prospective users and subject-matter experts. For a photo-based tree-health service, validated demand with a Wizard-of-Oz MVP (tree photos routed to an arborist whose written assessment came back as a PDF) before building toward automation.
Full-Stack Developer — Mobile22
- Built a multi-tenant SaaS fleet-administration platform end-to-end, serving two distinct audiences: a fleet-management interface (React, Redux) for mechanics and garage staff, and data-visualization dashboards (Recharts, with Excel export) for owners and managers.
- Built the backend, a Node/Express service layer on PostgreSQL with API routes for booking requests, ride ordering, and payment, plus a library of modularized knex.js queries. Also worked as backend developer on the iOS Driver app and took part in Swift code reviews.
- Built a Stripe payment integration from scratch for automatic payouts to independent-contractor drivers across multiple client configurations.
- Triaged launch-day issues: root-cause analysis and proposed fixes that were implemented the same day.
Lead React Developer — Rebate Bus
- Built a web app from the ground up using React, Redux, Apollo Client, and GraphQL.
- Created documentation for team and client reference, and developed training for non-technical team members on the software's capabilities to improve sales and client satisfaction.
Curriculum & WordPress Developer, Instructor — Maydm
- Taught front-end web development to middle- and high-school students at a Madison nonprofit serving youth underrepresented in tech: ran a semester-long front-end class for 6th–8th graders and one-off workshops for older students, led the classroom, and connected students with volunteer mentors.
- Developed the curriculum for these workshops, covering web development (HTML, CSS, JS) and block coding (micro:bit, MIT App Inventor).
- Built custom WordPress pages for donation campaigns and annual reports; implemented site changes with plugins, PHP, and CSS.
Freelance Web Developer — Self-Employed
- Built client websites in WordPress with custom PHP, CSS, and JavaScript; scoped projects and managed client relationships.
- Provided training and ongoing support, recommending plugins and solutions tailored to each client's needs.
Selected Projects
Multi-Agent Coaching System
- Runs two orchestrated Claude instances with structured handoffs as a daily-use system (since February 2026), coordinating job search, fitness, creative work, and daily accountability across 500+ context files.
- Coordinated by a 200+ line behavioral specification, iterated across 100+ sessions: diagnosed recurring failure patterns (context drift, silent data loss, sycophantic close-out, spec violations) and wrote a targeted guardrail for each.
- Tuned the spec until a fresh Claude instance loads it and runs the workflow correctly without correction.
Multi-Agent Job-Search Workflow
- Designed an agentic pipeline (fan-out discovery, source-grounded verification, fresh-context rating, synthesis) that splits LLM judgment from deterministic code.
- Passed schema-validated outputs between agents to keep each stage's results typed and parseable, and kept dedup and cooldown filtering in plain code rather than agents, so the deterministic work stays predictable.
- Runs as live, personal job-search tooling.
LLM Validation Pipeline
- Built a validation layer on top of an LLM that was confidently inventing about 20% of the track names it returned for a Tidal/Last.fm playlist curator, and drove the fabricated results to zero.
- Layered confidence tiers (auto-accept, review, reject), cross-checks against the Last.fm and Tidal APIs, and fuzzy matching against real track names.
- Ships as a CLI: the guardrail layer the model could not supply itself.
Version-Controlled Prompt Documentation
- Maintains version-controlled prompt documentation for a cover-letter generator, job scraper, meal planner, and workout-template builder, each treated as an engineering artifact.
- Logs every failure and the constraint that fixed it (skill hallucinations, voice drift, scheduling gaps), so each prompt carries a written refinement history.
- The discipline shifted the work from drafting to evaluating and correcting model output.
Recipe App — Python via TDD
- Learning Python TDD-first by building a FastAPI and Postgres recipe app, writing the code by hand.
- Uses Claude as a personalized tutor rather than a code generator: it writes lessons mapped to existing Ruby and JavaScript knowledge and gives hints without giving answers.
- Four milestones in five days, all TDD-driven.
Mentoring & Community
- Volunteered for years as a mock interviewer for YWeb Career Academy, the YWCA's coding bootcamp, roleplaying the interviewer to give career-changers realistic interview practice, first independently and later through Ten Forward.
- Mentored a developer through his first tech job at Ten Forward, supporting him as he grew into independent engineering work.
- At Rebate Bus, led the hiring round for a junior developer and owned his training through his first developer role, coaching him on code review and standards while picking up React hooks and newer patterns from him in turn.
- Turned a frustrated client stakeholder into a direct, trusting relationship by translating scope: when a new lead took over a project mid-stream and costs kept climbing, walked her through where the open questions were, why they drove the timeline, and which features could move to the backlog. By the end, the stakeholder would directly text whenever she needed something, rather than reach out through "official" channels.
- Developed front-line staff and supervisors into their own leadership roles across 17 years of retail and service management.
Retail & Service Leadership
Seventeen years leading retail and service teams before tech, most of it translating between upper management, front-line staff, and customers.
Team Leader — Whole Foods Market
- As Prepared Foods Team Leader, managed up to 50 employees across hiring, training, feedback and corrective action, and payroll-budget ownership.
- Broke the weekly sales record through merchandising and labor management; voted Outstanding Team Leader twice as Prepared Foods lead, and twice more earlier as a Customer Service lead.
- Launched a fresh-pizza program and personally trained two new stores' programs (sending team members to support two more, four stores touched in all), and built an off-site catering program that grew weekly sales 4% while holding target margins.
- As Customer Service Associate Team Leader, managed up to 35 employees and cut labor 5–7 hours a week by moving cashier break-tracking from a handwritten schedule to a spreadsheet, freeing supervisors to support the floor.
- Set CS team's annual-fundraiser goal to $25K, coached cashiers on donation solicitation, worked with other teams to develop cashier incentives, and beat the target by 10% (and the prior year by $10K).
Store Manager — Blockbuster Video
- Owned store profitability, weekly sales quotas, and up to 12 employees, including hiring, training, development, and retention.
- Grew rental revenue 20% in the first year as manager, increased confection sales 15%, consistently beat shrinkage goals, and held customer-satisfaction scores in the 90–100 range.
Education