{"basics":{"name":"Mark Frost","image":"https://mrkfrst.com/avatar.png","label":"Senior Software Engineer · Ruby on Rails · AI/MCP platforms","email":"","phone":"","url":"https://mrkfrst.com","summary":"Backend engineer with 10+ years in Ruby on Rails (since 2014) and 4 years on a multi-tenant data platform for commercial real estate: ETL from 11 property-management and accounting systems, a PDF/Excel reporting engine, and an AI layer (in-product MCP server, LLM assistant, AI report widgets). I like owning a module end to end: R&D, data model, API contract, migrations, and the boring reliability work that keeps it running.","location":{"city":"","region":"Spain","countryCode":"ES"},"profiles":[{"network":"GitHub","username":"frostmark","url":"https://github.com/frostmark"},{"network":"LinkedIn","username":"mark-frost-96068011a","url":"https://www.linkedin.com/in/mark-frost-96068011a"},{"network":"Telegram","username":"mrkfrst","url":"https://t.me/mrkfrst"}]},"work":[{"name":"symmetRE","position":"Senior Software Engineer","url":"https://symmetre.com","location":"Remote (Chicago, IL, US)","startDate":"2022-10","endDate":"","summary":"Data and analytics platform for multifamily real estate. Backend on the Rails core (ETL Back-End, then Dashboards & Reports team); closed ~1,400 Linear issues across ETL, reporting and AI.","highlights":["Built the in-product MCP server that lets Claude and ChatGPT query customers' portfolio data: OAuth flow, ~10 read-only tools over dashboards, widgets, transactions and the variable/formula catalog, per-client connector guide, usage logging, PII gating and versioned AI user agreements.","Designed the AI Assistant backend: chat API with SSE streaming, model registry across OpenAI and Anthropic, Markdown serializers that make financial widgets readable for LLMs, follow-up suggestions and context-window accounting. Migrated the stack from langchainrb to ruby_llm.","Shipped the AI Smart Widget: LLM-written narrative summaries inside scheduled PDF reports, with prompt management, provider settings, preview and mock modes.","Owned the backend of the Reporting Module (2024-2026): portfolio and asset-level PDF templates, Excel templates, report groups with recurring schedules, email and investor-portal distribution, cover pages, combined PDFs (HexaPDF) and bulk actions. Picked Gotenberg for rendering after an R&D spike.","Built the Data Connections framework: inbound-email and SFTP connectors, manual uploads, parsing status and reparse flows, plus parsers and importers for Yardi, RealPage, Entrata, ResMan, AppFolio, MRI, QuickBooks, NetSuite, Sage, CYMA and RentEGI.","Re-architected operational data around legal-entity management periods and LE-specific mappings (unit types, statuses, charge codes) across all ERPs, with SQL-view readers and zero-downtime widget migrations.","Built the REconcile construction-finance module: change orders, invoices with approval thresholds and e-signatures, requisitions, draws, funding sources and payment emails. OpenAPI-first with Stoplight, RSWAG and Committee contract tests.","Integrated a Python ML service for GL and charge-code mapping suggestions: Ruby workers and services on the Rails side, model retraining and dead-code cleanup on the Python side.","Platform work: Rails 7.1 upgrade, per-customer Sidekiq queues, OpenAPI validation and linters in CI, Sentry-driven triage of production issues."]},{"name":"Resume.io","position":"Senior Software Engineer","url":"https://resume.io","location":"Breda, Netherlands","startDate":"2020-02","endDate":"2022-08","summary":"Resume builder with 20M+ users worldwide. Worked on core backend features and designed application architecture.","highlights":[]},{"name":"FUN BOX","position":"Lead Software Engineer","url":"https://goodok.mts.ru","location":"Moscow, Russia","startDate":"2018-12","endDate":"2020-01","summary":"Led the backend team; maintained and developed new features for goodok.mts.ru, the MTS ringback-tone service.","highlights":[]},{"name":"FUN BOX","position":"Software Engineer","url":"https://goodok.mts.ru","location":"Moscow, Russia","startDate":"2017-10","endDate":"2018-12","summary":"Backend development on Ruby on Rails.","highlights":[]},{"name":"Xlab","position":"Lead Ruby Developer","url":"","location":"","startDate":"2016-11","endDate":"2017-10","summary":"Backend for VR simulators with an IoT component: Ruby on Rails, RSpec, Docker, MQTT, WebSockets, MariaDB.","highlights":[]},{"name":"Hyper","position":"Ruby on Rails Developer","url":"","location":"","startDate":"2015-06","endDate":"2016-04","summary":"Developed Ruby on Rails applications.","highlights":[]},{"name":"Xlebstudio","position":"Web Developer","url":"","location":"","startDate":"2014-06","endDate":"2015-02","summary":"","highlights":[]}],"education":[{"institution":"TODO University","url":"","area":"TODO: Computer Science","studyType":"TODO: Bachelor","startDate":"2014-09","endDate":"2018-06"}],"skills":[{"name":"Backend","level":"","keywords":["Ruby","Rails 7","ActiveRecord","Sidekiq","dry-rb","RSpec","Rubocop","Shrine","Go"]},{"name":"Data","level":"","keywords":["PostgreSQL","SQL & materialized views","large data migrations","multi-tenant SaaS","S3"]},{"name":"APIs","level":"","keywords":["REST","OpenAPI 3","Stoplight","RSWAG","Committee","OAuth 2.0","JWT","authorization policies"]},{"name":"Architecture","level":"","keywords":["System design","Domain-Driven Design","multi-tenant SaaS","API-first","data pipelines"]},{"name":"AI / LLM","level":"","keywords":["MCP (server)","Anthropic API","OpenAI API","ruby_llm","tool design","prompt management","LLM-friendly serialization","PII controls"]},{"name":"Integrations & ETL","level":"","keywords":["SFTP","inbound email parsing","ERP parsers (Yardi, RealPage, Entrata, ResMan, AppFolio, MRI, QuickBooks, NetSuite, Sage)","API connectors"]},{"name":"Documents","level":"","keywords":["Gotenberg (Chromium PDF)","HexaPDF","Excel generation","email templates & scheduling"]},{"name":"Also","level":"","keywords":["Python (ML service maintenance)","Rust (axum, rmcp)","Sentry","CI pipelines","Zola"]},{"name":"Domain","level":"","keywords":["multifamily CRE finance","general ledger & financial categories","rent roll","delinquency","budgets","construction draws & requisitions"]}],"languages":[{"language":"Russian","fluency":"Native"},{"language":"English","fluency":"Professional working proficiency"}],"projects":[{"name":"MyIncome.ge","description":"Income tracker for individual entrepreneurs in Georgia: currency conversion at NBG rates and 1% small business tax declaration prep.","url":"https://my-income.ge","keywords":[]},{"name":"Void VPN","description":"Fast, private VPN delivered through a Telegram bot.","url":"https://t.me/void_vpns_bot?start=camp_ps","keywords":[]}]}