Throughout the years, I have written blog posts about various aspects of developing software products. Writing about things is a good way to make ideas clearer and more more useful for myself. A side effect is that it can also inspire others, like I have inspired by other articles and posts over the years. In the Engineering Leadership Series, I have gathered the posts that have been well received and that I believe can be useful reading for software developers, managers, and leaders who are interested in continuous development and a successful career in software engineering.
To me, the greatest thing about a career in software development is that you can never stop learning! People are continuously building on the greatness of the past to build even greater things, and to build great software and a career, you need to have a conscious relationship to your own development. Whether you are a self-taught developer, fresh out of college, senior architect, or an engineering manager, here is my way of thinking about personal development as a software developer.
One of the things you can learn is how to be a manager. You are then responsible for making choices to ensure other people’s growth, happiness, and productivity. It is immensely rewarding, but also challenging. This collection of posts shares one way of thinking about how to manage teams and organise software development that has helped me a lot. Hopefully you can take some ideas from here!
If you are fortunate enough to start your own company or join an early start-up or a scale-up as one of it’s leaders, you will make decisions that will impact the future of the entire company. This is an entirely new set of challenges. The degree of freedom is huge: to define exactly how this company should operate, the values of the organisation, what to build, which customers to focus on, the list is endless. However, there is a set of common problems you will typically meet.