{
  "$schema": "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json",
  "basics": {
    "name": "Muhammed Rasin O M",
    "label": "AI Engineer",
    "email": "rasinbinabdulla@gmail.com",
    "url": "https://www.rasinmuhammed.tech/",
    "summary": "AI and data engineer with 1.5 years of industry experience building LLM backends and data pipelines in Python: remote backend work for DearPriceHunter, a Swedish startup, and data engineering at JMAN Group. Hands-on with document ingestion, RAG, LLM evaluation and REST APIs. Founder of Misata, an open-source synthetic data tool with 50+ users and one pilot running. Open to full-time AI and data roles in engineering, product or go-to-market. Remote, on site or relocating.",
    "location": {
      "city": "Kozhikode",
      "region": "Kerala",
      "countryCode": "IN"
    },
    "profiles": [
      {
        "network": "GitHub",
        "username": "rasinmuhammed",
        "url": "https://github.com/rasinmuhammed"
      },
      {
        "network": "LinkedIn",
        "username": "rasinmuhammed",
        "url": "https://www.linkedin.com/in/rasinmuhammed"
      },
      {
        "network": "X",
        "username": "RasinMuhammedX",
        "url": "https://x.com/RasinMuhammedX"
      },
      {
        "network": "Medium",
        "username": "rasinbinabdulla",
        "url": "https://medium.com/@rasinbinabdulla"
      },
      {
        "network": "PyPI",
        "username": "rasinmuhammed",
        "url": "https://pypi.org/user/rasinmuhammed/"
      },
      {
        "network": "ORCID",
        "username": "0009-0009-1971-7291",
        "url": "https://orcid.org/0009-0009-1971-7291"
      }
    ]
  },
  "work": [
    {
      "name": "DearPriceHunter AB",
      "position": "Software developer, contract",
      "location": "Sweden (remote)",
      "startDate": "2025-12",
      "endDate": "2026-08",
      "summary": "A Swedish startup that analyses what companies spend with their suppliers. I worked remotely on the backend and its LLM features.",
      "highlights": [
        "Built a document ingestion pipeline as FastAPI services that turns uploaded CSV, Excel, PDF and JSON files into structured spending data.",
        "Built a detection engine that flags unusual spending, with LLM-written reports in English and Swedish. Prompt caching cut inference cost by about 90%, and Langfuse tracing showed what the models were doing.",
        "Ran models on AWS Bedrock in an EU region so client data stayed within data-residency requirements."
      ],
      "keywords": [
        "Python",
        "FastAPI",
        "AWS Bedrock",
        "Langfuse",
        "LLMs"
      ]
    },
    {
      "name": "Independent",
      "position": "Backend and AI developer",
      "location": "Remote",
      "startDate": "2025-03",
      "summary": "Freelance work for Onepane AI, and my own open-source projects, mainly Misata.",
      "highlights": [
        "Onepane AI: built a report generator with LangGraph, FastAPI and the OpenAI API that summarises cloud billing data.",
        "Peer reviewer for Springer Nature’s Network Modeling Analysis in Health Informatics and Bioinformatics."
      ],
      "keywords": [
        "Python",
        "LangGraph",
        "FastAPI",
        "OpenAI",
        "MCP"
      ]
    },
    {
      "name": "JMAN Group",
      "position": "Software engineer, data engineering",
      "location": "Chennai, India",
      "startDate": "2024-07",
      "endDate": "2025-02",
      "summary": "My first job after graduating, in the data engineering team of a data and analytics consultancy. The synthetic data work there is where Misata started.",
      "highlights": [
        "Built a probabilistic record-linkage model with Splink and PySpark on Databricks for an entity-resolution product, tuning blocking rules and match thresholds for precision and recall.",
        "Generated synthetic datasets so consultants could test ideas without touching production data.",
        "Built an LLM lead classifier and Power BI dashboards; trained in Snowflake, dbt and Azure Data Factory."
      ],
      "keywords": [
        "Python",
        "PySpark",
        "Databricks",
        "Splink",
        "SQL"
      ]
    }
  ],
  "education": [
    {
      "institution": "Mar Athanasius College of Engineering",
      "area": "Computer Science and Engineering (Data science)",
      "studyType": "B.Tech",
      "startDate": "2020",
      "endDate": "2024",
      "score": "CGPA 8.52"
    }
  ],
  "publications": [
    {
      "name": "Declarative Outcome-Conformant Synthesis: Exact, Closed-Form Specification Satisfaction and a Conformance Benchmark",
      "publisher": "arXiv",
      "releaseDate": "2026-06-07",
      "url": "https://arxiv.org/abs/2606.08736"
    }
  ],
  "projects": [
    {
      "name": "Misata",
      "description": "Generates realistic test data with several linked tables from a short description of a business. If you say revenue should grow from 10,000 to 50,000 over a year, the generated rows add up to exactly that, and every link between tables is valid. Meets all 136 checks in its public test suite, where a typical Faker script meets 78. Misata Studio, the hosted version, has more than 50 users and one pilot, and was selected for Claude for Startups.",
      "highlights": [
        "A language model may suggest how the data should look, but ordinary code checks every target you stated before a dataset is accepted."
      ],
      "url": "https://github.com/rasinmuhammed/misata",
      "keywords": [
        "Python",
        "NumPy",
        "DuckDB",
        "MCP",
        "pytest"
      ],
      "type": "Open source and product"
    },
    {
      "name": "Ratio",
      "description": "Answers legal questions about Indian court judgments, with a citation for every claim. It searches 10,588 judgments and tells apart what the court decided from what a lawyer argued. Finds the exact case asked for 89% of the time on 313 questions I labelled by hand, up from 59% with keyword search and 4% with semantic search alone.",
      "highlights": [
        "Send questions that contain a case citation to an exact lookup instead of a semantic search, which kept confusing similar citation numbers."
      ],
      "url": "https://github.com/rasinmuhammed/ratio",
      "keywords": [
        "Python",
        "BM25",
        "Embeddings",
        "Reranking"
      ],
      "type": "Research project"
    },
    {
      "name": "Entify",
      "description": "Finds duplicate customer records in messy data, such as the same person entered twice with a typo. It sets itself up from the data, explains why it matched two records, and needs no specialist tuning. On the FEBRL benchmark, every pair it flagged was a real duplicate, and it found 98.7% of them.",
      "highlights": [
        "Let the tool choose its own matching rules, then test it on a standard dataset it had never seen."
      ],
      "url": "https://github.com/rasinmuhammed/entify",
      "keywords": [
        "Splink",
        "DuckDB",
        "TypeScript"
      ],
      "type": "Open source"
    },
    {
      "name": "Nimbal",
      "description": "Forecasts how much power wind and solar farms will produce the next day, as a range of likely outcomes rather than a single number, and turns the forecast into bids for the UK electricity market. Replayed against the 2024 HEFTCom forecasting competition, it would have placed 2nd of 66 teams on accuracy and 1st on trading revenue.",
      "highlights": [
        "Bid the expected output rather than a cautious low estimate, after working out that this earns the most on average."
      ],
      "url": "https://github.com/rasinmuhammed/nimbal",
      "keywords": [
        "Python",
        "LightGBM",
        "Quantile regression"
      ],
      "type": "Research project"
    },
    {
      "name": "Harara",
      "description": "Hour-by-hour work and rest plans for outdoor workers in the Gulf, based on heat forecasts and Qatar’s heat-stress rules. Compared on the same hours, the ECMWF forecast missed 12 to 18% of the hours when work should have stopped; NOAA GFS missed 40 to 45%.",
      "highlights": [
        "Kept the raw weather forecast after testing showed that a learned correction made it worse."
      ],
      "url": "https://github.com/rasinmuhammed/harara",
      "keywords": [
        "Python",
        "Weather data",
        "LLM evaluation"
      ],
      "type": "Research project"
    },
    {
      "name": "Mitate",
      "description": "Product recommendations for small online shops with a few hundred products and a few dozen regular customers. It works from the catalogue on day one and improves as orders come in. Beat the best single method at every shop size on the public OTTO shopping dataset.",
      "highlights": [
        "Fixed the comparison against fifteen tuned methods before running it, so the result could not be cherry-picked."
      ],
      "url": "https://github.com/rasinmuhammed/mitate",
      "keywords": [
        "Python",
        "LambdaMART",
        "FastAPI"
      ],
      "type": "Research project"
    },
    {
      "name": "Argus",
      "description": "An assistant for factory maintenance teams that shows how close a machine is to failing. Every number it gives is calculated by code, not written by the language model. Passes all of its test cases on the UCI AI4I 2020 machine-failure dataset.",
      "highlights": [
        "The language model only explains numbers; it is never allowed to produce one."
      ],
      "url": "https://github.com/rasinmuhammed/industrial-copilot",
      "keywords": [
        "Python",
        "DuckDB",
        "FastAPI"
      ],
      "type": "Prototype"
    },
    {
      "name": "Footnote",
      "description": "Checks AI search answers against the web pages they cite. Every claim must point to a source, and every source is actually read. Runs can be replayed from saved results without new searches.",
      "highlights": [
        "The checks use fixed rules rather than another AI model, so the same answer always gets the same verdict."
      ],
      "url": "https://github.com/rasinmuhammed/footnote",
      "keywords": [
        "Python",
        "SerpApi",
        "Groq"
      ],
      "type": "Prototype"
    },
    {
      "name": "Yaqzan",
      "description": "A disaster-response simulation based on Kerala’s 2018 floods. An AI model sends boats and trucks where they are needed, and a checker blocks any order that names a resource that does not exist. Built for the MBZUAI and IFM K2 showcase.",
      "highlights": [
        "The model may only use resources that are actually in the simulation."
      ],
      "url": "https://github.com/rasinmuhammed/yaqzan",
      "keywords": [
        "TypeScript",
        "Next.js",
        "K2 Think"
      ],
      "type": "Demo, built in two days"
    },
    {
      "name": "The Quantum Canvas",
      "description": "Type a name and it becomes a small planetary system, drawn from the results of a five-qubit quantum circuit. Runs in the browser with Qiskit and p5.js.",
      "highlights": [
        "The orbits come from measured quantum results, not from a random number generator."
      ],
      "url": "https://rasinmuhammed.github.io/quantum-generative-art/",
      "keywords": [
        "Qiskit",
        "p5.js"
      ],
      "type": "Experiment"
    }
  ],
  "skills": [
    {
      "name": "AI and LLMs",
      "keywords": [
        "Large language models (LLMs)",
        "RAG",
        "LangGraph",
        "LangChain",
        "OpenAI, Claude and AWS Bedrock APIs",
        "Ollama",
        "Langfuse",
        "Prompt caching",
        "MCP"
      ]
    },
    {
      "name": "Data",
      "keywords": [
        "Python",
        "SQL",
        "pandas",
        "NumPy",
        "PySpark",
        "ETL pipelines",
        "Databricks",
        "Snowflake",
        "dbt",
        "Azure Data Factory",
        "DuckDB",
        "PostgreSQL",
        "Splink",
        "Power BI"
      ]
    },
    {
      "name": "Machine learning",
      "keywords": [
        "scikit-learn",
        "LightGBM",
        "PyTorch",
        "NLP",
        "Model evaluation",
        "Statistics and A/B testing"
      ]
    },
    {
      "name": "Engineering",
      "keywords": [
        "FastAPI",
        "REST APIs",
        "SQLAlchemy",
        "pytest",
        "Git",
        "Docker",
        "GitHub Actions (CI/CD)",
        "TypeScript"
      ]
    }
  ],
  "languages": [
    {
      "language": "English"
    }
  ],
  "meta": {
    "canonical": "https://www.rasinmuhammed.tech/resume.json",
    "version": "v1.0.0",
    "lastModified": "2026-11-06T05:38:49.435Z"
  }
}