Welcome to BJSSinfo@bjss.com


Learning: Before and After

Priyav Shah first met the founders of Turinglab – Henry and Sam – while he was studying Computer Science at Imperial College London. He ended up working with them a couple of years later – originally as a developer, and later as Turinglab’s first student instructor.

“The main thing that I found from helping Children to learn to code is how varied they are,” he explains. “Children have different levels of concentration, ability, the ways they learn, how they work and how quickly they pick things up. So at Turinglab, we actively adapt our approach for each child, helping them in the best way we can.”

These early classes helped to develop what Turinglab would become. “The first groups of children gave us valuable feedback on what was working and what wasn’t,” Priyav explains. “We had limited resources at the time and we didn’t really have enough people to help develop our platform. Now that BJSS is on-board, this valuable feedback is finally being implemented.”

Priyav had never worked remotely before, so being part of a wider delivery team based 170 miles away in Leeds took a bit of getting used to. “But the communication between ourselves is really good,” Priyav explains. An extended BJSS team of Tim Barber and Sam McCarthy joined the project in April. They are helping Turinglab to deliver a large backlog of features so that the organisation can provide its services to Ada College. While Tim and Sam are based in the BJSS Digital Delivery Hub in Bristol, BJSS is experienced in successfully delivering projects even if teams are spread across wide geographic distances. “We’re now starting to see the impact of having the whole BJSS team help us – both the BJSS Academy team and the Bristol team. The platform has benefited from some really big changes recently, and it’s great to be part of a weekly Stand-up where everyone finds out about what has been going on, what has been worked on, and the things that will appear in the code base in the future.”

Priyav is having a great time developing the Turinglab learning platform at the moment, but he is also looking forward to stepping back into a student instructor role. He explains: “I’m excited to see how the children take to all of the changes we’re making to the platform. The improvements are huge – it is much more visual and our learning projects have become more streamlined and structured. There are some exciting new features too like interesting projects that are unlocked when the children successfully complete earlier challenges.”

“I’m one of the few people who really get to see a ‘before’ and ‘after’ view of the Turinglab learning platform,” Priyav ends. “It will be really interesting to see how children learn from the changes we’re making. If it ends up being as effective as we think it is, then our collective hard work will have been worth it!”

Read More

Best Practice

Joshua Bates was a late addition to the Turinglab delivery team. He joined after the BJSS Academy recognised that his skills in Angular were suited to the Turinglab learning platform and that the engagement would be valuable to his development.

He had previously worked on a similar stack, so without even touching the platform, Josh had a good idea where everything was. “It was a good transition,” he explains. “I could get stuck in right away without having to learn where everything was. I had used this stack before – but on a much smaller scale than the Turinglab platform.”

While Josh was fortunate to have previously worked on a similar stack, he is still learning new things. A massive learning experience came in the form of Cross-site request forgery (CSRF). Having never heard of the term before, Josh had to read up and learn how to do it. CSRF is a type of attack that happens when a malicious website or email causes a browser to perform an unsolicited action on a trusted site. “It isn’t really a massive issue on the application,” he explained. “But it could become a problem in the future, so we thought it best to resolve it at this early stage of the project.”

This is a BJSS delivery, so there are standards and tools that were deployed to benefit the project and to maintain our strict quality standards.

“The first thing I did when was to roll out coding standards to the code base,” said Josh. “Standards are important because they tell the developers how they must write their code instead of leaving it them to interpret themselves. With coding standards, everything is formalised.”

He added: “Some of my team have also been working on guidelines for Continuous Integration (CI). It’s a development practice that requires developers to integrate our code into a shared repository several times a day. It means that what we create is tested on an environment other than our computers.”

When asked what the delivery team was doing to improve the application, Josh described that the best applications are coded accurately. While this might sound like an obvious statement, it means that the code shouldn’t only do its job well, but it should also be also easy to add to, maintain and debug. The Turinglab delivery team is applying BJSS best practices to make sure that this is the case.

Read More

Neopets to Turinglab

Carla Lawrence is BJSS’ resident maths whizz. It’s what led her into the world of computing.

“I remember one day I was just searching the Internet for all things maths when I came across a page about programming,” she explains. “It looked interesting and before long I was hooked.”

Next she started played online game called Neopets, where the player has a virtual pet that can be customised by changing the HTML. “So I learnt a little of that as well as CSS and PHP.”

The University of York graduate in Computer Science and Mathematics is, like many of her Turinglab team, self-taught. “It’s a fantastic idea,” she says. “When I was in school there was nothing like this. I was having to teach myself with no guidance at all. Having access to Turinglab would have been really beneficial to me.”

Describing herself as non-functional or technical tester, Carla is enjoying learning automation testing and having to manage people on the project. The BJSS Academy is designed to allow our staff to learn new skills. She explains: “Within my managerial role on the project, I have to identify what needs to be tested, how best to delegate, and estimate timescales so that I can help the team prioritise work. I’ve never done these things before.”

Asked what individual skill she thinks she brings most to the Turinglab delivery team, Carla answered her analytical thinking. Turinglab provides her with a great deal of data which can be analysed so she can formulate a plan for testing going forward.

In terms of testing tools, the team settled on Protractor for automation testing. “We chose it because it’s Angular,” Carla explains. “It means that everyone on the Turinglab delivery team is using the same language. We currently have more developer resources than we do testing, so it means that Matt could allocate a less busy dev to help us out when it comes to some of the automation testing.”

The team is also using JMeter for non-functional testing. “It’s something that Harrison and I have both used before. Given the tight delivery deadlines attached to this project we settled on using something that we both know (and trust!), so we don’t waste valuable time learning something completely new.”

Read More

Placement Year

Jack Wainwright is an undergraduate student. He is studying IT at the University of Leeds, but took time out in August 2016 to complete a placement year at BJSS. The university curriculum has already exposed Jack to a great deal of programming. He is also familiar with some of the “project consulting” aspects too, such as Business Analysis. And having come across UML diagrams, Jack is a confident “all round” Technical Architect on the Turinglab delivery.

“Turinglab uses a MEAN stack, which is a collection ofJavaScript based technologies,” he explains. “The major benefit of the MEAN stack is that it’s extremely quick to prototype, so we’re able to deploy the features we build pretty quickly”.

“One thing I admire about the Turinglab learning platform is that its database all the way up to its UI uses the same language,” continues Jack. “I’ve never experienced that before – there has always been a switch to something else!”

While Jack wouldn’t describe himself as a natural JavaScript developer, he is enjoying learning everything about it.

“It’s fast and its executes quickly,” he says.  “But it’s also quite a nice thing to write in. JavaScript is a lightweight programming language, so I am finding it really refreshing to be working on this language and learning about it for Turinglab”

When he was younger, Jack used a website to learn how to code, but he would have appreciated the support provided by the Turinglab learning platform.

“I think that it is one of the best things about Turinglab,” he says. “They provide coding education at a young age. The website I used was okay, but something like the Turinglab learning platform, which is far more structured would have been beneficial to me.”

Jack only has a few months left at BJSS before he returns to the University of Leeds, but he hopes to return after graduation and join the BJSS Graduate Programme. “I’ve only been here since last August, but there’s a great start-up culture at BJSS, even though there are over 700 people working here. It’s a relaxed and friendly atmosphere and we always get the job done!”

Jack also appreciates the variety of projects which IT consulting exposes technologists to. “You can’t get stuck in one technology,” he explains. “It moves so fast that what you know today will probably disappear in a few years’ time. You are constantly learning new techniques and picking up new technologies.”

Read More

Work Experience and Bugs

At yesterday’s Stand-up we welcomed Josh, a Year 10 student at Carr Manor Community School. Josh is currently undergoing his work experience with BJSS, and he already knows that he wants a career in IT. So BJSS – and shadowing our Turinglab delivery team – was a great work experience opportunity for him.

Josh’s passion for IT is being nurtured at school. “Without the computing and coding aspects in the curriculum, I probably wouldn’t have been as interested,” Josh explained.

At the end of Year 9, Josh enrolled on to a two-year Computer science course at school. The course introduces him to varied subjects – everything from understanding how computers work and creating algorithms, to understanding binary and coding in Python.

After school, he uses online tools to help build his skills even further. Josh is focusing on Python, command-line and Java. “This online learning can be quite limited,” Josh continues. “This is where Turinglab will make a real difference – being able to combine this online learning with somewhere who I can turn to for advice or a little guidance would really be a big help when I hit the tricky bits.”

Josh is combining his school curriculum with independent learning because he believes that coding will play a big part of his generation’s future. He currently has six friends that already code, and he’s finding that more and more of his classmates are looking for ways to build their basic coding skills too.

Our second “first” of the week came from another Josh. A minor bug on the Turinglab platform was identified and quickly fixed by Joshua Bates, a Graduate Software Engineer on the Turinglab project. Josh openly admits that he happened to stumble across the bug. “Turinglab’s technology stack is the same I used for my dissertation,” he explains. “But when you’re still getting to grips with a new application, it can be difficult to navigate where things are. By being a little heavy handed, I discovered the bug.”

The error came about after Josh updated an internal application state. While it refreshed the entire application, key components wouldn’t update because there was more logic around that in the rest of the application. This meant that when the user logged in, nothing would appear on their navigation bar.

Josh and the wider Turinglab team patched the bug, and then continued with their planned functional and non-functional deliveries. As I mentioned in last week’s post, a key part of the BJSS Academy is the creation of a full project team to deliver a technology project. This allows the team to encounter and deal with aspects of software delivery – such as handling bug fixes – in a safe learning environment. The Turinglab project allows our team to benefit from this supportive structure, while working on a live production system – almost the best of both worlds!


Read More

Delivering Turinglab: The Project Manager

As Project Manager for the Turinglab delivery, Matthew Williams plays an important role in leading the team and coordinating its project activities. He graduated in 2015 from the University of Sheffield with a Master’s degree in Astrophysics. “I did as much computational science as I could,” explains Matt. “It was an interest that led to me teaching myself Python. I applied this language in a number of contexts towards my degree. It also led to me building a weather station with a Raspberry Pi.”Matt joined the BJSS Graduate Programme in 2016 as an Automation Tester working on the NHS e-Referral Service. As a graduate, Matt is currently completing the BJSS Academy, a key practical aspect of which is the creation of a full project team to deliver a technology project. This exercise exposes our Graduates to the other capability functions at BJSS, helping them to understand how the wider delivery team operates.

Matt jumped at the chance to be a Project Manager on the Turinglab delivery. “I was excited to be involved in a project that will help children from disadvantaged backgrounds,” he said. “It’s a project that helps these children learn more about technology and secure their career prospects in ICT. This delivery makes a real difference!”

Matt’s team of six has been delivering the Turinglab learning platform for three weeks now. The first Sprint is to scale the platform so that up to 500 student accounts can access the service concurrently. He believes that in the short time the project has been running, the biggest impact comes from the introduction of the BJSS Enterprise Agile delivery approach to Turinglab. The organisation’s co-founders, Henry and Sam, had originally developed their platform using a method similar to Kanban, but by introducing aspects of BJSS Enterprise Agile, Turinglab has seen the benefits of Agility as a way of reaching their goals.

Based on their experience of delivering regular client projects, Matt’s team has also demonstrated more strategic concepts for Turinglab to consider such as Continuous Integration and potentially moving some services to AWS. On top of that, the team has also introduced Turinglab to the benefits of JIRA for tracking and project managing the delivery, rather than maintaining a spreadsheet. The team is taking some of the development load away from Henry and Sam, giving them more time to focus on the expansion of the Turinglab initiative.

Matt is enjoying his time as Project Manager, and using the skills he’s learning from the Turinglab delivery to become a more rounded Tester. For example, he’s currently engaged in a great deal of analysis to make testing more logical, thereby ensuring that the project’s he’s working on are not under- or over-tested.

Read More

BJSS Supporting South Craven School Sixth Form

Over the past few months, nine Alumni from the BJSS Academy Foundation Course have been working together with 14 students and their teachers at South Craven School, helping out with BTEC Unit 22 – Developing Computer Games.

Our first task was to come up with a problem statement for the students: to design and develop a text-based adventure game using Python. We set them a list of criteria to achieve, and also pointed them towards a helpful framework that would give them the building blocks to quickly implement a basic working game. The students were invited to the BJSS Leeds Project Centre to present the problem statement to them, giving them the opportunity to see a software consultancy firm in action. We received encouraging feedback from course leaders and we were excited to see what sorts of games the students would design!

Over the next couple of months, the students began an email correspondence with their respective BJSS mentors, sharing their initial game design ideas and asking for feedback.

Earlier this month we visited the school to see how our learners were getting on. The students were enthusiastic and engaged, keen to talk through their games and describe how they solved problems that they encountered. We saw a range of ideas that came from the same brief including crime solving, defeating monsters and catching escaped ducklings!

The students continue to communicate with BJSS mentors about problems they are attempting to solve, with the mentors advising how to approach the problem in a high level context and by offering technical guidance. Later this year, the students will make their final visit to the BJSS office and present their completed games to the team. We’re all very excited to see their finished products. It has been an engaging experience for everyone involved.

Read More