- Start date: ASAP
- Duration: 6+ months
- HackerRank challenge: Yes
- Remote vs Onsite: Remote, with possible occasional in person team sessions / workshops / gatherings (i.e. 1x quarter) likely to take place in Prague
- US Hours overlap needed: 9-6/10-7 CET possibility of a wider overlap (flexibility) appreciated
Summary:
We are seeking a skilled Full Stack Software Engineer to build and maintain production-ready Model Context Protocol (MCP) servers and AI-powered UIs that drive our agent workflows. This role focuses on the Internal AI platform, requiring you to design systems across the stack using TypeScript, the MCP SDK, React, Next.js, and Express with enterprise-grade security.
About the Role:
You will join a team responsible for the backbone of our AI infrastructure. You will design and deploy MCP servers handling complex agentic workflows, build interactive React dashboard UIs served as MCP resources, and maintain the AI chatbot frontend that ties it all together. Your work spans from stateless Streamable HTTP transports to Azure OpenAI function-calling integration and single-file embedded React apps. This role demands high code quality, rigorous testing habits (TDD), and close collaboration with platform and delivery teams.
Scope:
MCP Server & API Development
Build MCP Servers: Design and maintain servers using @modelcontextprotocol/sdk and @modelcontextprotocol/ext-apps, supporting Streamable HTTP and stdio transports with stateless per-request architecture.
Tool & Resource Design: Register MCP tools across categories — Browse Tools (with embedded React UI), Data Tools (JSON-only), and Mutation Tools — with Zod schema validation.
API Development: Build RESTful APIs in Express 5 and Next.js 16 App Router, including proxy layers and Nginx reverse-proxy configuration.
LLM Integration: Integrate MCP tools with Azure OpenAI function calling, manage multi-turn tool-call loops, and implement payload truncation to stay within token limits.
Frontend & Interactive Dashboards:
MCP Dashboard UIs: Build self-contained React 19 apps bundled into single-file HTML via Vite + vite-plugin-singlefile, served as MCP resources and communicating via the AppBridge SDK.
Chatbot UI: Develop the Next.js chatbot interface with inline tool rendering, Markdown messages, and multi-mode dashboard embedding (inline, iframe, hybrid).
Component Architecture: Build components using Tailwind CSS, Radix UI, and shadcn/ui with proper memoization patterns.
Requirements:
- Core Development
– Strong proficiency in TypeScript with async/await, ESM modules, and strict typing
– Solid experience with React 19, Next.js App Router, and Express
– Experience with Vite build tooling - MCP Specialization
– Proven experience building MCP servers (critical requirement)
– Hands-on experience with @modelcontextprotocol/sdk and the ext-apps ecosystem - AI & LLM Integration
– Experience with Azure OpenAI or OpenAI APIs, particularly function calling / tool use
– Understanding of token limits, truncation strategies, and multi-provider LLM abstraction - Security (IAM)
– Deep understanding of AuthN/AuthZ protocols
– Experience with OAuth2, Azure Entra ID/SSO, and JWT/Bearer token handling - Architecture
– Familiarity with stateless server architectures and distributed systems
– Experience with Docker, Nginx, and containerization principles - Soft Skills
– Strong problem-solving capabilities
– Ability to work independently and communicate technical concepts clearly - Nice to Have:
– MCP Ecosystem: Broader orientation in MCP applications, clients, and Claude Desktop integration
– AI Frameworks: Experience with LangGraph, LangChain, or Langfuse
– DevOps: Familiarity with Azure Container Apps, Azure Container Registry, and GitHub Actions
– UI Libraries: Experience with shadcn/ui, Radix UI, and Tailwind CSS
– Observability: Knowledge of Datadog or similar platforms for logging and monitoring
– Modern Practices: Prior exposure to „Vibe” coding practices (AI-assisted iterative coding)
SNI sp. z o.o. will process personal data for the purpose of the recruitment process in accordance with Data Privacy Policy. The data may also be stored and processed for future recruitment purposes, in accordance with the given consent.