Mistake 1 - Was too focused on committing code and getting my first PR merged. I wanted to prove I could commit code quickly, and that PR is missing a lot of things and had to be patched later.
Mistake 2 - Not asking for (enough) help. I did a short pairing session that got me up to speed, I should have asked for a few more. I also should have asked "What's important in this code?" I had to learn that the hard way.
Mistake 3 - Ignoring the full release lifecycle. On day 1 you should first learn how issue management works, and then how the software is released to production. Releases caught me by surprise, and I ended up having to put hotfixes in.
Mistake 4 - I let QA become a second class citizen. Find out who and how your code will be QA'd, and try and be active in that process.
Mistake 5 - Ignoring important "sub-systems" as they didn't seem to directly pertain to my work. For instance, I knew we had a feature toggle system, and I was told I didn't need to use it for my work, but looking back, it would have been nice to know and use. I also was told to ignore end-to-end tests since my work was so small. Well guess what held up release because my code broke it? Yep, end-to-end tests.
Mistake 6 - Modifying code without reading tests and understanding the underlying data. A lot of people have mentioned this, and it can't be emphasized enough. A lot of tests have mock data at the top, why ignore that, it tells you what the code is working with. 'Describe' blocks tell you exactly what methods are supposed to do and what's important about them.
So, I made a lot of mistakes it seems, but the most important thing I did right was this:
Whenever I realized a mistake, I fixed it and I moved on. I didn't let it get me down, and I won't make that mistake again. That's ultimately what a good dev is, someone who can red/green/refactor their mistakes with minimal oversight.