Developing the next generation of Software Engineers

Photo of Ed Withers

Ed Withers, our Software Engineering Training Lead, reflects on the excellent progress made by our inaugural cohort of Software Engineers as they enter their final stage of training and showcase their capstone project. 

Watching the cohort develop over the last three months into competent software engineers has been extremely rewarding personally and I am proud to be working for an organisation so committed and focused on creating opportunity for others. As a passionate educator nothing gives me greater pleasure than seeing individuals progress with confidence towards their learning objectives – and this cohort has done so consistently! 

The cohort is reaching the end of its immersive training period, which involves over 700+ hours of instructor-led sessions, self-directed learning, team engineering and individual challenges. Following this, the cohort embarked on their capstone project, working together in three teams to develop an application that has two major components 

1. A REST API built in Java and Spring Boot
2. A front-end application built in React

The capstone project is designed to simulate a professional development environment, requiring our engineers to demonstrate a high degree of technical proficiency, collaboration, team problem-solving, effective communication and management of engineering inter-dependencies. Given the calibre of corporate partners our engineers will be working with at the completion of their training, our engineers work to a specification, timeline and set of quality standards that must be observed, in order to minimise the gap between training and employment.

Consequently, the project allows our engineers to demonstrate their accumulated knowledge and skills in full-stack engineering, test-driven development, and DevOps processes. In addition, the project is developed using Java (and therefore the corresponding build tools and IDE integrations), a new language the cohort have to learn, given the training has been in Node.js up to this point, ahead of their Java SE 8 Programmer I exam, and a Java framework called Spring Boot

The goal was to produce a simple application management system where users could see applicants in a pipeline view and an individual profile view, and search by applicant name. This cohort was split into three development teams, necessitating communication within and between teams for database schema changes, API endpoint response formats, style changes, and more. The teams worked agilely, leveraging Kanban boards in Jira to estimate and prioritise work, Confluence to document research, and stand-ups and retrospectives to improve their work – all standard industry practice. 

As the learning curve flattened for each member of the cohort and they become more comfortable navigating both applications, the number of GitHub pull requests increased, and work began to be continuously integrated and deployed for both applications.  Keeping progress in sync between the applications has, at times, has been challenging. However, this has also highlighted the importance of DevOps and need for clear communication amongst development teams. 

The challenge with all training programmes, as I have experienced throughout my career, especially software engineering, is ensuring our engineers leave with the required skills and capability levels to work productively as members of high performing development teams.

I am confident this will be evident as our engineers embark on their client projects later this month, and look forward to supporting their ongoing development, helping them reach their goals and developing into the future leaders of tomorrow.

It has been an absolute privilege working with each and every engineer, they are all tremendous brand ambassadors for Digital Futures and I am excited about what the future holds for them.