As we all know, being a software engineer takes work. You need to see a lot and constantly improve yourself. Yet, there are many questions and dilemmas, what one should do to become a great one, and what is less critical. During my 20 years of career in different companies, from startups to large ones with more than 10.000 people, I found what differs between good and great software engineers, and here are recommendations on how to become one: