Intro
Hi, I’m Kris, welcome to my website and thank you for visiting. What you’ll find here is a whole bunch of technical write ups focusing on problems I’ve solved. A lot of these will contain interactive demos that’ll run within your browser which will hopefully both make it easier to understand what I’ve done and also add a factor of fun to each post. My intention is for the website to act both as a technical portfolio and as a resource for other developers to use if they wish to find implementation details on the things I’ve worked on.
If you want to skip the ‘about me’ section (which admittedly is rather rambly but I wanted to give a good picture of my character) then click the ‘three lines‘ Icon at the top of the post to open the list of posts.
About me
I am a software engineer with over 5 years of professional experience, and I have a MSc in Computer Science for Games Development from the University of Hull. My most recent full time role was as a Lead Game Developer on the Stage project at VISR where my core responsibilities were essentially focused on getting the project to a point that it could be launched in a stable state. This was a lot of fun because I got to work on practically every part of the project and I am very proud of what the team achieved together. As Stage was in a good state and ready for release, I have decided to move on to focus on the areas of programming that really excite me. As such, I’m open to being contacted for career opportunities through Linkedin.
My core area of interest is in graphics programming, I’m still learning a lot every day and I’m confident that even if I study for the rest of my life I’d still keep discovering new things. My love for graphics programming blossomed whilst studying for my Masters, a lot of the course content was focused on C++ and DirectX. In my year, I accidentally ended up becoming the “guy who can do shaders” which basically meant that I got to work with every team during the game jams we took part in.
I loved graphics programming so much that it became the focus of my Master’s dissertation, which revolved around implementing an RTX based renderer. This was really fun at the time because I started my dissertation in the Summer of 2019 and as it was around 6 months after the launch of the RTX 2080 it meant that a lot of the documentation wasn’t really geared towards students. Because of this, as I tinkered away I gradually got to build my confidence in approaching problems that seemed initially extremely difficult to solve. One of my favourite things about my dissertation was that it also gave me the chance to go back and read about renderers from the very start, it still makes me smile thinking about how in Appel’s “Some techniques for shading machine renderings of solids” they had to first figure out how to actually output the renders because the only realistic approach at the time was to print patterns onto paper.
During my dissertation I also got my job at VISR. The aforementioned confidence in solving new problems came in very useful immediately because the first project I got to work on was based around computer vision and spatial understanding. This involved processing lots of data in a way that needed to be very accurate which felt quite different to how in gamedev you rarely need to be 100% accuarate. Thankfully spending so long playing with shaders meant that I’d become quite good at linear algebra and the project itself was a really fun challenge. After that, I got to learn a lot about programming networked gameplay logic which I really liked because it’s another area that’s difficult to find good resources on but feels really rewarding when it starts coming off. Throughout the five years I’d spent at VISR I got to work on a bunch more R&D projects before moving on to Stage. Stage is an app focused on creating immersive multiplayer experiences that can take place both locally and remote. Whilst working on Stage I also became a mentor for the newer developers joining the company, this was really rewarding as I got to watch them become really good and I’ll be really proud of whatever they go on to achieve for themselves.
Outside of work, I love playing games. Banjo Kazooie and Donkey Kong 64 hold a special place in my heart (if you look hard enough you might be able to find a shrine to Chunky Kong hidden within the website) and I feel like the Zelda games are the whole reason why I got so into programming at college because I realised programming was just a never ending Zelda puzzle. I’ve also recently joined my friend’s board game group and I’m really enjoying the chance to experience a different type of gaming I’m used to. I also really like playing sports. I’ve played football for as long as I can remember and I started playing basketball around two years ago. I’m a season ticket holder for my local football team and I always really like looking into the statistics for what’s been happening throughout the season. I want to get into data science at some point so that I can have more fun analysing the games.
I also can gain new interests at the drop of a hat. If someone is passionate enough about a topic to let me see the world through their eyes then I’m always really excited to learn more about that topic. For example, recently a friend sent me a Uri Tuchman video, I’d not seen his videos before but now I kinda want to make a clock because he clearly loves doing it. I also never considered that you can just make screws.
At the moment my core focus is on building out content for this website, there’s so much I’ve worked on in my spare time that I really want to show off to everyone. When that’s done, outside of looking for new opportunities, I want to finally make a game for my Mum since I think she’d love it.
Lists
I know usually there’s a list somewhere with all the things the person knows about in the website so below is that list awkwardly added in to the bottom :)
Languages
C++, C #, TypeScript, lua, JavaScript, HLSL, GLSL, Python, GDScript
Software
Git, Unity, Unreal, Godot, Visual Studio, VSCode, Docker, Blender, NSight Graphics, RenderDoc, vvvv gamma, Cloud Compare,
Development Libraries and Sdks
DirectX 11 and 12, DXR, Vulkan, OpenGL, WebGL, WebGPU, ThreeJS, BabylonJS, OpenFrameworks, PCL (Point Cloud Library), OpenCV, Open3D, WebRTC, OpenXR, Oculus XR, MRTK, MoonSharp, Azure Remote Rendering, Azure Photo Recognition