
Senior Full-Stack Software Engineer
- On-site
- Santo Domingo, Cibao Sur, Dominican Republic
- Engineering
Job description
We’re hiring two Senior Software Engineers to join our team building TAP 2.0 — a telecommunications answering platform that handles real-time call ingestion, billing, client management, and reporting. You’ll work across the full stack — React frontend, .NET APIs, SQL stored procedures — shipping features end-to-end in an Azure cloud environment. Beyond maintaining and extending the current platform, you’ll help shape what comes next: mobile experiences, AI-powered features, and new product capabilities.
Tech Stack
Frontend: React 18, TypeScript, Vite, Redux Toolkit (RTK Query), Node-sass, MUI DataGrid, react-i18next, Figma (design handoff), Vitest
Backend: ASP.NET Core (.NET 8), C#, Minimal APIs, Dapper, AutoMapper, FluentValidation, Azure Functions, Queue drainers (Azure Storage Queues)
Database: Azure SQL, T-SQL stored procedures, TVPs, SQL Server Database Projects (.sqlproj)
Infrastructure: Azure (App Service, Storage Queues/Tables/Blobs, Key Vault, Functions, Application Insights), Azure DevOps Pipelines, JWT authentication
What You’ll Do
Design and implement features end-to-end across React frontend, .NET APIs, and SQL database layers
Extend and improve our real-time call ingestion pipeline and billing engine
Build new product capabilities — including mobile experiences and AI-powered features as we expand the platform
Develop reporting systems and async data export workflows
Write and maintain stored procedures, TVPs, and schema migrations for a 100+ table billing database
Implement secure authentication and authorization flows (JWT, managed identity, Key Vault)
Contribute to CI/CD pipelines and cloud infrastructure
Write unit and integration tests (Vitest, xUnit) with a focus on regression coverage
Participate in architectural decisions, code reviews, and cross-team collaboration
Help define technical direction as the platform grows into new domains
Required Qualifications
5+ years professional experience in full-stack development
Strong proficiency in C# / .NET (ASP.NET Core, dependency injection, async patterns)
Strong proficiency in React + TypeScript (hooks, state management, RTK Query or similar)
Solid SQL skills — T-SQL stored procedures, query optimization, schema design
Experience with Azure cloud services (or equivalent AWS/GCP with willingness to learn Azure)
Understanding of queue-based architectures, background processing, and distributed systems patterns
Experience with REST API design, authentication/authorization (JWT, OAuth2)
Familiarity with CI/CD pipelines and automated testing strategies
Comfortable owning features end-to-end: database → API → UI
Preferred Qualifications
Mobile app development experience with Flutter or React Native — mobile is on our near-term roadmap
AI/ML experience — Azure AI Foundry, LLM integration (OpenAI, Azure OpenAI), prompt engineering, or building AI-powered features into production applications
Experience with Dapper or micro-ORM data access patterns
Familiarity with telecommunications, billing systems, or high-volume event processing
Experience with Azure DevOps (Pipelines, Boards, Repos)
Knowledge of internationalization (i18n) in frontend applications
Experience with real-time data processing or event-driven architectures
SQL Server Database Projects (SSDT / .sqlproj) experience
What We Value
Clear, direct communication — say what you mean, flag problems early, ask questions when something is unclear
Engineers who own problems end-to-end — not “that’s a backend issue” or “that’s a frontend issue”
Challenging risky or incorrect decisions instead of silently going along
Writing code that’s maintainable, testable, and secure (OWASP-aware)
Pragmatism over over-engineering — solve the problem at hand without gold-plating
In order to apply, please submit your CV in English
- Santo Domingo, Cibao Sur, Dominican Republic
or
All done!
Your application has been successfully submitted!
You've already applied for this job
We appreciate your interest in this position. Unfortunately, you have already applied for this job.
