I have been working for slightly over 4 years as a Java developer at a small company.
This was my first job after getting my CS degree as some transitioning into the field later in life ( late 30's).
I had been dragging my feet on moving on to get a better job but have been recently trying to make the jump.
I've scored some interviews, one with a FAANG level company, but I think a real weakness in in all these interviews with even "smaller" companies is that they are looking for people who understand distributed systems, and that is not something I am getting in my day job. I am almost certain one of the interviews went down the drain when they started asking questions about how to optimize queries within a distributed system.
These are topics I am not learning at work. This became very clear to me as I needed to prep for a system design interview and most of the basic concepts in interview prep materials are things that are things that we a tripping over at work. A great example is how to share a SQL data base. This idea came up at work and no one (not even department heads with 10+ years of experience) was aware the limitations and considerations even at a surface level.
I'm doing Leet code problems (which is how I pass screening rounds) but I am concerned with how to bridge my distributed systems knowledge from what I am getting at work vs what the market place expects. My worry is the longer I stay here the harder this jump will get.
I have been debating doing some projects with mini cube or other cluster systems in my free time to at least try and get some hands on experience and try and see how well the systems I make perform or fail. I suppose open source would be another possibility but that seems like a substantial time investment.