Associate Principal Engineer, Dotnet Windows
- Full-time
- Service Region: South Asia
Company Description
👋🏼We're Nagarro.
We are a Digital Product Engineering company that is scaling in a big way! We build products, services, and experiences that inspire, excite, and delight. We work at scale across all devices and digital mediums, and our people exist everywhere in the world (17500+ experts across 39 countries, to be exact). Our work culture is dynamic and non-hierarchical. We're looking for great new colleagues. That's where you come in!
Job Description
REQUIREMENTS:
- Total Experience 13+years.
- Should have strong proficiency in C#, VB.NET, .NET Framework, and .NET Core.
- Must have experience with multithreading and messaging architectures and frameworks.
- Must have experience in SQL for designing, querying, and optimizing relational databases to store and manage machine operational data and application settings
- Must have experience working with Threads and multitasking concepts to develop efficient and responsive machine control applications, managing concurrent operations safely.
- Must have experience in design, develop, and integrate software solutions for machine tools, focusing on optimizing manufacturing processes and data acquisition.
- Should be able to conduct thorough reviews and refactoring of existing machine control applications to improve performance, reliability, and maintainability.
- Should have experience in implementing and debugging standard industrial communication protocols such as TCP/IP, Modbus, OPC UA, or similar protocols used for communication between the C# application, PLCs (Programmable Logic Controllers), and other machine hardware.
- Should have experience interfacing C# applications with Data Acquisition (DAQ) Cards (e.g., National Instruments (NI), Advantech, Adlink) for real-time data logging, sensor monitoring, and machine input/output (I/O) control.
- Should have experience in integrating and program machine control features, including Motion Axis control (servo/stepper systems) and implementing or interfacing with Vision Systems for inspection, guidance, or quality checks
- Should have experience in maintain software quality, including developing and executing unit tests (e.g., using frameworks like NUnit or MSTest) to ensure code reliability and validate business logic.
- Should implement robust error and exception handling mechanisms across all applications to ensure system stability and graceful failure recovery.
- Must have experience in executing projects independently and in a team.
- Should be effective written and verbal communication skills are essential to communicate with clients.
RESPONSIBILITIES:
- Writing and reviewing great quality code
- Understanding the client’s business use cases and technical requirements and be able to convert them into technical design which elegantly meets the requirements.
- Mapping decisions with requirements and be able to translate the same to developers.
- Identifying different solutions and being able to narrow down the best option that meets the clients’ requirements.
- Defining guidelines and benchmarks for NFR considerations during project implementation.
- Writing and reviewing design document explaining overall architecture, framework, and high-level design of the application for the developers.
- Reviewing architecture and design on various aspects like extensibility, scalability, security, design patterns, user experience, NFRs, etc., and ensure that all relevant best practices are followed.
- Developing and designing the overall solution for defined functional and non-functional requirements; and defining technologies, patterns, and frameworks to materialize it.
- Understanding and relating technology integration scenarios and applying these learnings in projects.
- Resolving issues that are raised during code/review, through exhaustive systematic analysis of the root cause, and being able to justify the decision taken.
- Carrying out POCs to make sure that suggested design/technologies meet the requirements.
Qualifications
Bachelor’s or master’s degree in computer science, Information Technology, or a related field.