Software Engineer
Role Overview:
We are looking for a Software Engineer with strong hands-on experience in C#/.NET development. The role involves designing, developing, testing, and maintaining Windows-based applications, background services, APIs, and integration solutions.
Key Responsibilities
- Develop and maintain applications using C# and .NET.
- Work on Windows Desktop, Console, Windows Services, and background applications.
- Design solutions using SOLID principles, design patterns, dependency injection, and clean coding practices.
- Develop and consume REST APIs and integrate with external/third-party systems.
- Implement file-based processing using formats such as XML, JSON, CSV, and PDF.
- Work with asynchronous processing, background services, message queues, and scheduled jobs.
- Develop Python scripts for automation and file-processing requirements.
- Troubleshoot application and production issues and perform root-cause analysis.
- Collaborate with Development, QA, Business, and external technical teams.
- Participate in technical design, code reviews, testing, and production support.
- Follow Git-based development, coding, testing, and deployment practices.
Mandatory Skills
- Strong hands-on experience in C# / .NET and OOP concepts.
- Strong understanding of SOLID, LINQ, Generics, Collections, Exception Handling, Async/Await, Multithreading, and Memory Management.
- Experience with Windows/Console applications, Windows Services, or background applications.
- Good knowledge of software architecture, design patterns, layered architecture, and dependency injection.
- Experience with REST APIs and external system integrations.
- Good knowledge of SQL, queries, joins, indexes, transactions, and database design.
- Experience with Entity Framework Core or similar ORM.
- Working knowledge of Python for scripting and automation.
- Experience in file processing, background processing, queues, retry mechanisms, and error handling.
- Strong debugging, troubleshooting, and problem-solving skills.
- Good understanding of unit testing, logging, Git, branching, merging, and pull requests.
- Ability to work effectively with internal and external technical teams.
Nice-to-Have Skills
- WPF / WinForms or other Windows development experience.
- Experience with Windows Services.
- Knowledge of RabbitMQ, Azure Service Bus, Kafka, AWS SQS/SNS, or similar technologies.
- Adobe integration experience.
- Experience in Pharma, Healthcare, Life Sciences, or regulated industries.
- Exposure to AWS/Azure, CI/CD, Docker, Swagger/OpenAPI, monitoring, and security.
- Basic knowledge of Linux environments.