My Student Placement Year at NAG
I'm Joe Davison, a Computer Science undergrad at Bath Uni, and I've just spent my year in industry at NAG as a Software Engineer. Working with NAG has been a brilliant opportunity to work in different areas of a software company, with support from experienced and super helpful colleagues.
I was placed in the Implementations Team, who build and test the NAG Library for all the different systems and languages needed by customers. I was quickly given responsibility for the Java version of the Library, allowing me to get stuck in with the details of NAG's codebase, and take ownership of a project throughout my placement.
I also had great opportunities to work on new routines for the Library – the highlight being a collaboration with US Professor Thomas Cameron on a new polynomial root finding algorithm. I was able to see this collaboration through from start to finish – testing the new method against NAG's current routine, discussing aspects of the code with Thomas to improve its performance and robustness, and eventually adding it for a future release of the NAG Library.
Across all the different projects I’ve worked on, I’ve been able to learn about and improve my skills with development processes, new languages, new environments (Linux is no longer a mystery to me!), communicating between languages, rigorous testing of new routines, debugging, version control, build systems, scripting, and the odd bit of customer support too.
Working at NAG had benefits on top of developing software skills. The work environment is relaxed yet focused, allowing me to learn a lot without the stress of overworking or mounting deadlines. I've also been able to strike a great work-life balance; flexible working hours, the option to work from home if I need to, and generous holiday – no working between Christmas and New Year!
If, like me 18 months ago, you're an undergrad looking for a placement and stumbled across these blogs - NAG is a great introduction to the working world and you'll get opportunities to learn about software development, the maths behind routines, and anything else you can think of while you’re here.