Available for freelance work
Full-stack developer and AI engineer specialising in intelligent systems, health tech, and scalable web solutions. Based in Manchester, working with clients worldwide.
From machine learning pipelines to enterprise networks โ a broad, battle-tested skillset built through real projects.
Real-world applications and systems โ click any project to see the evidence and technical detail.
Custom-built CNN and LLM pipeline trained on chest X-ray datasets to detect pneumonia with high accuracy. Implements advanced image preprocessing, data augmentation, and confidence-scored classification โ designed to assist radiologists in clinical settings.
This project was developed in Google Colab using TensorFlow. The notebook contains the full model architecture, training pipeline, data preprocessing steps, and evaluation metrics including accuracy and loss curves. Click above to view the live notebook.
Full-stack fitness app with RPG-style gamification โ earn XP, level up, unlock achievements, and compete on leaderboards. Tracks workouts, nutrition, sleep, and mental wellness through an engaging game-like interface.
Screenshots and demo video coming soon. Get in touch for a walkthrough of this project.
A custom variant of Go implemented from scratch in three fundamentally different paradigms: object-oriented Python, functional Haskell, and logic-based Prolog โ each identical in rules but radically different in design.
class GoGame:
def __init__(self, size):
self.board = [[None]*size for _ in range(size)]
self.bombs = {"Black": 2, "White": 2}
self.current_player = "Black"
def use_bomb(self, row, col):
for dr in [-1,0,1]:
for dc in [-1,0,1]:
r, c = row+dr, col+dc
if 0 <= r < self.size and 0 <= c < self.size:
self.board[r][c] = NoneuseBomb :: GameState -> (Int,Int) -> GameState
useBomb gs (r,c) =
let affected = [(r+dr, c+dc) | dr <- [-1..1], dc <- [-1..1],
inBounds (gsSize gs) (r+dr,c+dc)]
newBoard = foldr clearCell (gsBoard gs) affected
in gs { gsBoard = newBoard }use_bomb(State, Coord, NewState) :-
State = state(Size, Board, Player, BB, WB, BC, WC, PC),
bomb_coords(Coord, Size, Affected),
clear_cells(Board, Affected, NewBoard),
NewBombs is (Player == black -> BB-1 ; WB-1),
NewState = state(Size, NewBoard, Player,
NewBB, NewWB, BC, WC, PC).The same bomb mechanic โ implemented three ways. Python mutates shared state directly. Haskell returns a transformed copy. Prolog defines the resulting state as a logical consequence of rules.
Designed and configured a full enterprise network for a two-city consultancy (Manchester & London) โ 4 offices, 40 workstations, dynamic IP allocation, inter-site routing, SSH security, and wireless capability. Built and tested in Cisco Packet Tracer.
Network features: star topology per office, DHCP dynamic addressing (192.168.x.0/24 per subnet), RIP routing protocol for inter-office traffic, SSH-secured router access, wireless access points in every room, and full redundancy. Tested with 0% packet loss across all connection types.
Transparent, project-based pricing. Every engagement includes clear communication and clean, documented deliverables.
All prices are starting points โ get in touch for a free quote.
Client feedback coming soon. Early-stage engagements available at reduced rates in exchange for a review.
Want your logo and review here? Start a conversation โ
I'm Brandon โ a Computer Science graduate and the founder of BR.IT Solutions. I build intelligent systems, full-stack applications, and enterprise IT solutions for clients across the UK and beyond. I combine deep technical knowledge with commercial awareness and a genuine eye for design.
Open to freelance projects, collaborations, and consultancy. Let's talk.