With this new interest, and an inquisitive nature, Ammar told us how he started learning and tinkering in his spare time, creating http://www.measuringbritain.co.uk.
Of his first non-work project, Ammar says: “The first project that I threw myself into, heart and soul, was the data vis one - Measuring Britain. I kind of just put that out there and it was a whirlwind of three months going absolutely barmy on a new piece of tech, D3.js, which I was just discovering at the time. It's still something that I'm probably most proud of."
This came about from some work helping the Muslim Council of Britain, using the 2011 census to derive population statistics. While working through some data analysis Ammar was shocked at the lack of mechanisms to get census statistics in a digestible, bitesize form.
“All these questions on the census that are absolute treasure troves of insight into how communities are faring, but are just completely buried in really arcane CSVs and PDFs that the ONS spits out now and then. They are all really meant for academics and aren't geared towards the lay-person."
While he hasn't touched it since first hitting deploy to Heroku, it still holds up incredibly well today, and is something that he is thinking about reviving at some point.
I've experienced Ammar's inquisitive nature myself. We were part of a small BJSS team that entered Nottingham's Hack24 a couple of years ago - his first ever hackathon. Deciding he fancied trying out Python, Ammar undertook the entire hack in a language he was unfamiliar with.
“I went there, I've heard about Python, it's supposed to be this nice little scripting language, you can do a lot with data with it these days, so OK, just try and learn that. I'm only going to use Python, I'm going to write any APIs, anything in Python."
Apparently it didn't hold us back, because we won!
Using a Raspberry Pi, a cheap LCD screen and a small video camera we built a solution to help homeless people get messages from support workers, or even family, through displays within shop windows in a town centre. Using facial recognition APIs within the Microsoft Azure cloud we identified people and relayed important messages to them.
Since then he's taken part in two further hackathons, including one for the NHS with his brother, a doctor, and plans to do more.“I hadn't really considered hackathons. I was quite intimidated by them before I joined BJSS. And speaking to some other software engineers that I really respect, I get the same response that I had, 'how could you ever achieve something in that time-frame' … I think that’s' the most amazing and exhilarating thing and I find it thrilling and want to do more and more".
Working with BJSS
“BJSS changed my career in every way"
Ammar joined BJSS about 3 years ago, and in that time says he has worked on 7 or 8 projects, across a number of different clients. These have varied from short internal developments (Ammar helped me to build the voice box for a robotic quiz host version of our MD – perhaps that’s a story for another article) through to longer term software engineer roles, in teams building solutions for the DVSA. Most recently Ammar has worked on an RPA implementation using AWS, UI Path and other technology to automate the review of Key Worker driving test requests, including OCR, fuzzy name matching and image manipulation to validate photographic ID.
One of the most recent projects was for the DVSA, where Ammar worked as technical lead on a new tablet application for driving examiners, which has since replaced the paper form, used for many years. Not only was it an interesting challenge, it's a high profile one, that will have an impact on many people, with many of us take driving tests at some point in our lives.
The biggest challenge on that project was to ensure there were no distractions for the examiner. In Ammar's own words, the team had to build:
“Something on the screen that would act and feel exactly like a piece of paper and nothing more. In order to do that you had to think 'what could possibly happen in this scenario' and the answer, with modern technology, is absolutely everything."
He told me how screen dimming, orientation, notifications, different locking mechanisms and many other factors all had to be overcome to deliver an experience that mimicked paper forms on a tablet.
“We managed to solve what was, beforehand, a completely novel problem. I don't think anyone had done that sort of thing before but we managed it. Albeit with tools that existed at the time, but that's what all good technology is these days right, taking existing parts and putting them together to make something interesting and useful."
Principles and continuous learning
A key part of Ammar's approach is to continue to grow his surface area of knowledge to aid continuous personal improvement. He spoke about how learning things that aren't directly related to what you are working on can support your understanding of theory and sound principles, guiding you towards better solutions.
In this model, never one to wait for the next project to come along, Ammar has been learning .NET core over the last few months.
“My main motivations behind that? I'm always striving to be a more well-rounded software engineer, understanding all the different aspects."
One of the principles important to Ammar is the YAGNI principle from extreme programming. ‘You ain't gonna need it'.
“Something I've learned over the last few projects is, use your time wisely. Use the situations when you have more time, you have more wiggle room, to really maintain that pragmatism all the way through. Then you are giving yourself the best chance. In almost all projects you will come up against situations where there’s more work than there is time, and things have to slip, but you are giving yourself the best chance this way."
And so concludes our first staff Spotlight. Thanks for reading. If you found Ammar's background and direction as interesting as I did then keep an eye out for further Spotlights.