Full-stack developer

Salary Unpaid

Who We Are

DiFacto is a Danish B2B SaaS startup that saves construction companies money — automatically. Our platform compares supplier invoices against pre-negotiated price agreements using AI and flags every pricing error that would otherwise slip through the cracks. We're talking real money: pilot data shows that over 10% of invoices contain errors, and companies lose 1–1.5% of their entire procurement volume to mistakes nobody catches.

We are launching on April 1st, 2026 — and now we need to bring development in-house.

We are three co-founders based at Incuba Katrinebjerg in Aarhus. Marius Relund (CEO) is a graduate economist from Aarhus Universitet with a serial entrepreneurial background. Jeppe Østerby is our commercial lead with a BA in Business Administration and a talent for getting in front of customers and building relationships. Ivan Grant Petrus (CTO) is a Kaospilot with a deep creative and strategic approach to building technology. Together, we've bootstrapped DiFacto from an idea into a working product with real customers and paying users.

We're part of several programmes and organisations that shape our journey: Incuba Katrinebjerg (our home base and incubator), Beyond Beta (accelerator), Nvidia Inception (AI startup programme), Dansk Industri, NextStep, Mikrolegat, and we're active in BNI networking groups across Aarhus.


Why This Role Exists

Until now, our platform has been built by an external development team abroad. It's worked — but development is the core of what we do, and we've reached the point where it has to move in-house. That's not optional for us; it's paramount. We're phasing out the external team over the summer of 2026, and we need someone who can step in, take ownership, and grow with us.

We're not going to pretend this is a polished corporate gig. We're a bootstrapped startup. We don't have crazy liquidity to throw at a senior hire. What we do have is a real product in the hands of real customers, a clear technical architecture, a documented development plan, a financial forecast, and three founders who will invest serious time in making sure you succeed.


What You'll Actually Do

You'll work across our stack, which includes SvelteKit on the frontend, Node.js and Python on the backend, MongoDB as our database, Redis for caching and task queuing, Google Vertex AI / Gemini for our AI and OCR pipeline, and AWS (Stockholm region) for cloud infrastructure. We use Docker for containerisation, Bitbucket Pipelines for CI/CD, Nginx as our web server, CrowdSec for security, and Stripe for payments.

Your work will be real, not simulated. Depending on the phase and your strengths, that could mean building new features (API integrations, email automation, cloud file uploads), improving and maintaining the existing codebase, working on the AI pipeline and data processing logic, contributing to DevOps and infrastructure improvements, or helping us evaluate and test new LLM models as the AI space evolves.

We have a clear backlog with priorities, and you'll be involved in shaping what comes next — not just executing tickets handed down from above.


What We Offer (Honestly)

Let's be upfront: this is an unpaid internship. We're a bootstrapped startup, and we don't yet have the liquidity to offer a salary for this role. We know that's a lot to ask, and we respect that it's not for everyone.

Here's what we can offer in return:

A mandate that matters. This isn't a "fetch coffee and watch from the sidelines" internship. You will have both strategic and operational responsibility. You'll sit with the founders, you'll influence decisions, and you'll see the direct impact of your work on a live product that real companies depend on.

A thorough onboarding. We know that starting in a new codebase built by someone else is hard. We'll invest significant time onboarding you properly, and there will be a handover period with the current development team so you're not starting from zero. We expect the onboarding to take time, and we're patient with that.

Freedom to challenge us. We want someone who diverges, questions our assumptions, and pushes back when they see a better way. Our culture is built on do-ocracy: the best argument wins, not the loudest voice or the most senior title.

A proper workspace. You'll have a dedicated desk at Incuba Katrinebjerg — a modern co-working space with its own monitors, fitness centre, cafeteria, community events, and a vibrant ecosystem of startups and tech companies (including Microsoft, right next door). It's a great place to work and an even better place to build your network.

A front-row seat to building a company. You'll experience fundraising conversations, customer meetings, strategic planning, product decisions, and all the messy, exciting reality of early-stage startup life. If you're considering starting something yourself one day, this is the education no classroom can give you.


Who We're Looking For

We're open to profiles. You might be a full-stack developer, a backend-focused engineer, or a computer/data science student. What matters more than your exact title is that you're comfortable working with code, curious about AI and data, and motivated by building something from scratch rather than maintaining something that already works.

You should be comfortable with (or eager to learn) technologies like JavaScript/TypeScript, Python, Node.js, MongoDB, and cloud services. Experience with SvelteKit, Docker, or AI/ML pipelines is a plus, but we'd rather have someone hungry and sharp than someone who ticks every box on paper.

Personally, we're looking for someone who takes initiative, communicates directly, and doesn't need to be told what to do every morning. Someone who's comfortable with ambiguity and can handle the fact that priorities shift in a startup. Someone who cares about the craft of building software, not just getting it to compile.


The Practical Details

Starting date: From June 1st, 2026 onwards — we're flexible on the exact timing, and an earlier or slightly later start is possible depending on your situation.

Duration: We're open to discussing this. A minimum of 3–4 months makes sense for both sides given the onboarding investment, but we'd love a longer commitment if the fit is right.

Location: Incuba Katrinebjerg, Aarhus. We work from the office — this is a role where being physically present matters for collaboration, onboarding, and culture.

Hours: Flexible. We can discuss what works for your situation, whether that's full-time or a structured part-time arrangement.

Note: This is not an ECTS-earning university internship. It's a standalone position.


A Word on Our Culture

We're still building our culture — intentionally. We're three people with different backgrounds and different strengths, and we've learned that the best ideas come from honest disagreement. We argue, we challenge each other, and then we commit. We separate personality from the problem and focus on solutions, not politics.

We move fast, we stay agile, and we understand that the technology landscape shifts quickly. We're not precious about how things were done yesterday if there's a better way today. If you thrive in structured, predictable environments, this probably isn't the right fit. If you thrive in environments where you can shape things, own things, and see the results of your work — we'd love to hear from you.


For more information or questions please contact us at kontakt@difacto.dk or phone number 42748520

Perks and benefits

This job comes with several perks and benefits

Gym access
Gym access

Remote work allowed
Remote work allowed

Central office
Central office

Skill development
Skill development

Flexible working hours
Flexible working hours

Work life balance
Work life balance

Working at
DiFacto ApS

DiFacto is an AI-powered SaaS startup based in Aarhus at Incuba, automating invoice auditing for companies with complex supplier and rebate agreements — starting with the Danish construction industry. The problem: Construction companies operate under intricate price agreements with major suppliers like STARK, XL-Byg, and others. These agreements contain volume discounts, seasonal rebates, and project-based pricing. In practice, invoices frequently deviate from the agreed terms — but checking them manually is time-consuming, expensive, and requires specialist knowledge that most SMEs simply don't have. Our own pilot data shows that around 10% of all invoices contain errors or rebate breaches, putting 1–1.5% of total procurement volume at risk. Why we built it: We spent 14 months manually analysing hundreds of real price agreements and invoice structures from Denmark's largest building suppliers. That deep understanding became the foundation for a platform that does in 30 seconds what a trained analyst would take hours to do. Our core engine reads invoices via OCR, converts them to structured data, and cross-references them algorithmically against the client's price agreements — flagging every discrepancy automatically. Why now: We have a working MVP, real pilot customers, and a clear path to a commercially scalable product. We're a small team of three co-founders building something technically complex in a space with almost no direct competition. This means an intern won't just watch from the sidelines — you'll work directly on live problems, contribute to a microservice-based backend architecture, and learn how to build AI-driven data pipelines in a real startup environment at Incuba, Aarhus.

Read more about DiFacto ApS

company gallery image