My experience in coaching comes from being a Technical Lead for the last decade. Though the titles varied from Principal Engineer to Manager, there was always a duty I took seriously: coaching other software developers. For those who don’t know, being a software developer is challenging, given the natural chaos of projects, ineffective management practices, and the constant threat of existing skills becoming obsolete. My hope is to reduce the stress people feel in their job, be more effective at their job, and reach the next level of their career.
Types of Coaching I Offer
- How to Become a Software Developer
- How to Learn New Skills
- Negotiating for Salary
- Adapting to Your New Role
- Communicating with Your Co-Workers
- Understanding Cultural Differences
- Managing Your Manager
- Process Evaluation and Refinement
- Making Difficult Technical Choices
- Navigating a Difficult Project
- Deciding If You Should Stay or Go
1. How to become a Software Developer
Software developers enjoy generous compensation, and many employers do not list a college degree as a job prerequisite. Many people want to become software developers, but do not know where to start. Going from a novice coder to a professional software developer requires commitment of effort and time, but I believe anyone with the discipline and dedication can do it. I will work with you on the development of your skills, how to represent yourself, and most importantly, prepare you for the interview process, which can be very discouraging if you do not fully understand how software developers are hired.
2. How to Learn New Skills
To be a professional software developer means keeping your skills sharp and current, although it is not always possible to learn every language, framework, or technology, while still maintain your day job. We can work together to decide what skills you want to learn, why you want to learn them, and create a self-education plan that makes sense. There are more than enough resources online to learn any subject you want to master. It is only a question of defining a curriculum tailored to your needs.
3. Negotiating for Salary
Salary negotiation is far easier when starting a new job, than when you are already employed. However, it can be done. The main skill needed for salary negotiation is projecting the confidence that your worth is commiserate with your abilities. When you already have a number in mind, I will help you with your strategy for achieving that goal. If you do not have a number in mind, but suspect you are underpaid, we can figure out if your salary is fair or not.
4. Adapting to Your New Role
You have just landed a new job, or have just been promoted. Congratulations! The next challenge you face is how to be effective in this new role. I have done just about every job there is within software development, so I can provide you some guidance on what is expected of you, and how to self-evaluate your performance in this new role.
5. Communicating with Your Co-Workers
Understanding what others say to you, and understanding what to say to others, is a crucial skill no matter what profession you are in. Communication is not simply “polite” or “professional”, it must also be effective. Too often we say too much, too little, with the wrong emphasis, in the wrong tone, to the wrong people, in the wrong forum, and/or at the wrong time. I will help you evaluate your current ability to communicate, determine what needs improvement, and then work with you achieve those goals.
6. Understanding Cultural Differences
“Culture” can be a very thorny subject, as it invokes age, race, and gender amongst other differentiation. Unfortunately, cultures do clash, and when that occurs, most people tend to make a bad situation much worse. I happen to be of mixed race; I have been a software developer from my early twenties; I am now closer to being forty. I have even coached women on how to navigate our male-dominated industry. These topics can be painful and sensitive, but we will work through them together.
7. Managing Your Manager
Managers are just people, and people have flaws. I can tell you already, that your manager is not a bad person, yet they are probably making mistakes that are driving you nuts. We will first work together to fully understand your manager, based both on what they have said and their actions. Once we understand them, we can establish a plan for helping them make fewer mistakes, which in turn will make your life – and the life of your co-workers – easier.
8. Process Evaluation and Refinement
It is clear that we do not yet fully understand the ideal approach to rely upon for software development. I have seen many failures first-hand, and recognize success comes as a hybrid of process and execution. Essentially, no process works for every organization out-of-the-box, as they all need customization to the realities of the situation. I will get a sense of your current situation, what is working, what is not working, and see where the process can be adapted to meet the environment.
9. Making Difficult Technical Choices
Technical choices are nerve-wracking because there are often far too many options, with far too many differing opinions on which options to choose. To make matters worse, the right option now is often the wrong option down the road. If you are stuck between different options, I can help you make a more informed choice, by working with you to define the problem that must be addressed, and then creating the evaluation process for a defensible solution.
10. Navigating a Difficult Project
Most software development projects are difficult. Requirements are inaccurate, which lead to estimates that are way off, then lead to chaos, and ultimately burning everyone out. People tend to operate at their worst when burned out. I have been a part of both successful and failed projects, and I will help you understand where you are in your projects, and how to best direct your effort for the project to succeed.
11. Deciding If You Should Stay or Go
People become unhappy at their jobs all the time, and often will consider a job elsewhere. Normally, this is not a difficult decision for a software engineer with marketable skills, though it may not be clear what skills are considered marketable. Furthermore, working somewhere new and unfamiliar can be scary, as the new job may be worse than the current one. Having been there a few times, I will guide you though a process of objectively evaluating the current dilemma, figuring out why you want to leave, and together come up with a plan to make your current situation better, including an exit strategy if necessary.