Source description
About the role
C# Desktop Application Developer - WFH - Remote Role Company: Amodis Technology Employment Type: Full-Time Department: Software Development About Amodis Technology Amodis Technology develops software solutions for businesses, government organizations, and the hospitality industry. Our products include web platforms, desktop applications, cloud services, system integrations, and hardware-connected applications used in real-world business environments. We are looking for a C# Developer to help develop and maintain our desktop applications and contribute to the supporting web portal, backend APIs, integrations, and cloud infrastructure. Position Overview The primary focus of this position will be developing, maintaining, and troubleshooting C# Windows desktop applications. The ideal candidate should have strong experience with C# and .NET desktop development while also understanding how desktop applications communicate with Angular web applications, backend APIs, SQL databases, WebSockets, hardware devices, and Azure services. This is a full-stack environment, but the developers main responsibility will be the desktop application and its integrations. Key Responsibilities Develop and maintain C# and .NET Windows desktop applications. Troubleshoot application crashes, installation problems, hardware communication issues, and production errors. Build and maintain communication between desktop applications and backend APIs. Integrate desktop applications with scanners, external devices, third-party software, and web-based systems. Develop and maintain REST APIs using C# and ASP.NET. Work with Angular developers and contribute to frontend features when necessary. Create and optimize SQL Server queries, stored procedures, and database operations. Implement real-time communication using WebSockets or SignalR. Work with Azure services for hosting, logging, storage, deployments, and application monitoring. Review logs and diagnose issues across desktop applications, APIs, databases, and web applications. Participate in code reviews, testing, deployments, and technical documentation. Work with support and operations teams to resolve customer-facing technical issues. Maintain secure handling of customer and identification-related information. Required Technical Skills Strong experience with C# and .NET. Experience developing Windows desktop applications using technologies such as WPF, WinForms, or similar .NET frameworks. Understanding of asynchronous programming, threading, background services, and application lifecycle management. Experience developing or consuming REST APIs. Experience with SQL Server, database queries, joins, stored procedures, and performance optimization. Working knowledge of Angular, TypeScript, HTML, CSS, and frontend application architecture. Experience with WebSockets, SignalR, or other real-time communication technologies. Familiarity with Microsoft Azure services. Experience using Git, GitHub, branches, pull requests, and code reviews. Ability to troubleshoot issues across desktop, frontend, backend, database, network, and cloud environments. Preferred Qualifications Experience integrating desktop applications with scanners, cameras, printers, or other hardware devices. Experience with Windows services, scheduled tasks, application installers, and automatic update systems. Experience with authentication systems such as JWT and role-based access control. Experience working with multi-tenant SaaS applications. Familiarity with Azure App Service, Azure SQL Database, Blob Storage, Application Insights, and CI/CD pipelines. Experience with Docker or containerized applications. Experience developing applications that operate in hotel, retail, healthcare, government, or other customer-facing environments. Experience supporting production applications used across multiple customer locations. What We Are Looking For A developer who is strongest in C# desktop application development. Someone who understands how the complete system works, not only one section of the codebase. The ability to independently investigate and resolve technical problems. Strong communication skills and the ability to explain technical issues clearly. A developer who takes ownership of assigned features and production issues. Someone who tests their work thoroughly before marking a task as complete. The ability to work with existing applications and improve them without unnecessarily rewriting stable functionality. A willingness to learn unfamiliar systems, integrations, and hardware workflows. Education and Experience Bachelors degree in Computer Science, Information Technology, Software Engineering, or a related field is preferred. Approximately two or more years of professional software development experience is preferred. Candidates should be prepared to discuss applications and features they have personally developed.