Summary of Role
Puppet is looking for an experienced and enthusiastic Principal Software Engineer with strong programming skills and a demonstrated track record in delivering high quality software in a fast-paced, agile environment. The role will involve core development tasks and driving quality within the team. The right candidate will naturally empathize with customers and have a passion for building quality into every software development activity.
As a Principal Software Engineer, you will be part of a talented engineering team delivering against roadmap strategy for the company and doing so in an iterative workflow. You will collaborate with developers, user researchers, and product managers to lead and shape design and development, delivering high quality & innovative software. You will also help promote the usage of Puppet in conjunction with an ever evolving list of technology platforms.
If your software development habits include reviewing code, writing automated tests to validate your code and using continuous integration for fast feedback and a ruthless focus on efficiencies, you’ll fit right in.
Responsibilities:
- Develop, review, and implement functionality based on customer and engineering requirements
- Foster continuous learning, by quickly iterating through design and implementation, validation and delivery
- To design and develop reusable libraries and APIs.
- Work with Product Management, Development, and UX teams in an agile environment to ensure on-time, high-quality releases
- Work with the product team, to translate functional requirements into pragmatic logical, service-based technical designs.
- Develop, review, and implement test strategies for complex distributed systems
- Be a technical leader both within the team and organization through coaching, mentoring, code reviews etc. focusing on continuously improving our engineering processes and practices, quality and deliverables.
- Develop, maintain and evolve automated tests.
- Participate in defect root cause analysis to continuously improve test coverage
- Drive initiatives to support continuous improvement of process, quality metrics, communication, and tooling
- Participate in project planning, report status, and raise areas of risk to management
Essential Experience
- 8+ years professional experience as a Software Engineer , ideally with complex systems, microservice architectures, and Enterprise applications.
- Strong programming skills with higher level languages including preferably two of the following technologies: Ruby, Rust, Java, Clojure, Golang
- Analytical thinking — able to simplify complex problems, processes or projects into component parts explore and evaluate them systematically.
- Strategic thinking – able to identify a vision along with the plans, which need to be implemented to meet the end goal, evaluating situations, decisions and issues in the short, medium and long term.
- Managing relationships and team working — able to build and maintain effective working relationships with a range of people. Works co-operatively with others to be part of a team, as opposed to working separately or competitively.
- Practitioner of agile development with a track record of learning from your actions to make positive adjustments.
- Experience working closely with key stakeholders across the engineering team, including Architects, Product Owners and UX designers.
- Great verbal and written communication skills with the ability to present complex technical information in a clear and concise manner.
- Strong logic and reasoning to identify the strengths and weaknesses of alternative solutions, conclusions or approaches to problems.
- Strong communication skills (face-to-face, by telephone, virtual meetings, VOIP or otherwise) and the ability to work and interacting in a group or team.
- Fluency in spoken and written English.
Desirable Experience
- BS or MS in computer science, or equivalent.
- Public cloud environments (AWS, Azure, etc.).
- Experience with Docker, Docker Compose, Docker Swarm, Kubernetes.
- Experience with a configuration management system, e.g. Puppet, Chef, Ansible etc.
- Experienced with Continuous Integration systems, such as Jenkins, Travis, etc.
- Test-driven development including unit, functional and user-acceptance
- JUnit, Cucumber, RSpec, or other major test framework
- Linux and/or UNIX including shell programming (e.g. Bash, Korn, C shell)
- Version control, preferably Git
About Puppet Ltd
We are on our way and we have big plans for Timisoara. We are looking for enthusiastic Engineers at all levels!
Benefits
- Flexible Working Hours
- Stock Options
- Market Leading Salary