Software design
Commercial software development is about more than just "writing the code we tell you to write." Creating sustainable software that can adapt to changing markets and business models requires an understanding of evolutionary architectural approaches.
Architecture cannot remain the same when circumstances change. Although there is no such thing as architecture that can withstand years of development, there are ways to design architecture that can handle changes.
Team leadership
Personally, I prefer leadership to management. You want the people on your team to think for themselves and eventually become self-managing. However, they need a leader to guide them.
Leadership means having the skills, decisiveness, and values that inspire others to follow you.
Organizational structure
What is your company optimized for? Is it geared toward middle management and bureaucracy? If so, your ability to deliver value will suffer.
What organizational constraints are limiting your productivity? Aligning your organizational structure with the value your company creates will make your employees, customers, and CFO happy.
Software development strategy
There's a difference between designing a minimum viable product (MVP), which is software that you'll develop for three months and hand over to the customer, and software that you use internally, or a software project that you want to maintain and sell to customers for years.
Finding a market fit for software is different from developing software that already has 10,000 customers.
Understanding these differences is essential for success and requires strategic thinking and specific changes in development stages.