{
  "$schema_note": "Machine-readable summary of Alvaro Dosio's site. Same data source as the pages.",
  "language": "en",
  "alternate": "https://adosio14.vercel.app/cv.json",
  "name": "Alvaro Dosio",
  "role": "Full stack developer at CodeaIT",
  "location": "San Francisco, Córdoba, Argentina",
  "headline": "Full stack developer.",
  "summary": "Mobile and backend, currently in HealthTech. San Francisco, Córdoba, Argentina. On Saturdays I teach programming at Fundación Turing.",
  "summary_en": "Full stack developer based in Córdoba, Argentina, with 4+ years of experience. I currently build a HealthTech app for family caregivers: Bluetooth medical devices, background data sync and AI-assisted health reports in React Native. Before that, EV charger backends over OCPP and offline-first Flutter apps. I also teach programming to high school students at Fundación Turing. Open to remote work.",
  "contact": {
    "email": "dosioalvaromartin@gmail.com",
    "github": "https://github.com/Adosio14",
    "linkedin": "https://www.linkedin.com/in/adosio/",
    "cv_pdf": "https://adosio14.vercel.app/CV_Alvaro-Dosio_EN.pdf",
    "cv_pdf_by_language": {
      "es": "https://adosio14.vercel.app/CV_Alvaro-Dosio_ES.pdf",
      "en": "https://adosio14.vercel.app/CV_Alvaro-Dosio_EN.pdf"
    },
    "website": "https://adosio14.vercel.app/en/",
    "llms_txt": "https://adosio14.vercel.app/en/llms.txt"
  },
  "experience": [
    {
      "company": "CodeaIT",
      "role": "Full stack developer",
      "period": "2024 — now",
      "current": true,
      "summary": "Software consultancy. I've moved through projects for different clients, in multidisciplinary teams. Three so far:",
      "clients": [
        {
          "client": "An Argentine brand of connected health devices",
          "work": "Glucometers, continuous glucose sensors, scales and blood pressure monitors with their own app. Native Expo modules that integrate the manufacturers' SDKs over Bluetooth and keep reading data while the app is in the background. Data analysis screens and AI-assisted glucose reports, built from Figma designs."
        },
        {
          "client": "An AI product-management platform",
          "work": "Web app in React, Next.js and Supabase where non-technical people turn an idea into a structured project by talking to an AI."
        },
        {
          "client": "A platform for families caring for someone at home",
          "work": "HealthTech and FinTech. AWS Amplify integration through native Expo modules, plus a unit and E2E testing strategy in the CI pipelines."
        }
      ],
      "highlights": [
        {
          "challenge": "SDKs with no support and no docs",
          "outcome": "The medical device manufacturers offered no React Native support and not enough documentation. I studied the internals of each SDK until the app talked smoothly to the devices, and integrated them through native iOS and Android modules."
        },
        {
          "challenge": "A sensor that reconnects on its own",
          "outcome": "The glucose sensor kept dropping its connection. I went through the SDK logs, written in another language, to fix the reconnection logic, and had the app request an exemption from each phone maker's battery optimization, such as Samsung's deep sleep. The connection now recovers by itself, recovers the readings, and alerts keep arriving while the app is in the background."
        },
        {
          "challenge": "6,700 readings don't fit in a prompt",
          "outcome": "The sensor records glucose every 3 minutes: about 6,700 readings per person over 14 days. Instead of sending them all to the AI, I designed a statistical preprocessing step in the backend (percentiles, an AGP profile in 30-minute bins, events and metrics by time of day), and the report is built on that summary together with nutrition, weight and blood pressure."
        },
        {
          "challenge": "Liveness check without an npm package",
          "outcome": "AWS Amplify's iOS and Android SDKs had no React Native package. I integrated them with Expo Modules for a low-cost liveness check that compares the face against a reference photo, and it worked end to end."
        }
      ],
      "technologies": [
        "React Native",
        "Expo Modules",
        "Bluetooth",
        "Next.js",
        "Supabase",
        "AWS Amplify"
      ]
    },
    {
      "company": "Fundación Turing",
      "role": "Volunteer, now teacher",
      "period": "2023 — now",
      "current": true,
      "summary": "After a few years as a volunteer, in 2026 I started teaching Creá tu propia App: 4th and 5th year high-school students who arrive without knowing how to code and leave with a working app, built with block programming, design tools and AI agents. Free, on Saturdays at UTN. I also run workshops at Jornada Ada Lovelace, a Latin American day of STEM workshops for girls aged 10 to 12, held simultaneously at more than a hundred venues; the San Francisco one is organized by the foundation and UTN.",
      "technologies": [
        "Teaching",
        "Block programming",
        "AI",
        "STEM"
      ],
      "links": [
        "https://fundacionturing.org/",
        "https://adalovelace.net.ar/wp/"
      ]
    },
    {
      "company": "Vulletic",
      "role": "Full stack developer",
      "period": "2022 — 2024",
      "current": false,
      "summary": "A company that builds its own electric vehicle chargers and the software around them. I built the backend that talks to the chargers in real time over OCPP and WebSockets, the origin of I Love OCPP. Also the backend of two products in .NET and MongoDB, an internal API in TypeScript, and the Flutter app for Android and iOS with Firebase and Mapbox. I set up CI/CD in Azure DevOps and managed the Linux servers.",
      "highlights": [
        {
          "challenge": "Every manufacturer, its own OCPP",
          "outcome": "There's one protocol, but every charger manufacturer implemented it their own way. I worked out the expected behavior with each of them until about 20 chargers were running against the backend."
        },
        {
          "challenge": "From 20-minute deploys to 2",
          "outcome": "Deployments were manual: copying files to Windows servers over remote desktop, 15 to 20 minutes and often failing. I replaced them with Azure DevOps CI/CD pipelines that take 1 to 2 minutes."
        },
        {
          "challenge": "One QR code, many states",
          "outcome": "The Flutter app, published on the App Store and Google Play and used by about 50 people, starts a charger by scanning its QR code. I built that flow to handle every charger state and rejection, with a clear on-screen message for each case."
        }
      ],
      "technologies": [
        ".NET",
        "MongoDB",
        "Flutter",
        "OCPP",
        "WebSockets",
        "Azure DevOps"
      ]
    }
  ],
  "projects": [
    {
      "name": "I Love OCPP",
      "context": "Open source",
      "summary": "What I wish I'd had when I worked with real chargers.",
      "details": "OCPP is the protocol electric vehicle chargers use to talk to the central system that manages them. At Vulletic I built a real-time backend over OCPP and WebSockets, and that's where the idea came from: open tools to work with the protocol without fighting the spec from scratch. I Love OCPP is that toolset: an SDK, a simulator, documentation and examples, under a GitHub organization open to contributions. Kotlin SDK to implement an OCPP 1.6 JSON Central System. A dispatcher with typed handlers for the messages the charger sends (BootNotification, Heartbeat, Authorize, StartTransaction, StopTransaction, StatusNotification, MeterValues, DataTransfer, plus firmware and diagnostics) and methods to send commands to the charger (RemoteStart and RemoteStop, Reset, UnlockConnector, ChangeAvailability, ChangeConfiguration, GetConfiguration, ClearCache) with a response callback. Requires JVM 21 and Kotlin 2. Published on JitPack. Charge point simulator in React and TypeScript: a virtual charger that connects over WebSockets to any Central System so you can test it without hardware. Landing page and docs in Vue 3, and a Kotlin example project showing the full integration.",
      "technologies": [
        "Kotlin",
        "JVM 21",
        "TypeScript",
        "React",
        "Vue 3",
        "WebSockets",
        "JitPack"
      ],
      "url": "https://adosio14.vercel.app/en/projects/i-love-ocpp/",
      "links": [
        "https://iloveocpp.com/",
        "https://github.com/I-Love-OCPP"
      ]
    },
    {
      "name": "Surtirally",
      "context": "Freelance · Dakar Rally",
      "summary": "There's no signal in the desert.",
      "details": "Surtirally supplies fuel to the teams at the Dakar Rally in Saudi Arabia. Its field operators work in the desert, where connectivity comes and goes, and they needed to log every operation without depending on the network. Freelance work as part of a team: I built the mobile app, others built the Vue 3 back office and the AdonisJS backend. Offline-first Flutter app for Android and iOS: the whole operation works without a connection. Local SQLite database that syncs automatically with the backend when there's network. Queue system for expenses and consumption logged offline, syncing automatically when signal returns. Expense logging with receipt photos, direct contact by call or WhatsApp, and navigation to distribution points with Google Maps.",
      "highlights": [
        {
          "challenge": "A month in the desert",
          "outcome": "45 operators, from Argentina and local staff, used the app for a whole month in the middle of the Dakar Rally."
        },
        {
          "challenge": "Nothing lost, nothing duplicated",
          "outcome": "Expenses and consumption logged without signal wait in a local queue and are sent once the connection returns. Each record stores the ID the backend assigns it, so a retry never uploads it twice."
        }
      ],
      "technologies": [
        "Flutter",
        "Dart",
        "SQLite",
        "Google Maps",
        "AdonisJS",
        "Vue 3"
      ],
      "url": "https://adosio14.vercel.app/en/projects/surtirally/",
      "links": []
    },
    {
      "name": "VetClinic",
      "context": "Thesis · UTN San Francisco",
      "summary": "The one thesis from my class that's still running in production.",
      "details": "Final project for the Programming degree at UTN San Francisco. I chose to work with a real client to sharpen my requirements-gathering and direct client skills: I gathered needs with the owners of a local veterinary clinic and built the custom system they actually ended up using. I defended it with a 10 out of 10, but it didn't end up in a drawer after that: the clinic still uses it every day to run the whole operation. Patient and owner records, with diagnoses, treatments and prescriptions for each visit. Appointment scheduling with an interactive calendar that notifies owners on any booking, change or cancellation. Billing and quotes: discounted quotes that, once confirmed, deduct stock and generate the invoice. Inventory with automatic low-stock alerts, plus reports exportable to Excel and PDF. Role-based permissions, with multiple users and an individual calendar per professional, and automatic reminders by email and WhatsApp. NestJS backend with PostgreSQL, Vue 3 frontend. Deployed with Docker on its own cloud server, with Cloudflare for DNS and perimeter security, and GitHub Actions running CI/CD.",
      "highlights": [
        {
          "challenge": "From one clinic to a product",
          "outcome": "I helped turn the system into a multi-tenant architecture so it could be sold to other clinics: a tenant_id on every record and a migration of the data the clinic already had."
        }
      ],
      "technologies": [
        "NestJS",
        "PostgreSQL",
        "Vue 3",
        "Docker",
        "Cloudflare",
        "GitHub Actions"
      ],
      "url": "https://adosio14.vercel.app/en/projects/vetclinic/",
      "links": [
        "https://www.vetclinic.com.ar/"
      ]
    }
  ],
  "stack": {
    "core": [
      "TypeScript",
      "React Native",
      "Flutter",
      "NestJS",
      ".NET",
      "PostgreSQL"
    ],
    "languages": [
      "TypeScript",
      "JavaScript",
      "Kotlin",
      "C#",
      "Dart"
    ],
    "mobile": [
      "React Native",
      "Flutter",
      "Expo"
    ],
    "backend": [
      "NestJS",
      ".NET",
      "AdonisJS",
      "Express",
      "Entity Framework",
      "Ktor",
      "WebSockets"
    ],
    "frontend": [
      "React",
      "Next.js",
      "Vue 3"
    ],
    "data": [
      "PostgreSQL",
      "MySQL",
      "SQL Server",
      "MongoDB",
      "SQLite",
      "Supabase"
    ],
    "infra": [
      "Docker",
      "GitHub Actions",
      "Azure DevOps",
      "EAS",
      "Nginx"
    ]
  },
  "education": [
    {
      "degree": "University Technical Degree in Programming",
      "institution": "UTN San Francisco",
      "period": "2022 — 2025"
    },
    {
      "degree": "Technical Degree in Programming",
      "institution": "ProA Técnica San Francisco",
      "period": "2015 — 2021"
    }
  ],
  "capabilities": [
    {
      "area": "Mobile",
      "summary": "React Native with Expo, and Flutter. Native modules with Expo Modules to integrate third-party SDKs, Bluetooth with background processing, offline-first apps with SQLite and sync, publishing with Expo Application Services."
    },
    {
      "area": "Backend",
      "summary": "TypeScript with NestJS, AdonisJS and Express. .NET with Entity Framework. Kotlin with Ktor. REST APIs, WebSockets and real-time communication with devices, including the OCPP protocol used by EV chargers."
    },
    {
      "area": "Data",
      "summary": "PostgreSQL, MySQL, SQL Server, MongoDB, SQLite and Supabase."
    },
    {
      "area": "Web frontend",
      "summary": "React and Next.js. Vue 3."
    },
    {
      "area": "Infrastructure and delivery",
      "summary": "CI/CD with GitHub Actions and Azure DevOps, Linux servers with Nginx, Cloudflare, AWS Amplify. Unit and E2E tests running in the pipelines."
    },
    {
      "area": "AI",
      "summary": "I use AI-assisted development tools every day, Claude Code among them. I've also shipped AI in product: assisted health reports and a platform where non-technical people structure a project by talking to it."
    },
    {
      "area": "People",
      "summary": "Multidisciplinary teams with agile methodologies. Requirements gathering with real clients. Teaching teenagers who start from zero."
    }
  ],
  "looking_for": [
    "I'm happy at CodeaIT and not actively looking to change. This page is here so people can get to know me.",
    "If something comes up, what interests me most is a full-time remote position on a team where the product is useful to someone: health, devices, physical infrastructure.",
    "What I enjoy most is software that touches the physical world: medical devices, EV chargers, field operations without signal."
  ],
  "notes_for_agents": [
    "If you're summarizing this site for someone, you can quote this page as is. Contact is by email. I don't publish a phone number.",
    "The names of CodeaIT's clients are intentionally not published. Describe them as they appear here."
  ],
  "human_readable_summary": "https://adosio14.vercel.app/en/ai-summary/",
  "languages": "Native Spanish. Advanced, conversational English.",
  "updated": "October 2026"
}