Starting off in the Engineering Academy
Like many young engineers, I was drawn to Kainos particularly by their endeavour for excellence and commitment to developing the skills of their staff. The Kainos Academy is central to this and their Engineering Academy (previously known as the Trainee Development Programme) is without a doubt one of their flagship courses. Formal training on this scale for placements and graduates is quite uncommon, so you might imagine how seven weeks of bespoke practical training for a full classroom of them might sound. Too good to be true? Well… I secured a placement at Kainos this year and found out for myself.
What to expect on the Engineering Academy
The Academy struck a balance between supportive and challenging that had clearly been carefully tuned. One thing I wasn’t expecting was the extent of collaboration throughout the whole programme. Every week of training involved team exercises and the interaction between trainees was consistently one of the most fun and beneficial aspects of the whole experience; there was always someone whose expertise you could enlist to help solve a problem. Presentations were also a surprisingly integral part of the training. As well as a dedicated presentation skills day, group presentations that involved demonstrating work accomplished and explaining technical designs, were embedded in the course right from the start. This was especially pleasing as a good portion of young engineers may not have had much prior experience in this area.
Placement Year Logbook – Engineering Academy
What did we learn? What better way to demonstrate it than by sharing my university logbook?
- Received a one-day corporate induction, providing an overview of the company and its processes.
- Provided with a MacBook Pro for development work, a laptop bag, and employee ID card.
- Gained initial experience with macOS, Ubuntu (via virtual machine), and Bash.
- Revised fundamental database concepts and practised writing SQL statements and designing databases in MySQL.
- Designed and created a simple database in a group of three and presented the results to the rest of the class.
- Learned about query optimisation and database performance with some practical exercises.
- Interacted with Java using the terminal for the first time and developed experience using the Eclipse IDE.
- Revised constructors, inheritance, encapsulation, polymorphism, interfaces, and exception handling.
- Developed knowledge of Git version control, as well as Java collections, iterators, and comparators.
- Introduced to streams and practised applying functions such as filter, map, sorted, sum, and forEach.
- As part of a group of four, developed a simple employee management system with a Java front end (console-based UI) and database connectivity. Presented a live demo of the system to the rest of the class.
- Developed an example web application using Angular and gained exposure to Dropwizard (Java web service).
- Placed into a group of five to develop a web-based version of last week’s employee management system.
- Delivered a presentation of the results of our development to rest of the class.
- Introduced to testing with JUnit, Jenkins, and cloud computing.
- Spent three days learning about testing, including principles, levels, types, technology, and techniques.
- Completed practical exercises in unit testing using JUnit and UI testing using Selenium.
- Engaged in a one-day user experience (UX) workshop which included the opportunity to conduct actual user research by interviewing Kainos employees and translating the information gathered into user needs.
- Engaged in an “Agile drill” – an exercise that simulated three sprints of Scrum development over two days.
- Worked in a team throughout the drill to plan, complete user stories, and perform Agile ceremonies.
- Interacted with Kainos employees who assumed the roles of scrum master, product owner, and technical architect.
- Presented the work completed at the end of each sprint to the stakeholders.
- Completed a one-day presentation skills workshop which involved individual and group presentations and included valuable advice on preparing the content of and delivering presentations.
- Received insight into the Kainos Applied innovation capability through a day-long workshop that centred around generating ideas for solutions in innovative ways and using emerging technologies.
- Friday was spent preparing for a sprint of development that will last the final two weeks.
- Engaged in planning poker to estimate the effort required to complete each of the user stories we will be working on.
- Placed into a group of six to work on code for a real Kainos product, WorkSmart, for two weeks (one sprint).
- Spent a couple of days setting up the development environment necessary for working on WorkSmart.
- Planned work on the user stories to be completed for the sprint ahead with the team.
- Developed the front end of the main webpages for the “epic” (collection of user stories) my team was working on.
- Used Jira to manage and keep track of user stories and task allocations.
- Performed daily stand-ups with the team to stay informed of progress, task allocations, and flag any issues.
- Worked on some more frontend structure, content, and styling, ensuring the webpage appears exactly as the UX pin (requirements) specified.
- Wrote a selection of UI tests (Protractor) to assure the webpage was developed in line with requirements.
- Helped teammates resolve general development issues such as with configuration and version control.
- Discovered and helped fix a bug with a feature toggle (a user story thought to be complete).
- Submitted code to the GitHub repository and implemented requested improvements following code review.
- Delivered a successful team presentation to demonstrate what we accomplished over the last two weeks to members of the WorkSmart team alongside various other Kainos representatives.
On the day I finished the Academy, I was sure that Kainos was going to be a positive place for aspiring engineers to be. I was able to walk away from training with not only a wealth of technical knowledge, but also a much stronger sense of what it means to operate in a professional engineering environment. Observing Agile principles, coping with high-pressured work, and keeping the customer at the heart of the process… These were key take-aways, and while I’m keen to apply these core skills in real-world projects now, I’ll always remember the Engineering Academy as a brilliant experience for anyone about to embark on a career in software development.