To get feedback on your existing code, try using an autoformatter, a linter, and a type-checker (I can recommend specifics for Python, but not Ruby). For more general feedback, I found that contributing bugfixes and later features to open-source projects that I already used taught me an enormous amount; if you make an effort to respect maintainers and their time they’re almost always amazingly helpful and knowledgeable people.
To get feedback on your existing code, try using an autoformatter, a linter, and a type-checker (I can recommend specifics for Python, but not Ruby). For more general feedback, I found that contributing bugfixes and later features to open-source projects that I already used taught me an enormous amount; if you make an effort to respect maintainers and their time they’re almost always amazingly helpful and knowledgeable people.