Over the past few weeks, we had the pleasure of welcoming and getting to know a new cohort of interns to RIoT Secure through our ongoing partnership with Absolute Internship. This four week on-site program brought three talented students from TBZ Zürich to our Stockholm office:
- Anik Stadelmann– Application Development Apprentice (Six Group)
- Elia Schlatter – Apprentice Platform Developer (UBS AG)
- Cédric Ackermann – Software Engineering Apprentice (Google Switzerland GmbH)
Our collaboration with Absolute Internship has allowed us to host students from across the globe — including Hong Kong, Mexico, Switzerland, Egypt, and The Netherlands — creating a diverse and dynamic environment where ideas and perspectives thrive.
Beyond the Internship: Experiencing Startup Life in Stockholm
Interning at RIoT Secure isn’t just about technical work. It’s about immersion.
Depending on the duration (ranging from four to sixteen weeks), interns get hands-on experience in a fast-moving startup environment while also enjoying the culture, innovation, and beauty of Stockholm, Sweden. It’s a combination we believe is essential — learning how to build, while also learning how to experience.
The Challenge: Building an AI Lab Without the Cloud
This cohort took on a challenge that’s both timely and complex:
How can startups leverage AI effectively — without becoming dependent on expensive cloud subscriptions and unpredictable token costs?
AI is everywhere right now. But behind the hype, many companies are facing real challenges:
- Escalating costs
- Lack of control over data
- Hallucinations and unreliable outputs
So we decided to take a different approach — we build an in-house AI lab. Using two machines — a Mac Mini M4 (16GB) and a Mac Mini M4 Pro (64GB) — we created a local environment capable of running LLMs using the open-source platform Ollama. The goal was simple:
Build a local ChatGPT-like system capable of generating content, answering questions, and supporting internal workflows — without relying on the cloud.
The Reality of AI: Accuracy Matters
One of the first lessons we tackled was a critical one:
AI is only as good as the information it’s given.
Large Language Models are excellent at generating text — but not always at generating truth. Without proper grounding, they hallucinate. To address this, we introduced a source-of-truth architecture using RAG (Retrieval-Augmented Generation). Instead of scraping ambiguous data, the team created structured RAG files based on our own product content. These files served two purposes:
- Feeding accurate data into the AI system
- Acting as a foundation for future website generation
This ensured that every answer could be traced back to something real and verified.
Exploring the Tooling Landscape
The team evaluated several tools to bring this vision to life:
Open WebUI
Open WebUI is the go-to model for teams setting up AI on your own terms. Easy to set up and user-friendly — but ultimately limited. RAG support and source control weren’t robust enough for our needs.
exo
exo connects all your devices into an AI cluster. A fascinating concept: combining memory across multiple machines. In theory, we could pool up to 80GB of unified memory — in practice? Not quite.
Without high-bandwidth connectivity (Thunderbolt 5 wasn’t supported across both Mac Minis), performance becomes a bottleneck. While promising, it wasn’t ready for our use case — though definitely something we’ll revisit at some point in the future.
Onyx
Onyx is the application layer for LLMs - bringing a feature-rich interface that can be easily hosted by anyone. Onyx enables LLMs through advanced capabilities like RAG, web search, code execution, file creation, deep research and more.
This became our solution of choice — Onyx provided exactly what we needed:
- Built-in vector database
- Flexible RAG integration
- Multiple connectors for structured data
But most importantly — it provides full control over everything that we need.
The Result: A Purpose-Built AI Assistant
With Onyx in place, the team configured three distinct interaction modes:
- RIoT Information – factual, source-backed responses
- RIoT Content – structured writing and documentation
- RIoT Marketing – creative output and messaging
Each mode used tailored system prompts to guide behavior – the results were impressive.
Ask a relevant question: it produces a very detailed response, providing references to the source material.
Ask a question that it has no knowledge about: it responses very quickly, explaining it needs a question relevant to its knowledge base.
No hallucinations, no guesswork – just controlled, reliable AI – exactly what we set out to achieve.
More importantly, this wasn’t accidental — it was engineered. By grounding every response in our curated RAG data and carefully defining system prompts for each interaction mode, we ensured that the model operated within clearly defined boundaries. Every answer could be traced back to a verified source, and when that source didn’t exist, the system didn’t attempt to “fill in the gaps” — it simply declined to answer.
This level of discipline is often missing in typical AI deployments, where fluent language can easily mask inaccurate content. Here, we flipped that paradigm: accuracy was prioritised over eloquence, traceability over creativity when needed, and control over convenience. The result was an AI assistant that behaves less like a probabilistic text generator and more like a dependable extension of the company’s own knowledge base.
Side Quests: When Curiosity Takes Over
No internship at RIoT Secure would be complete without a few experimental detours.
Arduino UNO Q + AI (OpenClaw)
Inspired by a viral demo, the team explored running AI-assisted development on an Arduino Q. Unfortunately not everything went exactly as planned, there were some obvious assumptions that gave us a reality check:
- It required powerful cloud-based LLMs
- Token usage quickly became a limitation
- Local models simply weren’t advanced enough (yet)
Conclusion: exciting — but not practical in a constrained, local-first setup.
The Aracde Project
With a Pac-Man machine in the office, inspiration struck. Could we build our own arcade system using Arduino? There was an Arduino blog post to the exact detail, resulting in:
- Custom joystick and button setup
- NES and SNES emulation
It worked... but not quite the real arcade feel. In true startup fashion, we pivoted — and brought back a trusty Raspberry Pi solution developed years early to complete the experience and allow us to play real arcade games like 1942, Frogger, Bubble Bobble and many more.
Final Thoughts
This internship wasn’t about delivering a polished product — it was about exploration, constraints, and learning what actually works. The key takeaway? The future of AI for startups isn’t just about capability — it’s about control, cost, and correctness. By building a local AI lab grounded in real data, this team demonstrated that it’s possible to move beyond the hype and create something practical, scalable, and reliable.
To Anik, Cédric and Elia — thank you for your curiosity, your energy, and your willingness to challenge assumptions. We’re excited to see where your journeys take you next.
