Role Purpose
The Software Engineer will participate in all aspects of our research and development activities. Working with the product owners and user experience teams they will be involved in the design, development, and the implementation of innovative cloud-focused applications using technologies such as JavaScript, React, nodeJS.
The Software Engineer will work within their team and alongside other teams to develop new product features, progressively improve product quality and to resolve customer issues, while working in a robust continuous integration and continuous deployment environment.
Tasks Include:
Design, modify and implement software features.
Ensures quality through design/code reviews, TDD practices
Work closely with customers and support teams to ensure efficient resolution of customer cases.
Continuously improve the product by running root cause analysis and addressing design limitations, maintenance problems and product reliability
In what areas will you perform
Area Involvement
Engineering Work
Develop key skills and knowledge of Verint applications.
Deliver robust solutions by identifying related components and check for completeness of solutions, drawing on the wider team knowledge where required. Promote the new functionality to team and wider audience.
Resolve complex and new problems by processing alternatives and balancing pros and cons.
Ensure quality of the feature being delivered, through code reviews, TDD and other test activities, ensuring the functionality is tested and working properly before final release.
Participate in customer calls to discuss, diagnose and resolve live issues, working together with support and engineering teams to provide efficient resolution to customer issues.
Breaks tasks into smaller ones and sets milestones, identifies and plans for dependencies. Works to agreed timescales, prioritising work effectively. Prioritizes routine work to ensure time can be spent on critical activities.
Act as a subject matter expert in specific areas of responsibility
Develop an understanding of how the department is run and take ownership of existing processes in the absence of TL/TA.
Issue Escalation
Identify, highlight and if possible resolve issues
Reporting
Report daily progress of your tasks to your team lead at scrum meetings.
Provide appropriate and regular communication to all relevant parties on your progress with development activities.
Provide regular updates about self-development and learning needs to mentor / line manager.
Who do you work with
Internal External
Your team and associated QA and product owners
Services & Support teams
The User experience team
Your Line Manager
Customers
Other ad hoc third parties
Skills & Experience
Skill Experience
Personal
Highly motivated, ambitious, eager to learn and demonstrate value, with an ability to work independently.
Enthusiast who can work alone, from inner motivation.
Demonstratable problem solving and decision-making skills, working with others on complex problems or where appropriate to make these decisions.
Analytical skills include, but are not limited to, applying logical thinking to gathering and analysing information, designing, and testing solutions to problems, and formulating plans.
Someone who can serve as fire and forget - this is what we need, figure out what we need, go find and implement solution
Intelligent enough to ask the right questions.
Able to get information, design and implement; to work independently, manage work and time.
Good interpersonal skills, good written and verbal communication, and strong demonstrable teamwork. Able to communicate effectively with other team members and the business.
Experience of working closely with customers and 3 rd parties to identify, diagnose and resolve complex problems, and effectively convey realistic expectations.
Experience of using logs to diagnose customer issues and performing data analysis and troubleshoot data integrity issues.
Ability to work well in a fast paced and challenging technical environment; with the ability to multitask, quickly understanding issues and thinking through approaches, whilst delivering high quality solutions
Technical
Essential
Experience with Agile development methodologies
Experience with implementation of unit tests, integration tests.
Advanced knowledge and experience of working with various debugging tools.
Experience of working in both legacy and greenfield codebases.
Experience of writing clean, readable and maintainable code.
Development experience with: JavaScript, React
Experience of Chrome dev tools
Understanding of web markup, including HTML5, CSS3
Understand reactive and functional programming paradigms
CI/CD knowledge and experience is an advantage.
Knowledge of API development, particularly REST, and tools such as Postman
Knowledge of software performance testing and profiling tools
Knowledge and understanding of software development life cycle methodologies
Desirable
Experience with development in a test-driven environment
Experience with JavaScript backend frameworks such as ExpressJS
Familiarity with modern front-end build pipelines and tools such as TSC
Qualifications
A degree or post graduate qualification in Computer Science or Software Engineering or relevant experience.
A minimum of three year's commercial experience working with JavaScript.