HELLO
I'm a London based software developer and I primarily work on web apps. Please feel free to look through some of my projects.
Say hi to me on the contact page.
I'm a London based software developer and I primarily work on web apps. Please feel free to look through some of my projects.
Say hi to me on the contact page.
2026-08-04 15:52:53
inventorymanager2026-08-04 14:16:58
inventorymanager2026-08-04 10:30:15
workoutreader2026-08-04 10:26:24
workoutreader2026-08-04 10:15:31
workoutreader2026-08-03 18:12:18
archsite2026-08-03 18:12:12
archsite2026-08-03 18:08:47
archsite2026-08-02 20:51:52
mgck2026-08-02 20:09:16
mgck2026-08-02 19:42:27
mgck2026-08-02 19:29:44
mgck2026-08-02 19:18:48
mgck2026-08-02 19:00:33
mgck2026-08-02 18:16:21
mgck2026-08-02 18:06:45
mgck2026-08-02 18:03:50
mgck2026-08-02 17:37:48
mgck2026-08-02 17:21:00
mgck2026-08-02 00:37:40
mgck2026-08-02 00:34:22
mgck2026-08-01 14:46:31
fgs2026-08-01 00:09:11
inventorymanager2026-07-31 23:47:48
inventorymanager2026-07-31 22:55:08
inventorymanager2026-07-31 20:43:08
fgs2026-07-31 20:14:07
fgs2026-07-31 16:23:49
foodinventorymanager2026-07-31 15:56:58
foodinventorymanager2026-07-31 15:30:29
foodinventorymanager2026-07-31 10:49:05
foodinventorymanager2026-07-31 10:24:20
foodinventorymanager2026-07-31 10:07:52
workoutreader2026-07-31 10:07:01
workoutreader2026-07-31 10:03:37
workoutreader2026-07-31 10:02:31
foodinventorymanager2026-07-31 09:55:40
workoutreader2026-07-31 09:44:18
foodinventorymanager2026-07-31 09:32:32
foodinventorymanager2026-07-31 00:06:02
foodinventorymanager2026-07-30 23:26:43
transaction-manager-v22026-07-30 23:22:15
foodinventorymanager2026-07-30 23:20:25
foodinventorymanager2026-07-30 23:17:47
foodinventorymanager2026-07-30 22:56:38
workoutreader2026-07-30 22:50:21
workoutreader2026-07-30 22:06:41
workoutreader2026-07-30 21:47:50
workoutreader2026-07-30 21:46:47
workoutreader2026-07-30 21:19:30
transaction-manager-v22026-07-30 21:04:43
transaction-manager-v22026-07-30 20:56:14
transaction-manager-v22026-07-29 20:47:05
fgs2026-07-29 19:19:17
fgs2026-07-29 19:05:08
fgs2026-07-29 18:40:59
fgs2026-07-29 17:46:14
fgs2026-07-28 21:50:22
transaction-manager-v22026-07-28 20:59:52
transaction-manager-v22026-07-28 20:28:36
transaction-manager-v22026-07-28 20:21:24
transaction-manager-v22026-07-28 20:10:11
transaction-manager-v22026-07-28 18:54:41
transaction-manager-v22026-07-27 15:32:53
transaction-manager-v22026-07-27 15:17:38
transaction-manager-v22026-07-27 14:59:58
transaction-manager-v22026-07-27 14:59:52
transaction-manager-v22026-07-27 12:09:20
transaction-manager-v22026-07-26 21:23:17
RbbBot2026-07-26 21:20:43
RbbBot2026-07-26 21:20:13
RbbBot2026-07-25 22:55:28
transaction-manager-v22026-07-25 22:19:33
transaction-manager-v22026-07-25 21:58:00
transaction-manager-v22026-07-25 20:46:35
transaction-manager-v22026-07-25 14:16:12
transaction-manager-v22026-07-25 00:24:04
transaction-manager-v22026-07-24 23:44:14
transaction-manager-v22026-07-24 21:20:06
transaction-manager-v22026-07-24 20:46:03
transaction-manager-v22026-07-24 18:19:54
transaction-manager-v22026-07-24 17:52:37
transaction-manager-v22026-07-23 15:00:11
videoopt2026-07-23 14:57:06
videoopt2026-07-23 14:53:01
videoopt2026-07-23 14:52:03
videoopt2026-07-23 14:46:54
videoopt2026-07-23 14:03:36
videoopt2026-07-22 20:41:35
videoopt2026-07-22 19:01:12
videoopt2026-07-22 18:39:54
videoopt2026-07-21 20:01:36
mgck2026-07-20 19:49:56
videoopt2026-07-19 23:08:52
inventorymanager2026-07-19 21:00:39
inventorymanager2026-07-19 20:01:54
inventorymanager2026-07-19 19:46:17
inventorymanager2026-07-19 19:44:22
inventorymanager2026-07-19 19:33:36
videoopt2026-07-19 18:58:19
videoopt2026-07-19 18:36:03
inventorymanager2026-07-19 18:07:32
videoopt2026-07-19 18:01:49
videoopt2026-07-19 17:56:47
videoopt2026-07-19 16:42:52
videoopt2026-07-19 04:06:45
videoopt2026-07-19 03:12:06
videoopt2026-07-19 02:53:24
videoopt2026-07-19 02:44:01
videoopt2026-07-19 00:43:50
RbbBot2026-07-18 22:52:48
RbbBot2026-07-18 21:23:29
RbbBot2026-07-18 16:36:59
RbbBot2026-07-18 16:09:47
RbbBot2026-07-18 13:48:48
RbbBot2026-07-17 23:33:26
mgck2026-07-17 23:31:59
RbbBot2026-07-17 18:42:48
mgck2026-07-17 14:12:28
mgck2026-07-17 12:14:36
mgck2026-07-17 11:34:31
mgck2026-07-16 22:45:26
mgck2026-07-16 21:57:58
mgck2026-07-16 20:52:23
mgck2026-07-16 14:01:15
mgck2026-07-16 13:09:37
mgck2026-07-16 13:09:37
mgck2026-07-16 13:09:31
mgck2026-07-16 01:24:04
mgck2026-07-16 00:13:12
mgck2026-07-16 00:13:12
mgck2026-07-15 22:15:50
RbbBot2026-07-15 17:21:52
RbbBot2026-07-15 16:42:45
RbbBot2026-07-13 17:41:52
workoutreader2026-07-12 00:40:04
fgs2026-07-12 00:38:41
fgs2026-07-12 00:36:50
fgs2026-07-12 00:36:41
fgs2026-07-12 00:06:06
blog2026-07-11 22:48:32
blog2026-07-11 22:30:05
blog2026-07-11 22:29:58
blog2026-07-11 22:06:43
blog2026-07-11 22:06:35
blog2026-07-11 16:14:43
local-playlist-maker2026-07-11 16:14:20
local-playlist-maker2026-07-10 23:41:04
local-playlist-maker2026-07-09 09:42:30
mgck2026-07-07 11:37:23
foodinventorymanager2026-07-06 16:02:48
local-playlist-maker2026-07-06 15:34:21
local-playlist-maker2026-07-06 15:30:25
local-playlist-maker2026-07-04 23:25:23
headsup2026-07-04 22:43:33
headsup2026-07-04 22:41:59
headsup2026-07-04 22:36:34
headsup2026-07-04 22:29:03
headsup2026-07-04 22:25:38
headsup2026-07-04 22:11:36
headsup2026-07-04 21:12:17
headsup2026-07-04 20:59:28
headsup2026-07-04 20:47:53
headsup2026-07-04 20:38:54
headsup2026-07-04 20:34:45
headsup2026-07-04 19:49:44
headsup2026-06-29 18:16:08
fgs2026-06-29 18:02:03
fgs2026-06-21 09:47:42
headsup2026-06-21 09:45:43
headsup2026-06-21 09:45:00
headsup2026-06-21 09:33:39
headsup2026-06-21 09:30:45
headsup2026-06-21 09:30:40
headsup2026-06-19 14:22:45
archsite2026-06-03 12:31:13
portfolio-watcher2026-06-03 10:03:44
mgck2026-06-03 06:17:56
mgck2026-06-03 06:06:46
mgck2026-06-03 06:06:25
mgck2026-06-02 21:30:32
mgck2026-06-02 20:04:52
mgck2026-06-02 20:03:49
mgck2026-05-31 19:19:53
mgck2026-05-31 00:28:46
fgs2026-05-30 23:22:10
fgs2026-05-30 17:10:35
fgs2026-05-30 16:58:57
fgs2026-05-23 15:19:14
mgck2026-05-23 15:09:24
mgck2026-05-23 15:05:38
mgck2026-05-23 14:45:13
mgck2026-05-22 23:26:52
mgck2026-05-22 22:51:50
mgck2026-05-20 19:53:48
fgs2026-05-18 22:06:10
fgs2026-05-18 21:56:47
fgs2026-05-18 21:51:28
fgs2026-05-18 18:39:12
portfolio-watcher2026-05-17 17:24:19
fgs2026-05-17 17:13:57
fgs2026-05-17 16:27:16
fgs2026-05-17 15:25:39
fgs2026-05-17 15:12:02
fgs2026-05-17 14:58:44
fgs2026-05-16 20:43:01
fgs2026-05-11 12:25:26
portfolio-watcher2026-05-11 12:16:27
portfolio-watcher2026-05-07 08:22:07
portfolio-watcher2026-05-05 14:35:34
portfolio-watcher2026-05-05 14:12:02
portfolio-watcher2026-04-30 10:39:11
portfolio-watcher2026-04-22 20:31:18
portfolio-watcher2026-04-22 20:06:15
portfolio-watcher2026-04-22 20:01:40
portfolio-watcher2026-04-22 19:50:54
portfolio-watcher2026-04-22 19:46:46
portfolio-watcher2026-04-22 19:41:01
portfolio-watcher2026-04-22 19:40:54
portfolio-watcher2026-04-22 18:50:53
portfolio-watcher2026-04-20 17:43:58
portfolio-watcher2026-04-20 14:02:02
portfolio-watcher2026-04-19 22:25:16
fgs2026-04-19 21:47:48
portfolio-watcher2026-04-19 19:18:27
polymarket-analysis2026-04-19 18:50:04
polymarket-analysis2026-04-19 18:49:05
polymarket-analysis2026-04-19 18:34:29
polymarket-analysis2026-04-19 18:07:07
polymarket-analysis2026-04-19 17:00:27
polymarket-analysis2026-04-19 16:25:08
polymarket-analysis2026-04-18 16:59:28
portfolio-watcher2026-04-18 16:24:17
portfolio-watcher2026-04-18 16:20:45
portfolio-watcher2026-04-18 16:14:56
portfolio-watcher2026-04-18 14:42:05
portfolio-watcher2026-04-16 21:45:56
portfolio-watcher2026-04-16 20:01:35
portfolio-watcher2026-04-16 19:54:39
portfolio-watcher2026-04-16 19:44:57
portfolio-watcher2026-04-16 19:36:12
portfolio-watcher2026-04-16 18:21:59
portfolio-watcher2026-04-16 18:03:29
portfolio-watcher2026-04-16 17:30:45
portfolio-watcher2026-04-16 16:16:14
portfolio-watcher2026-04-16 15:21:19
portfolio-watcher2026-04-16 08:56:47
portfolio-watcher2026-04-10 18:45:06
portfolio-watcher2026-04-10 13:12:17
portfolio-watcher2026-04-10 12:21:05
portfolio-watcher2026-04-08 15:12:52
fgs2026-04-08 14:54:59
fgs2026-04-08 14:41:00
fgs2026-04-08 14:39:13
fgs2026-04-08 14:30:43
fgs2026-04-06 18:24:47
portfolio-watcher2026-04-06 17:14:07
portfolio-watcher2026-04-06 17:13:58
portfolio-watcher2026-04-06 17:13:46
portfolio-watcher2026-04-05 15:09:42
portfolio-watcher2026-04-03 23:55:32
portfolio-watcher2026-04-03 21:07:56
portfolio-watcher2026-04-03 20:53:18
portfolio-watcher2026-04-03 20:00:43
portfolio-watcher2026-04-03 19:48:16
portfolio-watcher2026-04-03 19:26:25
portfolio-watcher2026-04-03 18:46:51
portfolio-watcher2026-04-03 18:32:20
portfolio-watcher2026-04-03 18:12:36
portfolio-watcher2026-04-03 17:52:23
portfolio-watcher2026-04-03 17:22:25
portfolio-watcher2026-04-03 15:26:43
portfolio-watcher2026-04-03 15:13:18
portfolio-watcher2026-04-03 14:53:12
portfolio-watcher2026-04-03 13:14:28
portfolio-watcher2026-04-02 15:38:16
portfolio-watcher2026-04-02 15:18:10
portfolio-watcher2026-04-02 11:22:56
portfolio-watcher2026-03-31 13:33:27
fgs2026-03-31 12:49:54
fgs2026-03-30 23:43:02
fgs2026-03-30 23:01:46
fgs2026-03-30 22:40:49
fgs2026-03-30 22:39:44
fgs2026-03-30 21:38:03
fgs2026-03-30 13:00:54
blog2026-03-28 18:41:58
gomergesortcli2026-03-28 18:34:32
gomergesortcli2026-03-28 18:07:28
fgs2026-03-28 17:58:50
fgs2026-03-28 17:41:47
fgs2026-03-28 16:21:51
fgs2026-03-27 21:36:26
gomergesortcli2026-03-26 12:18:30
fgs2026-03-26 11:30:51
fgs2026-03-25 16:05:42
fgs2026-03-25 15:00:23
fgs2026-03-25 14:41:49
fgs2026-03-25 12:31:49
portfolio-watcher2026-03-25 11:41:43
portfolio-watcher2026-03-24 21:58:59
portfolio-watcher2026-03-24 21:30:34
portfolio-watcher2026-03-24 20:17:32
portfolio-watcher2026-03-24 17:49:47
portfolio-watcher2026-03-24 16:53:49
portfolio-watcher2026-03-24 16:25:16
portfolio-watcher2026-03-24 15:17:39
portfolio-watcher2026-03-23 20:13:15
portfolio-watcher2026-03-23 18:00:21
portfolio-watcher2026-03-23 17:55:41
portfolio-watcher2026-03-23 17:29:09
portfolio-watcher2026-03-23 17:29:01
portfolio-watcher2026-03-23 17:07:10
inventorymanager2026-03-22 17:40:07
portfolio-watcher2026-03-22 16:56:48
portfolio-watcher2026-03-22 12:54:55
portfolio-watcher2026-03-22 12:51:37
portfolio-watcher2026-03-22 10:44:47
portfolio-watcher2026-03-20 21:00:23
portfolio-watcher2026-03-20 19:32:38
portfolio-watcher2026-03-19 14:29:49
portfolio-watcher2026-03-19 14:25:04
portfolio-watcher2026-03-19 11:38:09
mgck2026-03-18 15:24:17
portfolio-watcher2026-03-18 07:58:09
musictags2026-03-14 20:04:48
portfolio-watcher2026-03-14 00:19:58
portfolio-watcher2026-03-13 23:45:06
portfolio-watcher2026-03-13 23:44:50
portfolio-watcher2026-03-13 23:38:28
portfolio-watcher2026-03-10 23:52:45
portfolio-watcher2026-03-10 18:14:49
blog2026-03-10 17:33:58
blog2026-03-08 13:29:43
blog2026-03-07 15:26:33
blog2026-03-07 13:54:00
blog2026-03-07 13:37:01
blog2026-03-07 13:21:22
blog2026-03-03 15:03:13
research-bot2026-03-03 13:58:54
research-bot2026-03-03 12:49:22
research-bot2026-03-03 10:44:36
research-bot2026-03-03 09:16:30
research-bot2026-03-02 15:12:48
portfolio-watcher2026-03-02 13:09:04
portfolio-watcher2026-03-01 20:26:26
research-bot2026-03-01 19:23:53
research-bot2026-03-01 17:54:08
research-bot2026-03-01 17:50:11
research-bot2026-02-28 18:52:54
moodtea2026-02-28 14:23:20
research-bot2026-02-28 13:28:59
research-bot2026-02-28 13:10:50
research-bot2026-02-28 12:45:02
research-bot2026-02-28 12:30:59
portfolio-watcher2026-02-28 12:15:31
portfolio-watcher2026-02-28 12:09:13
research-bot2026-02-28 11:49:32
portfolio-watcher2026-02-28 11:31:12
research-bot2026-02-28 11:12:58
research-bot2026-02-28 10:49:48
research-bot2026-02-28 10:33:53
portfolio-watcher2026-02-27 19:35:53
fgs2026-02-27 19:26:37
portfolio-watcher2026-02-27 18:51:13
portfolio-watcher2026-02-26 15:29:36
research-bot2026-02-26 13:55:33
research-bot2026-02-26 13:23:31
research-bot2026-02-26 11:09:26
research-bot2026-02-25 19:17:10
inventorymanager2026-02-25 18:06:25
inventorymanager2026-02-25 18:06:06
inventorymanager2026-02-25 17:03:59
inventorymanager2026-02-25 13:48:55
inventorymanager2026-02-25 11:37:55
inventorymanager2026-02-25 08:06:13
moodtea2026-02-24 21:06:45
moodtea2026-02-24 20:55:24
moodtea2026-02-24 20:32:31
moodtea2026-02-24 20:29:54
moodtea2026-02-24 19:52:39
research-bot2026-02-24 19:20:33
research-bot2026-02-24 19:05:24
research-bot2026-02-24 16:07:02
research-bot2026-02-24 13:44:42
research-bot2026-02-24 12:54:38
moodtea2026-02-23 19:13:36
research-bot2026-02-23 18:59:42
research-bot2026-02-23 18:50:24
research-bot2026-02-23 18:44:44
research-bot2026-02-23 17:55:10
research-bot2026-02-23 15:34:10
research-bot2026-02-23 14:59:19
research-bot2026-02-23 14:12:11
research-bot2026-02-23 13:47:52
research-bot2026-02-23 13:20:35
research-bot2026-02-20 12:20:29
workoutreader2026-02-20 11:18:37
workoutreader2026-02-20 10:07:44
workoutreader2026-02-19 20:50:59
workoutreader2026-02-19 18:54:30
workoutreader2026-02-19 18:33:48
fgs2026-02-19 16:53:29
fgs2026-02-19 14:22:47
fgs2026-02-19 13:24:54
research-bot2026-02-18 19:13:22
research-bot2026-02-18 18:07:53
research-bot2026-02-18 13:38:36
research-bot2026-02-18 11:22:05
research-bot2026-02-18 09:03:09
research-bot2026-02-17 20:53:40
research-bot2026-02-17 20:30:26
research-bot2026-02-17 19:34:00
research-bot2026-02-17 19:32:01
research-bot2026-02-17 18:51:59
research-bot2026-02-17 18:38:59
research-bot2026-02-17 18:38:21
research-bot2026-02-17 18:36:26
research-bot2026-02-17 17:46:35
research-bot2026-02-17 13:53:58
research-bot2026-02-16 16:56:52
mgck2026-02-16 16:33:57
blog2026-02-16 16:33:46
blog2026-02-16 16:24:37
blog2026-02-16 16:24:20
blog2026-02-16 14:45:03
blog2026-02-16 13:06:16
blog2026-02-16 13:04:53
blog2026-02-16 12:46:17
blog2026-02-16 12:36:47
blog2026-02-16 12:36:21
blog2026-02-16 11:31:39
fgs2026-02-15 19:36:42
fgs2026-02-15 17:19:41
fgs2026-02-15 17:01:59
fgs2026-02-15 16:59:56
fgs2026-02-15 16:50:21
fgs2026-02-15 16:38:00
fgs2026-02-15 11:16:39
fgs2026-02-15 11:14:27
fgs2026-02-15 10:57:05
fgs2026-02-15 10:41:49
fgs2026-02-14 18:41:46
fgs2026-02-14 18:38:06
fgs2026-02-14 18:16:22
fgs2026-02-14 18:04:11
fgs2026-02-14 17:57:50
fgs2026-02-14 17:53:40
fgs2026-02-14 17:46:10
fgs2026-02-14 17:43:55
fgs2026-02-14 17:36:19
fgs2026-02-14 17:09:50
fgs2026-02-14 16:53:35
fgs2026-02-14 16:06:55
fgs2026-02-14 15:19:16
fgs2026-02-14 12:54:30
fgs2026-02-14 11:50:41
fgs2026-02-14 09:16:18
fgs2026-02-13 21:19:42
fgs2026-02-13 20:25:04
fgs2026-02-13 19:29:17
fgs2026-02-13 19:24:38
fgs2026-02-13 18:09:21
fgs2026-02-13 18:02:38
fgs2026-02-13 17:22:17
fgs2026-02-13 13:50:07
fgs2026-02-13 13:01:33
fgs2026-02-13 12:59:41
fgs2026-02-13 12:39:18
fgs2026-02-13 12:24:23
fgs2026-02-13 11:31:41
fgs2026-02-13 11:10:26
fgs2026-02-13 10:54:45
fgs2026-02-12 17:20:02
fgs2026-02-12 16:10:20
fgs2026-02-12 16:00:42
fgs2026-02-12 12:44:48
fgs2026-02-11 15:08:38
fgs2026-02-11 14:16:25
fgs2026-02-11 14:16:17
fgs