Software Engineer (Mid-level)
The Software Engineer’s main role is to develop and maintain software applications in their respective domain.
This is a hands-on technical development role and post holders will be proficient software engineers in at least one area of web/application development. They will implement against designs created by senior developers / team lead. As well as code development they will also conduct system tests, troubleshoot customer issues and correct software defects.
Educated to degree level in a relevant IT/Software related degree.
4 years’ experience in a relevant set of Web development technologies such as:
• CMS frameworks (e.g. Drupal, WordPress etc)
• CSS3 & HTML5
• REST Web services
Ideally to have gained industry certification in one of the above areas.
Experience of data manipulation, tuning, and performance work across a range of industry databases including: Oracle or MySQL.
To be comfortable with using industry standard tools and practices in the Software Development world including SVN and Git source code control systems.
Experience of working within an Agile development process (Scrum or similar).
Good written and oral communication skills with the ability to communicate clearly and effectively with colleagues in the Technology group as well as non-technical users.
Experience on Python or Java
Knowledge in search technology i.e. ElasticSearch, SOLR
Experience on solution design & principles, analysis and documentation 2
Experience of Web infrastructure and related technology areas and modern day “DevOps” engineering practices, tools and processes (e.g. Continuous Integration or Delivery, DevOps on AWS)
Principal Accountabilities DEVELOPMENT & DELIVERY
• Responsible for the delivery on assigned modules / tasks.
• Code, test and troubleshoot software programs utilizing the appropriate hardware, database, and programming technology.
• Write code and tests which meet prescribed approaches and standards which are in place within the team.
• Provide assistance to QA and helpdesk personnel as needed to determine system problems.
• Review changes in code and the environment to understand and minimise negative impact on system performance.
• Work closely with the infrastructure, build and release, database, and other related teams to ensure swift and efficient deployment of code releases.
• Join Scrum meetings such as stand up, grooming, planning, and retrospective.
• Play an active part in the development team, sharing ideas and helping the team where practical.
• Use and follow company software development guidelines and procedure from software tools to maintenance and support tools.
• Produce software manuals or other project/technical documentation as and when required.
• To continue to develop knowledge and experience within new programming languages and technologies.
• To develop a depth of understanding of the respective applications/websites looked after by the team and of the business context / rules behind that.
• To seek to gain professional certification in relevant programming approaches or technologies.
• Participate in Agile and Scrum best practices as we strive for continuous integration and delivery