Senior (5-10 years)
As a Principal Software Developer ( Tech Lead for our TA Sofware Development team) at Waters Romania (Brasov), you will work on projects critical to our business needs.
Since, we have a TA software development team based in Brasov Romania, team which is continuing to expand & successfully work together for a new & exciting software product!
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
As a Principal Software Developer you will:
- You will architect, design and develop software systems and complex enterprise database applications using C#.NET
- High level decision maker in the process of determining everything from architecture and design choices for the project.
- May coach or mentor less experienced members of the software development team. They should also be able to encourage their team members to think creatively as well as keep them motivated.
- Research, design, develop and release/maintain: Application, User interface, Data analysis, Instrument control software for thermal analysis, rheological, and calorimetric instruments.
- Analyze system specifications and translate system requirements to task specifications.
- Responsible for analysis 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 team's definition of DONE.
- Work in collaboration with the agile team to generate automated and manual tests to verify implemented software.
- Provide work estimation and tracking information to support management decisions and planning.
- Keep a pro-active attitude to insure 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.
You have a University degree (preferably in a science related subject or in engineering)
- Experience with data modeling and database design experience.
- Extensive experience designing object oriented applications using SOLID principles.
- Experience with MVVM among other design patterns for developing modular, reusable components.
- Ability to determine structural requirements of the database by analyzing client operations, applications and programming, reviewing objectives with clients, evaluating current systems.
- Ability to develop database solutions by designing proposed system, defining database physical structure and functional capabilities, security, backup and recovery specifications.
- You have C#, C++ and other .Net Software Programming experience and a basic experience in applying technical standards.
- Strong object-oriented design and programming skills and data base knowledge.
- You are using efficiently your communication, teamwork, analysis and decision making skills and you are familiar with Agile methodologies.
- You will provide advice, training, and technical support for various projects.
- You will be working closely with management team in evaluating current systems and making decisions on future development.
- As new technologies emerge and impact our systems, the you will learn these technologies very quickly and resolve any problems involved in integrating technologies with our systems.
- You are fluent in English - speaking, reading, writing - Advanced Level.
- 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.
- 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.