Essentials
1. There are no dumb questions
This one goes out to all the juniors or those whoāve recently switched out of their existing role and joined a new company. It might be daunting to go about asking questions about things that you might feel necessary to have known the answers to before-hand. But, remember, when you first join any company, you get what I refer to the ānewbieā buffer ā which is a period of time where it is completely acceptable to ask any and all types of questions, even ones that you might think are ādumbā in your head.
Bonus points if you work at a company with a good cultureĀ ā what Iāve found is that oftentimes when I end up asking a question that seemed dumb to me, turns out to be something thatās been on at least one other persons mind at the very least. Iāve had folks thank me in my DMs for asking something that they equally felt dumb about, but didnāt muster up the courage to do so.
Why have inner turmoil if you know you can demonstrate to the other person that youāre human. Over the course of your tenure, there will be bits and pieces you will forget about systems youāve not touched in recent times. Our brains can be seen more like an LFU cache rather than a hashmap š
While these rules apply to such specific scenarios, remember itās not an excuse to be annoying
.
The easiest way to become annoying is to ask the same question in different ways when theyāve already given you the answer.
To avoid becoming annoying:
- listen carefully when an answer is being provided to you, document it if necessary
- learn how to fish ā thereās the old adage āgive a man a fish heāll eat a day, teach him and heāll eat a life-timeā, so yes, demonstrate your ability to get your own answers as soon as possible
2. Writing Software is a Team Effort
While you were busy grinding out datastructures and algorithms, itās important to realize that the real job is a team-sport and is a lot more about sharing and collaboration, committing to your teamās codebase, not your private repository.
Give everything time, and donāt rush learning a code-base and jumping to start your contributions. If it takes time to learn a code-base, then so be it! Remember, some of these repos have been around longer than you, or I, or both of our ages combined potentially š
3. Learn how to prioritize and measure progress
In order to prioritize and measure your own progress at your pace, the key ingredint is knowing what is expected of you at the level you are hired. This will vary from company to company, but it is usually documented somewhere in a Confluence doc, or is something that your manager should outline to you on your very first day. If not, take the initiative to ask your manager about your expectations as question zero!
Some teams may expect raw output, some are okay with low amount of high-quality changes, some might focus on velocity as per the burn-down chart, others might focus on operations and ability to deliver independently. The only way you go wrong here is if you have a misunderstanding of the expected outcome from your day-to-day work. Once you have a good understanding of your expectations, you will be able to have a clear idea of what deserves your priority and attention and does not.
4. Run your own race
When you look for a job, things are competitive and you need to find key differentiators that will highlight you as a strong candidate and get you hired over the other person. However, once you are inside an organization, you need to remember to run your own race. Scope, titles, promotions are not a zero-sum game. Companies would simply do more if they had more SWEs being grown internally into seniors.
Competition within a team environment is terrible for the team leading to negative behaviours like withholding information, politics, talking trash behind peopleās backs, jealousy and other unproductive drama
If a test is graded on a curve, you still want to do your best and not put efforts into sabotaging other people.
5. Become an IC as quickly as possible
The rate at which you are able to operate with autonomy is what makes you stand out vs what you deliver. The things you may be assigned might be artificially scoped down, so the one unique skill to focus on to make yourself look like a star is to start contributing independently, tackling challenges by yourself, unblocking other members via pairing, driving the conversations that lead to high-impact work and making small but incremental changes that you can highlight via architectural decision records and documentation, based on guidelines and with all trade-offs considered.
6. Comparison is the thief of joy
This is similar to point number 4, but itās important to highlight that while running your own race, if you stumble into peers who are exceptional ā surround yourself with them. Do not feel jealous, or wonder how someone your age ended up two levels higher. If someone your age is killing it, donāt be a hater!
Instead, build a rapport with them. Maybe ask them how they managed to do so ā you might end up getting tips and tricks and perhaps also a peek into some company secrets š
7. Success is a combination of luck and skill
If you are doing everything right on your end, then remember to take some down-time to your own. Take care of yourself ā hit the gym šļø, pick up and instrument šø, perform some self-care/soothing rituals š± to remind you that life isnāt just about chasing success, but chasing the journey to excellence and finding joy in the things we do!
Donāt be hard on yourself and remember that success is always a combination of having your hard-work down pat, and then some luck/timing to get you through to the results you want to see!
You canāt control the luck part, but you CAN control the skills, so always focus on giving your best. Also steer away from focusing on results too much and instead, use them as guidelines. You shouldnāt care if you came first, second, or last in a race, but instead focus on whether or not you gave your all or not, because at the end of the day, thatās all we can really do ā give our all!
8. Focus on things you can control
This is building off the previous point where you donāt really want to put any energy into places where thereās no positive net gain for you. For instance, thereās tons of fear mongering about the macro-economic situation ā layoffs from top companies, new articles coming out in droves talking about rising mortgage rates, inflation, and so on and so forth.
These things are out of your control and the best thing you can do at this very moment is to tune everything out and just focus on how to navigate around these situations if they were to arrive.
9. To go fast, go slow
I often hear folks wanting to get promotions as soon as possible. For that, you will definitely need to learn to crawl first, before you learn to walk. No infant immediately gets up and heads to the olympics running championship. Similarly, donāt try to jump ahead of things without putting in your dues. Part of the criteria to achieving success in domains is years of experience. There is a trap where people try to optimize for the outcome two steps ahead, but donāt meet the expectations of today.
Remember YAGNI from code? Apply that for real life as well!
10. Understand your support structures
Some teams will not have good support structures for new joiners and you may feel like youāre being hung out to dry. When speaking with your manager, make sure that in addition to understanding your expectations, you go over the details of the support structure. If the support isntā there, then ask what they are doing to put that support structure in place for you, or how your expectations can be reset on said basis.
Check for dysfunction ā some teams are high performance, and some are not-so-high performance š rife with backstabbing politics, cult coworkers, unreasonable deadlines, terrible spaghetti code-base, and a toxic or ineffective manager with no support structure. If you are new, none of this can be flagged because you donāt even know what you donāt know.
None of this becomes apparent until ~6mos in and in such cases thereās not much to do other than finding a new team within the company, or to find a new job at a new company if you get into this position.
11. Be picky if you have options
If you have multiple offers, be picky and NEGOTIATE!
Not just the salary, but take a good look into the teams and settings as well if possible. Bad managers would tend to lack tenure on the team and will often lose their senior/most-effective staff as a result. A good question to ask during interviews is to find out how long a manager has been on the team and how long have the seniors reported to them.
Managerās been there for 6 mos and all the seniors left, you might want to avoid that team ā
vs
Manager whoās been there for 5 yrs, and senior devs who have stuck with them ā