Sam Serrels

PhD researcher & Graduate Teaching Assistant, 2016 - ongoing
Currently working towards a PhD on methods for visualizing and improving the performance of heterogeneous and parallel systems .
BSc (Hons), 2012 - 2016
Graduated with a First Class Degree with HonoursCraimgmount High School, 2006 - 2012
SQA advanced highers in : Mathematics, Computing, Physics
SQA highers in : Technological Studies, English
Edinburgh Napier University, 2016 - ongoing
Along with my research degree, I am also creating and delivering lectures and lab material for Undergrad students. Additionally I share responsibility for overseeing certain students groups, i.e., First year personal development.
Payfont Limited, February 2016 - July 2016
C++ Software Engineer, developing and improving cryptography algorithms with an emphasis on performance.
Edinburgh Napier University, May 2015 - December 2016
This started as a software development project to create a framework for visualising data networks that varies over time. As the project progressed it changed to be more research focused: investigating different layout methods, experimentation of visual channel encodings. and running a user study on the effects of combined vs separate data layouts
Edinburgh Napier University, May 2014 - December 2014
I was tasked with writing and publishing tutorials and applications for other students to use and learn from to develop for the Playstation 3 and Playstation Vita Development Kits. I then delivered a lecture covering console development and how it differs from traditional pc development.
October 2009
During which I developed an application to aid the merging of product databases into documentation for clients
Regularly organise and help with various events and groups to boost the local Edinburgh Video Games/Software Development, and creative technologies community. Including running exhibitions at the Science festival, maker faire, and independent events such "Games are for Everyone"
Organised and ran the Edinburgh chapter of the 48 hour Global Game Jam in 2016/17, this involved ensuring participants were well placed in their teams and had everything they needed to work effectively.
Represented BSc Games Development programme and School of Computing. Responsible for listening to issues from other students and ensuring representation at relevant committees. Ensured feedback was relayed back to students on the programme. Helped direct development of programme via meetings with academic staff.
Founded and ran the NVGS over the period of my degree. The society was developed to over a hundred members, with maintained relationships and partnerships with external organisations, and hosted Edinburgh wide events and charity fundraisers. Running the society gave me valuable experience in large event management and promotion, budgeting and fundraising, conflict resolution, and extensive interpersonal skills.
For the Programming Fundamentals module practical sessions, it was my responsibility to help first year students with any queries and problems. Involving elaborating on concepts covered in the lectures and providing further explanations on the module content.
Initially helped organise and run workshops held for high school students, introducing them to the fundamentals of games development. I have since produced content for running my own series of workshops, for delivery in May 2016.
Involved in the Edinburgh group of a nation wide attempt to break the Guinness World Record for the largest number of people simultaneously learning to code an Android app. My role before and after the record attempt to help participants and provide advice, during the record attempt period I was an official witness to verify the legitimacy of the event.
Hired to deliver a lecture to final year undergraduate students at Heriot-Watt University. The lecture content was an overview of the games industry: what tools and technologies are used, the development life-cycle, and the roles of software developers in games projects.
You can drop me an email at:sam@samserrels.com
My GPG Key:samserrels.com/gpg.txt
I'm also available on:Started in 2016 alongside my teaching role. Unfortunately ended in 2019 before I could finish the work, due to external circumstances. The project involved looking at how to improve the process of coding for GPU's, by utilizing new visual techniques to aid programmers.
This started out by looking at methods for live-capture debugging of GPGPU applications on AMD's rocm stack. This worked as a prototype, apps could be paused and the entire state of the gpu could be read out and analysed. This was promising but would require significantly more man hours than available to turn into a usable or measurable process for end-users or even just study participants.
Simulation was looked into, but the complexity, black box nature, and fast moving target that are GPUs made the task unfeasible for a phd project.
A static analysis approach was taken as a compromise. The compiler output ISA codes for GPUs give a good picture of the runtime behavior. As of that point in time the tooling around inspecting ISA code was lacking or nonfunctional. I built a web-based process for taking in a source OpenCL program, compiling it and showing the resultant ISA with metrics and visual aids. This was to help users understand and play with compiler options and rearranging the source code.
The code for that is here: github.com/dooglz/gpuvisunfortunately taking this prototype to users for analysis and iteration was never achieved. I did learn a whole lot about the innerworkigns of GPUS and an appreciation for tool design. I look back at this project as a worthwhile research endeavour
Final Thesis (incomplete): link
Info About HPC2
I was put in charge of the University's Compute cluster project. I was Responsible for purchasing, installation and config of computer server hardware and networking gear. I built a containerised Slurm deployment on top of Ubuntu across the 50 node system. Also I built web interfaces, wrote documentation, and integrated it all into corporate LDAP and email system.
A fun project, I learnt a load about sysadmin and networking. Configuring ancient switches, diagnosing dead hardware, now I can't live without IPMI in all my gear.
Loved: Docker, Ubuntu MAAS, networked power distro gear (so cool)
Hated: MS AD, Harddrives (despicable creatures), Cisco's serial config (no-shutdown anyone? Don't even ge me started on spanning tree)
The live config is all firewalled and confidential, however I did but out a generic version of the config: hgithub.com/dooglz/slurm_docker
See the workbook and lectures here:
dooglz.github.io/set09121
psst, it's all generated as github pages, even the lecture slides!
Source for labs and material github.com/dooglz/set09121