anthony@carnevale: ~
~  $  whoami

anthony carnevale applied ml + full-stack engineer

I ship machine-learning features that earn their keep in production: LLM agents that drive real workflows, embedding-powered search that actually finds the right thing, and NLP that turns messy human input into clean structured data.

[ available for hire ] ~ remote · contract or full-time · ml / ai roles
~  $  _
4+ ml systems in prod
8 business archetypes
1536 dim embeddings
100% structured outputs
// stack
$ cat ~/.config/anthony/stack.toml
01 ml/ai = [ "openai" , "embeddings" , "vector search" , "rag" , "structured outputs" , "pytorch" , "scikit-learn" , "huggingface" ]
02 languages = [ "python" , "typescript" , "sql" , "go" ]
03 data = [ "mongodb atlas" , "snowflake" , "airflow" , "dbt" , "redis" , "postgres" ]
04 cloud = [ "aws" , "docker" , "terraform" , "lambda" ]
05 web = [ "fastapi" , "react" , "astro" , "node" ]
// ml_features
$ grep -rE "openai|embedding|recognizer" ./neptune_booking | wc -l

A look at the AI/ML systems I designed and built into neptune booking — a multi-tenant scheduling platform serving salons, spas, lanes, courts, and restaurants. None of these are demos: they run on every booking, every search, every onboarding flow.

~/neptune/ml/ llm-config-wizard 01/04

llm config wizard

Plain-text business descriptions become full booking-platform configs in one shot. GPT-4o-mini in JSON mode, a hand-tuned system prompt, and a sanitiser that validates hours, services, and resources before they ever touch the database.

  • - structured outputs via response_format=json_object
  • - two-pass retry on truncation with a compaction hint
  • - incremental edits: diff-style updates against existing config
  • - deterministic post-processing + cross-reference validation
openai gpt-4o-mini json mode fastapi
~/neptune/ml/ semantic-service-search 02/04

semantic service search

Customers describe what they want — 'something relaxing for my back' — and the booking engine returns the closest real service. text-embedding-3-small + Atlas Vector Search, scoped per business with a metadata filter.

  • - openai text-embedding-3-small (1536-d) per service
  • - mongodb atlas $vectorSearch with per-tenant filter
  • - smart re-embed only when canonical service text changes
  • - feeds /slots so the API can infer the service from a query
openai embeddings atlas vector search mongodb
~/neptune/ml/ nlp-booking-parser 03/04

nlp booking parser

Natural-language requests like 'patio table for 4 around 6:30 tonight' parse into structured slots. Microsoft Recognizers handle dates, times, ranges and durations; custom keyword logic handles services, resources, party size, and AM/PM disambiguation against business hours.

  • - candidate ranking across timerange / time / datetime / duration
  • - fuzzy keyword expansion for resources (e.g. '60 feet' → '60ft')
  • - service matching that prefers longest, most specific token
  • - AM/PM correction using each tenant's operating hours
recognizers-text regex python
~/neptune/ml/ conversational-config 04/04

conversational admin agent

A multi-turn assistant that lives inside the admin dashboard. It asks targeted follow-ups when key facts are missing, then returns a JSON diff of services, resources, hours, branding or pricing — applied atomically with deletes, edits, and adds.

  • - tab-aware system prompt (general / resources / branding / payments)
  • - decides between 'follow_up' and 'complete' based on context
  • - merges by id; supports {deleted: true} tombstones
  • - tested across 8 business archetypes (salons, lanes, courts, spas)
openai prompt engineering json mode evals
// selected_work
// contact
~  $  echo $STATUS

> open to ml / ai engineering and applied research roles. happy to talk shop on a project too.

$ mail anthony →