Senior Software Engineer ( Developer )
Cantel Medical Italy
- Pomezia, Roma
- Tempo indeterminato
- Full time
- Design, implement, and debug software applications in alignment with corporate policies and business operating procedures, supporting both new product development and sustaining engineering projects.
- Lead the technical development and implementation of mid-sized projects, primarily using C/C++ and other programming languages as required.
- Collaborate on complex or non-standard technical issues and contribute to the review and approval of plans and large-scale design decisions.
- Participate in software design reviews to identify potential issues and provide design recommendations; actively contribute to code reviews and inspections to ensure quality and compliance.
- Collaborate closely with software team members to promote and propagate sound design principles and best development practices across the team.
- Research, evaluate, and investigate new software technologies, tools, and methodologies to support continuous improvement.
- Create and maintain software development documentation, including architecture documents, software requirements, object-oriented designs, interface specifications, and verification documentation.
- Perform unit and integration testing to verify that software meets defined specifications, requirements, and quality expectations.
- Review, analyze, and resolve software change requests and defect reports in a timely and effective manner.
- Bachelor’s in computer engineering, Software Engineering, or Electrical Engineering (A degree in another Engineering discipline may be acceptable with proven software education and/or training and demonstrated software experience.)
- Minimum 5+ years of relevant software engineering experience in development and/or verification.
- Strong experience in C++ software development is required.
- Experience in writing software requirements in collaboration with systems engineering teams.
- Object-Oriented design experience is required.
- Experience with low-level embedded hardware interfaces, including CAN, I²C, SPI, and UART communication protocols.
- Experience with unit testing, debugging tools, and code analysis.
- Experience developing software in a multithreaded environment on RTOS and embedded Linux platforms.
- Experience with software architecture and design, model-based design, and defensive coding practices.
- Working knowledge of communication and networking standards, including TCP/IP and TLS, is required.
- Strong problem-solving skills and the ability to work effectively as a team player.
- Experience with Yocto-based BSP development is desirable.
- Experience in the medical device industry is preferred.
- Experience using software development environments (IDEs) and associated tools, including compiling/building, debugging, configuration management (version control), defect tracking, continuous integration, and code analysis tools.
- English proficiency at B2 level or higher is required.
- Analyzes and solves technical problems.
- Seeks input from more experienced individuals to improve quality of deliverables.
- Begins mastering the technical aspects of own job.
- Applies new technical tools and concepts under the direction of others.
- Completes assigned tasks on time with guidance and support.
- Documents status and results accurately and succinctly
- Provides clear and accurate data regarding product and process measurables
- Gains perspective through experiences and developing new skills.
- Displays curiosity about technology, the industry and competitive knowledge.
- Adapts to change.
- Listens, questions and clarifies communication to ensure understanding.
- Documents work accurately, succinctly and with purpose.
- Seeks to understand others’ point of view and accepts feedback from others.
- Influence primarily within the individual’s engineering discipline.
- Works on mastering technical aspects of own job.
- Seeks feedback from others regarding ideas or suggestions.