One of the best entries I've played yet, awesome job :) Very impressive level of polish from the particle effects when the player lands on a wall to the blood splatter left behind by enemies to the wavy shader on the wave number text. Lots of little things that add up to a really cool experience. Sfx are nice and crunchy and fit the vibe of everything well, but some background music would help elevate the experience. The upgrades in between waves is a great touch and made the whole thing more fun (a couple of wacky options like bullets bounce off walls once/twice/etc or dashing threw enemies damages them would have been fun too).
The enemy variety is great and each is easily legible/distinct which is an impressive feat given the limited colors and pixels. I loved the reload animation on the player sprite, would have been very cool to have a similar "reverse" animation when the player is shooting to give an indicator of when you will run out of bullets.
Overall, I had a lot of fun with your game's core mechanic and the level of polish is spectacular. Excellent entry, keep it up!!