Advice for Junior Engineers – Part 1

As an entry level engineer, you ideally want to absorb as much information as you can and push yourself. That’s how you’ll evolve and become a good mid-level engineer. Some things to know:

  • If you’re stuck, reach out and soon. Don’t try to figure something out for 2-3 days on your own before asking for help. But don’t overdo it and ask for help on every little thing. Don’t feel like you’re bothering people. You’re in a team, and your team exists to help one another at least in a healthy one. If someone is abrasive, that’s on them.
  • Use your team lead. Ask for feedback, and provide feedback. They’re there to help you grow and succeed
  • Let go of your ego. Many engineers let their ego prevent them from learning. This can take many shapes like small PR feedback to how you plan bigger scopes of work.
  • Understand that in most companies your job is to provide value. Understanding how your role creates value for the company is important as it’ll frame how you approach your work. You want to enable yourself to create a lot of value, which makes you valuable to the company. And that’s not just things like feature development. That can also take the shape of improving the code around you, writing good/updated docs, helping others, etc.
  • Understand that you need to bubble up what you do especially in larger organizations. Your lead will likely know your successes, but it’s always good to know how and when to send you up successes above you.
  • Network! You don’t need to be friends with everyone, but understand that the people around you will be your network in your career. People will come and go. And you’ll eventually go to another company too. You want your network to get you a new job if possible as that’s the best and easiest way to get a job.
  • Keep learning. This should never end really. Ideally you learn on the job. If you’re not learning, reach out for help to help reshape what you’re doing to help you learn as you work.
  • Yes, respect people’s Slack statuses. If they’re do-not-disturb, then respect that. Hopefully your company has some communication guidelines to follow. If not: avoid sending a message to a very large group of people, and avoid things like @ channel because it bypasses people’s notification settings. Be mindful about how you communicate. Also apply your statuses for yourself. Do you need focus time? That’s fine, just communicate that in a way that aligns with how your team/company does it.

Burned Out? Here’s How to Recover

Are you feeling burned out from work? This will happen to everyone, and it will happen to everyone multiple times through their career. There are ways to avoid it, but sometimes you find yourself already there. Here’s what you should do about it.

Don’t Automatically Quit Your Job Due to Being Burned Out

Just because you’re feeling burned out doesn’t mean that it’s automatically your job’s problem. Too many people fall into this trap. Don’t make your job and company become the source of your contentment in your career. You may simply find a new job, and once the new car smell wears off, you’re back to where you started. A new job is fun, and exciting. It’s also more stress because you’re starting from the beginning with a new team, culture, and renown. Maybe the job is the problem, but maybe not. Just don’t fall into the trap of externalizing your problems onto others.

Find the Root Cause

This is the most crucial thing to do. Take time for yourself, and do a root cause analysis with yourself and your problem. Sometimes the true problems are surprising. Sometimes it’s a problem at work, sometimes it’s a problem with your or your home life. Here are some common root causes for burnout:

  • Unfair treatment at work
  • Stress from a new child
  • Stress from moving to a new place
  • Unmanageable workload
  • Conflict with you and the work culture
  • Lack of sleep
  • Too much overtime
  • Unclear expectations
  • Bad management
  • Lack of recognition
  • No control over your work

As you can see, not all of those are work related. And the possibilities are many. So take the time to understand yourself, and be honest and candid with yourself as to what may be triggering it.

Change What You Can

You have the power to make a difference and reduce or eliminate your burned out state. Some things you can directly control, which are things specifically about you. If it’s something within your control, work on changing it. Beyond you, you can only influence things. If there are things that are external to you that are the sources of your burn out, then start to work with the people that can make effective change. You’d be surprised how people will be willing to help you if you ask. Especially if you have a good manager, they’ll want you to be happy and successful. Be open and honest with others, ask for help, support, and strive to make meaningful changes. With time, the problems that are weighing you down can be made better. Or ultimately, you may need to give up and find a new job. But don’t resort to that without trying, or you’ll be running away from your problems.

In the end, you have a lot of power to help yourself from recovering from being burned out. Do your best to avoid getting to this state, but if you’re in it, just know it can get better.

Thinking Differently About Your Annual Review

Your annual review is an important part of your success as a team lead, and as a software engineer. However, not everyone truly understands their value and how to leverage them properly. As a team lead, I’ve seen too many self reviews that have very little content, much less supporting details to emphasize their wins, strengths, and their impact that they’ve made. I understand, it’s tedious. But if people understood their true value, it should be different. You don’t want to write a novel, but you need more than just a couple of sentences. But why?

Sell Yourself

Understand that your self review is like your resume. It isn’t for you. Your annual review in general is about communicating to your boss, and the people above your boss, your value in the company. Your boss likely knows your contributions, but does your VP? The CTO, or CEO? Not likely. How about HR or people in charge of making salary decisions? Even less likely. Your job is to sell yourself and your value to them, as well as your boss.

If you look at it from that lens, then you need to understand what to communicate, and how to communicate it. Use terminology they’ll understand. Change the net result of your communication too to make it convincing and actionable for your audience. Just like your resume, highlight what you accomplished, but also the value that each accomplishment gave to the company. Do the same for your strengths, and every other item in your review.

Understand the Use of Your Annual Review

Your annual review isn’t a box to check at the end of the year. You must understand what it’s used for. These documents are used for:

  • Layoff decisions – layoffs are going to happen? They’re less likely to lay off someone bringing lots of value to the company compared to someone who may contribute as much, but failed to communicate it
  • Promotions – want a promotion? Clearly communicate what you’re doing, and the impact. And this is a verifiable piece of evidence that you deserve the promotion, or it indicates what you need to work on to achieve that promotion
  • Salary compensation – want a better raise? Use this as a bargaining chip in your negotiation. Or allow it to speak for itself. If you highlight well what you’ve done, you’ll have a greater chance at being given a better raise to begin with

Use your annual review as a means to help yourself. There are many things you need to do regularly to help yourself in your career. This is one of them.

Understanding the Technical Screening for Software Engineers

The technical screening phase of the interview process has always been a debated subject. No one can agree on what the best strategy is for screening candidates. We must understand why this stage in the process is necessary however. Software engineers are paid very well for their time and experience. And most highly paid jobs do have screening some process to filter out people that can talk the talk, but can’t walk the walk. This is a safety precaution for companies.

Why is the Technical Screening So Important?

The company has to pay your salary, and benefits. And they also pay your taxes as well. So a single software engineer is a very large expense for a company, much less an entire team or organization. The largest expense for most companies is payroll. So companies have to ensure that they’re not wasting their time or money.

You also have to understand that both hiring and replacing a person is very expensive. Just hiring a new engineer can reach up to $50,000. And replacing a software engineer can cost a company up to 1-2x their salary as well. It’s not just the salary and benefits of the new person. It’s the time lost in productivity, meetings, screening people, discussions, negotiations, onboarding, and more.

With all of that in mind, we agree that it’s crucial that companies find the right person for the job. And that requires diligence in the screening process for hiring engineers. You simply can’t take the resume as fact and hire someone. There’s the whole process of evaluating fit, and soft skills. But the person has to do the work too. Teams, peers, and companies need that person to be productive.

What Options Exist to Evaluate Engineers?

There are many options companies can use to dive into a person’s technical capabilities to see if they’re a good fit or not. Not all are good, and many are misused.

Leetcode

Leetcode is essentially an online tool to quickly assess someone’s ability to understand and use data structures and algorithms. You are given 1-2 short problems and are given a small timeframe to solve the problem and meet the requirements. This can fortunately be done in the interview timeframe itself. And many people opt to screenshare and watch the candidate work. This is the most pervasive option right now.

Pros:

  • Easy for companies to implement
  • Easy for candidates to study. Just grid leetcode exercises.
  • Short timeframe
  • Moderately gives you an understanding of the person’s ability

Cons:

  • Most questions are odd and not close to reality of what the person does on the job
  • The candidate is in a stressful situation to understand the requirements, build the solution, and complete the work in a really small timeframe, while being watched by someone
  • Has the risk of candidates studying solutions and have already completed the exercise given, obscuring the results
  • Have to use the website and their UI and tools to write the code, so you don’t have the luxury of using the setup that most engineers configure for themselves to work optimally

Take-Home Exercise

In this scenario, a candidate receives an assignment to complete independently over several days. Typically, these assignments entail a larger scope of work compared to a typical LeetCode question and are completed outside of an interview setting. However, this approach is also flawed as it is often misused and misunderstood. Many companies underestimate the time required, claiming it will only take a few hours when in reality, it takes days to complete. To produce work that impresses the hiring panel, candidates must excel in communication, documentation, testing, code coverage, proper abstraction, attention to detail, and other essential aspects.

Pros:

  • Provides the candidate an exercise that would be the most realistic to their actual work. It would include “real” requirements, and they work on their own time, with their own setup.
  • It’s not done within the stressful situation of an interview, and no one is watching you work
  • The candidate has the luxury of time to think about the solution, and ask questions

Cons:

  • Most of the time the scope of the exercise is too large. I’ve personally built exercises that took me days because I was building end-to-end solutions and custom UI with high test coverage, and more when the instructions said it’d only take 6 hours. I’ve also been given requirements to build a whole product and the company said it’d take weeks to build.
  • It’s a large time-sink for candidates, and they must use their personal time to do it
  • Most of the time it’s unpaid
  • If the candidate has multiple interview processes happening, it could be too much to balance
  • It’s more work for the interview panel as well to communicate with each candidate, and then carefully review each submission

Lengthy Technical Interview

Another option is to simply have a lengthy technical call with someone. This is where you’d ask DSA questions, probe their experience in debugging something complicated, ask about classes and APIs, and more. The difficulty is that each person is unique, so you’ll get varied answers. And there’s way to much to possibly cover in a realistic interview timeframe, which is usually an hour. And it’s difficult to avoid it simply being a Q&A session and not really an interview where you have a proper conversation with someone.

Pros:

  • Less demanding of everyone’s time
  • Easier to prepare for the hiring panel. You can simply have a sheet with questions and follow-ups and go down the list

Cons:

  • You’re more likely to get bad candidates this way as it’s too difficult to properly evaluate someone with the breadth and depth required
  • Without careful planning, you end up with people recommending to hire or pass based on gut feelings and reactions instead of objectiveness
  • Easier for the candidate to study for. They can usually simply study common questions and answers, which there many lists out there, and likely cover most of what the panel will ask
  • In general has the highest risk for bad hires

What Should You Do When Screening Engineers?

Most engineers consider whiteboarding sessions and a 1-2 week trial period, where the candidate works on-site, as the worst choices. Engineers do not typically utilize a whiteboard in their regular job tasks as they would in an interview setting. Trial periods pose difficulties for all parties involved. If the person cannot quit their current job for the trial, the company needs to arrange accommodations for their existing employment. Additionally, the company must address considerations such as hardware provision, task assignments, collaboration arrangements, and legal requirements. Determining the appropriate compensation and establishing clear metrics for success or failure are essential. Overall, there are too many barriers for this option to be feasible.

As you can see, there’s no perfect answer. That’s why we’re in the state that we’re in. However, my personal recommendation is simple: Ask the candidate what they prefer out of your preferred options.

This will enable you to work together with each candidate and still strive to get what you need. Whatever you and your team chooses to do, at least acknowledge what you’re doing and why you’re doing it. And communicate it clearly to your internal hiring teams and the candidates.

 

Traits of a Good Engineering Team Lead

A good engineering team lead is incredibly valuable. They’re important and crucial for the company as well as the people managed. However, it’s not easy being a leader, and it’s not clear how to be a good leader. What makes a good lead is a balance of many things, and balancing what’s good for the self, the company, and your people.

Traits of a good lead

  1. Continuously grow as a person. As a leader, you have to keep evolving. What works for you today, likely won’t serve you the same years from now. You have to keep up with the times, work on your flaws, and strengthen what you’re good at.
  2. Be empathetic. Use empathy in everything that you do. This is a huge differentiator between being a good leader and a leader that people leave. After-all, many people leave bad managers as the number one reason for leaving a company. When you apply empathy, you allow yourself to go beyond your own vision on how things are done, planned, orchestrated, and more. It will allow others to feel that you have their best interest at heart.
  3. Grant people autonomy. Many people in general thrive off of being able to solve problems on their own, and enjoy the creativity and freedom to do their job how they think it’s best. It’s a delicate balance to enable people to have those freedoms, but still maintain order, reporting, and transparency. You need to strive no matter what though to enable people to run on their own. That will give them a greater sense of ownership, accomplishment, and they’ll grow at a much faster rate. And you’ll be setting them up for future success as they grow in their career.
  4. Evolve your processes. All engineering teams and organizations need processes. It helps keeps things moving, enables transparency, accountability, planning, and more. Many people, especially engineers, find processes to be restrictive, but as a leader, it’s necessary so you can do your job. However, a team process is meant to enable your team, and you, to do the highest quality job. So you must continually improve your process to ensure that it fits the needs of today. Ask for feedback. Experiment with things. And allow your team some influence. Enable your process to be the team’s process, not yours.
  5. Practice good one-on-ones. One-on-ones are your lifeblood to keeping people happy. Make sure that you keep them regular, and effective. They’re not just about giving your people feedback, it’s about you getting feedback too. Plan ahead, and keep people engaged. Learn about each person individually, help them with their career goals, make sure they’re not burnt out and more.
  6. Treat people like adults. Treating your team like adults will net you more positive results than you realize. They’ll appreciate and respect you. They’ll value your team, and the company more. They’ll take ownership of their work and give you their best. It will mean that sometimes they’ll have to run an errand in the middle of the day, miss a meeting, and situations like that will arise. But they’re adults, and so are you. Treat them as such.
  7. Communication is crucial. Your communication skills have to be constantly evolving. You need to know how to speak, when to speak, how to adjust how you communicate to different people. It also means understanding what to talk about and to who, and when you need to keep things private. You have to master how to bring people together across teams and departments. You’re the bridge that your team needs to rely on. Practice good communication skills, and help your team grow their own skills too.
  8. Bubble up successes of your team. You’re the gatekeeper between your team and leadership, so use your position wisely. It’s rare that someone above you will know a win that one of your engineers had. So make sure that you elevate your team, and bubble up successes to the people above you. That will make it easier for them to see how well the team is doing, how we’ll you’re doing, and how well your individuals are performing. If you aren’t doing this, no one else will. So, fight for your team to be successful all the way up the ladder. It will pay dividends for you too.

There’s a lot more to being a great team leader for an engineering team, but these are some key highlights to focus on. It’s not easy to be in this position, but the more you grow, the more success you’ll find.

Tech Debt is not always bad

A common complaint from engineering teams and departments is around tech debt. I see and hear a lot of people complain about having tech debt, never getting to address it, and overall a sentiment that it shouldn’t exist. While that’s understandable, that’s also not understanding what tech debt is. It’s also ignoring the impacts of having tech debt, or working in a way that never introduces it. Essentially, there is no perfect answer. And there’s no single solution. But there are better and more insightful ways of looking at tech debt to understand the impacts not just on engineers, teams, but as a business as a whole.

What is tech debt?

Many people often misunderstand the true nature of tech debt. They simply see it as a tool with multiple uses, much like any other tool. Tech debt allows for faster completion of tasks and can also facilitate improvements upon existing solutions. Its versatility allows for both beneficial and detrimental outcomes depending on how it is utilized.

When approached with the intended metaphor of debt, its potential applications become clearer. For instance, when faced with the need to develop a feature, one could opt for a debt-free approach, ensuring the most optimal outcome but requiring a longer development period, perhaps three months. Conversely, by embracing some tech debt, the feature could be completed in half the time, around a month and a half.

Tech Debt as a Metaphor

As an engineer, you want to avoid adding tech debt in principle and just do a solid job now. However, as a business, you have to weigh the costs, and there are many. There’s engineering time, opportunity costs, possible loss or delay in new business, or possible churn, etc. That also means that your teams could lose out on working on something else in those 6 weeks.

It’s no different than any other debt. Does your roof need fixing? It may cost you $12,000 to replace your roof. Most people don’t have that much money laying around. So, you could save up for 3 months, get a second job, and pay it off all at once. Or you could pay down some of it upfront, then take on the debt, and get your roof fixed in 2 weeks.

Either way works, but like any major decision, you have to weight costs. Could you afford that additional money due to interest? Would you have more damages if it rained? Are the roofers you want to employ busy now or later, so would scheduling be a problem?

Looking at it that way, debt isn’t inherently good or bad.

What are the different types?

There are multiple types of tech debt, which is good to acknowledge. You can frame it appropriately knowing the type, because decisions can happen intentionally or not. And people can make decisions being prudent or reckless. Understand what caused it, if it is to be introduced. This is a good paper on the subject.

Different situations include:

  • We don’t have time to design this
  • We must ship now, we’ll deal with the consequences
  • What’s event-based architecture?
  • Hindsight is 20-20, now we know what not to do

Look at the differences in those statements. Those statements range from individuals needing to accomplish tasks poorly to simple ignorance. You now have more tools to understand what tech debt is and why it’s not allthe same.

How to approach it

As a team lead, this is your responsibility. Ultimately, the ownership and accountability lies on you. You now have the tools to look at the situation and decide what you are comfortable with. Now you have to decide what is acceptable for you, and your team. But now you know that tech debt is neither good, nor bad. It’s not black or white, just like most things in life. You must use discernment to judge what to accept and when. And that can change depending on the situation as well.

Writing an Ideal Resume

You should put a lot of effort into writing your resume. There are a lot of components to a good resume, and many people in the software industry fail at writing an ideal resume. And unfortunately that means that your likelihood of getting through the initial interviewing stages is reduced. Your resume is your elevator pitch! If you were to try to sell yourself in-person, would you not bother optimizing your pitch? Your resume is your pitch, so do your best to make it the most impactful that you can. Otherwise you’re only hurting your own chances for success.

Empathy is Key to an Ideal Resume

What many people fail to consider is applying empathy to writing your resume. This document isn’t for you. Your resume is for your reader, and you absolutely want them to find it engaging and interesting. They person analyzing your resume is the gatekeeper to you moving onto to talking to someone.

And also remember, that you’re applying for a job at a business. The primary objective of most businesses is to make money. And you’re a part of that process. So you have to think about what a business would look for in hiring an engineer. Always remember, your salary has to be paid somehow. So your most important asset is the value you create.

So you need to stop and consider for a moment.

  • What would make them want to stop and read my resume more thoroughly?
  • What information are they looking for?
  • How can I get their attention quickly?
  • How can I showcase my talent, and successes?
  • How can I make myself standout from the other candidates?

If you apply empathy to writing your resume, then you’ll approach your resume different. And it’s more likely that you’ll have more success with it.

Components to Focus On

There are key components to writing a good resume once you start thinking with empathy in mind. Once you realize what the person is looking for, it will shape how you write your resume.

First, your intro should say something unique about you. If you were in a room with one hundred other engineers and you all had to introduce yourself, how would you be memorable? Write your introduction with that in mind. Everyone is driven, passionate, etc. What makes you truly unique?

Next should come your experience. This is most applicable if you already have working experience. Your work experience needs to highlight not only what you did, but it needs to show you understand the value and impact of what you’ve done too.

Follow the STAR method. For each line item in your resume, communicate the situation you were in to convey context. Showing you understand the context of your work is a valuable skill, as it shows you look beyond your individual contributions. Follow that with the task itself of which you were assigned to do. Then detail the actions you took to accomplish them. Finally, and importantly, wrap up with highlighting the results, and the impact, of your work. That shows you understand your value and what you bring to the table.

Go through all of that for all of your work experience, while also balancing not writing a novel because no one will read a three or longer page resume.

Your next component should be an easily legible list of your skills. And don’t add modifiers to your list like “expert”. It may sound good to you, but statistics show it does more harm than good. Just list your skills out in a succinct manner. Let your interviewing skills, and your work experience, show how good you are.

Finally wrap up your resume with your education, certifications, and more. And if you have any links to websites, like your portfolio, Github, etc. make sure you put the URL or your handle. Don’t assume someone will have a digital copy of your resume.

Tailor you Resume to the Job

The last and arguably one of the most important aspects to writing an ideal and effective resume is to tailor your resume to the job that you’re applying to. If you just write one resume, and you blast that to every job opportunity you see, and you’re applying to jobs with different languages used, and different industries, then your chances of getting into next phase is going to be reduced even more.

As a person who’s reviewed and analyzed hundreds of resumes, it’s really easy to tell who didn’t bother doing this. And most of the time they’re simply tossed to the reject pile. You don’t need to customize your resume for every application, but at least have a handful for specific industries, job requirements, etc.

Following these principles will help you find success in getting through the initial screening stage in the process of finding a new job.

Advice For Software Engineers

As someone who has been in the industry a long time, twenty years and counting, I’ve seen a lot of things, both good and bad. I’ve been involved in the business-side of the industry, been a hiring manager for over ten years. I’ve mentored a lot of people, and have been mentored by some amazing people. worked on hundreds of projects. These projects range from really small projects to really large-scale projects. I’ve been involved in highly successful projects bringing in hundreds of thousands of dollars, to failed projects too.

I’ve given a lot of advice to engineers over the years. I enjoy giving advice! So I figured I would have a constantly updated place to hold the advice I give people. These pieces of advice are applicable to people still in college, to people with many years experience. I hope you find some gems in here.

  • Ask lots of questions. Don’t feel like they’re dumb questions if it means you learn something.

  • Use your boss/leader as much as you can, that’s what they’re there for. Ask for feedback, give feedback. Ask how you can grow, where to grow. Ask for support.

  • Don’t take things personally, especially when it comes to the work you produce. Remember, it’s not about you.

  • Understand that you won’t ever truly know everything, even when you have 20 years experience. Embrace it. This applies to so many things.

  • Don’t compare yourself to others. Compare yourself to who you were 6-12 months ago. And always strive to be better than your past self.

  • Have goals, but make them reasonable and actionable.

  • Learn the hiring process to understand how to set yourself up for success.
  • Bubble up everything that you do, even if it’s just to your boss/lead. It’ll make them aware of your successes, growth.

  • You will make a mistake, including big ones. The best thing you can do is to own it, and learn from it, and show that you’ve learned from it. Making mistakes if perfectly fine, we all do it. It’s not okay to avoid ownership, or fail to learn from them.

  • Understand what building things truly means, and it’s usually not what people early in their career really thinks. Things like maintainable and legible code is far superior to clever code. And revenue generating code is crucial, even if it’s old and you don’t get a chance to refactor it. All things have a cost. Would it be great to rewrite this old PHP service into something modern? Of course! But at what cost, and what’s the value?

  • Your salary has to be paid somehow. This affects everything that you do. And that also means that everything you do influences everyone around you, including people outside of engineering.

  • Favor smaller PRs over bigger ones. Bigger ones are a huge time sink, and you’ll get less quality feedback.

  • Seek feedback and validation on your ideas early. Don’t wait until your PR is up to get feedback on your ideas. Worst case is your idea doesn’t work with the team and you have to rework a ton of stuff. Save yourself and your team time by validating your vision as soon as you can.

  • Find a good balance of work and life. No one will do this for you. And many companies will try to do what they can to take advantage of you. Only you can stand up for yourself. Learn to do this.

  • Learn how to give and receive feedback in a healthy way. Both situations can be stressful, and emotional. But there are ways to help mitigate that so you can make the best out of feedback. And feedback given and received in a healthy way is really valuable.

  • Network, always, and nurture your network. This is the most valuable way to find new jobs. I’ve gotten 2 jobs where I skipped almost the entire hiring process and just talked to the CEO for 30 minutes then got an offer.

  • Document and journal what you do, ideally at least once a week. This will help you bubble up your successes, help you keep you resume updated. It will also help you fight for a promotion, or a pay raise. It will also help you reflect over time on all that you’ve accomplished in your career. All of that can help you fight against imposter syndrome too.

How to Run an Effective One-on-One

As a team lead, one of your many responsibilities will be to establish and nurture your relationship with your team members. You’ll accomplish this over time. There is no shortcut to this. And just like any relationship, you can build it up, or wear it down. So consider that every interaction you have with your team, and every time you make a decision, etc. that your rapport will change. Something that you should be doing is having regular check-ins with each person on your team, and the most effective way is to have one-on-ones with them. But these one-on-ones can be beneficial, or a waste of time. To run effective one-on-ones, you have to be diligent, empathetic, communicative, and more.

Diligence with your one-on-ones

A major factor to ensure that your one-on-ones are effective is to ensure that you’re diligent and consistent about them. That means you must keep a regular schedule and stick to it. Even if you need to move one of them around to a different day sometimes, that’s fine. Just don’t cancel them unless you really need to. Again, just like any relationship, having meaningful and personal conversations is crucial to building trust, understanding one another, enabling meaningful and candid conversations.

It also means you need to take notes for each one. This will act as your guide over long courses of time. Your memory is not perfect. You won’t remember what you talked about six months ago, or something small but important that came up recently that you wanted to chat about in your next one-on-one. Diligence in note taking will enable your one-on-ones to have more value and meaning.

That also means you have to prepare in advance. Don’t just show up to the one-on-one without any forethought or outline. For every one-on-one, and for each person, spend some time before the meeting to read your notes, and then reflect on anything you saw or heard during the week. Then also write down anything you want to talk to them about. Having an outline gives structure to your one-on-ones and also shows that you’re taking it, and them, seriously.

Having diligence in your preparation and having consistency will enable you to grow as a lead, but also grow your relationship. You’ll find that your own skills will grow, like empathy, communication, planning, and more. And growing yourself is equally important as growing your team.

What to talk about during one-on-ones

There are a lot of things that you can talk about at every one-on one to make them meaningful. But what you talk about will be unique to every meeting you have, and to each person. You may hold all of your one-on-ones for your whole team in the same day, or week. But you’ll likely find the outline you prepare will be different for each person. There may be some overlaps, but overall this should make sense. Each person will have different needs at all times. So specifically what you talk about will take your diligent planning.

Also remember, that this is supposed to a conversation. One-on-ones aren’t an interview. So you shouldn’t just be asking many questions and writing down notes about their answers. To form a solid relationship with someone, you have to give as well. So make sure that you open up to your team, talk about how you’re doing, what you’re dealing with, and basically any of your questions should reflect back to you. This will make you feel more approachable, human, and enable them to be empathetic with you.

One-on-one aren’t for casual conversations like you would chat over a cup of coffee. So stick to important concepts like:

  • Working through their career growth
  • How they’re feeling about their job
  • How they’re dealing and balancing work and life
  • Are they facing burnout
  • Giving feedback to them
  • Receiving feedback from them
  • Giving them insight into what’s going on above them in the organization

Here are some resources to help guide you in more depth for your one-on-ones:

Benefits to making them meaningful

There are many benefits to having meaningful one-on-ones. You’ll be a more effective manager for your team as whole because you’ll be able to identify issues in your team, team dynamics, workflow, processes, and more. You’ll be a better manager and lead for your team on an individual level too. You can mitigate burnout, prevent someone from becoming too unhappy with their job early to try to prevent them from leaving, help them grow in their career, build on their strengths, improve their weaknesses, guide them into and through promotions, and so much more. With a happy and efficient team, your team will work better, more efficiently, and you’ll find you’ll be able to meet deadlines more consistently. The work itself will be higher quality. You’ll also find yourself growing with better communication skills, more empathy, and so much more. There are countless benefits to having good one-on-ones, but it all starts with you.

 

Is it a Good Idea to Pursue Software Engineering in Today’s Climate?

This question has come up a lot in the last several months now that 2024 has started. There has been a lot of news around layoffs in the latter part of 2023, and more layoffs in early 2024. That’s left a lot of people really early in their software engineering career concerned about job prospects. That’s also left people in college, bootcamps, etc. and people considering them, to reconsider their career choices. Given all of that, is it a good idea to pursue software engineering in today’s climate? In short, yes, absolutely. But there’s a lot of information to consider.

Forecast of the next several years of software engineering

When you really think about it, so much of our modern society is built upon software. So there’s an ever-growing need for more software, and thus more software engineers. And AI is not damaging that outlook either. But if you look at research, it shows that the industry will continue to grow by a large margin in the next 5 years and beyond. So if there are lots of projections of growth for the industry, then it’s a healthy industry to pursue.

Why are layoffs happening in 2023 and 2024?

There are important things to remember when looking at the news of layoffs in the IT industry.  If you don’t, then it’s too easy to think that the industry is collapsing, when in reality it’s not. What you’re seeing is expected, and normal for the industry and the economic signs if you’re paying attention.

Layoffs happen, and what you’re seeing is news from major companies announcing layoffs. And layoffs happen the most around the end of the year, and in January. The reasons are because companies want to show healthy reports for their fiscal by the end of the year. Similarly when starting a new fiscal, they’ll try to consolidate, restructure, and trim headcount when starting a new year based on their forecast for the new year. So, all of the news you’re seeing is a common pattern.

You also have to remember the pandemic. The federal rates were almost zero during the pandemic to alleviate unemployment, which drove many companies to borrow money with great ease, and use that money to go on hiring sprees to experience a lot of growth. That’s why in the last couple of years hiring was insane, and we also saw salary inflation in some roles because of it. Now that the federal rates are higher to combat inflation, which means access to money is harder right now. That’s why many companies aren’t hiring, or have slowed their hiring.

Put those two together, and you’ll see a couple of the reasons why there’s layoffs happening. It’s not due to the failure of the industry, it’s just how things have played out due to normal business practices, and the economy.

Should you pursue software engineering in 2024 and beyond?

Simple answer, yes. Looking at the two topics above, it’s clear that the industry is still a good industry. Software engineering isn’t going anywhere. It’s still a good industry to get into, especially if you like the industry itself. This industry isn’t for everyone. And getting a new job right now early in 2024 may not be super easy. But you can still succeed! Some of it is outside of your control, but a lot is still up to you in getting a job, and how well you may succeed at this career.