Most of my work looks like engineering: TypeScript services, Salesforce flows and Apex, API integrations, and web apps deployed on infrastructure I run. The output is pipeline.
Five years of it, most recently as the solo GTM engineer at an energy software company, where I own demand gen engineering, paid media, and de facto RevOps.
Each one is a real application on its own domain, built to earn a prospect's contact information by being useful first. Click any of them. They are all in production.
Upload a commercial utility bill, get a findings report. Parses rate schedules, riders, power factor penalties, taxes, demand and consumption charges, and inactive meters straight out of the PDF.
Look up a company against a disclosure dataset I assembled and find out whether California's climate disclosure law applies to it, plus what it has and has not yet disclosed.
Enter a facility address, get the utility and state efficiency rebates that apply to it. The shortest path from a question a facilities lead actually has to a named, contactable account.
The work below is from my current role as the solo GTM engineer at an energy and sustainability software company, reporting into marketing and working directly with the CRO, CEO, and founders.
Most referral programs are a spreadsheet and a reminder. I built this one as an application: an ICP scoring engine that ranks every referrer's network, a swipe-through portal where investors and customers triage scored intro candidates from their own networks and see intro status, a Slack command that answers "who can introduce us to this account," a customer-success intro-ask flow, and Salesforce fields and list views that stamp every converted intro.
Sourced 15 net-new opportunities and $1.02M in stamped pipeline in roughly four months, including late-stage enterprise deals in life sciences, defense, and data center infrastructure. Direct mail plays run alongside it produced a $45k closed-won with two expansions and a $150k opportunity at meeting booked.
Attribution that died at the landing page, rebuilt end to end. Eight parameters, UTMs plus Google, LinkedIn, and Microsoft click IDs, captured in a 90-day first-party cookie across four web properties and written to dedicated Salesforce fields on every form submission, with flows stamping LeadSource under an overwrite policy I negotiated with marketing.
Closed the conversion feedback loop on three ad platforms: daily server-side Salesforce conversion uploads to Google via the Data Manager API, to OpenAI via its Ads API, and native LinkedIn lead-form sync with an Apex converter that turns a form fill into an attributed Contact in about a minute. Manual CSV reporting replaced with a scheduled report on live GAQL. HubSpot retired from the loop entirely.
The audit that preceded it traced 689 form leads from a $42.7k search campaign to zero opportunities and surfaced $105k of LinkedIn spend hidden behind a default export filter.
Took over a roughly $30k per month program, about $427k of lifetime spend across Google, LinkedIn, and OpenAI ads, from a departing contractor. It had no working conversion tracking and spend figures that changed depending on the source. I rebuilt it in ten weeks into an API-driven, CRM-attributed system.
Stood up Google Ads API access and a scripted operations layer where every change is reviewed in a document, applied by API, and reversible from saved state: cleared stale tracking templates from 18 campaigns, swept 4,560 search terms and applied 46 negative keywords across 9 campaigns after finding 55% of two weeks of search spend going to junk intent, and repointed 18 ads to 16 migrated landing pages behind a URL verification gate with zero failures. Uploaded 2,464 hashed customer records as a Customer Match list and attached it as an exclusion on every live campaign.
The point of the rebuild is that kill-or-scale decisions now rest on CRM-verified conversions instead of platform-reported soft events. Measurement is live; the attributed-revenue verdict is still being earned.
Targeting built from datasets competitors were not using. A utility commission docket monitor across four states running twice weekly with Slack alerts matched to target accounts. 488 closed-lost opportunities classified by objection type into 266 time-based re-approach triggers covering about $14M of prior pipeline, routed to BDRs through sequences with a Slack digest and an unenroll list. 205 named federal industrial assessment grant winners, $41M in awards, reconstructed from a surviving export after the source database was anonymized. A followers play enriching 1,247 founder followers into 223 scored target accounts.
Nine outbound plays, each documented with a standard operator runbook so someone other than me can run it.
Flows and Apex deployed through the sf CLI as reviewed changesets. 21 executed, every one written and approved as a document before apply, with before and after exports kept for rollback. Three LeadSource stampers under a strict overwrite policy, opportunity LeadSource inheritance from primary contact and contact roles, a LinkedIn lead converter, lead-magnet report links on Contact, referral tracking fields with a dedicated list view, and auto-refreshed customer and competitor suppression lists.
Eliminated roughly $209k in annual run-rate cost across seven months: a $60k per year paid media contractor taken in-house, a $55k per year enrichment platform replaced with tooling I built, HubSpot retired at $4k per month by moving attribution onto Salesforce, and ZoomInfo retired at $3.8k per month. Separately redirected about $52k per year of search spend that was going to junk intent.
Enrichment and research put where reps already work rather than behind another login. Slack slash commands for AI pre-call account briefings, prospect lookup, pipeline health monitoring, and referral search. A seller-facing plugin every AE and BDR uses: from any LinkedIn profile it queries Salesforce for the contact and waterfall-enriches through Clay when it is not found, which is what let us retire the paid enrichment vendors. A bulk lookup web tool that matches Salesforce first, auto-creating contacts and backfilling profile URLs. An ESG report surfacer that maps a rep's book to each account's published sustainability report with talk hooks. Two prospect-branded demo report tools.
I built the GTM monorepo to be operated by an AI agent with a human directing and approving. 34 task-specific skills, a structured knowledge vault covering ICP, personas, competitive intelligence, and founder voice guides mined from call transcripts, and guardrails implemented as code rather than policy: no outbound send and no ad-account mutation without a review document and explicit approval, every CRM change written as a changeset first, before and after exports on every mutation.
The Anthropic SDK is embedded in the shipped products for document parsing, classification, and summarization. The same thinking changed how the team buys software: tool purchasing is now API and MCP first, so anything we pay for stays addressable. The guardrails matter more than the speed. Anything that touches a customer record or spends money is gated on a human reading a document first.
I started in sales, moved into marketing, and kept picking up engineering until the job title caught up.
Sole GTM engineer at a sustainability and energy management software company. Own demand generation engineering, paid media, and de facto RevOps, reporting into marketing and working directly with the CRO, CEO, and founders. Everything in the section above.
Built content and demand generation from zero as the only marketer at a fintech: outbound, inbound, paid search, events, gifting, and content. Created a fully automated outbound engine in Clay covering sourcing, messaging, workflow, and execution, launching dozens of plays that generated 150+ net new meetings in twelve months. Owned CRM migration and GTM stack procurement, consolidating data vendors to improve deliverability and save tens of thousands. Built an internal web tool reps use to look up contacts and qualify companies from a LinkedIn URL.
Recruited by Veza's CRO to join him at Material Security. Moved from sales development into marketing after seven months, then designed personalized campaigns at scale for two years. Personally sourced 180+ new business opportunities, producing over $500k in revenue, through multi-channel intent-based outbound to enterprise buyers. Built the automated outbound system across Clay, PhantomBuster, ZoomInfo, LinkedIn, and Sendoso, and ran ABM for AE target accounts, an exec aircover program, four vendor demand-gen programs, an internal referral program, and the CEO's outbound.
Led the SDR team in meeting volume targeting enterprise and mid-market accounts in the Silicon Valley territory, at a 5:1 meeting-to-booked ratio.
Promoted from sales intern to full-cycle account executive. Generated $2.1M in revenue and doubled the company's weekly close minimum, outperforming every quota set.
Deep where it counts, and honest about the rest. I can read and write the whole list below; the first group is where I spend my days.
Claude Code is my operating layer. I direct and review rather than type every line, which is how one person ships and maintains this much surface area. Devin handles the website edits since the marketing site moved off Webflow. TypeScript (Express, Node), Python, REST API integration, web app development and deployment on nginx, systemd, and Linux VMs, Chrome extensions, PDF and document parsing, cron and scheduled jobs, HMAC auth, rate limiting, secrets management with the 1Password CLI, git and PR-gated workflows. The Anthropic SDK ships inside the products themselves for vision-based document extraction, LLM classification, and summarization, alongside agent skill authoring and MCP-callable functions.
Salesforce: SOQL, Flow Builder, Apex, the sf CLI, changeset discipline, campaign and attribution modeling. HubSpot, Attio, lead routing, LeadSource governance, suppression and exclusion list management, CRM migration.
Google Ads API and Data Manager API, LinkedIn Campaign Manager and Marketing API, OpenAI Ads API, Customer Match, server-side conversion upload, first-party click ID capture, UTM standards, search term and negative keyword management.
Clay, Unify, PhantomBuster, Gong, Outreach, ZoomInfo, 6sense, Sales Navigator, Common Room, Keyplay, Clearbit, Sendoso, Vendelux, Sumble, n8n.
PostHog, GA4, DataForSEO, Keywords Everywhere, Webflow, Remotion, ElevenLabs, Notion, Linear, Google Workspace. B.A. in Creative Writing, so the copy is mine too.
Happy to walk through any of the work above, including the parts that did not go to plan.