Tomislav Ćalušić

Software engineer · AI integration · Split, Croatia

Open to AI integration roles

I build the unglamorous parts of AI products.

Full-stack engineer, nine years across banking, telco, automotive and government enterprise. Lately I’ve been wiring Claude into real products: agentic tool-use loops, multi-tenant infra, and the boring auth, storage and DNS plumbing that lets a model-powered feature ship to actual users.

Experience
9 years
Roles
6 companies
Shipped
4 products

Selected work · U1–U4

Four products, built and shipped.

Two live, one by invitation, one on testnet.

Adios

U1 ADIOS

Live in production

News aggregation that understands the story.

An AI news platform that reads every article from major Croatian publishers with an LLM and groups different outlets’ coverage of the same event into one story. Each country runs as its own deployment, with its own database, translations and prompt settings.

Role: Co-built: back end and front end

vectors per article
4 × 1,536-d
clustering threshold
80%
translated keys per language
~1,500
config lines to add a country
~60
  • OpenAI Responses API
  • text-embedding-3-small
  • pgvector
  • .NET 10
  • ASP.NET Core MVC
  • EF Core
  • +6 more
A story’s chronology on adios.hr: water safety in Lika and on Pag, followed from 30 September to 4 November in 12 steps built from 28 articles across 6 portals, with a timeline of the steps and the outlets behind the first oneA story’s analysis on adios.hr: the summary, extra context, scores for sensationalism, exaggeration and emotional language, the story’s themes, and the three outlets that covered itThe adios.hr news map: stories pinned to where they happened across Croatia and its neighbours, with the latest listed beside itadios.hr in numbers: 1,476 articles from 10 portals in the last 24 hours, with an hour-by-hour chart
The same story’s chronology on a phone: the headline, 12 steps from 28 articles across 6 portals, and the start of the timelineA story page on a phone: the illustration, the source, the headline and the start of the analysisThe news map on a phone, with numbered clusters of stories over Croatia and its neighbours

Photo Portfolio Platform

U2 PHOTO

Live, by invitation · v1

A Telegram bot that ships websites.

A multi-tenant SaaS where each photographer runs their own website and domain by chatting with a Telegram bot. The bot is the CMS: every operation, from uploading a photo to binding a custom domain, is a tool Claude Haiku can call.

Role: Solo build · 2026

admin panels, by design
0
from adding the bot to a working site
Minutes
to TLS on a photographer’s own domain
Seconds
of Haiku tokens per tenant a month
A few cents
  • Claude Haiku
  • agentic tool use
  • FastAPI
  • Psycopg 3
  • Alembic
  • Next.js 14
  • +8 more
The home page of scalusic.photography, a photographer’s site running on the platform: a full-width photo of posts casting striped shadows, a Croatian headline and an EN/HR language switchThe portfolio page of scalusic.photography, a photographer’s site running on the platform, with category filters above a grid of photosA photo’s own page on scalusic.photography: “Beach Fence Geometry”, a curving fence of white posts on sand, under its title and a link back to the gallery
Illustration of a Telegram chat with the platform’s bot: a photographer sends three photos and asks it to swap the homepage photo and use their own domain, and the bot confirms each changeIllustration of a Telegram chat with the platform’s bot: a photographer sends a black-and-white photo of Split, which the bot files under Camera obscura with captions in two languages, then asks it to reorder the Architecture gallery and warm up the site’s goldIllustration of a Telegram chat with the platform’s bot: a photographer names the fence photo, then asks it to make the about page warmer and translate everything to Croatian, and the bot confirms each change
On screen: scalusic.photography, a photographer’s site on the platform. The phone shows illustrated chats with the bot that runs it.

Veseljko

U3 VESELJKO

Live in production

Everything a family celebration needs, in one place.

A Croatian platform for the whole lifecycle of weddings, baptisms, birthdays and other family events. It covers digital invitations with RSVP, guest photo and video uploads, voice messages, printable invitations and QR cards, seating, and package and add-on commerce, with a back-office app for staff.

Role: Co-built with a colleague

event types
8
invitation themes
30+
front ends: Web and Office
2
  • C#
  • .NET 10
  • Clean Architecture
  • CQRS
  • ASP.NET Core MVC
  • Razor
  • +6 more
The host’s guest list in a Veseljko demo wedding, in Croatian: each guest’s RSVP status and personal invitation link, with buttons to add guests, import a list with AI or from contacts, and a switch for showing tables on the invitationA printable invitation designed in Veseljko: a cream two-page card with the couple’s names, the date and venue, the day’s schedule and QR codes for the RSVP and the photo galleryA wedding’s guest page in Veseljko’s elegant template: the couple under chandeliers, their names and the date, and buttons to upload photos and videos, see your uploads, leave a voice message and download the albumThe same guest page in the baptism template, for “Markovo krštenje”: a family photo in a fine frame above the upload, voice message and album buttonsThe same guest page in the laser-tag birthday template, for “Karlov rođendan”: children with laser guns under purple and green neon
The guests’ QR photo gallery for the demo wedding on a phone: two wedding rings under the couple’s names, with buttons to upload photos and videos, see your uploads and download the albumThe elegant wedding guest page on a phone: the couple’s names and date over a chandelier photo, with large buttons to upload, see your uploads, leave a voice message and download the albumThe voice message screen on a phone: a virtual call to the couple, with their photo, a field for the guest’s name, a green call button and a note that a message can last up to 60 seconds
On screen: the demo wedding anyone can start at veseljko.hr/demo, and guest pages in three of its templates

DeHost

U4 DEHOST

Live on testnet

Websites that live on-chain.

A Web3 platform that publishes websites and files fully on-chain: no traditional servers, no takedowns, no single point of failure. I built the SvelteKit front end and its Web3 integration: wallet onboarding with account-abstraction sign-in, on-chain domains and publishing.

Role: Co-built: front end and Web3 integration

+ SvelteKit, TypeScript throughout
Svelte 5
injected-wallet sign-in
EIP-1193
account-abstraction sign-in
ERC-4337-style
  • Web3 dApp
  • Svelte 5
  • SvelteKit
  • TypeScript
  • Tailwind CSS
  • Vite
  • +2 more
The dehost.io home page: a test-environment warning banner, the “Welcome to DeHost” heading and a card asking the visitor to connect a walletThe “Who is DeHost for?” section of dehost.io, with cards for developers, Web3 teams, communities and DAOs, and creators and activists, above the start of “How It Works”
dehost.io on a phone: the test-environment banner, the welcome heading and the Connect Wallet card

Capabilities · routing table

What I work on, and where it runs.

Capabilities, and which of the projects above use each one
CapabilityU1AdiosU2Photo Portfolio PlatformU3VeseljkoU4DeHost
Back-end & dataMulti-tenant Postgres, SQL-first APIs, integration glue, regulated financial workflows.Java · Spring Boot · .NET · Python (FastAPI) · Oracle PL/SQL · PostgreSQLUsedUsedUsedNot used
Front-endAngular and React SPAs replacing legacy back-office UIs, Next.js, TypeScript-first.Angular · React · TypeScript · Next.js · Svelte · SvelteKit · Vue.jsUsedUsedUsedUsed
AI and LLM integrationAgentic tool-use loops, evals, and the boring auth, storage and DNS plumbing that lets a model ship.Claude (Haiku, Sonnet, Opus) · OpenAI · embeddings + pgvector · tool use · evalsUsedUsedNot usedNot used
Infra and deliveryDocker, Caddy with on-demand TLS, Cloudflare R2, Jenkins CI/CD, raw Linux.Docker · Caddy · Cloudflare · Jenkins · LinuxUsedUsedUsedNot used

Experience · 2017 – now

Nine years, six roles.

  1. Oct 2024 – now

    Senior Software Engineer · Intellexi · HPB (Croatian Postal Bank)

    Modernising core banking and front-office systems at HPB for new Croatian regulations.

    Angular · Spring Boot · Java · Oracle PL/SQL · OpenLiberty · Jenkins

  2. Sep 2022 – Jul 2024

    Senior Technical Consultant · CloudSense

    Salesforce builds for three telcos: A1, Telefónica and Liquid Telecom.

    Salesforce · Apex · Lightning Web Components · PDF Butler

  3. Jun 2021 – Sep 2022

    Software Engineer · GlobalLogic

    Two automotive cloud platforms: Stellantis Internet of Vehicles and Daimler’s Mercedes Intelligent Cloud.

    React · TypeScript · Vue.js · Java 11 · Spring Boot

  4. Nov 2019 – Jun 2021

    Software Developer · Maurer Electronics GmbH

    A government platform that tracks tobacco products from factory to shop, to catch illegal ones.

    Java · Spring Boot · React · PostgreSQL · JUnit

  5. Mar – Oct 2019

    Student Software Developer · Sedam IT

    The back end of ZgPark, Zagreb’s pay-parking-by-phone service.

    Java · XML · MS SQL Server · Tomcat

  6. Mar 2017 – Feb 2019

    Student Software Engineer · Ericsson

    4G/5G network code that carries about a billion mobile subscribers.

    C · Java · Erlang · Bash · M4

Education: M.Sc. and B.Sc. in Computer Science · FESB, University of Split · 2014–2019

Full CV

Contact

Let’s build something.

I’m open to AI integration roles where the plumbing matters as much as the model.