> This feeling of loneliness got quantified when the commit number came up. The problem is people just accept whatever I say. I used to get challenged in some of my decisions, which I always appreciated since I could create better solutions. Nowadays people just accept whatever I say as the best way.

> I worry that by not being challenged I will become complacent.

> ... what I find plainly obvious is not to others.

These statements resonate with me so I'll tell you my experience.

Someone outside of work told me "if you're the smartest person in the room then you're in the wrong room". So I changed jobs. I had been working on software that does DNA analysis for a company and had been doing that for six years. I decided I wanted to work more with robotics. I ended up landing a new job writing software for drones.

Now I'm doing what I consider to be much more challenging work. I'm no longer the top dog. I still don't really make mistakes in code. But I make a lot more mistakes with my peers and their process. It's been hard to try to explain to them why a different way is better when they wrote the process in the first place and are attached to it.

I can provide several examples. First and easily the most prominent is code style. Everyone has their own opinion. And their opinions are valid. But code style is something that directly leads to you understanding how the program works. Different code styles lead to slightly different understanding. Some code styles are much more prone to bugs. Try getting your team to change their code style for the better! I just spend three weeks before we were finally able to agree on an updated code style. And that's just styling that doesn't affect program flow.

Then there's repository setup... how do you organize your repository? Well... there's good ways (the way it works now) and there's better ways (the way it can work in the future). A lot of the similar reasons about code style.

And my peers no longer "look up to me" for the answer. Not in so many words. Moreover, I look up to them for the answers too because their experiences are not only different but the whole stack is different. I didn't build the entire stack at the company. I don't know every nook and cranny. So it takes me a little while to read through what the code does and reason about what it should do and reconcile whether they're compatible. It takes a while to make changes too. And it's not just code. They're much much better in mathematics or science or (in my case) aeronautics. It's much more challenging and my answers to problems are questioned in ways that I never even thought about.

It's stressful, too. In a good way. It's hard to meet deadlines that I thought you'd meet because "I've done this before, it'll be easy" but it turns out that... there's a lot of problems to it that just weren't problems at my previous company. Either I avoided them in my first implementation (like you said, a good developer), or I fixed it before it became a problem (again, a good developer), or it was just never within the scope of the industry (eg, DNA analysis software and robotic control software currently have minimal overlap).

Changing the industry I was working in massively helped me to challenge myself by having others challenge me.