I was homed on the Asus forums. These were fairly craptastic - they completely messed up my formating half of the time, forcing me to post, then re-edit my post to fix the formating. I was providing a compiled RT-N66U firmware, along with the files I was modifying in the stock firmware.
The initial days were mostly spent trying just to get the firmware to compile. I initially mostly wanted to add a WOL page to the firmware. I saw that there were numerous Tomato features that Asus were keeping disabled (like HTTPS support for the webui), so after that I started re-enabling some of these. Since that was a major focus of my work, and I was still looking for a name, one of the names I considered at the time was "Tomato Regrowth".
I caught Asus's attention fairly early on, and gradually established a relationship with them. First I was sending them bugfixes, and they would acknowledge me by name in their changelogs, which was quite flattering at the time
They also started providing me with development samples starting with the RT-AC66U.
I moved to SNBForums because I could no longer deal with the problems of Asus's forums. Can't recall if at the time there already was an Asus-dedicated sub-forums (probably not), but I was mostly living in a single thread, like John's fork.
For the first 1-2 years, working with the firmware was much easier than today, as the vast majority of the code was open sourced. Only the drivers weren't. So, I could easily reuse any GPL release from other models (I remember for instance basing one of my releases on a DSL-N55U GPL release), as these were fully compatible regardless of the wireless driver I was using. Things started to change in this area a few months after the RT-AC68U launched, as they moved some of the initial bwdpi code (Asus's portion of the Trend Micro code) into closed source files.
Asuswrt-Merlin wasn't new territories for me as a software developer, since I had been involved in various software projects since the 90s, when I was developing software on the Amiga platform. My most popular project back then was probably
NewIcons.
I learned a lot about working on embedded devices when I was involved in the WDLXTV project - a third party firmware aimed at various WDTV models. Upgrading Samba to a newer version was one of the things I did on this project, as well as redesign its web interface, and implement a plugin API. I also learned to work with RCS software back then (we were using SVN). I learned a LOT from b-rad, its main developer about hardware-related software development. The trick I used for instance to patch fq_codel support was something I picked up from him - replacing system binaries with scripts that can do any kind of stuff, then pass on control to the real binary that was expected by the closed source caller.
If anyone has any particular question about the early days, go ahead - I have a lot more spare time on my hands now that the initial rush of providing remote work support to my customers has quiet down...