Java is used in enterprise domains such as banking and telecom. In vacancies for Java Software Engineers, companies often require experience with performance issues, concurrency issues, scalability, maintainability, and availability. I have encountered a problem: it is difficult to choose a pet project. On one hand, I cannot build a new bank-level system. On the other hand, if I choose a simple project, I will not encounter performance issues or similar challenges. So I think I should create a playground instead of a complete project — a set of projects focused on specific cases and engineering problems. The problem is that this is not an end-to-end project. (not shippable product) You cannot really ship such a project. What is your opinion? What do I have to do to become a Senior Java Developer and get a remote job?