Software Development Principal

US-UT-Lindon

Waters Corporation

Req #: 23818
logo

Waters Corporation

Connect With Us:
Connect To Our Company
				Overview:

Intersted in joining our Software Team?

At TA Instruments, we're looking for creative and innovative engineers who bring fresh ideas from all areas, including data processing, distributed computing, large-scale system design, networking and data storage, security, UI design and mobile; the list goes on and is growing every day. We encourage all our engineers to constantly add value to themselves and the business through learning and collaboration.

We are looking for smart, self-motivated software engineers to join our truly exceptional engineering team. 

Responsibilities:

As a Software Engineer you will:

* Design, develop, and maintain a distributed application for device control, data collection, and data analysis using .NET,  C#, and related technologies.
* Provide ongoing support of current programs including performance, diagnosis and troubleshooting.
* Work within a formal development process covering the full development lifecycle.
* Provide code and supporting documentation in accordance with the coding guidelines, quality processes and applicable procedures, including team's definition of done.
* Act proactively to ensure continuous improvement of the software quality, work process and individual skills.
* Collaborate with cross-functional teams to define, design, and deliver new features for both software and firmware components.
* Lead the development of high-quality, reusable, and reliable code for both .NET applications
* Implement best practices for software development, including code reviews, unit testing, and version control.
* Troubleshoot and resolve complex technical issues in both software and embedded systems.
* Contribute to the architectural design and direction of the platform, including software and hardware integration.
* Stay up-to-date with industry trends and emerging technologies, implementing them as 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.

Qualifications:

Education:

* Bachelor's degree in Computer Science, Computer Engineering, or Electrical Engineering

Experience:

* At least 8+ years in software development experience.
* Strong technical experience in C#, .NET
* Good knowledge of software engineering principles
* Excellent written and verbal communication skills are essential.
* Good knowledge of multi-threading & tasks
* Basic understanding of electronics and hardware
* Familiarity with firmware Design using C and C++

Desired:

* User interface development in WPF/XAML, WinForms, DevExpress, MVVM
* Network programming experience (TCP/IP, UDP)
* Windows application development skills.
* Firmware design using C and C++
* Asynchronous programming using Async/Await pattern
* Dependency injection using Autofac
* USB communication protocol
* Understanding of SOLID and other object-oriented design principles
* Experience with WiX and installshield

For you it's more than a job. Among other things we're strong advocates of creating quality software, and using the latest testing methodologies to ensure we meet the expectations of our customers.
			
Share this job: