|Job Title:||Software Engineer|
|Reports to:||Senior Developer|
|Location:||Creditsafe Group, Caspian Point 1, Pierhead Street, Cardiff Bay, CF10 4DQ|
|Level||Associate | Practitioner | Senior | Principal|
|Responsibility Level||Level 3|
The developer role plays a vital role within a delivery team taking responsibility for the delivery and maintenance of quality software code. You will work in a dynamic business environment possibly within a geographically dispersed team.
- Play a hands on role as part of a scrum or Kanban team to, develop, test and maintain high quality web applications and backend services that fulfil business needs
- Help support the team in maintaining existing software and data infrastructure.
- Working closely with the teams to introduce and train them on new tools
- Write documentation of new processes and products you’ve developed so that knowledge is shared
- Strong focus on quality. Define and execute practices such as continuous integration and test driven development to enable the rapid delivery of working code
- Managing, tracking and updating any work done within agile software development tools such as JIRA
- 3 – 7 year’s solid development experience within a commercial environment
- Knowledge and experienced of Agile development methodologies
- Solid experience of working with multiple coding languages
- Good understanding of code optimisation techniques and applying industry standard design patterns
- Familiarity with cloud technology preferably AWS
- Good understanding of GIT
- Knowledge of automated delivery processes
- Proficient working in a unix based environment
- Clear understanding of how the DOM works in regards to rendering and performance
- Experience working with backend developers on the Integration of backend and frontend
- Familiar working with designers whilst also contributing to the design of websites
- Teamwork – Encourages cooperation, collaboration and partnerships
- Quality Improvement – Strives for high quality performance and takes initiative to make improvements and deliver results.
- Problem Solving – Identifies problems and seeks best solutions by being creative and innovative
- Autonomy – Works under general direction. Uses discretion in identifying and responding to complex issues and assignments. Usually receives specific instructions and has work reviewed at frequent milestones. Determines when issues should be escalated to a higher level.
- Influence – Interacts with and influences colleagues. Has working level contact with customers, suppliers and partners. May supervise others or make decisions which impact the work assigned to individuals or phases of projects.
- Complexity – Performs a range of work, sometimes complex and non routine, in a variety of environments. Applies methodical approach to issue definition and resolution.
- Business skills – Demonstrates an analytical and systematic approach to issue resolution. Takes the initiative in identifying and negotiating appropriate personal development opportunities. Demonstrates effective communication skills. Contributes fully to the work of teams. Plans, schedules and monitors own work (and that of others where applicable) competently within limited deadlines and according to relevant legislation, standards and procedures. Appreciates the wider business context, and how own role relates to other roles and to the business of the employer or client.
Links to the following SFIA v6 Skills
|Analytics||The validation and analysis of significant volumes of data, including the ability to discover and quantify patterns and trends in numbers, symbols, text, sound and image. Relevant techniques may include statistical and data mining algorithms and machine learning methods such as rule induction, artificial neural networks, genetic algorithms and automated indexing systems.||Undertakes analytical activities and delivers analysis outputs, in accordance with customer needs and conforming to agreed standards.|
|Technical specialism||The development and exploitation of expertise in any specific area of information or communications technology, technique, method, product or application area.||Maintains knowledge of specific specialisms, provides detailed advice regarding their application and executes specialised tasks. The specialism can be any area of information or communication technology, technique, method, product or application area.|
|Research||The advancement of knowledge by data gathering, innovation, experimentation, evaluation and dissemination, carried out in pursuit of a predetermined set of research goals.||Within given research goals, builds on and refines appropriate outline ideas for research, i.e. evaluation, development, demonstration and implementation. Uses available resources to gain an up-to-date knowledge of any relevant field. Reports on work carried out and may contribute sections of material of publication quality.|
|Emerging technology monitoring||The identification of new and emerging hardware, software and communication technologies and products, services, methods and techniques and the assessment of their relevance and potential value as business enablers, improvements in cost/performance or sustainability. The promotion of emerging technology awareness among staff and business management.||Maintains awareness of opportunities provided by new technology to address challenges or to enable new ways of working. Within own sphere of influence, works to further organisational goals, by the study and use of emerging technologies and products. Contributes to briefings and presentations about their relevance and potential value to the organisation.|
|Data management||The management of practices and processes to ensure the security, integrity, safety and availability of all forms of data and data structures that make up the organisation’s information. The management of data and information in all its forms and the analysis of information structure (including logical analysis of taxonomies, data and metadata). The development of innovative ways of managing the information assets of the organisation.||Applies ethical and robust techniques in the transformation of data from one format/medium to another, in line with organisational policies and procedures and being sensitive to risks around the use of information.|
|Methods and tools||Ensuring that appropriate methods and tools for the planning, development, testing, operation, management and maintenance of systems are adopted and used effectively throughout the organisation.||Provides expertise and support on use of methods and tools.|
|Systems design||The specification and design of information systems to meet defined business needs in any public or private context, including commercial, industrial, scientific, gaming and entertainment. The identification of concepts and their translation into implementable design. The design or selection of components. The retention of compatibility with enterprise and solution architectures, and the adherence to corporate standards within constraints of cost, security and sustainability.||Specifies user/system interfaces, and translates logical designs into physical designs taking account of target environment, performance & security requirements and existing systems. Produces detailed designs and documents all work using required standards, methods and tools, including prototyping tools where appropriate.|
|Programming/software development||The design, creation, testing and documenting of new and amended software components from supplied specifications in accordance with agreed development and security standards and processes.||Designs, codes, tests, corrects and documents complex programs and scripts from agreed specifications, and subsequent iterations, using agreed standards and tools, to achieve a well engineered result. Takes part in reviews of own work and leads reviews of colleagues’ work.|
|Testing||The planning, design, management, execution and reporting of tests, using appropriate testing tools and techniques and conforming to agreed process standards and industry specific regulations. The purpose of testing is to ensure that new and amended systems, configurations, packages, or services, together with any interfaces, perform as specified (including security requirements) , and that the risks associated with deployment are adequately understood and documented. Testing includes the process of engineering, using and maintaining testware (test cases, test scripts, test reports, test plans, etc) to measure and improve the quality of the software being tested.||Defines test conditions for given requirements. Designs test cases and creates test scripts and supporting data, working to the specifications provided. Interprets, executes and records test cases in accordance with project test plans. Analyses and reports test activities and results. Identifies and reports issues and risks.
|Systems integration||The incremental and logical integration and testing of components and/or subsystems and their interfaces in order to create operational services.||Produces software builds from software source code. Conducts tests as defined in an integration test specification, records the details of any failures, and carries out fault diagnosis relating to simple failures, reporting the results of the diagnosis in a clear and concise manner.|
|Porting/software configuration||The configuration of software products into new or existing software environments/platforms.||Assists in the configuration of software and equipment and the systems testing of platform-specific versions of one or more software products. Documents faults, implements resolutions and retests to agreed standards.|
|Systems installation/decommissioning||The installation, testing, implementation or decommissioning and removal of cabling, wiring, equipment, hardware and associated software, following plans and instructions and in accordance with agreed standards. The testing of hardware and software components, resolution of malfunctions, and recording of results. The reporting of details of hardware and software installed so that configuration management records can be updated.
|Installs or removes hardware and/or software, and associated connections, using supplied installation instructions and tools. Conducts tests and corrects malfunctions. Documents results in accordance with agreed procedures. Assists with the evaluation of change requests. Contributes, as required, to investigations of problems and faults concerning the installation of hardware and/or software and confirms the correct working of installations.|
|Quality assurance||The process of ensuring that the agreed quality standards within an organisation are adhered to and that best practice is promulgated throughout the organisation.||Uses appropriate methods and tools in the development, maintenance, control and distribution of quality and environmental standards. Makes technical changes to quality and environmental standards according to documented procedures. Distributes new and revised standards.|
|Quality standards||The development, maintenance, control and distribution of quality standards.||Controls, updates and distributes new and revised quality standards.|