rasmus.

Otsin arenduspraktikat

Rasmus J

Tarkvaraarendaja · TalTech · Tallinn

Õpin TalTechis IT-süsteemide arenduse kolmandal kursusel. Ehitan rakendusi, mis on testitud ja päriselt kasutuses: kõik siinsed projektid töötavad minu enda serveris. Kõige rohkem huvitavad mind serveripool ja süsteemiarhitektuur.

Valitud projektid

Valik projektidest, mis näitavad eri tüüpi tööd serveripoolsest arendusest masinõppeni.

Projektide lähtekood on privaatne, aga seda saab sirvida ajutise lingi kaudu. GitHubi kontot vaja ei ole. Ava lähtekood

2025-2026

Kursusetöö · TalTech

SplitApp: reisikulude jagamise rakendus

3 arhitektuuri, üks domeen · Vitest + Playwright · avalikult kasutatav alates 2025

C# · ASP.NET Core 10 · EF Core · MediatR · RabbitMQ · PostgreSQL · Vue 3 · TypeScript · Docker

Rakendus aitab hallata reisiseltskonna kulusid: luua reisi, kutsuda osalejaid, jagada kulu neljal viisil, jälgida eelarvet, korraldada hääletusi ja leida võlgade tasumiseks võimalikult väike arv ülekandeid.

  • Sama serveripool on teostatud kolme arhitektuurina: Clean/Onion, modulaarne monoliit ja RabbitMQ-l põhinevad mikroteenused. Nii saab nende piire ja kompromisse otse võrrelda
  • Vue 3 ja TypeScripti SPA kasutab JWT-vormingus pääsu- ja värskendustokeneid ning on kaetud Vitesti ühiktestide ja Playwrighti läbivtestidega
  • Versioonitud REST API on kirjeldatud OpenAPI-ga. Rakendusel on haldusliides ning eesti ja inglise keele tugi. See töötab Dockeris Caddy pöördproksi taga

2026

Isiklik projekt

Tasteprint: reisija toidupass

8 moodulit kontrollitud piiridega · 12 sihtkohta, 72 rooga · Postgres, Docker, CI

Java · Spring Boot · Spring Modulith · PostgreSQL · Flyway · React · TypeScript · Docker

Rakendus peab arvet roogade üle, mida kasutaja on reisidel proovinud, ja näitab, kui suure osa sihtkoha toidukultuurist need katavad. Iga sihtkoht algab kuuest sissepääsust: põhitoit, tänavatoit, hommikusöök, magus, jook ja tunnusroog. Mõõdik ei ole restoranikülastuste arv, vaid kaetus, kus tunnusroog kaalub rohkem kui kõrvaline leid.

  • Serveripool on Spring Booti modulaarne monoliit: konto, kataloog, maitsmised, reisid, edenemine, meedia ja jagamine on eraldi Java pakettides ning Spring Modulithi test hoiab need piirid ausana
  • Seansid on läbipaistmatud tokenid, mida andmebaasis hoitakse ainult SHA-256 räsina, paroolid on BCrypti taga ning pildi üleslaadimine kontrollib tüüpi, suurust ja faili päris algusbaite
  • Skeem käib Flyway migratsioonidega ja Postgresi ühilduvust katab Testcontainersi test. Ees on Nginx sisupoliitika, turvapäiste ja sisselogimise kiiruspiiranguga

2026

Isiklik projekt

profileShare: privaatse lähtekoodi jagamine

ainult lugemisõigused · ajutised lingid · GitHubi kontot pole vaja

TypeScript · Node.js · GitHub App API · OAuth

GitHubi rakendus loob valitud lähtekoodihoidlatest kirjutuskaitstud hetktõmmise ja sellele ajutise lingi. Lingi saaja saab koodi sirvida ilma GitHubi kontota ja ligipääsuta algsetele hoidlatele. Ehitasin selle, et saaksin privaatset lähtekoodi tööandjale turvaliselt näidata.

  • Hetktõmmis on külmutatud: harude ja siltide vahel saab liikuda, kuid sisu hiljem ei muutu. Jagatud link näitab alati sama seisu
  • Saadaval on sirvimine, otsing, Markdowni ja piltide eelvaade, püsilingid koodiridadele, failiajalugu, commit'ide võrdlused, issue'd, pull request'ide ülevaatused ja väljalasked
  • GitHubi rakendus küsib ainult lugemisõigusi, ei kasuta veebihaake ega kasutajaõigusi ning ligipääsu saab igal ajal tagasi võtta

2026

Isiklik projekt

Roundtable: mitme keelemudeli arutelu

üle 130 ühiktesti · SSE-voogedastus · töötab VPS-is

TypeScript · Next.js · Vercel AI SDK · OpenRouter · PostgreSQL · Prisma · Docker · GitHub Actions

Mitu keelemudelit vastab küsimusele eraldi ja kritiseerib seejärel anonüümseid vastuseid. Pärast mitut parandusvooru koostab erapooletu mudel lõppvastuse ning toob välja küsimused, milles mudelid jäid eri arvamusele.

  • Arutelumootor on raamistikust sõltumatu olekumasin, mida katab üle 130 ühiktesti. Next.js-i liides näitab muudatuste võrdlusi, kriitikamaatriksit, vastuste lähenemist voorude kaupa ja iga arutelu maksumust
  • Retsenseerivad mudelid ennustavad ka anonüümsete vastuste autoreid. Juhuslähedane tabavus viitab sellele, et anonüümimine varjab autori piisavalt hästi
  • OpenRouteri võti on serveris AES-256-GCM-iga krüpteeritud. Tõrgete korral tehakse korduskatse ning ühe mudeli väljalangemisel jätkub arutelu ülejäänutega. GitHub Actionsi töövoog saadab konteineri GHCR-i kaudu VPS-i

2026

Isiklik projekt

VoiceTask: häälepõhine nõuete täpsustaja

üle 110 testi · 9 nõuete kaetuskategooriat · töötab ilma API-võtmeteta

TypeScript · React · Vite · Fastify · Anthropicu API · OpenAI API · Zod · Vitest

Kasutaja kirjeldab oma ideed ja rakendus esitab häälega ühe küsimuse korraga, kuni nõuded on piisavalt täpsed. Tulemuseks on arendusülesande kirjeldus koos nõuete, plaani, ülesannete, kontrollide ja üleandmisega. Iga nõue viitab vestluslõigule, millest see pärineb.

  • Anthropicu Messages API vastused valideeritakse Zodi skeemidega. Skeemivea korral teeb rakendus ühe automaatse korduskatse
  • Kõnetuvastus kasutab OpenAI kõnetuvastuse API-t ja vastused loetakse ette brauseri kõnesünteesiga. Server on ehitatud Fastifyga ja kasutajaliides Reactiga
  • Võrguvaba demorežiim kasutab deterministlikke näivteenuseid. Kogu testikomplekt töötab ilma API-võtmete ja internetiühenduseta

2026

Isiklik projekt · masinõpe

CountrySense: riigi tuvastamine tänavapildilt

56 riigiklassi · 50 000 lähtepilti · top-1, top-5 ja makro-F1

Python · PyTorch · timm · CLIP · Gradio

CLIP ViT-B/16 peenhäälestamise töövoog riigi tuvastamiseks tänavapildi põhjal 56 klassi seast. Projekt piirdub teadlikult riigi tasemega ega ennusta koordinaate.

  • Kahefaasiline treening tasuta Colabi T4 GPU-l: esmalt treenitakse lineaarset klassifitseerimispead külmutatud põhivõrguga, seejärel vabastatakse neli viimast transformeri plokki ja kasutatakse madalamat õppekiirust
  • Treeningpilte ei peegeldata horisontaalselt, sest sõidupool on tegelik geograafiline tunnus ja peegeldamine muudaks selle valeks
  • Andmepuhastus eemaldab katkised, liiga väikesed, liiga tumedad, udused ja tajuräsi alusel korduvad pildid ning salvestab iga eemaldamise põhjuse. Hindamine arvutab top-1, top-5, makro-F1 ja segadusmaatriksi

Praktika

Otsin arenduspraktikat.

TalTechi ettevõttepraktika maht on 560 tundi.