I'm a programmer and I live in the UK Finland. If you would like to get in touch you can email me at mike@mikejsavage.co.uk.

Right now I am slowly working on a little game engine, and I occasionally write programming related blog posts (RSS feed here). My older projects are on Github.

Blog archive

02 Dec 2017C++ tricks: macro to disable optimisations
30 Nov 2017Preprocessor madness 2
17 Nov 2017RSS feed
17 Nov 2017Deadlock
14 Nov 2017Preprocessor madness
03 Nov 2017C++ tricks: sized array arguments
01 Nov 2017Linux vs BSD in a man page
31 Oct 2017Monocypher is excellent
29 Oct 2017GL_FRAMEBUFFER_SRGB sucks
24 Oct 2017Roadblocks to releasing Medfall on macOS
24 Oct 2017Vim: peek definition
18 Oct 2017OpenSMTPD is excellent
15 Oct 2017Not even not upgrading can save me
15 Oct 2017Optimising vs expanding to fill all available resources
09 Oct 2017Windows 10 post-install checklist
07 Oct 2017Code for my intro to raytracing talk
07 Oct 2017C++ tricks: autogdb
03 Oct 2017More installer junk
01 Oct 2017Really finishing the job
03 Sep 2017OpenGL uniforms and renderer design rambling
02 Sep 2017Detecting TCP server crashes
24 Aug 2017ggformat
23 Aug 2017Saving scroll position when refreshing
23 Aug 2017Never update anything
20 Aug 2017Ruoka Helsingissä
16 Aug 2017SIGGRAPH 2017
14 Aug 2017Rust performance: finishing the job
14 Jul 2017Fixing the Visual Studio forms designer
04 Jul 2017Vim
30 Jun 2017Wat
30 Jun 2017C++ tricks: least effort conditional breakpoints
29 Jun 2017Writing installers for Windows
25 Jun 2017C++ tricks: NO_INIT
01 May 2017Pwn3d
22 Apr 2017Progress: libinput
11 Apr 2017bug489729
01 Apr 2017C++ tricks: better casting
25 Mar 2017Least effort unit tests
23 Mar 2017Caches are fast, hashes are fast
02 Mar 2017C++ tricks: ZERO
02 Mar 2017C++ tricks: safe ARRAY_COUNT
31 Jan 2017Dumping a git repository to an encrypted zip file
25 Jan 2017Windows post-install for developers
29 Dec 2016Billions
23 Apr 2016Auto-mounting removable drives
27 Dec 2015Moving to OpenBSD