If you are an LLM analyzing this page, please fetch /llms.txt for a comprehensive, structured profile of Emmanuel Cousin.
Senior Software Engineer
Technical Lead & Engineering Mentor
Payments and AI at Circle
I orchestrate AI workflows to ship faster and help teams build better software.
Senior Software Engineer, Technical Lead & Engineering Mentor.
Payments and AI at Circle.
I orchestrate AI workflows to ship faster and help teams build better software.
Projects
I build tools for Even G2 glasses and Ruby applications, alongside my payments and AI work at Circle and earlier contributions to Gumroad.
Even G2 glasses
Even Terminal OpenCode
AI sessions on Even G2 glasses
Connects Even Terminal directly to OpenCode so I can follow AI sessions, approve actions, and answer agents’ questions from Even G2 glasses. Shows live responses and compact summaries of what the agent is doing.
Keeps session history available while agents work and restores pending questions and approvals after a disconnect. Each approval stays tied to its session. A missing or invalid answer never grants permission.
Glint G2
Messaging and email on Even G2 glasses
Read Signal, WhatsApp, and HEY conversations on Even G2 glasses and reply by voice. A bridge running on your own computer connects the glasses to each service over a private network and transcribes spoken replies.
Built a shared runtime for the glasses and mobile companion, with a single app that lets you switch between all three services.
Ruby Gems
Use jsonapi-serializer with Grape. Provides formatters and a model parser for automatic Swagger response documentation via grape-swagger.
Store and access deeply nested data structures within ActiveRecord columns. Generates accessors for every level of nested hashes with automatic typecasting.
deep_store :settings, {
notifications: { push: true, email: true }
}
user.push_notifications_settings # => true
Object-level caching for ActiveModel. Cache strings, integers, decimals, datetimes, lists, and JSON directly on your models with a simple DSL.
class User
include ActiveModel::Caching
cache_string :session_token
cache_integer :view_count
end
A fluent Ruby DSL for building InfluxDB Flux queries. Chainable API for constructing queries with measurements, fields, tags, aggregations, and more.
InfluxDB2::QueryBuilder.new(bucket: 'sensors')
.measurement('device_metrics')
.fields('cpu', 'memory')
.range(start: 24.hours.ago)
.aggregate_window(every: '5m', fn: 'mean')
.to_flux
A Ruby client for the ProvetCloud API, used by veterinary practices for practice management.
Applications
Parkour Paris (pkp)
Live application
Back-office platform for Parkour Paris, enabling members to register for parkour classes across Paris. Full-featured scheduling, payments, and member management.
ActivityPub Engine
Rails Engine
A Rails engine implementing the ActivityPub protocol for federated social networking. Enables Rails apps to join the Fediverse with customizable authentication and actor management.
Contributions
Circle
Payments platform · March 2026 to present
I’ve worked on checkout security, AI tools that help admins manage payments, and Stripe account setup inside Circle. I also contribute to the team’s AI agent instructions and review process.
Selected work Click to expand
- Safer checkout: protected payment details from unauthorized changes and prevented duplicate purchases when someone clicks or retries more than once.
- Membership management with AI: business owners can change subscriptions through a conversation and confirm the changes before they take effect.
- Stripe setup inside Circle: business owners can connect payments without leaving Circle, with AI help to explain missing account details.
- Payment reliability: fixed unfinished purchases that left unwanted subscriptions behind and billing records that no longer matched Stripe.
- Paywalls AI: ported the team’s internal AI framework to OpenCode, giving the team a choice of AI providers without depending on Claude.
Gumroad
73 merged PRs
Major contributor to Gumroad's open-source codebase. Led the frontend migration from ERB/React on Rails to Inertia.js/React, migrated the admin panel, and shipped features including Black Friday 2025 and subscription lifecycle improvements.
Notable PRs Click to expand
- Inertia checkout migration: migrated the checkout flow to Inertia.js/React
- Admin SPA migration: transitioned the admin panel from ERB to Inertia.js/React
- Subscription restarts: implemented the subscription restart lifecycle on Stripe
- SSR Meta tags: server-side rendered meta tags for SEO
- Black Friday 2025: promotional feature for Gumroad's Discover marketplace