Imposter Syndrome? Here’s How to Thrive Anyway

Imposter syndrome is all about those feelings of self-doubt and inadequacy that can creep in, especially when you’re joining a new company or team. But here’s the thing: those feelings are honest but seldom reflect reality. Let’s walk through some action items that can help you understand and manage these feelings. Here are some examples to help overcome imposter syndrome.

You are good enough!

Don’t let anyone, including yourself, tell you otherwise. Others may have more domain knowledge, but it’s nothing you can’t learn with time, dedication, and discipline. Remember, everyone started where you are now; they just have more experience under their belts.

Trust is earned.

Be dependable. If you say you’ll do something, make sure you follow through. Consistency in your actions builds trust and demonstrates your reliability to your team.

Jealousy or feelings of intimidation towards you are normal.

As the new person, all eyes are on you. Everyone wants to advance, and opportunities can be limited. Be kind and courteous, but don’t hold back. You have every right to be there, and your fresh perspective can be a valuable asset to the team.

Remember, they hired you because they believe you can do the job.

Your skills, experience, and potential were recognized. Trust their judgment and allow yourself to grow into the role.

To overcome self-doubt, counter your thoughts with action.

If your brain says, “I can’t do X,” go and do X. Recognize that thought as a trigger for action. Keep doing it until it’s done. Negative thoughts will always exist; teach yourself to take them less seriously. Each action taken against your doubts weakens their hold on you.

You don’t have to be perfect.

Aim for good enough and get it done. Perfectionism can be paralyzing, preventing you from finishing tasks. It’s better to complete something imperfectly than to never complete it at all.

Learn from others.

If your smart colleagues want to teach you, swallow your pride. Accept free lessons and their time graciously. Their insights can accelerate your learning curve and help you integrate more quickly into the team.

You don’t rise to the level of your goals but fall to the level of your systems.

Create a routine or system for constant improvement, which helps manage your feelings and keeps you on track. Systems help you maintain progress and make incremental improvements without being overwhelmed by the bigger picture.

It’s perfectly normal to ask for help.

On Stack Overflow, they always ask, “What have you tried?” before offering advice. This approach ensures you get the correct guidance. Asking for help when needed shows you are engaged and willing to learn, which is a strength, not a weakness.

Find a mentor and/or mentor others.

Find a colleague you trust to share your work frustrations with. This person will understand your context and provide grounding and closure. Additionally, mentoring others can reinforce your own knowledge and boost your confidence.

    Thank you for reading. I have covered this topic in a previous article IMPOSTERING A SUCCESSFUL SOFTWARE ENGINEERING CAREER.

    If you found this helpful, please repost to help other software engineers struggling with imposter syndrome. Sharing our experiences and tips can create a supportive community where everyone feels valued and capable.

    Imposter Syndrome? Here’s How to Thrive Anyway

    Impostering a successful software engineering career

    I don’t know you but what I know for a fact is you are good enough! Remember that!

    I was walking down a hallway at my university back in 2000, between classes when I ran into a classmate going the opposite direction. Mustering courage, I asked him how he was finding the course so far. He immediately replied it had been great, especially the lesson on “multidimensional arrays” that day. He then proceeded to explain the concept in detail.

    As I walked away, I thought, “What am I doing here? I don’t belong. That guy is way smarter than me. I was in the same class but can’t recall or explain it like that.” It wasn’t my exact thought process, but something similar clouded my mind.

    This type of self-doubting thinking followed me for years – the constant questioning of abilities, the inner voices whispering you’re not good enough, that everyone else is better and smarter. Does this sound familiar? Read on to find out how the story unfolded.

    Dr. Pauline Rose Clance is a pioneer in researching and shedding light on the imposter phenomenon. Along with Dr. Suzanne Imes, she co-authored the 1978 study that coined the term “imposter phenomenon” to describe the internal experience of feeling like an intellectual fraud.

    Feeling Like an Imposter Will Follow You for a While

    I’m not an expert, but I can speak from experience. Feeling like an imposter is likely to follow you for quite a while. Where these thoughts originate, I cannot say for certain. For me, it may have been from childhood, or I was simply born with a tendency towards it. As a child, it hits your confidence and often results in playing it safe, avoiding risks of being wrong.

    It can prevent one from being a critical thinker and challenging decisions, because you believe those in higher positions or with more experience must be better than you.

    I was hired as a junior software engineer in 2003, but my initial tenure was nothing extraordinary. My boss was a brilliant former chemical engineer who had transitioned into software. Working with him was personally intimidating, though he had done nothing to cause this.

    As he would explain work, my focus would shift to perceived inadequacies instead of the task at hand, asking questions. My mind would wander, convincing myself I’m not good enough and will never understand this. I lost valuable time early in my career by not focusing on improving or questioning what I wanted. I just accepted the status quo, feeling that I’m not good enough.

    Towards the end of my time at that company, I was given the opportunity to lead and manage a project. Being a small company, I believe it was because there was no one else, so I was the obvious choice – though my imposter feelings may have led me to undervalue the decision. I did well on the project and received good feedback from the client.

    During my performance review, one of our directors praised me for delivering the project on time. He was pleasantly surprised, if I recall, which surprised me! What was not welcome, however, was him telling me, “You are not good with the programming.”

    That really stuck with me for a while. It hurt because I had been a programmer for 5 years and 6 months – or was supposed to be.

    My Thoughts Became a Self-Fulfilling Prophecy

    What I feared I was, I eventually became. 

    I had to come to terms with that feedback, and it was spot on – I was not good at programming. Yet something changed in me that day. I wanted to prove them wrong. That’s when I decided to leave and pursue a job at a large enterprise to truly learn my craft.

    I landed a job in retail IT working on critical services running on 15,000 front tills! There was no turning back for someone not great at programming; I decided to take on the challenge. At that point, feelings of inadequacy didn’t matter – it was sink or swim. I swam. It was mind over matter, time to ignore the imposter. I prevailed.

    The code I wrote was probably not the best, but it worked and ran fine. That was an important boost of self-belief I gained.

    Actions Speak Louder Than Thoughts

    It was an important event. I was in a situation where my actions overshadowed my thoughts, not the other way around which had been the case for years. Think about it – your actions are stronger than your thoughts when you realize that, you should not listen to them.

    Circling back, your thoughts aren’t going to disappear anytime soon. They can remain with you for the rest of your life. But you can learn what to listen to and often ignore them. This is very important.

    You cannot prevent the bird from sitting on your shoulder, but you can prevent it from making a nest.

    You cannot prevent the thoughts, but you can prevent them from manifesting in your life. You need to have a strategy to counter these thoughts.

    The Strategy

    When your thoughts make you feel bad or sad, you know those aren’t constructive. That is not the real you. That is the imposter – they’re negative and destructive. That’s the trigger, and at that point, you need to affirm this is not you, it’s the imposter in you.

    • Affirm to yourself that these are not your true thoughts, but the imposter in you speaking. For example, if you want to engineer and code a complex system end-to-end, but your thoughts are stopping you:
    • Understand that consistent action and results will build your confidence over time
      • The negative self-talk won’t disappear, but will become less effective
      • Accumulate positive experiences to negate and overcome negative thoughts
    • Remember – you may not be as good as others yet, but you aren’t them
      • Focus on improving by doing and completing tasks
      • Getting it done is good enough – it doesn’t have to be perfect
    • Create your own superpower by being disciplined and taking action, despite your thoughts. Make a conscious decision to do the opposite of what your inner voice is saying. Take action and start building the system, no matter what. Don’t delay – carve out the time and just do it
    • Force yourself to speak up in meeting. Practice having an opinion.

    24 Years Later After That Hallway Conversation

    Today, over two decades into software engineering, that person I ran into in the hallway changed job directions last I checked, not to be disrespectful. At that time, I thought he was the best and would be much better than I could ever be. Turns out my mind played tricks on me back then.

    I wrote science fiction, which we often do as humans.

    Today, my thoughts are still there, but when they pop up, I reinforce that I will completely crush the next task or project. Those are my thoughts now. I am a success at impostering. I will win, and today, I usually do.

    Conclusion

    The battle against imposter feelings and negative self-talk is one that may never fully go away. However, it is a battle that can be won through conscious effort and disciplined action. The key is to recognize those pessimistic thoughts for what they are – imposters that do not define your true abilities.

    When the voices of doubt arise, implement the strategy: affirm your worth, take action in defiance of those negative thoughts, and pile up accomplishments. Each small victory will strengthen your self-belief. The negative thoughts will still emerge, but you’ll grow more resilient in overpowering them through persistent effort.

    Ultimately, success is not defined by an absence of doubt, but by refusing to surrender to it. Approach each challenge as an opportunity to silence the imposter within. With relentless perseverance and a focus on continual growth, you can imposter your way to a truly successful engineering career that defies even your own initial expectations of yourself.

    The path will not be easy, but the pride of proven competence and earned confidence is well worth the struggle. You belong here – now go and claim the career you’ve glimpsed as possible when you’ve quietly admired others. The imposter’s reign ends today.

    Impostering a successful software engineering career

    Unlocking Your Superpower: The Power of Discipline in Software Engineering

    It is very hard to focus in the present day. Everyone and every other thing tries to compete for our constant attention. Think about your mobile phone. The notifications are convenient, yet endless if you allow it. How many apps do you have on your phone?

    My mobile is a big distraction but also very productive for work and admin. But I cannot blame the mobile, nor can I because I allow it to be.

    I grew up in a town where we had good weather, mountains, and loads of open space and sports fields. I was outside for most of my day. This was perfect for my ADHD. I had loads of energy, and that is why it was hard for me to focus on reading, etc. Television is also perfect for ADHD. I did not read a lot, to my disappointment now that I’m older. I got good at sports but not at academics.

    Besides being hyperactive, I lacked discipline. If it was because of my hyper energy or if I was not taught properly how to calm my mind and focus on my reading, I cannot say. Definitely no one’s fault. I was good at sports, and my parents supported it and gave me every opportunity to get at what I was naturally inclined to.

    It took me a long time to become disciplined. It has changed everything! It started only 2 years ago. I’m turning 43.

    THE D-WORD

    Discipline in its purest form is very hard to achieve. Doing the same thing consistently over a long period is hard to do, especially if there are no clear path or even reward for those actions. We are all human, and I’m sure you are well aware of what you’re not doing consistently enough.

    One could argue that I was disciplined in practicing and playing sports. And I was, but for the most part, there was always some reward built into it. We played matches, and winning was the reward. You improve your game and get to play on more advanced teams. You hit the ball better, you kick the ball further. There is consistent feedback built into the process. It is easy to misjudge this as discipline, where there are brain chemicals from feedback and activation of the reward system built-in.

    Let’s take this a step further. At work, we have built-in motivations. You and I have a boss who has requirements and demands. You have colleagues and team members who are dependent on you, and most importantly, you receive a salary at the end of two weeks or the month. Most of us are team players and want to keep do our duties and not disappoint our colleagues, and we want to make sure we receive our money because we have bills to pay and stuff to buy or save for.

    The motivation and rewards are built-in again. Though there are discipline involved it is not pure.

    LET’S TEST YOUR DISCIPLINE

    It won’t be a fair question to ask if you would have done the same at work without the money. What would be the point? For no money, I probably would have coached a sports team.

    So let’s focus on the following example. You have a full-time job, and you are looking for your next career opportunity. Let’s say you have been a front-end engineer for most of your career, but you find yourself ready to tackle the back-end of software development, especially with data engineering becoming so popular due to the demand in machine learning and generative AI.

    You find yourself at a job that has a legacy product, and it results in engineers being siloed, making it difficult to upskill in all disciplines and touch on all aspects of the system. Thus, your work cannot provide you with the opportunity to upskill. So now it is up to you. Assuming you have a stable job and people are generally nice, there is nothing pressing you besides your aspirations.

    AT LEAST A 100 HOURS

    So this becomes interesting. How would you approach this upskilling? Well, you have a computer, you have the internet, and more recently, you have ChatGPT or the impressive Claude 3. You have all the tools you need to accomplish the job.

    Next is you! Yes, you are the only stumbling block in the way. I mean it respectfully but truthfully. For your next level, it is required to spend a considerable amount of time learning. That is what is required. I would say between 100-300 hours, depending on what you focus on.

    Now, I’m sure you are asking why 100+ hours. A few years ago, I signed up for the distinguished CFA 1 exams, which are difficult exams financial portfolio management by design. After spending a lot of money to sign up and buy the materials, they recommend studying between 200-300 hours for this exam, 3 hours a day for six months. If you pass it, then you will have the fundamentals for the next 2 exams, but it also serves as training toward this role. I had to do it and they were spot on. It it about immersing yourself and spending the time. Learning this subject requires focus and discipline. Afterwards, I decide that a 100 hours for something is a good amount to get good at it.

    Writing code takes a couple of hours a day. It takes about 20 minutes to get into the zone, as we would say, and then once you are immersed, the next 2-3 hours is where the learning happens. Imagine you had 2-3 hours on top of your day job, as well as the energy, then over the course of 100 days, you would definitely move toward becoming a data engineer. You won’t write or produce the best code, pipelines, or systems initially, but over time, you will improve. You have to spend more to gain more.

    In an upcoming post, I will discuss where to find time. For the moment, we assume you have enough. Would you be able to spend 100 hours working on data engineering?

    DO OR GO WATCH TV

    What makes it difficult is that there is no pressure besides the goal you have set. You spend your time in the evening after a long day’s work. You have to work on problems or build systems that you won’t get compensated for or that do not meet any deadline. This system won’t serve anyone besides you! When it gets difficult, the brain can easily persuade you to go watch Netflix or play a game, which requires less cognitive power, more dopamine than what you have to spend to create neuroplasticity, in other words, to learn.

    Learning is hard, and it requires discipline when doing it alone. No one can motivate you. It requires your own willpower and believe that when you have gone through this, you will reach your goal. Sometimes there is also delay in the reward. But I promise it eventually turn up and blows you away!

    I STRUGGLE WITH DISCIPLINE AND HOW TO SOLVE IT

    You are not alone. Many do, and that is probably why not all of us are wealthy or financially independent or maybe just happy and doing what we love. If you want this, then there are ways you can achieve this and grow the discipline.

    It is easy to have a good idea. These are plentiful, and I’m sure like me, you have a list somewhere on your PC with all the ideas. Then sometimes, we go as far as thinking about the success and if you achieve it, how life may change and all the nice stuff that comes with it. Now that we have thought about it, our brain got that hit of dopamine, but almost imagining the success before the hard work. At that point, the motivation diminishes, and often the fantasy becomes the false reality.

    By this time, you see the gap, right? Between the start and achieving your goal, there lies a large gap! That gap is the process, the plan. More importantly, it is the focus points to prevent you from celebrating too fast and keep you focused on the current step in the present and not look too far into the future and get demotivated.

    IT’S NOT A PLAN, IT IS A PROCESS

    What is your strategy for achieving your goals? Specifically, how do you plan to progress daily? Focus on the variables within your grasp: the learning, the design, and the construction. The future is beyond your control, but your daily efforts are not. Undoubtedly, dedication increases the likelihood of opportunities arising, a fact substantiated by numerous real-world examples.

    A process cements discipline. If you do something small daily towards your goal over a long period of time, it removes the thought process.

    You cannot predict what will happen, but your actions shift the earth into action.

    Marie Curie’s disciplined approach to her scientific research was characterized by an unwavering dedication, meticulous methodology, and the relentless pursuit of knowledge, even in the face of numerous obstacles. She received 2 Nobel Prizes for physics and chemistry. I doubt the Nobel Prize was her focus, but rather to help humanity. The Nobel Prize was the by-product.

    THE PROCESS TO IMPROVE DISCIPLINE

    I used to be someone who did not like routine. Now I depend on it. With that came discipline. It goes hand in hand. It becomes a process, and that process executed consistently will eventually bring you success.

    Here are some guidelines on how to improve your discipline:

    • Set your goal(s). Be very specific. Don’t be realistic. Goals are dreams. It is the unknown.
    • Break it down into smaller steps. This is where you want to create daily tasks to make the process more manageable.
    • Create a routine. Now that you have established the tasks, you have to achieve those tasks daily. This is where you need to determine how much work you need to put in. You have some decisions to make. This is where it gets interesting. You can work after dinner in the evening, after you blow off some steam after a long day of work, or you can wake up early in the morning when it is quiet, and you have been rested. It is often better, and you feel like you have accomplished something first thing in the morning, and it also sets up your working day for success.
    • Set up your environment. Make sure your home space is comfortable and quiet. Invest in some good headsets. Learn how to listen to frequency music. Tons of these videos are available on YouTube. It is sounds without words and on a frequency that is conducive to learning and focus. Alternatively, you may like not to be at home and sit at a coffee shop or quiet space away from home. It also depends on the time of day. I particularly enjoy sitting at a particular Starbucks sipping coffee with my headset on. It is an extremely productive time for me. It is now up to you on how long you can sustain this. You will get challenged where the brain convinces you to do the easy thing like watching Netflix or endlessly scrolling on your phone. 21 days changes a habit, and 63 days create a new habit and routine. After 63 days, you would also have surpassed 100 hours. Learning and upskilling will become easier then.

    CONCLUSION

    Discipline is one word that holds so much power but is very elusive to us. Consistent execution over a long period of time – discipline will eventually move you towards your goal. The challenge is always getting to that point. It is so much easier said than done. You have to break old habits for new ones and operate with hope and goals with no motivation other than what you tell yourself.

    It’s hard, but once you reach that goal, you will never look back, and your confidence in the world and especially yourself will astronomically be enhanced.

    Try it, I dare you!

    Unlocking Your Superpower: The Power of Discipline in Software Engineering

    Simple prediction model in Python

    Demystifying machine learning through hands-on collaboration with chatGPT: A journey from uncertainty to mastery, exploring RandomForest and LogisticRegression for practical football predictions.

    I’ve been dabbling around in machine learning for a while by doing boot camps, and reading articles but truth be told, it never really sunk in how one can create a practical model you understand without just copy-paste and clicking the run button.

    I did not do this by myself if I have to be completely honest. I have to thank my coding buddy chatGPT for patiently listening and working with me until I was able to successfully create the prediction model.

    To be able to argue with chatGPT until you get to the right place and have the correct implementation is incredible and one achieves a higher learning experience because you and chatGPT have to figure it out together. chatGPT was not able to give me the answer straight away. It took some time and collaboration to come to the correct code.

    The Model

    I’ve been dabbling around in data science for a while by doing boot camps and reading articles. Truth be told, it never really sunk in how one can create a practical model you understand without just copy-paste and clicking the run button.

    I did not do this by myself if I have to be completely honest. I have to thank my coding buddy chatGPT for patiently listening and working with me until I was able to successfully create the prediction model.

    Out of curiosity, I’m employing two models to contrast outcomes for increased insight and thoroughness.

    Some important components

    LogisticRegression is a statistical method used for binary classification, a type of predictive analysis. It’s particularly well-suited for scenarios where the outcome is dichotomous, meaning there are only two possible classes.

    RandomForestClassifier is an ensemble of decision trees, typically using bagging. It creates multiple decision trees and merges them together to get a more accurate and stable prediction.

    Bagging, or Bootstrap Aggregating, is an ensemble learning technique used to improve the stability and accuracy of machine learning models by training multiple models on different bootstrap samples (subsets with replacement) of the dataset and then aggregating their predictions, typically through averaging or majority voting. This approach is particularly effective with high-variance models like decision trees, reducing overfitting and leading to more robust and reliable predictions.

    I decided to use both these regressions for this example to investigate how it works and what the differences in accuracy and results are. Let’s dive in, shall we?

    The Code

    The packages we require for this are scikit-learn and Pandas

    pip install scikit-learn, pandas

    Alternatively, add these into a requirements.txt row separated and run the following command

    pip install -r requirements.txt

    I will load the fifa_football_results.csv, which includes 45,000 current football results, into a pandas DataFrame.

    df = pd.read_csv("fifa_football_results.csv")

    Create a target variable representing the match outcome for the home team

    df['home_team_result'] = df.apply(lambda row: 'win' if row['home_score'] > row['away_score'] else ('lose' if row['home_score'] < row['away_score'] else 'draw'), axis=1)

    This is the part where we find the input and output columns and encode them for the models to process. LabelEncoder is a straightforward tool for converting categorical text data into numerical form, making it suitable for use in various machine learning models, especially for encoding target variables.

    label_encoder = LabelEncoder()
    df['home_team_result_encoded'] = label_encoder.fit_transform(df['home_team_result'])
    

    Next, we select the feature columns. We are using home_team and away_team for input and the home_team_result_encoded as output to predict which home_team is most likely to win.

    X = df[['home_team', 'away_team']]
    y = df['home_team_result_encoded']

    This code creates an instance of OneHotEncoder to transform categorical data in X into a binary matrix, representing each category with a unique combination of zeros and ones, and then constructing a new DataFrame X_encoded with these transformed features, each named after its corresponding category.

    encoder = OneHotEncoder(sparse=False)
    X_encoded = pd.DataFrame(encoder.fit_transform(X), columns=encoder.get_feature_names_out(X.columns))
    

    This code splits the dataset into training and testing subsets: X_train and y_train are the features and labels for training, while X_test and y_test are for testing. It allocates 80% of the data for training and 20% for testing, with a fixed random state for reproducibility.

    X_train, X_test, y_train, y_test = train_test_split(X_encoded, y, test_size=0.2, random_state=42)


    This code trains two machine learning models, Logistic Regression and Random Forest Classifier, on a training dataset (X_train, y_train). It then uses these models to predict outcomes on a separate test dataset (X_test).

    The accuracy and detailed performance metrics of each model’s predictions are computed and displayed, using the actual test labels (y_test). This allows for a comparison of the effectiveness of the Logistic Regression and Random Forest models for the given data.

    classifier_log = LogisticRegression(max_iter=100)
    classifier_log.fit(X_train, y_train)
    
    classifier_rfc = RandomForestClassifier(n_estimators=50, max_depth=100, n_jobs=-1)
    classifier_rfc.fit(X_train, y_train)
    
    y_pred_log = classifier_log.predict(X_test)
    print("Accuracy:", accuracy_score(y_test, y_pred_log))
    print("LogR Classification Report:\n", classification_report(y_test, y_pred_log))
    
    
    y_pred_rfc = classifier_rfc.predict(X_test)
    print("Accuracy:", accuracy_score(y_test, y_pred_rfc))
    print("RFC Classification Report:\n", classification_report(y_test, y_pred_rfc))
    
    
    

    These two methods, predict_match_log and predict_match_rfc, are designed to predict the outcome of a match between two teams using Logistic Regression and Random Forest Classifier models, respectively.

    Both methods take the names of the home and away teams as input, encode these names using a predefined encoder, and then use their respective trained models (classifier_log for Logistic Regression, classifier_rfc for Random Forest) to predict the match outcome. The predicted results, initially in encoded form, are then transformed back to their original label form using label_encoder, and the final predicted outcome is returned.

    
    def predict_match_log(home_team, away_team):
        new_input = pd.DataFrame({'home_team': [home_team], 'away_team': [away_team]})
        new_input_encoded = pd.DataFrame(encoder.transform(new_input), columns=encoder.get_feature_names_out(X.columns))
        
        predicted_result_encoded = classifier_log.predict(new_input_encoded)
        predicted_result = label_encoder.inverse_transform(predicted_result_encoded)
        return predicted_result[0]
    
    
    def predict_match_rfc(home_team, away_team):
        new_input = pd.DataFrame({'home_team': [home_team], 'away_team': [away_team]})
        new_input_encoded = pd.DataFrame(encoder.transform(new_input), columns=encoder.get_feature_names_out(X.columns))
        
        predicted_result_encoded = classifier_rfc.predict(new_input_encoded)
        predicted_result = label_encoder.inverse_transform(predicted_result_encoded)
        return predicted_result[0]

    We are going to use as input two teams, a home team, and an away team. It does not matter if this is a natural ground for the sake of the exercise the team being entered first is the home team and also the result of the prediction.

    home_team_input = input('Enter your home team: ')
    away_team_input = input('Enter your away team: ')
    
    predicted_outcome_log = predict_match_log(home_team_input, away_team_input)
    predicted_outcome_rfc = predict_match_rfc(home_team_input, away_team_input)
    
    print("Predicted Result for the home team:", predicted_outcome_log)
    print("Predicted Result for the home team:", predicted_outcome_rfc)

    The Result

    The whole point of the exercise besides predicting a winner was to understand which model would work best for this data using standard configuration. I don’t have the skill or the computing power to optimize these models.

    LogisticRegression has a higher accuracy in predicting the winner with 57% compared to the 52% for RandomForestClassifier. The latter would be better for more complex predictions, and that is why the former has a higher accuracy—it is better to work with less complex datasets and predictions.

    I’m going to use the following sets of 2 teams to run the model. I’m expecting the first

    • England vs Norway
    • Argentina vs Brazil
    • South Africa vs Wales

    In the first matchup, I expect England to win. It is also worth noting that these teams have played against each other in the past. The second matchup I expect to be very close and I cannot predict who will be the winner. This should be the more fun exercise. Lastly, I chose two teams who have never played against each other.

    …and the winner is

    England vs Norway

    Winner: England

    Argentina vs Brazil

    Winner: Argentina

    South Africa vs Wales

    Winner: Wales

    Conclusion

    It was a fun first outing and a completely different experience from doing boot camps like kaggle.com and datacamp.com for example. With no knowledge of these models and machine learning functions I had to start from scratch and with some guidance from chatGPT, I was able to get to the correct starting point which always takes the longest.

    With chatGPT solving all our problems, it is still worth understanding the basics of machine learning. That is what I am to do while. Organizations still need to crunch very large datasets for new analytics and insights.

    Please find my code repository on Github

    Simple prediction model in Python

    A top tip for new Software Engineers

    Every time you start a new job there is newfound energy that comes with the new territory. You feel rejuvenated and ready to learn. This is a powerful force and when used correctly can speed up learning in your new environment as a software engineer extremely fast. Typically, you enter a new working environment with less bias about what you prefer to work on. This bias slowly accumulates over time and will eventually result in a preference.

    I can write this article from a couple of different points of view. I am focusing purely on maximizing domain knowledge as a new Software Engineer and learning many different skills. This is not for everyone but I realize that most engineers struggle to understand their domain because of a lack of communication channels and or engagement or maybe just the sheer volume of information that overwhelms engineers.

    Success depends on what you are willing to put in!

    The noise at the office.

    Before the world had to deal with Covid-19, I spent most of my time in an open office environment with loads of noise around. This noise was mainly people discussing work, yes, and the occasional social discussion, well let’s be honest a whole lot more of that. We aren’t part of these work desk discussions thus why would it be relevant to us?

    A top tip solution is to cancel this out by putting on our earphones with some of our favorite music or podcasts to block it out and focus on work. Nothing wrong with that. Software engineers need solid focus time.

    However, whilst it could be perceived as noise I would argue differently in that there are copious amounts of gold nuggets in the audio moving around the office. In previous jobs I had, I would remove my earphones and listen to the office chats and write down some of the terms or jargon I heard for exploring later. If you struggle to work and listen at the same time then take 15 minutes when the chatter is high or specific people are conversing and write down what you hear.

    This presents a good opportunity to approach these colleagues and ask what this means in the context of the business. This learning did not fall on your lap accidentally you were looking for it and probably learned faster than you would have. Active learning! And, bonus! you showed interest and socialized with a colleague.

    Doing this continuously over time will increase your knowledge and the positive by-product is to give you the ability to become part of the conversation if you decide to.

    I’m working from home now!

    “Ok, but with Covid-19 I started working from home. What do I do now?”.

    Chat applications are the new office environment and most business-related chats at the office will move into some chat or personal channel on Teams, Zoom, Slack, or Google Meet.

    There is an obscene amount of chatter in these channels and the noise (information) can be so much more than in an office. These are much easier to ignore no earphones are required. If you are new to the domain all the chatter in the chat application will be the gold nuggets you need. It is tough to follow all the channels and notifications have become the poison to our attention span.

    Schedule 15 minutes during morning, midday, and evening respectively to work through these messages and write down terms you aren’t familiar with. Approach the person in a personal chat and ASK or ask in the next general meeting in a video call direct. Typically asking a question in a chat on a large channel can result in “bystander effect” where everyone else thinks someone else will answer potentially ending up with no response. This is a real phenomenon. Don’t take it personal

    Remember, you will eventually learn the domain but it is in YOUR control how fast you want to learn. Learning one domain gives you the experience to more easily navigate the next.

    Conclusion

    Fostering this kind of awareness early on in your career will set you up for success. When you are new to a domain you are often given overwhelming knowledge transfers during hours of meetings and/or documentation that don’t provide a good starting point but rather context skipping how to get to the document is explaining.

    Using this strategy allows you to put the pieces of the puzzle together until you have the full context and will greatly assist in adding context to those KTs and documentation.

    Don’t wait for people to tell you what to do or feed you the info. Be proactive. Awareness, observation and just being a good listener promote active learning. This sets you apart and shows initiative which are skills managers want to see!

    A top tip for new Software Engineers

    How to improve one-on-one conversations as a Dev Manager

    I love having a one-on-one sessions with my manager. This time I associate with productivity and growth not to sound selfish but for 30 minutes it is about me and my career. The feedback is immediate on what I’m doing well, and what I can improve. No use waiting for the year-end review to first learn what I could have done better! The improvement starts immediately.

    But I have learned from my failures and past managers what I prefer not to do to myself and what I should do for others.

    On Linkedin I often see my connections post frequent motivational posts regarding leadership. I know some of these people who post because I worked with them. Therefore, I have some insight into their circumstances and how their superiors acted during their time at the company.

    This is just my personal opinion and I have no data to back this. However, often I see these posts are about “leader vs manager” and cannot help but think this is aimed at their previous manager because of a disappointment for not growing or valuing them which ultimately became the reason for their departure.

    The point I’m trying to make is your actions as a manager can affect a person negatively for a very long time. Someone is not having fun because of your ignorance and actions. THAT IS POWER!

    Easy steps to effective conversations

    I have rock-solid steps to improve one-on-one conversations with your engineers almost immediately. It is specific to online meetings because it is where the worst of our habits presents itself. In the face-to-face meeting, listen, engage, and be respectful. Success will depend if you are open to it as a manager and not necessarily depend on the employee. These are easy to do and all it requires is a shift in focus.

    Switch on your camera

    Let the person on the other side be assured they have your full attention. It is important to carry across a message with the correct body language. Tough conversations for example must have body language to show that this is not emotionless but comes from a deeply concerned and caring nature.

    Do not multitask

    In one-on-one multitasking is a big no-no. It is easy to spot when someone is reading while in a meeting. It takes away the focus from the conversation and affects the memory which is essential for a decision to be made on behalf of this person’s career growth. Relax your shoulders or cross your fingers in front of you. These conversations can provide us with valuable insight and clues that may be useful in other discussions, creating new opportunities for the engineer. This conversation takes 30 minutes. Being respectful to them cultivates respect for you as their manager.

    Keep notes

    Simple but effective. If you recall past conversations there is nothing more indicative that my manager is listening to me. On the flip side, managers can use it to hold the engineer accountable and honest.

    The above steps are simple yet highly effective.

    The manager’s part in the conversation

    Typically, when I hire a new engineer I ask them what they want to work towards. It typically is seniority, architecture, analysis, or leadership. There are many people in an organization they can partner with to learn from. We need to help facilitate these connections and create opportunities for our people.

    During every other one-on-one, we revisit their progress toward their goals. It is a good opportunity to identify gaps. For example, maybe they are too code-focused and need to learn, as a future software architect how the entire system functions. The manager can intercept this early on and advise the engineer on how to improve their approach.

    As I previously mentioned, imagine you as the engineer only receives feedback at their end-of-year review! I kid you not, this happens! I have experienced this at three of my previous jobs. It is a long time to wait to get feedback. What if I’ve done something wrong and only feel the “punishment” (feedback or reward) end of the year?

    The need for negative feedback originates from an event and therefore must be dealt with immediately. Immediate feedback kick-starts the remedial process and allows for course correction to take place for the engineer. It preserves the person’s confidence in the long run.

    But as managers, we often miss these opportunities.

    As a manager and someone who is concerned with another’s growth and advancement, this presents a fantastic opportunity to transform failure into success. Taking a keen interest in your engineer’s career and staying up to date with their activities enables immediate course correction if it is required.

    This must be the conversation almost every one-on-one with the person. There should be no surprises at the end of the year review.

    We as managers do not always have access to budget or promotions and even if we do there is always such a balancing act and it is impossible to give to everyone. Therefore, taking a keen interest in someone’s career and growing them is in your control and is the best we can do for our people. It may just keep them a little bit longer at the company because they are being valued and we take interest in them.

    It doesn’t always have to be money and title

    I cannot overstate it enough the influence the manager has over their engineers. I’m sure you have seen many posts on LinkedIn saying; “People leave managers, not companies”. I say this is true over and over. Managers are also in the spotlight when engineers leave companies due to the type of work they perform. The manager can help by finding a new role or moving the engineer onto a new project or team.

    Conclusion

    If you find managing people easy you are doing something wrong. If you are managing people just for the title, stop doing it and pivot your approach. Your responsibility is to grow your people into a better version of themselves. When they eventually leave the company and many do you can feel proud that they are leaving better than what they started. In the end, they are leaving because of their managers because you helped them become a better version of themself.

    How to improve one-on-one conversations as a Dev Manager