SOFTWARE ENGINEER · LONDON
Tehj PatelUseful software.
Thoughtfully built.
I’m a software engineer in London, building AI-powered applications and automation tools around real people and practical problems.
Explore the work
AI. Automation. Real-world tools.
A closer look at the work.
From security workflows to everyday admin: explore the problems, the interfaces and the code behind my projects.
Sentinel / Security operations dashboardSentinel
A security operations prototype for investigating synthetic incidents through evidence-backed, auditable workflows, with deterministic analysis and human-approved simulated remediation.
What it does
- Security event simulation, detection and correlation
- Deterministic 0–100 risk scoring and incident investigation
- Controlled investigation tools and role-based remediation approval
- Row Level Security, audit trails and secure backend workflows
An account is required to access the workspace.
Behind the build
The problem
Security alerts need context, traceable evidence and clear approval steps before an operator takes action.
The implementation
A React and TypeScript dashboard connects to Supabase Auth, PostgreSQL and narrowly scoped Edge Functions. Synthetic events are scored and correlated into incidents, with investigation findings and audit records kept together.
A key decision
Privileged state changes happen in server-side functions with role checks. Remediation requires approval and runs as a simulated state transition, keeping the prototype safe to exercise.
Current result
A deployed, account-based prototype for exploring the incident workflow. Its analyst output is currently deterministic; model-provider integration is a future extension.
Explore the architecture ↗

Local Lens
An AI-powered civic reporting platform that transforms resident-submitted images into structured reports, prioritises issues and helps organisations manage community problems more efficiently.
Sign in to submit reports. The app may need a moment to wake on Streamlit.
Behind the build
The problem
A photo can show a community issue, but reviewers still need a consistent description, category, severity and location.
The implementation
A Streamlit interface brings together image analysis, an editable report form, Supabase storage, searchable reports, maps and council-focused insights.
A key decision
Vision output is normalised into defined categories and severity levels, then presented for review. The analysis service supports Claude or a configured local Ollama model, with a manual reporting path when analysis is optional.
Current result
A deployed beta that lets visitors explore the reporting interface. An account is required to submit reports, and image analysis depends on the configured provider.
See the image-analysis implementation ↗RoboThink Register
A deployed attendance and lesson-progress system for RoboThink instructors, with student tracking, curriculum progression, reports and role-based access. Access is restricted to authorised staff.
Sign-in is restricted to authorised RoboThink staff.
Behind the build
The problem
Teaching teams need to track who attended, which lesson was actually taught, whether progression should advance and what feedback still needs completing.
The implementation
A React and TypeScript application combines the daily register, attended sessions, lesson outcomes, assessment follow-up and feedback reminders. Supabase provides authentication, database policies and server-side progression functions.
A key decision
Attendance and progression are separate: completing the current progression lesson advances the student, while an unfinished session or another lesson does not. Each attended session keeps its own feedback record.
Current result
A deployed internal application for authorised RoboThink staff, supported by instructor guides and unit tests covering attendance, progression, assessments and bulk actions.
Read the workflow documentation ↗Ongoing work
More in the making
Active builds and released projects receiving ongoing improvements.

ForgeFlow
A pull request analysis prototype built around evidence-backed findings and transparent risk scoring. Includes a role-checked API, Redis queue and worker abstraction, PostgreSQL persistence, GitHub integration helpers and a React review dashboard.
Static analysis and risk scoring are implemented. End-to-end worker processing, live dashboard results, sandbox execution and model-provider integration are still being connected.
Sillage
I’m a fragrance nerd, and I couldn’t find an app that recommended fragrances the way I wanted. I’m a software developer—so I built one. Sillage brings together weather-aware recommendations, collection tracking, wear journaling and comparisons in an installable web app.

See the earlier design

Champions League Analytics
An evolving football analytics platform that builds data-driven Champions League squads, analyses player attacking output and evaluates upcoming opponents throughout the competition.
Explore the wider collection of tools, games and experiments.
SwiftBot Navigation System
A Java-based robotic navigation system that interprets QR-code commands and controls a physical robot through validated movement sequences.

Portfolio Generator
A browser-based portfolio generator that turns user-provided information into a structured personal portfolio and downloadable PDF.

Weather Dashboard
A responsive weather dashboard with location search, current model conditions and five-day forecasts. Uses Open-Meteo without requiring an API key.

Secure Password Generator
A desktop password-generation utility using Python’s cryptographically secure secrets module, with configurable password requirements, strength feedback and secure generation.
Browser adaptation available; original desktop implementation on GitHub.
Music Organiser
Organises downloaded music into artist and album folders using file metadata, duplicate handling and a simple batch workflow.

Snake
A Java Swing arcade game with pause and resume controls, sound effects, collision detection and persistent high scores.
Browser adaptation available; original desktop implementation on GitHub.

Rock Paper Scissors
A Tkinter game with first-to-three matches, player names, score tracking and JSON persistence.
Browser adaptation available; original desktop implementation on GitHub.
CLI Adventure Game
A multi-level terminal adventure with input-driven gameplay, state progression and lightweight file-based saves.
File Organiser
Sorts files into useful folders by extension and date, with duplicate handling and progress feedback.
Stanmore College App
A C# and XAML college application with authentication, timetables, cafeteria information and student-facing resource screens.
Card Game
A two-player Python card game with score tracking, authentication and external-file history for winners and leaderboards.
Simple Translator
A command-line translation tool with automatic language detection, caching and saved results.

QR Code Generator
Creates customisable QR codes with logos, frames, colour schemes and image export.
Browser edition supports text, colours and PNG export. Logo and frame tools remain in the desktop app.

Currency Converter
Converts currencies using live and historical exchange rates, with trend charts and cached API data.
Browser adaptation available; original desktop implementation on GitHub.

Unit Converter
A Tkinter desktop utility for converting between common units through a straightforward interface.
Browser adaptation available; original desktop implementation on GitHub.

Age Calculator App
A focused browser utility that calculates a user’s age from a supplied date through a clear, responsive interface.
Basic Weather App
A command-line weather lookup for multiple cities with unit selection and current conditions from OpenWeatherMap.

Social Links Profile
A responsive profile page for presenting social links with a clean, accessible layout.
A little about me.
I'm a computer science graduate with a strong interest in AI, full-stack development, and systems that make everyday tasks easier. I graduated from Brunel University London with Second Class (Upper Division) Honours (2:1), and my final year work focused on practical, user-facing software.
I enjoy turning complex problems into simple, clean experiences. I care about usable interfaces, readable code and making complex workflows easier to navigate.
Alongside development, I've spent time teaching robotics and coding, which strengthened how I communicate, explain ideas, and support other people in a team environment.
Quick facts
What I work with.
Languages
Frameworks & Platforms
Tools
Areas
Experience
Robotics and Coding Instructor — Master Instructor
Working at RoboThink since October 2022, progressing to Master Instructor.
- Delivered robotics, programming and STEM workshops to 500+ students aged 4–14
- Teach a Python scripting curriculum alongside robotics hardware
- Support SEN students and adapt lessons to different learning needs
- Train and support other instructors with lesson delivery and classroom management
- Run workshops and communicate with parents about student progress
- Built RoboThink Register — a software project connected to this teaching experience
Education
Brunel University London
BSc (Hons) Computer Science. Final year modules focused on software engineering, AI, and cybersecurity.
Stanmore College
BTEC Level 3 Extended Diploma in IT. Graduated with D*D*D* and built a strong foundation in programming and technical problem solving.
GitHub
Public GitHub profile / t3hj
Counts cover public repositories owned by this account.
Live stats load as you reach this section.
Explore the code and development history behind my latest work.
Latest code pushes to original, non-archived public repositories.
Contact
Have a role or project in mind?
If you're hiring, I'd be glad to discuss how I can contribute as a graduate software engineer. You can also reach me on LinkedIn or GitHub.
tehjpatel@gmail.com
Availability
Open to graduate software engineering roles now.
Strongly interested in engineering teams working on product, AI, automation, and platform work.