It's really important to note that I'm not particularly gifted. I was required to work "real jobs" over the summer starting at 15 and the only way to convince my parents that programming was a "real job" was to make as much as I could working at the community pool. After the first summer I kept working over the semesters nearly full time. I was doing freelance Perl CGI and PHP+HTML+JS junk. my main advantages were:
1) I could do piece work for $8/hr,
(2) I presented professionally because I was usually the only native English speaker bidding on the project,
(3) I was a single person doing full stack + sales/bidding (the competing offshore outfits mostly sliced up labor between backend, frontend, and sales due to language barriers and extremely low-skilled programming labor. For projects of the size I was bidding on this introduced a lot of expenses/overhead without any real advantages), and
(4) I was available in US time zones when bidding on these projects. Even during the school year my after-school availability was way better than the offshore shops could usually offer, and I could answer emails during the school day.
To reiterate: not a genius! Just a kid slinging super simple HTML+JS+SQL+PHP/Perl. I didn't even know SQL for real; I knew CREATE, SELECT (without joins), UPDATE, INSERT, and DELETE. Joins were implemented using multiple queries and for loops. Didn't matter for my clients, who just wanted cheap CMSes/ordering systems/etc. for random folks' .com get rich quick schemes, pizza shops who thought they really needed a customer website, etc. I'm pretty sure grubhub/slice/google maps/social media destroyed my old market a decade ago ;)
So a real genius getting there by 13 seems like an extreme outlier but not at all impossible.