[R.K.GRANT] ~/portfolio
[ | ]

R. K. Grant

developer / data science student / full-stack, ai agents, nlp

vývojář / student data science / full-stack, ai agenti, nlp

Hi, I’m Karel. I’ve just started a master’s in Data Science, and in my own time I build full-stack apps, AI agents and developer tools.

Ahoj, jsem Karel. Právě jsem začal magisterské studium Data Science a ve volném čase programuju full-stack aplikace, AI agenty a vývojářské nástroje.

every planet is where it really is right nowplanety jsou tam, kde teď opravdu jsou

targetcíl
SATURN, the sixth planetSATURN, šestá planeta
distancevzdálenost
-.--- AU / -- light-minutessvětelných minut
phasefáze
--.- % litosvětleno
rotationrotace
000.0° / 10 h 39 min
ring systemprstence
D C B A F / cassini, encke
scrolldolů

01 abouto mně

I studied Information Management at the University of Hradec Králové. For my bachelor’s thesis I tried to forecast the S&P 500 with neural networks, and for my master’s thesis I want to find out whether the tone of central bank statements helps predict the markets.

Vystudoval jsem Informační management na Univerzitě Hradec Králové. V bakalářské práci jsem zkoušel předpovídat index S&P 500 pomocí neuronových sítí a v diplomové práci chci zjistit, jestli tón vyjádření centrálních bank pomáhá předpovídat trhy.

I also led an international team on a VR classroom during an Erasmus+ semester in Amsterdam, filmed the Rally Bohemia live broadcast and ran children’s science camps.

Na Erasmu+ v Amsterdamu jsem vedl mezinárodní tým na projektu VR Classroom. Kromě toho jsem natáčel živý přenos Rally Bohemia a jezdil jako vedoucí na dětské vědecké tábory.

02 projectsprojekty

GRIMSTAT

The calculator’s damage distribution for 10 attacks hitting on 3+ at S4 AP-1 D1 against T4 with a 3+ save: 0 damage 16%, 1 damage 32%, 2 damage 29%, 3 damage 16%, 4 damage 5%, 5 or more 2%. Expected damage is 1.67 and the median is 2.Rozdělení poškození z kalkulačky pro 10 útoků zasahujících na 3+ se S4 AP-1 D1 proti T4 a záchraně 3+: 0 poškození 16 %, 1 poškození 32 %, 2 poškození 29 %, 3 poškození 16 %, 4 poškození 5 %, 5 a více 2 %. Očekávané poškození je 1,67 a medián 2.

An unofficial statistics dashboard and army builder for Warhammer 40,000.

Neoficiální statistický nástroj a tvorba armád pro Warhammer 40,000.

  • The calculator shows the full damage distribution of an attack instead of a single average.
  • The army builder checks the 11th-edition rules while you type.
  • A 3D battle table measures line of sight between models.
  • Everything a player makes stays on their own device.
  • Kalkulačka místo jednoho průměru ukáže celé rozdělení pravděpodobnosti poškození.
  • Tvorba armád průběžně kontroluje pravidla 11. edice.
  • 3D bojiště měří přímou viditelnost mezi modely.
  • Vše, co hráč vytvoří, zůstává v jeho zařízení.
  • typescript
  • react
  • three.js
  • cloudflare-workers
  • pwa

SENTIMENT SIGNAL

planned master’s thesisplánovaná diplomová práce

The pipeline. 14+ scrapers collect statements from the Fed, ECB, BoE, BIS, IMF and others. FinBERT and sentence-transformers score them, BERTopic groups them into topics, and an LSTM on prices alone is tested against an LSTM on prices and sentiment.Postup. 14+ scraperů sbírá vyjádření Fedu, ECB, BoE, BIS, MMF a dalších. FinBERT a sentence-transformers je skórují, BERTopic je shlukuje do témat a LSTM jen na cenách se porovnává s LSTM na cenách a sentimentu.

A research system that compares the sentiment of what central banks and institutions say with what the markets actually did. All the data is point-in-time, so the model never sees anything from the future.

Výzkumný systém, který porovnává sentiment vyjádření centrálních bank a institucí s tím, jak se trhy opravdu vyvíjely. Všechna data jsou point-in-time, takže model nikdy nevidí do budoucnosti.

~5,000 statements / 49,000 price observations / 16 markets / 100+ unit tests

~5 000 vyjádření / 49 000 cenových pozorování / 16 trhů / 100+ jednotkových testů

  • python
  • pytorch
  • hugging-face
  • postgresql/pgvector
  • fastapi
  • streamlit
  • docker

ADDISON

in progressprobíhá

Addison asks before it changes a file, with the buttons Allow and Not now. Afterwards the Undo last action button reverses the change.Addison se před změnou souboru zeptá, s tlačítky Allow a Not now. Tlačítko Undo last action pak změnu vrátí.

A desktop AI assistant for people who don’t write code.

Desktopový AI asistent pro lidi, kteří neprogramují.

  • It runs on your own computer, with local models through Ollama or cloud models from Anthropic, OpenAI and Google.
  • Before it does anything, it tells you in plain words what it’s about to do, and it can undo it afterwards.
  • I designed its permission system, which sorts the tools into tiers by how risky they are.
  • I also designed the first-run setup, which happens as a conversation, so nobody has to deal with API keys or config files.
  • Běží na vlastním počítači, s lokálními modely přes Ollama nebo s cloudovými modely od Anthropicu, OpenAI a Googlu.
  • Než cokoli udělá, srozumitelně řekne, co má v plánu, a umí to pak vrátit zpět.
  • Navrhl jsem systém oprávnění, který nástroje řadí do úrovní podle toho, jak jsou rizikové.
  • Navrhl jsem i první nastavení, které probíhá formou rozhovoru, takže nikdo nemusí řešit API klíče ani konfigurační soubory.
  • tauri-2 (rust)
  • python-3.12
  • react
  • sqlite
  • json-rpc

S&P 500 FORECASTINGPREDIKCE S&P 500

bachelor’s thesisbakalářská práce

The final model passes 93 features through a FeatureAttention layer, two bidirectional LSTM layers and three Transformer blocks to predict price and direction. The three generations used 1, 47 and 93 input features.Finální model vede 93 příznaků přes vrstvu FeatureAttention, dvě obousměrné vrstvy LSTM a tři Transformer bloky a předpovídá cenu a směr. Tři generace pracovaly s 1, 47 a 93 vstupními příznaky.

For my bachelor’s thesis I compared three generations of neural networks for predicting which way the S&P 500 moves: an LSTM, a Transformer and a hybrid of the two.

V bakalářské práci jsem porovnával tři generace neuronových sítí, které předpovídají, kterým směrem se index S&P 500 pohne: LSTM, Transformer a jejich hybrid.

  • A custom FeatureAttention layer learns how much each of the 93 inputs matters. The inputs are technical indicators and macro data from FRED.
  • A diagnostic suite detects forecast collapse and compares directional accuracy with a naive model that always predicts a rise.
  • The diagnostics showed that the final model had collapsed and predicted a rise on every single day of the test set. The likely causes were the asymmetric loss function and the scale mismatch between the inputs and the target returns.
  • Vlastní vrstva FeatureAttention se učí, jak moc záleží na každém z 93 vstupů. Vstupy jsou technické indikátory a makroekonomická data z FRED.
  • Sada diagnostických nástrojů odhaluje kolaps předpovědi a porovnává směrovou přesnost s naivním modelem, který vždy předpovídá růst.
  • Diagnostika ukázala, že finální model zkolaboval a na testovacích datech předpovídal růst úplně každý den. Pravděpodobnou příčinou byla asymetrická ztrátová funkce a nesoulad měřítka mezi vstupy a cílovými výnosy.
  • python
  • tensorflow/keras
  • scikit-learn
  • pandas

PYQUEST

open source, MIT licenceopen source, licence MIT

A session on the first puzzle. The first check fails because the output is missing a comma, the first hint asks which built-in function puts text on the screen, and the second check passes.Ukázka první úlohy. První kontrola neprojde, protože ve výstupu chybí čárka, první nápověda se ptá, která vestavěná funkce vypisuje text na obrazovku, a druhá kontrola projde.

A Python course that runs in the terminal.

Kurz Pythonu, který běží v terminálu.

  • It has 142 puzzles in 16 chapters, starting at print("hello") and ending with inheritance and a small project built over several steps.
  • You read a short brief, write the code in your own editor and check it with one command.
  • The checker runs your code with different numbers every time, so a copied answer won’t pass.
  • Each puzzle has three hints, each more specific than the last, and a worked solution.
  • Má 142 úloh v 16 kapitolách, od print("hello") až po dědičnost a malý projekt stavěný v několika krocích.
  • Uživatel si přečte krátké zadání, napíše kód ve vlastním editoru a zkontroluje ho jedním příkazem.
  • Validátor spouští kód pokaždé s jinými čísly, takže opsaná odpověď neprojde.
  • Ke každé úloze jsou tři postupně konkrétnější nápovědy a vzorové řešení.
  • python
  • standard-library-only
  • jen-standardní-knihovna
  • github-codespaces

MoreDalší

  • ALMANAC

    A local-first calendar where every feature is its own module. Meal planning is the first one, and ESLint keeps the modules from reaching into each other.

    Local-first kalendář, ve kterém je každá funkce samostatný modul. Prvním modulem je plánování jídel a ESLint hlídá, aby si moduly nesahaly navzájem do kódu.

    typescript / react / tauri / vitest

    -> github
  • JABKOZDARMA

    A community map of fruit trees that anyone can pick from. People pin trees, add photos and report what’s ripe right now. The map snaps between four zoom levels, from a single tree up to a whole region.

    Komunitní mapa ovocných stromů, ze kterých si může natrhat kdokoli. Lidé přidávají stromy a fotky a hlásí, co je právě zralé. Mapa přeskakuje mezi čtyřmi úrovněmi přiblížení, od jednoho stromu až po celý kraj.

    expo / react-native / typescript / maplibre-gl / supabase

    personal projectosobní projekt
  • SHADOW MAZE

    A first-person horror game in Unity 6. You find your way through procedurally generated mazes by following a 3D sound that the walls muffle. It started out as a VR game.

    Hororová hra z pohledu první osoby v Unity 6. V procedurálně generovaném bludišti se orientujete podle prostorového zvuku, který tlumí stěny. Původně to byla hra pro VR.

    unity-6 / c#

    -> github
  • FIRETEAM FINDER

    A Discord bot that organises Destiny 2 groups. It creates a channel and a role for each activity, keeps a live roster with a queue of substitutes, and cleans up after itself when the activity is over.

    Discord bot pro organizaci skupin v Destiny 2. Pro každou aktivitu vytvoří kanál a roli, vede živou soupisku s frontou náhradníků a po skončení aktivity po sobě uklidí.

    node.js / discord.js

    -> github

03 skillsdovednosti

ProgrammingProgramování

  • Python
  • SQL
  • JavaScript / TypeScript
  • C#
  • HTML / CSS

ML & NLPStrojové učení a NLP

  • PyTorch
  • TensorFlow / Keras
  • Hugging Face Transformers
  • scikit-learn
  • LSTM and Transformer architecturesarchitektury LSTM a Transformer
  • statistical analysisstatistická analýza

AI agentsAI agenti

  • Claude Code in daily developmentClaude Code při každodenním vývoji
  • agent and tool architecturenávrh architektury agentů a nástrojů
  • risk-tiered permissionsoprávnění odstupňovaná podle rizika
  • model routingsměrování modelů
  • MCP-style tool integrationintegrace nástrojů ve stylu MCP

EngineeringInženýrství

  • Git / GitLab
  • REST API
  • unit testingjednotkové testování
  • modular and service-oriented architecturemodulární a servisně orientovaná architektura
  • CI/CD
  • agileagilní vývoj

Backend, frontend, gamesBackend, frontend, hry

  • FastAPI
  • Node.js
  • PostgreSQL / pgvector
  • Docker
  • Next.js
  • Unity / C#
  • VR developmentvývoj pro VR

VisualisationVizualizace

  • Matplotlib
  • Seaborn
  • Streamlit
  • UML
  • BPMN
  • Mermaid.js
  • Enterprise Architect
  • LaTeX (Overleaf)
  • MS Excel

LanguagesJazyky

  • czechčeština
  • englishangličtina
  • germanněmčina

04 experiencezkušenosti

workpráce

  1. feb – jul 2025únor – čvc 2025

    Team lead and front-end developerVedoucí týmu a front-end vývojář

    Erasmus+ @ Amsterdam University of Applied Sciences (HvA)Erasmus+ @ Hogeschool van Amsterdam (HvA)

    • Led an international development team on the VR Classroom project and ran the agile sprints and the GitLab workflow (feature branches, merge requests).
    • Built the whole project website in Next.js from a Figma design that follows the brand book.
    • Worked on the media importer and the ASP.NET REST API that uploads content to the virtual whiteboards in the scene.
    • Implemented VR features in Unity/C#, including multiplayer and interaction systems.
    • Vedl jsem mezinárodní vývojový tým na projektu VR Classroom, řídil agilní sprinty a práci v GitLabu (feature branche, merge requesty).
    • Vytvořil jsem kompletní web projektu v Next.js, navržený ve Figmě podle brand booku.
    • Podílel jsem se na importéru médií a na REST API v ASP.NET pro nahrávání obsahu na virtuální tabule ve scéně.
    • Implementoval jsem funkce pro VR v Unity/C# (multiplayer a interakční systémy).
  2. 2022 – now2022 – dosud

    Freelance video productionVideoprodukce na volné noze

    • Filmed and helped run the Rally Bohemia live broadcast, and shot and edited videos for Betano.
    • Natáčel jsem a pomáhal se živým přenosem Rally Bohemia a pro Betano jsem točil a stříhal videa.
  3. 2021, 2022 (2×), 2024

    Head leader, children’s science campHlavní vedoucí, dětský vědecký tábor

    • Planned week-long programmes and led groups of children on my own across four camps.
    • Připravoval jsem týdenní programy a samostatně vedl skupiny dětí (4 turnusy).

educationvzdělání

  1. from 2026od roku 2026

    Master’s degree, Data ScienceNavazující magisterské studium, Data Science

  2. 2023 – 2026

    Bc. in Information ManagementBc. Informační management

    University of Hradec Králové / Faculty of Informatics and ManagementUniverzita Hradec Králové / Fakulta informatiky a managementu

    • Thesis on forecasting the direction of the S&P 500 with recurrent neural networks.
    • Courses included UML, OWL/RDF/SPARQL, SAP ERPsim, macroeconomics and autonomous systems.
    • Bakalářská práce na téma předpovědi směru indexu S&P 500 pomocí rekurentních neuronových sítí.
    • Absolvované předměty zahrnovaly UML, OWL/RDF/SPARQL, SAP ERPsim, makroekonomii a autonomní systémy.

05 contactkontakt

Contact detailsKontaktní údaje

TerminalTerminál