I'm on a contract with two very senior developers. It's a lot
of work keeping up but It's a great learning experience and I really enjoy it.
I was thinking why is it hard work to keep up with more experienced developers? I think it's due to them having skills trained to the level of unconscious competence that I have trained to the level of conscious competence. Skills you have trained to the level of conscious competence require conscious effort to use, those trained to the level of unconscious competence do not. So for the same outcome I, currently, have to use more effort (I'm happy to). A good example of this concept is learning to drive. Driving lessons are difficult, you have to put a lot of conscious thought into controlling the car and even then it's hardly graceful. Compare that with how driving to the shops feels for you now, you likely don't spare a single thought on operating the car, it happens automatically without any effort. This is an example of having trained a skill to the level of unconscious competence.
Identifying the correct design pattern for a situation is a skill that you can train to the level of unconscious competence, as is spotting the long term affects of some architectural choice vs another. Skills are trained by practice, which years of experience give you plenty of. Not all practice is created equally though. Putting in the effort to practice deliberately, rather than passively putting in the work, will vastly improve the experience gained per hour. So think through those decisions carefully while working. This will require more effort but you will train the skill more quickly.