I can verify it does not work, and if the AVR is not already pre-programmed with a suitable bootloader, there is no way to program it.
There are a lot of beginner mistakes, which could be avoided by reading the datasheet examples, reading the hardware design guides, and looking at other working designs.
The list will be somewhat long so I can add them later. Right now I focused on what you really asked and wanted to know.
There is no way to program the AVR. AVRs cannot be programmed via UART unless you already have programmed it with a bootloader that supports further programming through UART. Arduinos come with bootloaders pre-programmed, so that is why you may think this will work for a fully blank AVRs too. You can likely buy AVRs with a bootloader pre-programmed, or program it yourself before soldering it to this board.
So you need to program it first with other means like put an in-system programming header and use an in-system programmer or another programmer where you can insert the chip.
There are also more modern 32-bit ARM MCUs that come with UART bootloaders built-in, so it might be worth thinking if you want to use an easier, better and faster MCU, or stay with an older AVR if you have a valid reason to do so.