Callum McLennan

0 contributions on 2025-08-311 contributions on 2025-09-018 contributions on 2025-09-029 contributions on 2025-09-031 contributions on 2025-09-043 contributions on 2025-09-052 contributions on 2025-09-063 contributions on 2025-09-074 contributions on 2025-09-080 contributions on 2025-09-098 contributions on 2025-09-100 contributions on 2025-09-110 contributions on 2025-09-122 contributions on 2025-09-138 contributions on 2025-09-143 contributions on 2025-09-150 contributions on 2025-09-160 contributions on 2025-09-170 contributions on 2025-09-180 contributions on 2025-09-195 contributions on 2025-09-200 contributions on 2025-09-210 contributions on 2025-09-220 contributions on 2025-09-230 contributions on 2025-09-243 contributions on 2025-09-250 contributions on 2025-09-261 contributions on 2025-09-270 contributions on 2025-09-280 contributions on 2025-09-290 contributions on 2025-09-300 contributions on 2025-10-010 contributions on 2025-10-020 contributions on 2025-10-030 contributions on 2025-10-040 contributions on 2025-10-050 contributions on 2025-10-060 contributions on 2025-10-070 contributions on 2025-10-080 contributions on 2025-10-090 contributions on 2025-10-100 contributions on 2025-10-110 contributions on 2025-10-120 contributions on 2025-10-130 contributions on 2025-10-140 contributions on 2025-10-150 contributions on 2025-10-165 contributions on 2025-10-177 contributions on 2025-10-1813 contributions on 2025-10-1910 contributions on 2025-10-205 contributions on 2025-10-2118 contributions on 2025-10-2213 contributions on 2025-10-232 contributions on 2025-10-240 contributions on 2025-10-2510 contributions on 2025-10-2611 contributions on 2025-10-271 contributions on 2025-10-285 contributions on 2025-10-292 contributions on 2025-10-3011 contributions on 2025-10-313 contributions on 2025-11-0111 contributions on 2025-11-022 contributions on 2025-11-030 contributions on 2025-11-040 contributions on 2025-11-050 contributions on 2025-11-0613 contributions on 2025-11-070 contributions on 2025-11-080 contributions on 2025-11-090 contributions on 2025-11-100 contributions on 2025-11-110 contributions on 2025-11-120 contributions on 2025-11-136 contributions on 2025-11-1416 contributions on 2025-11-151 contributions on 2025-11-160 contributions on 2025-11-170 contributions on 2025-11-180 contributions on 2025-11-190 contributions on 2025-11-200 contributions on 2025-11-211 contributions on 2025-11-220 contributions on 2025-11-230 contributions on 2025-11-240 contributions on 2025-11-250 contributions on 2025-11-260 contributions on 2025-11-270 contributions on 2025-11-280 contributions on 2025-11-290 contributions on 2025-11-300 contributions on 2025-12-010 contributions on 2025-12-020 contributions on 2025-12-030 contributions on 2025-12-040 contributions on 2025-12-050 contributions on 2025-12-060 contributions on 2025-12-070 contributions on 2025-12-080 contributions on 2025-12-090 contributions on 2025-12-100 contributions on 2025-12-110 contributions on 2025-12-120 contributions on 2025-12-130 contributions on 2025-12-142 contributions on 2025-12-151 contributions on 2025-12-160 contributions on 2025-12-170 contributions on 2025-12-180 contributions on 2025-12-190 contributions on 2025-12-200 contributions on 2025-12-211 contributions on 2025-12-220 contributions on 2025-12-230 contributions on 2025-12-240 contributions on 2025-12-250 contributions on 2025-12-260 contributions on 2025-12-270 contributions on 2025-12-280 contributions on 2025-12-290 contributions on 2025-12-300 contributions on 2025-12-310 contributions on 2026-01-010 contributions on 2026-01-020 contributions on 2026-01-030 contributions on 2026-01-044 contributions on 2026-01-053 contributions on 2026-01-060 contributions on 2026-01-070 contributions on 2026-01-083 contributions on 2026-01-090 contributions on 2026-01-100 contributions on 2026-01-112 contributions on 2026-01-120 contributions on 2026-01-130 contributions on 2026-01-140 contributions on 2026-01-153 contributions on 2026-01-1613 contributions on 2026-01-1714 contributions on 2026-01-183 contributions on 2026-01-195 contributions on 2026-01-200 contributions on 2026-01-210 contributions on 2026-01-222 contributions on 2026-01-234 contributions on 2026-01-240 contributions on 2026-01-250 contributions on 2026-01-260 contributions on 2026-01-270 contributions on 2026-01-282 contributions on 2026-01-290 contributions on 2026-01-300 contributions on 2026-01-310 contributions on 2026-02-010 contributions on 2026-02-020 contributions on 2026-02-032 contributions on 2026-02-040 contributions on 2026-02-050 contributions on 2026-02-062 contributions on 2026-02-070 contributions on 2026-02-080 contributions on 2026-02-090 contributions on 2026-02-104 contributions on 2026-02-1110 contributions on 2026-02-122 contributions on 2026-02-132 contributions on 2026-02-140 contributions on 2026-02-150 contributions on 2026-02-160 contributions on 2026-02-177 contributions on 2026-02-182 contributions on 2026-02-191 contributions on 2026-02-205 contributions on 2026-02-210 contributions on 2026-02-220 contributions on 2026-02-233 contributions on 2026-02-244 contributions on 2026-02-251 contributions on 2026-02-260 contributions on 2026-02-270 contributions on 2026-02-280 contributions on 2026-03-010 contributions on 2026-03-021 contributions on 2026-03-033 contributions on 2026-03-041 contributions on 2026-03-054 contributions on 2026-03-067 contributions on 2026-03-070 contributions on 2026-03-083 contributions on 2026-03-090 contributions on 2026-03-100 contributions on 2026-03-110 contributions on 2026-03-120 contributions on 2026-03-130 contributions on 2026-03-140 contributions on 2026-03-151 contributions on 2026-03-160 contributions on 2026-03-170 contributions on 2026-03-180 contributions on 2026-03-190 contributions on 2026-03-201 contributions on 2026-03-212 contributions on 2026-03-221 contributions on 2026-03-231 contributions on 2026-03-240 contributions on 2026-03-250 contributions on 2026-03-260 contributions on 2026-03-270 contributions on 2026-03-280 contributions on 2026-03-290 contributions on 2026-03-302 contributions on 2026-03-310 contributions on 2026-04-019 contributions on 2026-04-028 contributions on 2026-04-030 contributions on 2026-04-0423 contributions on 2026-04-0552 contributions on 2026-04-0639 contributions on 2026-04-0717 contributions on 2026-04-0823 contributions on 2026-04-0912 contributions on 2026-04-100 contributions on 2026-04-110 contributions on 2026-04-121 contributions on 2026-04-130 contributions on 2026-04-140 contributions on 2026-04-150 contributions on 2026-04-161 contributions on 2026-04-170 contributions on 2026-04-180 contributions on 2026-04-190 contributions on 2026-04-200 contributions on 2026-04-210 contributions on 2026-04-220 contributions on 2026-04-230 contributions on 2026-04-240 contributions on 2026-04-250 contributions on 2026-04-260 contributions on 2026-04-270 contributions on 2026-04-280 contributions on 2026-04-290 contributions on 2026-04-300 contributions on 2026-05-010 contributions on 2026-05-020 contributions on 2026-05-030 contributions on 2026-05-040 contributions on 2026-05-050 contributions on 2026-05-060 contributions on 2026-05-070 contributions on 2026-05-0813 contributions on 2026-05-0961 contributions on 2026-05-1018 contributions on 2026-05-1110 contributions on 2026-05-1292 contributions on 2026-05-138 contributions on 2026-05-1436 contributions on 2026-05-1512 contributions on 2026-05-161 contributions on 2026-05-1722 contributions on 2026-05-188 contributions on 2026-05-1933 contributions on 2026-05-2025 contributions on 2026-05-2111 contributions on 2026-05-224 contributions on 2026-05-231 contributions on 2026-05-246 contributions on 2026-05-2525 contributions on 2026-05-2641 contributions on 2026-05-2729 contributions on 2026-05-2828 contributions on 2026-05-2911 contributions on 2026-05-3077 contributions on 2026-05-3154 contributions on 2026-06-0143 contributions on 2026-06-0252 contributions on 2026-06-0324 contributions on 2026-06-0411 contributions on 2026-06-0515 contributions on 2026-06-065 contributions on 2026-06-078 contributions on 2026-06-0828 contributions on 2026-06-090 contributions on 2026-06-108 contributions on 2026-06-115 contributions on 2026-06-120 contributions on 2026-06-1325 contributions on 2026-06-145 contributions on 2026-06-150 contributions on 2026-06-160 contributions on 2026-06-170 contributions on 2026-06-180 contributions on 2026-06-196 contributions on 2026-06-2028 contributions on 2026-06-2119 contributions on 2026-06-224 contributions on 2026-06-230 contributions on 2026-06-2410 contributions on 2026-06-2517 contributions on 2026-06-263 contributions on 2026-06-275 contributions on 2026-06-2813 contributions on 2026-06-2924 contributions on 2026-06-3012 contributions on 2026-07-019 contributions on 2026-07-024 contributions on 2026-07-038 contributions on 2026-07-0449 contributions on 2026-07-0510 contributions on 2026-07-0618 contributions on 2026-07-0729 contributions on 2026-07-0835 contributions on 2026-07-0936 contributions on 2026-07-1020 contributions on 2026-07-1111 contributions on 2026-07-1219 contributions on 2026-07-1322 contributions on 2026-07-1439 contributions on 2026-07-1515 contributions on 2026-07-164 contributions on 2026-07-170 contributions on 2026-07-181 contributions on 2026-07-190 contributions on 2026-07-201 contributions on 2026-07-217 contributions on 2026-07-2236 contributions on 2026-07-230 contributions on 2026-07-2424 contributions on 2026-07-2524 contributions on 2026-07-267 contributions on 2026-07-276 contributions on 2026-07-2817 contributions on 2026-07-2953 contributions on 2026-07-3019 contributions on 2026-07-3122 contributions on 2026-08-0113 contributions on 2026-08-0221 contributions on 2026-08-0323 contributions on 2026-08-0441 contributions on 2026-08-0522 contributions on 2026-08-0639 contributions on 2026-08-078 contributions on 2026-08-0815 contributions on 2026-08-0932 contributions on 2026-08-1026 contributions on 2026-08-1198 contributions on 2026-08-1228 contributions on 2026-08-1367 contributions on 2026-08-145 contributions on 2026-08-1527 contributions on 2026-08-1628 contributions on 2026-08-1733 contributions on 2026-08-1834 contributions on 2026-08-1937 contributions on 2026-08-2020 contributions on 2026-08-215 contributions on 2026-08-2216 contributions on 2026-08-231 contributions on 2026-08-244 contributions on 2026-08-251 contributions on 2026-08-262 contributions on 2026-08-279 contributions on 2026-08-287 contributions on 2026-08-292 contributions on 2026-08-302 contributions on 2026-08-313 contributions on 2026-09-0120 contributions on 2026-09-028 contributions on 2026-09-03

Idanoidano.cmclennan.dev

screenshotIdano game board mid-round, showing dealt cards and score

A real-time multiplayer card game — lobby matchmaking and live game-state sync across players, backed by PocketBase. Rules follow classic flip-and-swap card games: 4×3 grid, lowest score wins.

Vue3 · PocketBase

scanviewscanview.cmclennan.devgithub

screenshot
scanview 3D MRI viewer with classification results

MSc dissertation project exploring deep learning for Alzheimer's detection from MRI scans. Upload a real .nii scan and classify it against the trained model live — 3D volume viewer, custom CNN, deployed on a resource-capped VPS with training disabled on the public build.

Python · TensorFlow · Flask · Three.js

Software EngineerNourish Care2024 – Present

Software EngineerDevon County Council2021 – 2024

MSc Data Science and Advanced ComputingUniversity of Reading2021 – 2022

BSc Computer ScienceUniversity of Reading2018 – 2021