Actually since kotlin property is technically not a field, it is indeed more flexible. I'd only declare properties that are widely used inside or outside the class right on the start, but group other more specific properties with the related functions. So you can say that there isn't a fixed pattern that secondary constructors and properties in the class block are positioned if you think this way. Also there are a lot of times I find public api first declaring secondary constructors for kind of constructor grouping, and then extra properties as well as init blocks, so I'm not sure if it's really a Kotlin Style thing.