|Location: City of London, London||Salary: £80000 - £100000 per annum + Excellent company benefits|
|Sector: IT & Telecoms||Specialism:|
|Type: Permanent||Contact: Stalla Xystra|
Gold Group have a permanent opportunity for a Full Stack Engineer to join our client a leading IT, Software and Digital engineering consultancy based in London.
Occasional travel to other UK locations will be required at times.
Salary of £80k to £100k + annual paid holiday of 25 days plus 8 public holidays + pension plan
The Full Stack Engineer will be responsible for end-to-end delivery activities across all of the client's projects, including but not limited to infrastructure & network design, application engineering, software architecture, data design, integration design and front-end development. This individual will happily be a technology polyglot, excited to learn new technologies and techniques across the full technical stack and product life cycle.
The Full Stack Engineer position will be primarily focused on hands on engineering of consumer and business-related applications and as such will have an expert understanding of software engineering best practices such as effective source control, code reviews, daily builds, and automated deployments. This individual will be equally at home with cloud, Internet related technologies, protocols and languages along with lean / agile development techniques and Devops culture all working as part of a team.
- Lead in the engineering and delivery of solutions, by designing software, cutting code, writing tests, reviewing code and analysing user stories all within primarily lean / agile development techniques such as SCRUM, Kanban and eXtreme Programming.
- Write highly efficient, stable, secure, maintainable and performant code. Understand the difference between engineering and over-engineering.
- Maintain an understanding of each of the composite parts in the end-to-end solution plus the integration of the various tiers and components that make up the whole feature being delivered.
- Build, use, evolve and maintain an automated build and test pipeline supporting continuous integration, automated testing and environment migration activities.
- Lead and contribute ideas on how to solve complex problems facing the engineering team. Follow through with data driven decision-making and a clear understand of why any given choice has been made. Communicate solutions throughout the engineering team.
- Contribute in the design of software solutions, including applications design, database design, data-flows and detailed technical design working with Technical Architects as appropriate.
- Contribute in the wider engineering of product and services within your domain, ensuring solutions are fit for purpose, have suitable testing, monitoring and alarming and that support arrangements such as on-call and escalation routes are published, clear and known to 1st line support teams.
- Be responsible for coaching and mentoring the software engineers, test engineers and digital designers within a team to support continuous improvement in software, testing and design processes and practices.
- Define client's technical software design patterns and integration patterns whilst also ensuring those patterns and techniques support non-functional requirements such as security protection, disaster recovery and high availability.
- Maintain an up-to-date knowledge of industry and technology, software engineering practices, technical design trends and emerging standards. Work with other engineers, partners and vendors to understand the latest applications and solutions. Where appropriate collaborate in developing and testing proofs-of-concept of innovative technology. Drive the adoption of new technologies ensuring that the client remains a high-end technology centric company offering solutions that are unique to the market.
- Review technical solutions with product owners and key stakeholders to establish project cost estimates based on defined requirements and where appropriate create high-level design documentation of the technical solution.
- Mentor, lead and communicate to many teams and colleagues in different types of roles (from director to developer) with the ability to pitch at the level of the audience when explaining technical solution options or issues.
Knowledge, Skills and Experience required
- Degree educated in a software engineering discipline or equivalent industry experience
- Demonstrated experience with Java and other development languages such as Scala, Go, C++, C#, Python, Ruby, Node.js, scripting language such as Bash and PHP
- Demonstrated experience with source code management systems such as Git, build tools such as Maven and CI tools such as Jenkins.
- Demonstrated experience in relational and non-relational databases, data design, indexing, querying, configuration and replication with one of MySQL, MongoDB, Cassandra, PostgreSQL, Oracle, or Redis,
- Demonstrated ability to write unit tests, following TDD. Exposure to BDD
- Knowledge of Internet and networking technologies and protocols, i.e. IP, TCP, DNS, HTTP
- Several years engineering enterprise services in multiple industries
- Experience of working in a team with a DevOps culture surrounded by lean / agile delivery methodologies