Thank you Jeff! I have completed the first part of the freeCodeCamp course, I like their exercises too, and I am a big fan of JAMstack, Netlify and other tool (tools which freeCodeCamp make a large use).
About TDD and Agile in the firmware world, I must say that in my current work we don't use them (even if I would reaaaaaally like) because there is a bigger complexity in mocking hardware components and being a 20+ years old (and sometimes stubborn) company we don't make use of Agile techniques.
That being said, I am really interested in these topics and I would like to use them in my side projects (at least as far as TDD).
I have a friend that works at a company doing hardware development, they do their "programming" in VHDL and he's been trying to incorporate Agile practices into his workgroup.
Sounds like the company he works for has different pockets of that are playing with Agile methodologies, but most of them are on the software side and not in hardware.
One of the benefits he's found from creating his project backlogs and breaking down tasks to fit into timeboxed sprints is that he's able to provide project managers with the percent complete tracking vs. hours used much easier than other teams. He just pops a report out of his story tracking tool and rolls up the information by project.
If I recall correctly, he's also integrated Jenkins and some Lint tools to help block breaking changes. It won't catch everything, but it's helped his team quite a bit.
I think we adopted similar strategies, I use Trello to manage my tasks - but mine only. Even if I mostly use C/C++, it would definitely be a good idea to integrate some linting in the projects (there has been a lot of issues related to uninitialized variables, out of bound indexes..)
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.