Senior AI Software Engineer (.NET)
Cargoo · Yerevan, Armenia
About The Role
<p><strong>Problem Space</strong></p>
<p>Logistics operations today are still largely:</p>
<ul>
<li>manual</li>
<li>reactive</li>
<li>fragmented across tools</li>
<li>running on incomplete or late data</li>
<li>full of conflicting constraints</li>
<li>under real-time decision pressure</li>
<li>driven by evolving business rules</li>
<li>a mix of legacy and new systems</li>
</ul>
<p>Much of this is unstructured: emails, documents, free-text updates, exceptions nobody modelled. That is where AI changes the game.</p>
<p><strong>We’re building a system that:</strong></p>
<ul>
<li>ingests real-time operational data, structured and unstructured</li>
<li>supports planning and execution decisions, with AI agents that act where it’s safe and hand over to humans where it isn’t</li>
<li>adapts to constantly changing constraints</li>
</ul>
<p><strong>What You’ll Work On</strong></p>
<ul>
<li><strong>AI in production.</strong> Building LLM- and agent-powered features into production .NET services: tool calling, structured outputs, retrieval over operational data, document and message understanding.</li>
<li><strong>The seams.</strong> Designing the boundaries between deterministic business logic and probabilistic AI: validation, fallbacks, human-in-the-loop.</li>
<li><strong>Trust.</strong> Making AI measurable and trustworthy: evals, test sets, observability, guardrails and cost/latency budgets.</li>
<li><strong>Ownership.</strong> Owning features end to end, from problem framing with product to running them in production.</li>
</ul>
<p> </p>
<p><strong>Design Principles</strong></p>
<ul>
<li>keep things simple before scalable</li>
<li>prefer explicit logic over magic abstractions, and that includes AI: deterministic where you can, model where you must</li>
<li>optimize for change, not perfection (models, prompts and providers will change)</li>
<li>measure AI behaviour, don’t trust vibes</li>
<li>avoid “framework-driven architecture”</li>
<li>accept that some parts will be ugly, temporarily</li>
</ul>
<p><strong>Tech Stack</strong></p>
<p>.NET · Vue.js · service-oriented architecture · relational + operational data storage · cloud-based infrastructure · LLM APIs and agent tooling (e.g. Semantic Kernel / Microsoft.Extensions.AI, MCP) · vector/semantic search · eval and tracing tools</p>
<p><strong>How We Build</strong></p>
<ul>
<li>AI-native development is the default. You use coding agents (e.g. Claude Code, Copilot) every day.</li>
<li>You own what you ship, whoever typed it: you review AI-generated code critically, test it and understand it.</li>
</ul>
<p><strong>What We Expect</strong></p>
<ul>
<li>Strong, senior-level .NET engineering</li>
<li>Ability to navigate uncertainty and work in ambiguity</li>
<li>Willingness to challenge decisions</li>
<li>Focus on outcomes, not just code</li>
<li>Understanding of trade-offs and complex systems, including when not to use AI</li>
<li>Preferring ownership over comfort</li>
</ul>
<p><strong>Strong Plus</strong></p>
<ul>
<li>Having shipped LLM/AI features to production and kept them running</li>
<li>Experience with evals, prompt/version management or AI observability</li>
<li>Python for prototyping and data work</li>
<li>Logistics or other real-time operations domain experience</li>
</ul>
<p><strong>What You Won’t Find Here</strong></p>
<ul>
<li>over-engineering everything upfront</li>
<li>unnecessary microservices</li>
<li>“clean architecture” for the sake of it</li>
<li>process-heavy development</li>
<li>AI demos that never reach production</li>
<li>wrapping a chatbot around a problem and calling it solved</li>
</ul>
Similar roles you might like
See all →This is an external listing. JobSpring does not represent or verify the employer. Report this listing