Code And Kindness

A Blog About Software Engineering and Management Careers

The New Hire Guide: How to Get Off to an Amazing start at Your New Job

people standing beside a whiteboard

               When starting a new job, it’s important to get yourself off to a strong start. I’ve created this guide to help you get on your feet fast and make an amazing first impression.

A Note on Imposter Syndrome

               When I was about to graduate from college, I didn’t consider myself a particularly strong student. The only stand out abilities I thought I had been the desire to work hard and be persistent (and looking back now, I didn’t understand how valuable those traits are compared to being “smart”). I had previously been denied an internship at Microsoft, but when I saw, they were coming to our school’s career fair, I decided to apply again anyway. I studied hard and made it bit by bit through each stage of the interview process. With each forward step, I kept thinking I had just gotten lucky. Then I got a job offer. Incredulous, I spent the rest of the semester proud on the outside, but in complete disbelief on the inside. I was waiting for that call from the recruiter saying, “I’m sorry. We messed up. We don’t want to hire you”. Even after I started working, I kept waiting for someone to “find out” that I wasn’t what they expected and fire me on the spot.

               This feeling is known as “imposter syndrome” and it’s incredibly common. It can cause you to really undervalue yourself and potentially hold you back from taking on big challenges for fear that you’ll be found out.

               After years of struggling with this I finally realized that it doesn’t matter if, somehow, I had managed to sneak through the process and was under qualified for the job. If that was true, then I’m incredibly lucky to have this opportunity and I should take complete advantage of it to learn and grow into the role. And if I get fired, I’ll at least have leveled up my skills and have something to take with me from the experience. It doesn’t serve any purpose to work in fear. Take what you can from the moment and focus on growing yourself in the way you want for your career.

Be a Learn It All, not Know It All

               Many people start a new job and set out to prove they are smart, so they can get the next promotion. The reality is, especially at a large tech company, it’s impossible to come in knowing everything you need for your role. Most companies have their own way of doing things and the idea that you can come in with prefect knowledge is silly. So, what do you do? Be ready to learn. Take time to observe, have opinions but acknowledge when you don’t know. Have a strategy for learning what you need to learn. More than anything, don’t be ashamed to say you are learning and don’t have an answer yet.

                Particularly with college hires, I often see new engineers wait too long to ask for help when they get stuck. They are afraid to reach out for help for fear of making a bad first impression. The irony is that waiting to ask for help makes it take longer for you to do your tasks, which also can make a bad impression. Finding that balance between trying it yourself and not waiting too long is key.

               When you ask for help, describe what you’ve tried so far so that the person you’re asking knows that you have put in an honest effort into solving the problem yourself. For example, “Hi, I was trying to figure out how to get X software installed but it failed with Y error. I tried looking in our wiki and did a google search for Y error, but I couldn’t seem to find a solution”. Most people will appreciate that you’ve made a good attempt and will be happy to show you what you may have missed.

                If you really want to impress your new team, when you are working through their getting started documentation, find and fill holes in it. If there isn’t good documentation on how to get started, take notes as you go and put it on the team wiki. You can also make things easier for those who come after you. For example, if you have a setup script that runs and it fails for you, find out why and then add documentation to the instructions. If you are feeling bold, fix the script. One caveat is that before you do anything that may be too time-consuming, you should check with your manager. You don’t want to go off into the weeds doing something that the team doesn’t find valuable.

Learn Expectations

               It’s important right when you start to find out the expectations of your role. At some larger companies this will be well documented; there may be a career guide or even a rubric. If these things don’t exist (and even if they do) sit down and talk to your manager about what success looks like for your specific role. It’s important to know how the performance review process works and how you will be judged when it is review time. For more details on that see Demystifying the Performance Review Process. Sometimes when you start a new job, they aren’t as prepared for you as you would hope. This is where I go into “unblock mode”. It can be tempting to idle and wait for someone else to solve your problems, but instead, form a list and start finding ways to unblock yourself. For example, if you don’t have IT permissions for something, send an email requesting access instead of waiting for your manager to do it for you. If you are hard blocked on something (e.g., it takes a few days for your password to start working), see if you can find a way to stay somewhat productive. Can someone print some docs for you to read offline so you can ramp up? Is there some technology the team uses that you can start to explore or experiment with? There is almost always something you can do.

Know Who You Need to Know

               Another important aspect of getting properly settled into a new job is meeting the right. Especially as an engineer, find out who knows most about the architecture of what you are working on and set up a brain dump with them. If it’s not one single person, set up smaller meetings to get people to deep dive on the areas they know well. And as a bonus, if someone has to explain some architecture to you manually because it’s not documented, take notes and get it posted somewhere that others can access.

               It’s also important to get to know the people you will work closely with such as Program / Product Managers and designers. Taking the time to introduce yourself now will make things smoother when you need to get to work down the road (especially if your first encounter is during an urgent situation).

Figure Out the Tech

               A key part of doing a great job is understanding the technology. Set aside some side to read up on any public technologies you use. For example, Minecraft uses C++. I hadn’t used C++ in a very long time so before I started, I read up on how C++ had changed and did a few small personal projects to remaster the language. Understanding the technology better gives you one less thing to worry about as you navigate your new career.

Create a Plan (30/60/90 Day Plans)

               A good technique to create a plan for yourself is to create a 30/60/90-day plan – write down what you want to have accomplished at the end of each of these milestones. The expectation is that after 90 days you will be fully ramped up.

               Usually, the first 30 days focus on what you need to learn, the next 30 days are focused on learning to execute well, and the last 30 days are getting to full efficiency. Work with your manager to build this plan and check in regularly to make sure you are making good progress and staying on track.

Find a Mentor / Buddy

               Sometimes companies will assign you an onboarding buddy to help you learn the ropes. If they don’t, you should make it a priority to find one. You can work through your manager, HR, or other engineers on your team to find one. It can be incredibly powerful to have a mentor in your company. If you have a great manager, they can tell you most of what you need to know, but that isn’t guaranteed. And in some cases, it can feel better to ask questions of someone who is outside of your management chain.

               Hopefully this article can help you get off to a strong at your new job. To understand more about progressing your career at your new company, check out my article on software engineering career stages About Software Engineering Career Stages. Need help landing a job? I have an article for that as well: Preparing for the Software Engineering Interview