Episode 2: Domain.
I must clarify that my interest is frameworks/libraries and developer tools, where the customer is a developer. My first piece of generic reusable code was a rainbow-colored button control in Delphi when I was ~14. At NetDec (Tashkent) I led the team to create UZTO framework, a la 1C:Enterprise in C#. Then at ComponentOne, the whole business is to sell software components, e.g. supercharged DataGrid for .NET. Those years my ultimate dream was to live in Redmond and work on .NET or Visual Studio. Then I joined Google where the job is to create the developer infrastructure used by Chrome engineers. I also fell in love with Go, hence the dream to join the Go team; but that didn't work out.
I learned that the higher you go in the career/level, the more important it is to work in the domain you care about. This is because at Staff+ level an engineer no longer can just write code or design systems, but must think about the business side - which is hard if you don't care about the domain of the business. For example, I don't want to go to Facebook or Netflix because I don't care about social networks or movies that much. Chrome isn't perfect either: people come here because they care about the Web - this ended up being the main limiting factor of growth in my team.
With such narrow speciality, there isn't a lot of choice really: if I don't know about a product, then it is probably not interesting. Also, the more developers use the tool/framework, the better; this basically narrows the choice down to the most popular languages, frameworks and tools. There are not a lot of teams like that, so where do I go?
I must clarify that my interest is frameworks/libraries and developer tools, where the customer is a developer. My first piece of generic reusable code was a rainbow-colored button control in Delphi when I was ~14. At NetDec (Tashkent) I led the team to create UZTO framework, a la 1C:Enterprise in C#. Then at ComponentOne, the whole business is to sell software components, e.g. supercharged DataGrid for .NET. Those years my ultimate dream was to live in Redmond and work on .NET or Visual Studio. Then I joined Google where the job is to create the developer infrastructure used by Chrome engineers. I also fell in love with Go, hence the dream to join the Go team; but that didn't work out.
I learned that the higher you go in the career/level, the more important it is to work in the domain you care about. This is because at Staff+ level an engineer no longer can just write code or design systems, but must think about the business side - which is hard if you don't care about the domain of the business. For example, I don't want to go to Facebook or Netflix because I don't care about social networks or movies that much. Chrome isn't perfect either: people come here because they care about the Web - this ended up being the main limiting factor of growth in my team.
With such narrow speciality, there isn't a lot of choice really: if I don't know about a product, then it is probably not interesting. Also, the more developers use the tool/framework, the better; this basically narrows the choice down to the most popular languages, frameworks and tools. There are not a lot of teams like that, so where do I go?