Alex Batten, Freelance .NET & Full-Stack Engineer in Denmark
Hi, I'm Alex, a software engineer in Denmark with a BEng in Software
Technology from DTU. Most of my work is C# and .NET: backend services,
REST APIs, and enterprise integrations.
Available for new freelance and contract work: .NET and full-stack web
applications, REST APIs, enterprise and tax-authority integrations (SKAT,
SAF-T, NemHandel/Peppol), Stripe billing, and AI features, remote across the
EU on CET. Email
alex.batten1234@gmail.com
or send a brief through the form on this site. The
full CV also answers
frequently asked questions about availability, stack,
and how to start a project.
Experience
Senior Software Engineer, AI Infrastructure at Alignerr (Contract, signed 2026, not yet started)
Signed contract, first assignment still pending. The agreed scope is
the infrastructure behind AI training, evaluation, and deployment
pipelines, in Python and TypeScript. Stack: Python, TypeScript.
AI Engineer & Co-Owner at Acconta (2026–Present)
Building production microservices for a multi-tenant Danish bookkeeping SaaS in
ASP.NET Core and EF Core on .NET Aspire, with OpenAPI/NSwag generated typed
clients, and working on the Azure deployment. Moving six services onto a common
base for startup, auth, validation, and error handling. Implementing Danish tax
compliance: VAT reporting to SKAT via the NemVirksomhed (RSU) SOAP interface with
WS-Security signing, computing all 17 VAT return fields, plus SAF-T import with
schema validation and SAF-T export ahead of the 2027 audit-file mandate. Owning
Stripe billing end to end: subscriptions and seat logic (proration, credits, plan
switching, yearly plans, webhooks, secret hardening), plus a subscription flow
prototype in the Next.js client. Building standalone integrations for daily
currency rates (National Bank) and CVR company data (Danish Business Authority).
Leading e-invoicing over NemHandel (OIOUBL, Peppol BIS), turning the Bookkeeping
Act and the Business Authority's requirements into implementation specs, writing
technical decision papers, and reviewing much of the team's code. Stack: C#, .NET
Aspire, ASP.NET Core, Entity Framework, Microservices, Azure, Stripe, Next.js,
NemHandel.
Generalist Danish Annotator at Mercor (Contract, 2026–Present)
Writing prompts in natural Danish on topics of general interest and
annotating how AI models respond to them. The annotations point out errors
in the responses, including errors in their Danish. The finished work
becomes training data for large language models. Skills: Data Annotation,
Danish Language, Prompt Writing, LLM Training Data.
Generalist Expert, AI Evaluation at Mercor (Contract, 2026–Present)
Evaluating AI model outputs against structured evaluation guidelines and
writing the rationale behind every judgment. The work is close reading:
checking a response for factual accuracy, sound reasoning, instruction
following, and tone, then stating precisely where it holds up and where it
breaks down, with evidence. Applying the same standard consistently across a
wide range of subject areas so that assessments stay comparable between
reviewers. Skills: AI Evaluation, LLM Outputs, Structured Feedback, Technical
Writing.
AI Data Annotator at Outlier (2025–Present)
Contributed to advanced AI model development through data annotation,
prompt engineering, trajectory refinement, and QA across projects including
Clutch Zayu, Maraca Camera, Mechanic Astrologer, and Meter Pavilion
(OpenClaw). Crafted system prompts defining model behavior and constraints,
and designed single and multi-turn conversational and agentic datasets
spanning 50+ risk categories including bias, misinformation, privacy, and
safety. Built autonomous agent trajectories exercising skill discovery,
memory, long-horizon context, and native tools (cron, sub-agent delegation).
Served as both author and reviewer on Mechanic Astrologer. Skills: AI/ML, Prompt
Engineering, Agentic AI, Data Annotation.
Software Development Intern at IT Operators / Simple Agency Group (2024)
Developed REST APIs with auth, rate limiting, and monitoring. Built
fullstack web apps with Angular, .NET, and Bootstrap, including JWT auth,
real-time dashboards, and automated reporting. Migrated an in-house ERP's
time representation from quarter hours to minutes across every display,
estimate and report field, then rebuilt the billing review on top of it so
a task worked by employees from more than one group billed under each of
those groups instead of one. Validated the rebuilt invoicing screen by
reconciling a full month of billing data against what had actually been
invoiced.
Projects
Accelo to Business Central integration (Bachelor Project)
Fullstack application bridging two enterprise platforms, transferring and
reviewing time registrations from Accelo (PSA) into Microsoft Business Central
(ERP). Custom review UI, MSSQL data model, multi-tenant authentication via
Microsoft Entra ID, containerized with Docker in a Jenkins CI/CD pipeline,
with unit and Selenium integration tests.
Custom REST API for Uno X (Client: ISTOBAL)
Custom API for ISTOBAL (car wash manufacturer) serving operational data to
Uno X (Nordic fuel station chain), with token-based authentication and rate
limiting with automated email alerts.
Automated SMS alert system (Client: Eye4u)
Extended a customer monitoring portal with automated SMS notifications
triggered by medicine cooler temperature deviations across a sensor network.
Added an adjustable pre-alarm tier that warns by SMS and email without
raising an incident, with suppression logic so a sensor sitting outside its
threshold does not re-notify on every check. Built as a multi-tenant module,
each customer with their own sensor configuration and alert thresholds.
Internal portal (Client: Dexa Bodyscan)
Built the initial web application for a body-scan clinic's internal
portal, from an empty repository to a working authenticated application in
eight working days: project scaffold, Dockerfile, DNS record, SSL
certificate, MySQL schema, Entity Framework contexts, JWT login, salted
password hashing, role-gated pages, and password reset from an email
link.
Internal Monitoring Dashboards (IT Operators)
Real-time dashboards deployed on Raspberry Pis for office TV screens,
monitoring time registrations and cron job health.
External API integrations, TIMEVAT
Integrated the EU VIES API for VAT number validation and the Danish
National Bank API for currency exchange rates into a VAT compliance platform.
Invarix Guard
A plug-and-play AI safety library for .NET, shipped as a NuGet package
(Invarix.Guard). Covers prompt injection, PII, and content safety so apps can
add guardrails in a few lines of code.
Website: invarix.dk.
NuGet: nuget.org/packages/Invarix.Guard.
Invarix Guard Evidence
A free .NET library (Invarix.Guard.Evidence), licensed under Elastic License 2.0,
that records AI decisions as an append-only audit trail. Each decision is stored as a
CloudEvents event keyed on SHA-256 hashes rather than the prompt text.
Batches are sealed into an RFC 6962 Merkle tree and signed with the customer's
own Ed25519 key, so an auditor can prove no record changed after sealing using
standard Certificate Transparency tooling. Includes retention with legal holds,
signed deletion certificates, and a streaming export endpoint. Runs fully in
process with no outbound calls.
Website: invarix.dk.
NuGet: nuget.org/packages/Invarix.Guard.Evidence.
Invarix Gate
A deterministic action firewall for AI agents, shipped as a NuGet package
(Invarix.Gate). It sits in front of an agent's tool calls and evaluates each one
against a policy before it runs, returning allow, warn, escalate, deny, or
terminate. Ten detectors cover destructive SQL, shell commands, git history
rewrites, cloud teardown, credential egress, and runaway loops, each grounded in a
dated public incident. Matching is pure CPU pattern work with no model call, so a
verdict lands in a median of 57 µs and is deterministic under a given policy.
Policy is authored in YAML or fluent C#, attaches through Microsoft.Extensions.AI
and Microsoft Agent Framework, and reports the surfaces it cannot see rather than
rendering a clean run. Ships with a 194 scenario policy corpus where roughly half
the cases assert a detector stays quiet.
Website: invarix.dk.
NuGet: nuget.org/packages/Invarix.Gate.
Hemi-Sync Guided Meditation App (paused)
A concept app for generating customizable guided meditations using
AI-driven text-to-speech layered with Hemi-Sync binaural beats, built in
React Native for iOS and Android.
Distortion VST Plugin
An audio distortion plugin with bitcrushing built with the JUCE framework
(C++), compatible with most DAWs as a VST.
Lab: writing and notes
Unfinished ideas, and things I wish someone had written down before I
needed them. Notes are short and about one thing. Posts are longer. Some of
it is meant for you to take and build. Nothing published yet.
Skills & Tools
Languages: C#, C++, Java, TypeScript, JavaScript, Kotlin, SQL.
Frameworks & Libraries: ASP.NET Core, Entity Framework,
Angular, .NET, .NET Aspire, Next.js, React Native, Bootstrap, JUCE.
Concepts & Practices: REST APIs, System Design,
Distributed Systems, Agile/Scrum, CI/CD, JWT Auth, Docker.
Other: Git, Claude Code, ERP Systems, Multi-tenant SaaS, SAF-T,
Audio Engineering.
Education
BEng Software Technology, Technical University of Denmark (DTU), 2021–2025
Electives in Computer Graphics, Rendering, C++ Programming, and Engineering
Economics. Bachelor's project: an integration between two ERP systems built
from scratch. GPA: 7.62 (Danish 7-point scale).
Recommendations
Mike Valencia, CEO at Simple Agency Group
Wrote about Alex Batten’s work at Simple Agency Group.
View the post on LinkedIn.
Erik Seifert
Endorsed Alex Batten for C#, .NET Framework, and Entity Framework (EF) Core.
Freelance & Project Requests
Available for new freelance and contract work. Email
alex.batten1234@gmail.com
or send a brief through the request form on this site. The work I take is
.NET and full-stack web applications, REST APIs, enterprise and
tax-authority integrations (SKAT, SAF-T, NemHandel/Peppol), Stripe billing,
and AI features, remote across the EU on CET. Project requests get a reply
within a couple of days.