Elliot One (@elliot1one) header
Elliot One (@elliot1one) profile picture

AI Engineer & Founder | I build reliable AI products and teach engineers how | Founder of XOREN | Microsoft MVP

London, UK
Joined August 2023
You never know how dangerous an AI system is until its output starts moving money. OCR can extract an invoice total, vendor name, and line items in seconds. But what happens when the total is wrong, the invoice ID is missing, or the extracted value has weak visual evidence? If your system trusts the JSON blindly, you have a data integrity problem. โŒ In Issue 49 of The Modern Engineer, I build a production-oriented OCR extraction contract using .NET and Azure AI Document Intelligence. The principle is simple: Azure extracts. Deterministic code decides. We don't let the extraction provider decide whether a document is safe for downstream processing. Instead, we define explicit contracts that check ๐Ÿ‘‡ โœ… Required fields and confidence thresholds โœ… Bounding regions that support extracted values โœ… Line-item confidence and financial reconciliation โœ… Currency mismatches and missing evidence โœ… Quarantine rules for failed or contradictory extractions Every document follows a deterministic route: admitted, needs_review, or quarantined. A missing invoice ID isn't a prompt engineering challenge. A financial discrepancy isn't something an LLM should explain away. And a confidence score is useless if it doesn't change what the system is allowed to do. I also cover live Azure extraction, transient failure handling, in-memory unit tests, and structured quarantine reports. The goal isn't to prove that OCR can read an invoice. It's to prove that our system knows when not to trust what OCR returns. This pattern applies to invoice processing, insurance claims, onboarding documents, procurement, and any workflow where extracted data becomes a business event. ๐Ÿ“ฉ Read full issue: elliotone.com/newsletter/202โ€ฆ --- ๐Ÿ‘‰ Subscribe to The Modern Engineer today for production-grade AI architectures, real code, and engineering insights with no demos and no fluff: elliotone.com/newsletter
1
42
Serious AI builders, let's connect. I'm Elliot, 27, an AI Engineer and solo builder from London. I'm looking to expand my network and connect with: AI Engineers AI Founders CTOs Indie Builders Other people in tech Drop a comment, tell me what you're building, and let's connect and build together!
112
1
118
4,821
Elliot One retweeted
Can you paste your .env file here? I just need to verify something in the logs.
1
1
110
Elliot One retweeted
Most job titles are BS anyway. Forward Deployed Engineer. AI Context Engineer. AI Harness Engineer. Isnโ€™t this all AI engineering, or even broader, software engineering? The specialisations are real. But let's stop pretending every new abstraction needs a new profession. Software engineers are fucking alive.
1
1
157
Can you paste your .env file here? I just need to verify something in the logs.
1
1
110
Most job titles are BS anyway. Forward Deployed Engineer. AI Context Engineer. AI Harness Engineer. Isnโ€™t this all AI engineering, or even broader, software engineering? The specialisations are real. But let's stop pretending every new abstraction needs a new profession. Software engineers are fucking alive.
1
1
157
I havenโ€™t written a single line of code by hand in at least a year. I donโ€™t think thereโ€™s any good reason to write code manually at this point. Convince me otherwise.
3
4
223
Some days, I have no idea what I'm doing. I'm building SaaS products, writing about AI Engineering, growing my newsletter, and working as a Founding Engineer at an AI startup in London. For a while, I kept looking for a single path that would bring everything together. Then I realised they don't need to be separate paths. They're all part of the same journey. I'm figuring things out as I go, building in public, and slowly creating my own path towards entrepreneurship. I guess that's what building in public is all about.
4
6
239
C# 15 union types enable stronger contracts and simpler domain modeling. C# developers for years used ๐จ๐›๐ฃ๐ž๐œ๐ญ, inheritance, or custom result classes to represent values with multiple possible shapes. Union types offer a more direct approach: explicitly define the valid alternatives in the type system. For example, a ๐™ฟ๐šŠ๐šข๐š–๐šŽ๐š—๐š๐™ผ๐šŽ๐š๐š‘๐š˜๐š could represent ๐™ฒ๐šŠ๐šœ๐š‘, ๐™ฒ๐šŠ๐š›๐š, or ๐™ฑ๐šŠ๐š—๐š”๐šƒ๐š›๐šŠ๐š—๐šœ๐š๐šŽ๐š› without forcing unrelated types into an artificial hierarchy. The real engineering value goes beyond syntax. โœ… Explicit contracts: Make valid outcomes part of the API definition. โœ… Safer pattern matching: Handle distinct cases clearly and identify missing branches when cases evolve. โœ… Better domain modeling: Represent business outcomes and workflow states without excessive nullable properties or boilerplate. Think of ๐™ถ๐šŽ๐š๐š„๐šœ๐šŽ๐š›๐š๐šŽ๐šœ๐šž๐š•๐š representing ๐š„๐šœ๐šŽ๐š›๐™ณ๐š๐š˜, ๐™ฝ๐š˜๐š๐™ต๐š˜๐šž๐š—๐š, or ๐š…๐šŠ๐š•๐š’๐š๐šŠ๐š๐š’๐š˜๐š—๐™ด๐š›๐š›๐š˜๐š›. Instead of returning ๐จ๐›๐ฃ๐ž๐œ๐ญ or ๐ญ๐ก๐ซ๐จ๐ฐ๐ข๐ง๐  ๐ž๐ฑ๐œ๐ž๐ฉ๐ญ๐ข๐จ๐ง๐ฌ for expected business outcomes, the API communicates its possibilities directly. Union types are still a C# 15 preview feature, but the underlying principle is timeless. Good type systems do more than describe data. They encode domain constraints and make invalid states harder to represent. Do you use union types in your codebase? If not, why not?
3
77
Nobody cares about your idea or product as much as you think, so donโ€™t be afraid to share it and talk about it. Some entrepreneurs worry that someone might steal their idea. I donโ€™t think thatโ€™s usually the case. Serious builders are too busy building their own things to spend time stealing or copying someone elseโ€™s idea. Donโ€™t be paranoid about your idea. Itโ€™s not that special. The execution and the journey are what matter.
2
1
3
70
Looking to connect with ambitious AI founders. Drop a comment with one line about what youโ€™re building. No small talk. No fluff. Just builders connecting with builders.
54
1
1
44
1,998
Iโ€™m Elliot, building XOREN (xoren.co.uk) focused on operational and frontier ai systems for organisations.
4
154
AI founders letโ€™s connect. Iโ€™m looking to expand my network on X. Iโ€™d like connect with more serious ai builders, solopreneurs, and engineers.
46
1
30
817
Engineers who have become solopreneurs, how do you handle the marketing and sales side of your journey? What tips, tricks, or systems have worked best for you?
2
4
115
Vibe coding isnโ€™t the future of engineering. Agentic coding is.
3
4
160
More often than not, I think about how, if I achieve just this one thing, I can finally start living. Iโ€™ve been like this for most of my life, always chasing the next thing, believing that life will finally begin once I get there. Iโ€™ve realised recently that I do the same with my entrepreneurial journey. I keep pushing myself harder and harder. Some days, it feels like Iโ€™m bullying myself, pushing myself beyond what I should, and I donโ€™t even know why. But sometimes, when I slow down and look back, I realise Iโ€™m not the same person I was yesterday, let alone a couple of years ago. Life is still happening. At 27, I feel afraid of how much there is still left to achieve and how far behind I am compared to the deadlines I set for myself. But Iโ€™ve never regretted anything. Iโ€™m not where I thought Iโ€™d be, but Iโ€™m not in the worst place I ever imagined myself being, either. And maybe thatโ€™s the point. All of this, the uncertainty, the setbacks, the growth, the waiting, is part of life itself. Life isnโ€™t something that begins when we achieve our goals. Itโ€™s happening right now, along the way.
2
5
171
Elliot One retweeted
AI founders where are you? Letโ€™s connect.
71
2
49
1,443
AI founders where are you? Letโ€™s connect.
71
2
49
1,443
Agentic coding is the future of engineering, not vibe coding. The difference is not how much AI you use. It is how much engineering discipline you preserve. Vibe coding optimises for implementation speed. You describe what you want, generate code, iterate, and hope the result works. This works for prototypes and experimentation, but becomes dangerous when speed is mistaken for engineering quality. โœ… Agentic coding changes the execution model. Instead of generating isolated snippets, AI agents can inspect repositories, analyse dependencies, plan changes, modify files, run tests, interpret failures, and iterate toward a defined outcome. The shift is from AI generating code to AI participating in a controlled engineering workflow. But autonomy without constraints is just another source of technical debt. The challenge is enabling agents to execute complex tasks without compromising correctness, security, or maintainability. This requires a clear division of responsibility ๐Ÿ‘‡ ๐Ÿ. ๐‡๐ฎ๐ฆ๐š๐ง๐ฌ ๐จ๐ฐ๐ง ๐ข๐ง๐ญ๐ž๐ง๐ญ. โ†ณ Requirements, architecture, constraints, security boundaries, and acceptance criteria must be explicit. ๐Ÿ. ๐€๐ ๐ž๐ง๐ญ๐ฌ ๐จ๐ฐ๐ง ๐ž๐ฑ๐ž๐œ๐ฎ๐ญ๐ข๐จ๐ง. โ†ณ Implementation, refactoring, debugging, and testing can increasingly be delegated within defined boundaries. ๐Ÿ‘. ๐„๐ง๐ ๐ข๐ง๐ž๐ž๐ซ๐ฌ ๐จ๐ฐ๐ง ๐ฏ๐ž๐ซ๐ข๐Ÿ๐ข๐œ๐š๐ญ๐ข๐จ๐ง. โ†ณ Code review, integration testing, observability, threat modelling, and architectural consistency remain essential. A passing test suite is evidence, not proof, of correctness. An agent completing a task does not make the system production-ready. The engineer's job is to establish when autonomous execution can be trusted. That requires better evaluation loops, deterministic guardrails, least-privilege tool access, reproducible environments, and verification gates agents cannot bypass. The future is not about removing engineers from software development. It is about shifting effort from manually writing every line to defining, directing, and verifying complex systems. Vibe coding makes code generation easier. Agentic engineering makes development more autonomous. The competitive advantage will belong to engineers who understand software and how to build reliable systems around AI agents. That is the difference between generating code faster and engineering software at a higher level. What does your agentic workflow look like? AgenticCoding | SoftwareEngineering | AIEngineering
14
11
281
Founder or employee? I know sounds strange but which one would you pick given the current market, state of tech, AI developments, and future prospects?
3
60