I’m currently looking for work in the Hampshire, West Sussex or Surrey regions of the UK.
I have a broad range of skills and will take on any form of work. However, I have 20 years working experience in:
- Software Development
- Head of IT / Technician roles
- Computer Science
- Research & Development
This website was set up with the sole purpose of finding me a job – which should give an indication of how hard I work!
My skills and experience are listed below. Click a category to expand:
- Senior developer at two government-approved high-security Data Centres.
- Lead developer, trainer, and research & development scientist at MoD premises.
- Head of IT and developer of all projects for a digital mapping company.
Programming (software development) is a big interest of mine:
I’m a ‘language-agnostic’ developer. That means I have no specific dependency or preference to any particular language, and often use several at once.
I do have a GitHub page. This currently hosts an emulator I wrote, which was built entirely to give you a small example of what I can create.
Languages I have used include:
- Python 3.x (and 2.x)
- Visual Basic
- NSIS custom installer
- SQL of various types
- Assembly language & hand-assembled machine code
- Many terminal scripting languages
- My own programming languages and interpreters
Experience with writing, but mostly porting code, in:
- C and C++
Some experience (modding/extending code) with:
- Go (aka Golang)
These are some of the tools I have used with my (and others’) code:
Other computer-related skills:
- Linux — various distros, such as Debian, Ubuntu, Tiny Core, and embedded systems with/without BusyBox binaries. GUIs used include KDE (my favourite for development), Gnome, Unity, Cinnamon, MATE and FLWM (for limited systems). Terminal parsers include bash, sh and ksh.
- Windows Server 2019, 2016, 2012, 2008 R2, 2008 and 2003.
- Windows Active Directory, including sufficient knowledge to automate asynchronous, co-operative setups of entire forests, domains, servers, clients, and users/groups.
- Windows 10, 8.1, 8, 7, Vista, XP and almost all editions before that, right back to Windows 3.1.
- Mac OS X networks with VMs and automated setups.
- A variety of e-mail servers — including free and open source ones.
- Third-party servers — such as web mapping servers.
- HTTP servers, including NGINX and Apache. Installations on multiple domains, with various add-ons that improve security or add other features.
- FTP servers of several types.
- Proxy servers and other filtering systems.
- Firewalls — raw filtering commands, and lots of software, e.g. ‘pfSense’.
- SQL servers — like MySQL and PostgreSQL, with multi-dimensional/spatial capabilities.
- Caches — such as ‘Squid’.
- Microsoft Visual Studio Code
- Django 2.x (and 1.x)
- Zabbix (extensively)
- Microsoft Office (including Access, Excel, Word, Outlook, etc)
- Adobe Photoshop
- OpenOffice & LibreOffice
- WorldViz Vizard
- AutoDesk 3DS Max
- ArcView 3.x
- ERDAS Imagine
- PostgreSQL & MySQL
- …and literally hundreds of others.
- Xen (+ code integration)
- Oracle VirtualBox (+ extensive use of API)
- Microsoft Virtual PC
- Q for Macintosh
- Various emulators for other CPU architectures
- Linux iptables — I wrote the customer IPv6 firewalling in the previous Data Centre role.
- Manual configuration of hardware and software firewalls.
- Configuration of ‘managed’ network switches and routers (HP and Cisco to date).
- VLANs and other types of network segmentation.
- Security testing server-based products for holes.
- Usage of protocol analysis tools such as Wireshark and TCPDump.
- Wiring PC and phone networks (I have the proper punchers, crimper, wire-strippers/pullers, and a proper tester to guarantee quality).
- I have designed Layer 2 and Layer 3 protocols, and written RFC-compatible specifications.
- Recreating partition table information without damaging the partitions in place (for example, fixing the format identifier when the partition’s format becomes unrecognised).
- Recovering data from very ‘stubborn’ drives that are throwing up many errors, but are still spinning. Some drives have a tendency to lock up systems when defective sectors are read with regular recovery software, and running ‘chkdsk’ can actually cause loss of data in certain circumstances!
- Raw sector editing and duplication (meaning I can safely backup and edit almost any disks, even ones with special formats or file system problems).
- Effective repair and rebuilding of information tables (like the MFT) and file system structures, by using Indices and other data scattered on the storage media.
- Dismantling/fault diagnosis and repair of PCs and laptops.
- Motherboard soldering (e.g. removing and replacing USB ports and power jacks on laptops).
- UART/TTL programming for custom devices.
- Embedded device reprogramming and unbricking.
- Fixing various faults with mobile phones.
- Repairing plotters and printers (laser and inkjet).
I can train a selection of specialist certifications:
- Digital Forensics — previously taught all of it, also wrote all the recent practical exercises.
- CompTIA A+ — previously taught almost all of it.
- CompTIA Network+ / Security+ — mostly supporting practical exercises, some training.
- Microsoft MCSA — mostly supporting practical exercises, some training.
Note that I do not claim to be officially certified in these, but I have covered for other instructors on many occasions. I also wrote the scriptable mock exam software for all of these courses.
Here is a list of reasons why you might want to pick me over the next person:
I have at least six good quality (and honest) references, offered by previous employers and colleagues. Please contact me if you would like any of their details.
- An innovator: I can create solutions to problems and not just temporarily fix them. If a problem persists on a server, I am likely to be able to create a workaround to automatically monitor and repair the problem.
- An automation expert: Automating many lengthy Admin tasks means jobs get done faster.
- A continuous learner: I keep learning even when working and frequently experiment by trying out new software and operating systems in my own time — meaning you get an employee who stays ‘up to date’ and embraces new technology.
- A team player: I like to work with others and get along with nearly everybody.
- A problem solver: I consider that I should be able to solve all computer-related problems myself.
- A tutor: I can teach others the technical sides of what I do, even if they are not as technically minded.
- A fixer: I’m happy dismantling most office equipment, not just PCs.
- A user of practical skill: I spent the time setting up a server at home and putting together this website showcasing what I can do, so you’ve got more than just a piece of paper in your hands.
- A designer: I write tools Admins use — I don’t just use them.
- A money saver: View how I saved my previous company 99% on premium software.
- A productivity booster: I have boosted other people’s productivity by as much as 50%, with just 4 days’ work.
- A helper: It pays to listen to what my colleagues have to say. I can often offer helpful advice or assistance.
- A person who makes life easier: I make computers work for others. If someone needs functionality, I try to create it.
I’ve worked as a member of several fantastic teams, where I’ve always learned a lot more than I ever thought possible — you are welcome to contact my previous employers to see how I progressed. Screenshots of work I did have been made available on this site. Prior to this I was almost entirely self-taught; since primary and secondary school I have received special awards for contributing to teaching. I also wrote Admin tools and a program for a tutor (route planning) at college.
I often come up with business ideas, and several are programming related. About 50 of the ~90 programs I wrote in my previous companies were my own ideas to help the business grow and stay ahead of the competition. Why not have a look at a few creations?
Get in touch if you are interested!