Summary:
We are seeking a talented and enthusiastic .NET Software Developer to join our dynamic desktop development team specializing in delivering current and next gen evaluation software for Analog Devices extensive semiconductor product portfolio. This is an exciting opportunity to work with experienced developers on challenging projects, across a wide range of product portfolios and learn new technologies. The successful candidate will help define and deliver desktop software tooling for product evaluation to support Analog's existing and growing product portfolio.
The successful candidate will have good technical experience and proficiency in .NET software development or similar technologies. A background in embedded software development or electronics / electrical engineering is an advantage as this position will involve requirements gathering and software development targeting a variety of embedded hardware platforms. Some embedded development may be required but the focus of this role is in developing the desktop evaluation platform and plug-in software to enable customer evaluation of Analog Devices products.
Responsibilities
- Lead the design, development, and maintenance of efficient, reusable, and reliable .NET code for legacy Windows applications and cross-platform .NET desktop solutions.
- Drive collaboration with cross-functional teams to define, architect, and deliver new features, ensuring alignment with business and technical goals.
- Guide cross-functional product application teams in defining plug-in software requirements and hardware protocol specifications to achieve comprehensive functionality in evaluation software.
- Proactively identify, diagnose, and resolve bottlenecks and bugs to optimize application performance and reliability.
- Champion best practices in code quality, organization, and automation, fostering continuous improvement within the development team.
- Lead and participate in code reviews, mentoring team members to uphold a high-quality code culture and promote technical excellence.
- Oversee and conduct unit, system, and hardware testing to ensure robust code quality and integration across platforms.
- Produce and review comprehensive technical documentation, including design specifications and user guides, to support ongoing development and knowledge sharing.
Requirements
- Bachelor's or Master's degree in Computer Science, Information Technology, Electronic/Electrical Engineering, or a closely related field.
- Minimum of 5 years of professional software engineering experience, with a proven track record in designing, developing, and maintaining complex software solutions.
- Proficiency in .NET technologies and programming languages; strong C# experience required. Comparable expertise in other object-oriented languages will be considered.
- Extensive hands-on experience with Windows Presentation Foundation (WPF) or similar modern desktop application frameworks, including advanced knowledge of design patterns such as MVVM.
- Demonstrated mastery of object-oriented programming principles and clean coding practices, with the ability to mentor others in these areas.
- Exceptional analytical and problem-solving skills, meticulous attention to detail, and a commitment to delivering high-quality, reliable code.
- Advanced proficiency with Git and collaborative version control workflows in large-scale software projects.
- Strong background in Electronic or Electrical Engineering, with practical experience in hardware communication protocols, FPGA, or firmware development considered a significant advantage.
- Excellent communication and leadership skills, with a history of guiding cross-functional teams and contributing to architectural and strategic decisions.
Nice to Have
- Experience in C/C++ Programming and Python Programming
- Experience with unit testing frameworks like NUnit, XUnit, etc
- Knowledge of software development methodologies like Agile or Scrum
- Familiarity with continuous integration/continuous deployment (CI/CD) practices.
- Experience in using GenAI Tools.