Based on my software development experience over the years I have been able to identify mainly 3 types of developers, independently of seniority level.
All developers are somewhat lazy on their craft, but some belong to "The lazy" class. They do their job, sometimes they do their job well, but you can really identify them by how averse to change they are. Usually not looking for new things to do, following the "if it works, why change it?" mentality that can last for years. Probably the most common developer to find.
They are diametrically opposite of "The lazy". They try to read and implement bleeding edge solutions to problems just for the sake of curiosity. They bring a positive view to the workplace by exploring new stuff every day and talking about it with their team. Usually they deliver quality work, always trying to improve themselves in the process having a great impact on the team and product. You probably met one or two - or belong to this class yourself - but this type is quite rare to encounter.
They are a result of a bad hire. It makes the team think "how am I supposed to work with this developer?". Slowing down the team, asking for the most basic advice on well known / well documented things. Producing bad quality code with rookie mistakes even though they have been hired as seniors. They are usually non-communicative, misunderstanding and keep making wrong assumptions, a pain to work with. The worst part is they might not even realize they belong to this class until is too late and the damage is done already.
A developer can transition between the 3 kinds throughout its career. In the end it's a matter of being the least amount of time as a liability to quickly become a valuable asset (the lazy) and maybe a stellar investment (the curious).