IVÁN SOTILLO.

Software Engineer & AI Researcher

Currently researching at the MISO Lab .

Experience

  1. Researcher

    MISO - UAM

    Developed "TRACER", a tool that uses LLMs to have conversations with chatbots and models their functionalities. Then with the generated model, it creates user profiles that can be run against the chatbot to test its behavior. All of this can be executed inside "Chatbot Dojo", a web application that allows users to easily run TRACER and SENSEI.
    LangGraph React Django Python
    Know more

Education

  1. MSc Data Science

    Universidad Autónoma de Madrid

    GPA: 8.41/10. Awarded Highest Honors in Recommendation Systems. Awarded a 10.0/10.0 on my Thesis and got it published: Automated Exploration of Conversational Agents for the Synthesis of Testing Profiles.
    Machine Learning Natural Language Processing Deep Learning
    Thesis Publication
  2. Spring School

    Northwestern Polytechnical University (China)

    Participated in an intensive program focused on science and engineering topics, including lectures and hands-on projects.
    Gray Systems Theory
    Spring School LinkedIn Post
  3. Exchange Program

    University of Helsinki

    Completed advanced courses in Artificial Intelligence, Business, and Algorithms.
    Artificial Intelligence Business Algorithms
  4. BSc Computer Science Engineering (Bilingual)

    Universidad Autónoma de Madrid

    GPA: 8.31/10. Awarded Highest Honors in Data Structures and Mobile App Development. Received Excellence Scholarships in 2nd and 4th year.
    Algorithms Software Engineering Databases

Projects

TRACER screenshot

TRACER

Professional

Built a tool that using LLMs, holds a conversation with a chatbot to model its behaviour. From these conversations it generates a model of the chatbot's functionalities, finally, it builds different DSL user profiles that can be used to test the chatbot's behavior under various scenarios.

LangGraph NLP Python
Chatbot Dojo screenshot

Chatbot Dojo

Professional

Developed a web app that integrates TRACER and SENSEI tools. TRACER models a chatbot and generates user profiles, while SENSEI runs these profiles against the chatbot to evaluate its behavior. The frontend was done with React, while the backend was built with Django.

Django React Docker Celery PostgreSQL
Obsidian Smart Export screenshot

Obsidian Smart Export

Personal

Obsidian plugin (600+ downloads) that exports multiple linked notes into a single document. This allows to aggregate all the notes of a given topic into a single document for printing, studying, or LLM analysis. To do this, users select a root note and a link depth, then, the wikilinks to other notes are explored in a BFS (Breadth-First Search) way and merged into a single document until the given depth is reached.

TypeScript BFS Obsidian
Drumscribe AI screenshot

Drumscribe AI

Personal

AI model that transcribed a drumset audio recording into MIDI. This was done by generating a mel spectrogram of the audio input, then extracts features using a CNN that progressively reduces spectral resolution while increasing channel depth. These features are fed into a bidirectional LSTM to model temporal dynamics, followed by two heads that detect onsets and predict hit velocities for each drum element. This was done as a personal project, then I also used it for a Deep Learning for Audio Signal Course, so the slides I did are also available (check the "Live" link).

PyTorch Python Deep Learning
U.D.I.N. screenshot

U.D.I.N.

Professional

Windows desktop application developed for a team of mechanical engineers that lets them input all the data related to a vehicle and its modifications thanks to a dynamic form. Then, generates all the Word documents needed for the homologation.

C# WPF
Spotify Reviews Sentiment Analysis screenshot

Spotify Reviews Sentiment Analysis

Personal

Sentiment analysis of Spotify Reviews. This was a personal project I did to learn about Natural Language Processing (NLP). The idea was to analyze Spotify reviews and detect if they were positive or negative. The fun part was that I tried to make it as from scratch as possible, so I didn't use any library that did the sentiment analysis for me. I did the preprocessing myself, even implemented my own stemming algorithm. Then I tried converting each word to an ID (didn't work well) and then I used a Bag of Words approach to convert the reviews to a matrix. Then I used a TensorFlow neural network to classify the reviews. The pretrained model is included in the repo.

Python TensorFlow NLP

Publications

  1. Automated Exploration and Profiling of Conversational Agents

    ICTSS 2025 (Cyprus)

    We present TRACER, a tool that models chatbot functionalities using LLMs and generates user profiles to test chatbot behavior effectively.

    LangGraph Chatbots LLMs
    Read publication

Achievements

  1. Excellence Scholarship

    Comunidad de Madrid

    2021/22, 2023/24

    Scholarship awarded by the Community of Madrid. Obtained in the 2021/22 and 2023/24 academic years for ranking among the top students in the Community of Madrid.

  2. 2 honorable mentions in Computer Science

    Universidad Autónoma de Madrid

    Awarded to the top ~2% of students enrolled in each course. Obtained in Data Structures and Mobile App Development.

  3. Excellence Scholarship

    Universidad Autónoma de Madrid

    2024/25

    Awarded to the master students that achieved the highest grades in the previous degree.

Let's Connect

I’m open to software engineering roles, research collaborations, freelance projects and open-source contributions. Feel free to reach out to me via email or through my social media profiles below!