We're looking for a passionate Senior Software Engineer with a talent for building quality software solutions. You will work in a fast-paced, agile environment and engage in technical discussions, participate in technical designs, demonstrate problem-solving abilities, and present and share ideas through global collaboration.
As a Senior Software Engineer, you will:
- Develop features and new instrumentation support on our C# Windows desktop application for instrument control and data visualization
- Research, design, develop, and release/maintain: Application, User interface, Data analysis, Instrument control software for thermal analysis, rheological, and calorimetric instruments.
- Evaluate system specifications and translate system requirements to task specifications.
- Responsible for ongoing support of current programs, including performance, diagnosis, and troubleshooting of problem programs, and designing solutions to problematic programming.
- Working within a formal development process covering the full development lifecycle.
- Use code design abilities (including working to SOLID principles and some knowledge of engineering for performance) to generate and document appropriate designs.
- Work in collaboration with the agile team and appropriate experts to implement your designs.
- Provide code and supporting documentation in accordance with the coding guidelines, quality processes, and applicable procedures, including the team's definition of DONE.
- Work in collaboration with the agile team to generate automated and manual tests to verify the implemented software.
- Provide work estimation and tracking information to support management decisions and planning.
- Keep a proactive attitude to ensure continuous improvement of the software quality, work process, and individual skills.
- Provide contributions to the application architecture with a focus on scalability, maintainability, security and performance.
- Provide product specific and technical support to internal and external users where appropriate.
As a Team Member, you will:
- Participate in all team meetings and ceremonies in direct collaboration with other sites, provide input and feedback, take ownership on identified improvements.
- Actively participate in learning and sharing activities either during informal or formal training and demos.
- Demonstrate continuous technical improvement.
Education:
- Bachelor's Degree in computer science or computer engineering preferred, or equivalent combination of education, training, and experience
Experience:
- 7+ years of experience developing Windows desktop applications
- You have C# and/or other .NET programming experience and basic experience in applying technical standards.
- Windows Desktop experience (WinForms, WPF, XAML, .net Framework)
- Experience working in heavily multi-threaded environments.
- Familiarity with Java programming languages to support the development of touchscreen applications.
- You are using your communication, teamwork, analysis, and decision-making skills, and you are familiar with Agile methodologies.
- You will be working closely with the management team in evaluating current systems and making design decisions on future development.
- As new technologies emerge and impact our systems, you will learn these technologies very quickly and resolve any problems involved in integrating technologies with our systems.
- You care about software; you have a passion for what you do, which you can clearly convey by your actions and experiences. You have an eye for software design and can talk eloquently on a range of topics due to your experiences and also from reading and experimentation.