Job Details
Experience Needed:
Career Level:
Education Level:
Salary:
Job Categories:
Skills And Tools:
Job Description
As a Software Developer, you will be working both across and within our agile development teams and be involved throughout the full development lifecycle with particular responsibility to ensure the development & maintenance of our software platforms. You'll be involved in all aspects of the team including the creation and elaboration of business requirements, functional/design specifications, development and maintenance of our software and driving innovation into our product suite. You will have a particular focus on backend technologies and their continued development.
Key Responsibilities:
- Develop and maintain scalable and robust enterprise (Perl) applications
- Work as part of cross functional, passionate agile (SCRUM/Kanban) project teams ensuring high quality delivery is at the heart of the development process from requirements definition through to delivery
- Participate in scrum ceremonies and participate on development projects and implement solutions in partnership with development managers and teams.
- Resolution of performance or security issues.
- Provide relevant, honest and accurate feedback to management.
- Research, recommend and implement tools as needed with the goal of continually increasing our development productivity
- Demonstrable working knowledge of design patterns
- Proactively bringing issues and problems to the attention of the team; generating, proposing and implementing innovative solutions to solve them
- Be an advocate of automation, Test Driven Development, Continuous Integration and Continuous Delivery
- Maintain exceptionally high standards of design and code quality at all times, including but not limited to adherence to architectural, security and scalability standards and principles
- Updates job knowledge by researching new internet/intranet technologies and software products; participating in educational opportunities; reading professional publications; maintaining personal networks; participating in professional organizations.
- To be enthusiastic, fearless and boundary-less with the ability to coach and mentor
Job Requirements
- Recent experience of developing Perl applications within an Agile environment
- Test driven / behavior driven (TDD/BDD) software development
- Deep understanding of Modern RDBMS, ability to debug slow queries and improve Table structure and processes.
- Understanding of the MVC Software Development pattern for Web frameworks (Catalyst)
- Good knowledge of Database ORM systems, their benefits and limitations (DBIx::Class)
- Modern Perl Object Oriented system (Moose) - Use SOLID design principles, Design patterns
- Templating System (TT)
- NoSQL databases (Redis)
- Evangelist of modern Perl programming and development practices
- Best Practices for Perl development, OO Design Patterns and Database structure
- Working within UNIX/Linux based environments.
- Working knowledge of Continuous Integration and Continuous Delivery methods and toolsets
- Working with enterprise SQL databases (preferably PostgreSQL)
- Familiarity with web based SaaS
- Comfortable with absorbing new technologies quickly; highly self-directed and able to manage and prioritize concurrent and competing/conflicting challenges
- Innovator; ability to work collaboratively and a demonstrated team player with a results-oriented track record
- Follow recommended software development methodology standards, championing evolution as appropriate
- Pro-active customer service attitude
- A technical mindset with good understanding of algorithms, data structures, design patterns.
- Solid knowledge of Agile development practices.
- A willingness and an ability to share best practice and improve processes.
- Experienced in issues of Scaling and an understanding of optimizing web-based applications.
- Experience working across multiple platforms and technologies
- Solid scripting skills (e.g., shell scripts, Perl, Ruby, Python)
- Strong demonstrable experience of Object Oriented Analysis & Design and accompanying design patterns with a commitment to Software Craftsmanship and Clean Code.
- Ability to work with Distributed Version Control Systems
- Performance tuning
- Experience of web interfaces and working with databases.
- Scaling and optimizing web-based applications
- Designing high availability systems
- Knowledge of Agile development practices and experience working in a cross-functional Scrum team
- Ability to work collaboratively and a demonstrated team player
- A willingness and an ability to share best practice and improve processes
Advantageous:
- Experience with NoSQL databases such MySQL / DynamoDB.
- Experience or understanding of enterprise systems deployed as micro-services through code pipelines utilizing containerization (Docker)
- Experience of working with SaaS based software architectures within a multi-tenanted cloud hosted deployment model
- Experience with systems and IT operations operating within an ISO27001 environment