I get asked a lot about myself.
As I am not one to post socially or talk much about myself, most people only find out from asking me directly. This page is therefore for those who would like to know a little about me.
Growing Up
Growing up I found myself interested in sports and games like any other youngster.
My best talent in highschool was Maths. I was very good at that. I took higher level math papers back in primary school (elementary for the americans) that were designed for people 5 years older, and I got very high scores on them.
When I was 10, I had my first computer for Christmas. It was an Intel Pentium 300Mhz with a huge 500MB hard drive and a CRT monitor. It cost a lot, but I loved it. My computer interests started there. Naturally with games. I used to play Worms and Raptor. It was all good, until I got issues on the computer. Back then I had nobody to talk to on how to solve issues such as my sound not working in Raptor, which was a serious matter as a child and needed solving. So I took it upon myself to figure out and fix the issue myself , which involved configuring a custom SoundBlaster driver to work with my non-Soundblaster sound card.
Playing games was great, but soon I wanted to understand how exactly games were made, and to make my own. I got myself a copy of Adobe Flash and started playing with ActionScript to create some simple games like Pong, Tic-Tac-Toe, and a few custom space games I designed. My maths knowledge really helped here as using calculations and equations played a large part in making games.
Adobe Flash allowed me to make visual games without having to do much in terms of rendering graphics. So naturally I wanted to know how to do the graphics myself.
One thing about me is I have to know exactly how things work, right down to the fundamental building blocks. It's what lead me to learn DirectX, Assembly languages for processors and MCU's, building low-level hardware and coding kernel drivers.
I went from Adobe Flash to C, then to C++ and DirectX. I made some 2D games like Pacman and Snooker and then went onto making 3D games.
The Itch
By now I was about 13 and started getting interested in business. My parents were self-employed and ran their own business. Naturally that rubbed off onto me, although nobody in my family has any computer knowledge other than me. I was bored with making games.
I had learned all I could in games and wanted to know how computer programs worked in general, such as Microsoft Office and other general applications. So began my venture into custom applications.
I started making applications of various types and styles, from calculators to 3D engines to websites, along the way picking up knowledge of C#, ASP.Net, Javascript and many more languages. Once I had learned a certain number of languages they all came very easily and naturally to me.
Employment
My first job was actually as an apprentice in engineering designing dog gearboxes for rally cars. I did the designs in Autodesk Inventor. The guys I worked with soon realised my potential in software and within 6 months I was creating custom gear ratio calculators that create a gear change graph showing power to gear ratios and worked out the perfect time to change gear. Before long I was also building computers, fixing CMM machines, programming CNC machines and soldering up old punched tape printer wiring.
Moving on in my career I went into another CAD position, this time designing trailers for trucks. This time in SolidWorks. I started working with VBA Macros and the SolidWorks API.
I got very good at SolidWorks programming and subsequently wrote 2 books on programming and automation aimed at SolidWorks. I sold them for many years, and recently decided to release them for free.
As my career progressed I slowly started to earn enough money from my books and BatchProcess along with custom web design that I could support myself and so quit my job and went fully self-employed.
Entrepreneurship
Having enough money to make my way, I started venturing into hardware. I started by creating a product called Arbiter - a rapid fire controller for the Xbox and Playstation. I built it by programming the Microchip PIC chips in assembly firstly, then C. I sold them online via an online shop I coded from scratch.
The Arbiter was selling so well that I started expanding the online retail store into LEDs, screw drivers, hardware, health and beauty, electronics and more. Within 18 months I went from working at home to having 2 buildings and 17 employees at the busiest period.
At the same time, my other software venture with my close friend and business partner also took off, in a big way. I had no choice but to sell the online retail business and focus on the software venture.
Over the following years my knowledge in software and hardware blossomed and I have a very broad yet complete knowledge in almost every software language out today, with a rapidly growing skillset in hardware design. I've worked with games, mobile apps, websites, commercial and industrial apps, military, mass market and many other areas.
Lessons
I like to think I have learned a lot in a short space of time, with being in so many environments, running multiple businesses and having worked in the UK and US.
If I could give anyone advice, here it is
If something feels wrong, or too good to be true, personally or in business, it almost certainly is.
Never hold onto money. Work for money to spend it and enjoy. Holding onto money just leads to depending on it. Be sensible, pay your bills and after that, spend the extra on yourself and loved ones. The best thing I have ever done in life is not care about how much money I do or do not have.
Value the people that are there for you without asking or expecting in return. Money can buy everything except true friendship, trust and honesty. If you find people that have the former, respect them and treat them well.
My Skills
For those interested in exact details or considering me for a project and need to know particulars, here is a list of the main languages, methodologies and platforms I am well-versed in.
- .Net Core
- Agile
- Ajax
- Android Apps
- Atlassian BitBucket
- Atlassian Jira
- Altium Designer
- Arduino
- ASP.Net Core
- Assembly x86
- Assembly Microchip PIC8/16/32
- Assembly ARM MCUs (NXP, Cypress)
- Autodesk Inventor
- Azure (Microsoft cloud)
- Bash (Linux)
- Basic
- Batch (Windows/Dos)
- C
- C++ (Including MCU/PSoC/CPU code)
- C#
- Cadsoft Eagle
- CSS
- Git
- HTML
- IIS
- iOS/iPad Apps
- Java
- JavaScript
- JSON
- jQuery
- Kernel code (Linux kernel)
- KnockoutJS
- Labcenter Proteus
- MVC
- MVVM
- Photoshop
- PHP
- PostgreSQL
- Raspberry Pi
- SolidWorks
- SolidWorks API (VBA, Macros, C#)
- SQL Server
- VBA, Visual Basic, Visual Basic .Net
- WCF
- Wix Installer
- WPF
- Xamarin
- Xbox & Playstation hardware integration
- Xcode
- uBoot
On Closing...
If you made it here I am impressed. That's a lot of reading