Principal Software Engineer, Italy
ION
- Roma
- Tempo indeterminato
- Full time
- Serve as a technical lead contributing to and directing the efforts of development teams, including internal and external team members.
- Design, develop, modify, implement, and support software components (either UI or Server-side services or both, according to your current skills and your availability to learn new ones).
- Contribute to the ongoing evolution of the existing portfolio of solutions and services.
- Determine root cause for the most complex software issues and develop practical, efficient, and permanent technical solutions.
- Remain current on new technologies and available open source technologies; evaluate and make recommendations as necessary.
- Assist in task planning, estimation, scheduling, and staffing in the context of global distributed teams and product development activities.
- Mentor Software Engineers to allow for skill/knowledge development through advice, coaching, and training opportunities.
- Determine process improvements, best practices, and develop new processes.
- Work in close partnership with Product and Project Managers, SME, DevOps engineers, Architects.
- You are proficient at one or more of the following programming paradigms: Object-oriented programming, Concurrent programming, Functional programming, Asynchronous programming.
- You are proficient in one or more programming languages and related ecosystems among Java, C++, .NET, JavaScript, Typescript.
- You are proficient at utilizing ATDD and TDD tools and practices.
- You are proficient at utilizing CI tools and best practices.
- You are proficient at Git, Maven, Jenkins, Nexus, Docker, AWS, and IDE required to be effective in your daily job (Eclipse, Visual Studio Code).
- You have experience in dealing with complexity of large distributed systems.
- You have experience in deeply understanding functional requirements dealing with product owners or subject matter expert in an effective manner.
- You have experience in dealing with non-functional requirements and their impact on architectures and system design.
- You have been successfully working as a Software Engineer for 10+ years.
- You have proven experiences in working in Agile, globally distributed development organizations.
- You have proven experience in influencing / driving and coaching teammates on methodologies, practices, and technologies.
- You are rigorous and professional in the way you approach your daily job.
- You value the team and individuals; you are comfortable to relate to people of any seniority and role within the company.
- Preferred: PhD or an MSc in Computer Engineering / Science acquired in top subject specific ranked universities in Engineering and Technology.
- Full-Time, permanent.