Waters Corporation

Returning Candidate?

Principal C++ Software Engineer

Principal C++ Software Engineer

System ID 
Company Name 
Waters Division
Job Locations 
Employment Type 
Regular Full-Time
Job Location : Country (Full Name) 

More information about this job

Company Description

For over 50 years, Waters Corporation has developed innovative analytical science solutions to support customer discoveries, operations, performance, and regulatory compliance. Specifically, the company designs, manufactures, sells, and services high performance liquid chromatography, ultra performance liquid chromatography, and mass spectrometry technology systems and support products primarily in the United States, Europe, Japan, and Asia. Our innovations enable significant advancements within the pharmaceutical, life science, biochemical, industrial, food safety, environmental, academic and government industries. Waters is a publicly traded corporation (NYSE:WAT) with more than 6,500 employees and is represented in more than 100 countries around the world.



Waters Informatics business is the fastest growing, most impactful part of our entire portfolio. We collaborate with scientists around the world to solve unique problems - increasingly this is driven by machine learning, big data analytics and complex algorithms meaning we need the best computer scientists available. If you feel that application of software engineering should make a difference in the world we live in you should get in touch with us today!


Waters is developing solutions that make a meaningful impact on the world


  • Waters Helps Scientists in the Fight Against Cancer
  • Waters Helps Ensure The Quality & Safety of Food and Beverages
  • Waters Helps Drive Innovation in Chemical Materials
  • Waters Helps Scientists manufacture innovation for biodegradable plastics, safer cosmetics and latest consumer electronics
  • Waters Leads the way in helping scientists find ground-breaking treatments


As a Principal Software Engineer at Waters Romania (Brasov), you will work on projects critical to our Informatics business needs.

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.

The Principal Software Engineer job purpose is to develop and maintain software, progress on technical knowledge, add value to team sprints and influence continual technical learning within the department. The Principal Software Engineer should focus on product and organization success.  They should consider long term product goals and strategy while building the current project. The visibility and exposure should be organization wide, should be recognized as an expert in a certain domain, be able to share widely the knowledge, participate and organize formal or informal training or workshop sessions.

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. 


  • A positive attitude towards work and colleagues 
  • Provide a proactive attitude towards team success, adding value where possible with consistent contribution and a shared responsibility for organizational success 
  • Demonstrate continuous technical improvement
  • Create, maintain, test and document code
  • Maintain automated test scripts – unit, component, API tests, workflow tests and UI tests using relevant mock-ups, following a test first, acceptance criteria model (TDD, ATDD, specification by example) 
  • Carry out all responsibilities in accordance with the Quality Policy and all applicable procedures including a team’s definition of done, also contributing to the continuous improvement of the quality process
  • Participate in and give feedback in team ceremonies and meetings
  • Coach and guide fellow team members 
  • Identify, communicate and offer mitigation of risks 
  • Communicate progress and impediments in a timely manner 
  • Identify and eliminate technical debt, use static and dynamic code analysis tools to ensure code quality and enhance coding rules for continuous improvement
  • generate, participate and offer relevant feedback on code reviews 
  • gather and analyse metric results 
  • Follow an iterative, adaptive thinking pattern (see YAGNI) 
  • Build up and improve the tools and working environment, contributing to continuous integration  and continuous delivery efforts 
  • Identify the root cause of encountered defects and propose solutions for code clean up and testing
  • look for ways to ensure that areas of the application within their sphere of influence is high quality and looks for ways to improve existing products, showing constant interest in product utilization
  • Provide guidance on new technologies and bring them to the attention of others.
  • participate in new candidates interviews and assist in the hiring decisions


  • You have a University degree (preferably in a science related subject or in engineering)
  • You have 7+ years experience in software development
  • You are fluent in English - speaking, reading, writing - Advanced Level
  • Strong analitical and problem-solving skills
  • Object-oriented design and C++ programming skills and data base knowledge
  • You are using effciently your communication, teamwork, analysis and decision making skills and you are familiar with Agile methodologies.
  • You care about software; you have a passion for what you do which you can clearly convey by your actions and experiences. You are able to design multiple significant parts of an application with little guidance and demonstrate mastery in industry standard design principles
  • 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 
  • You have the ability to influence technical decisions at an inter- and intra-team level. Ability to influence evaluation decisions at an inter- and intra-team level by planning and implementing evaluation strategies that  balance written requirements, real-world technical limitations, and user expectations.