Practice
Data Structures and Algorithms
Machine Coding Round (LLD)
System Design & Architecture (HLD)
Frontend UI Machine Coding
Resources
Career Advice and Roadmaps
Data Structures and Algorithms
Machine Coding Round (LLD)
System Design & Architecture (HLD)
Backend Development
Frontend Development
Project Ideas for Software Developers
Core Computer Science
Companies
SDE Jobs & Internships
Interview Questions
Compare Companies
IDE
Online IDE
Collaborative IDE

Got the job, now what? | Growing in your software development career

Chirag Jain
Chirag Jain
Disclaimer: This article was written few years ago and may no longer be relevant as software engineering has changed a lot in the last few years. This is what may be more relevant now: Future of Software Engineering - Gaurav Chandak

Why am I doing this?

When I landed my first job. I didn't know what I'm supposed to do or even what I wanted out of my career. I didn't have any mentor or any senior to guide me.

I was scared to ask for impactful/complex work because of, well, imposter syndrome. Being from a tier 3 college definitely didn't help the situation.

I didn't work on my personal growth, didn't use my vacations, did long hours, burned out, and missed multiple opportunities.

A lot of it felt like shooting in the dark. I'm extremely lucky that I was able to identify these gaps and work on them in time.

I have come to realize that this is, unfortunately, the norm rather than an exception. I want to change that. I want to share my experience, mistakes, and what worked for me. So you don't have to go through the trouble of figuring this out on your own.

Help! I don't know what I like

If you aren't entirely sure of what kind of work excites you, then do not worry, it's not too late. It's not uncommon for freshers to switch fields after their first job. The important thing here is that we should be aware of our priorities and the available options.

Here are a few things that have worked for me.

Read

Read as much as possible and figure out where your interests lie. You can then filter out and focus on those areas to develop practical skills in related domains.

Network

Reach out to seniors and alumni for advice. Follow people doing interesting work in your field. Go to meet-ups, participate in community events. Take part in competitions and hackathons.

Explore opportunities at work

Talk to your manager about ongoing projects to figure out if something seems interesting to you that you may want to work on.

Stalk Job Portals

Keep an eye on various job portals. Job Descriptions will give you a lot of insight into industry trends so that you can cultivate a marketable skill set. Also, you never know when your dream company lists a new job.

Contribute to OSS

The sooner you can start working on real-world projects, the better. Contribute to open source, work on side projects.

  • Beginner's guide to open-source contribution
  • https://github.com/topics/good-first-issue
  • https://github.com/MunGell/awesome-for-beginners
  • https://hacktoberfest.digitalocean.com
  • https://www.hackerearth.com/getstarted-opensource

This will help you figure out what kind of work better suits you.

Do you like planning and breaking down tasks? Then you may want to become a Project Manager.

Do you prefer working on high performance and algorithmic problems? Then you might want to look into system programming.

Do you have a passion for robotics? Then embedded systems may be your cup of tea.

Work/Life

To be honest, this is a grey area and things depend a lot on personal preferences and your company’s culture.

The common expectation from freshers is a high time commitment because it helps them learn and the seniors can pick up more complex tasks that require less active involvement.

Be wary of going all out. Keep a healthy balance, burning out early in your career isn't a good idea. Take breaks to recharge and use your vacations.

Make sure to have hobbies outside work and have friends apart from your coworkers. Make sure you exercise regularly and keep yourself hydrated.

Learning

Take out time to work on personal growth preferably on a daily basis. Figure out what kind of resources works for you (video/text/audio/hands-on) and focus on that medium. There is a Coursera course named Learning how to learn, I highly recommend taking it.

Another thing I would like to highlight is the importance of forming healthy habits. Please do read The Power of Habit.

Take a course, read books/articles, listen to podcasts. You'll always have to keep learning, it is a part of your job. Initially, you would want to go breadth-first and read whatever comes your way, be it related to your domain or not. Later in your career, it makes more sense to go deep, get really proficient and then explore adjacent skills.

A well-maintained schedule will give you a major head start.

Career Growth

Just meeting deadlines won’t necessarily get you promoted. The responsibility for your growth falls on your shoulders. Take charge, have a plan, know company policies and timelines for perf, appraisals and promo well in advance.

Actively discuss your career trajectory with your manager on a regular basis. Always be on the lookout for opportunities (internal or external) which will help you hone/showcase your skills for the level you're aiming for. Ask for relevant work/opportunities from your manager, if you're not getting the same for long periods of time. You should always feel a bit challenged in your current role, otherwise you've stopped growing.

Find a mentor and actively work with them to achieve your goals. Initially you may not find one, however, you can pool advice from multiple sources and leverage social media to get some answers.

Contribute back to the ecosystem. Share your learnings. Write articles, record videos, contribute to OSS. Mentor juniors. Having publicly visible work is a real growth hack for your career.

Switching Jobs

Sometimes things don't work out and you have no other option but to move teams, projects or even orgs. This can be due to multiple reasons but the root cause mainly is growth. Maybe the work doesn't feel challenging enough or you want to work in a new domain or your financial needs might have changed. It can be as simple as getting an opportunity at your dream company. It's a very personal decision.

Scouting

Create a list of places you want to work at (be ambitious) and scout job portals to discover some new opportunities. Leverage your network to inquire about available opportunities at their org. Don't be shy to ask about work or teams. Sometimes there are internal postings that haven't been posted on an external job portal.

Applying

Ask for referrals, this is the easiest way to get noticed otherwise it takes a long time for your application to reach in the hands of the recruiter.

Apply via the career's page on the company website.

Apply via job portals. LinkedIn is big in India.

Interviewing

It's totally fine to take help and ask your friends at the org about the format of the interview and the topics to prepare. You're being tested on a skillset, It doesn't matter when or how you acquired those skills. Also note that interviewing is a skill and you can practice by doing mock interviews to improve. The skills required for being a good interviewee aren't necessarily the same as the skill set required for the job. Some organisations are working to fix it but for now this is the reality and the sooner you accept it, the better.

There are multiple platforms to practice coding/algorithmic skills, and you can leverage them. Make sure you have brushed up on the foundational knowledge for your domain. Google to find practice questions and give mock interviews to brush up on your concepts and interview skills. Do not search or ask your network to share the question pool of a particular company. By doing so, you're just making things harder for everyone else. And most importantly, knowing the solution is never the point, it is about the approach you take.

Comparing Options

What things should I keep in mind while considering my options?

Brand

Brand names matter, especially if you don't already have one on your CV. If you aren't from a tier 1 college then you're likely underpaid until you negotiate otherwise. Hiring in tech is a big challenge and most processes don't effectively measure your skills. Therefore, your work history is a major data point in determining your worth.

Job Title

Job titles matter, but different titles at different places mean different things. Within an org, a senior role for the same work is always a better deal. If you've been in a junior role for a long time then that is a big red flag. Try to get rid of "associate" / "junior" from your title.

Team

Your team can make or break your career at any org. Make sure you get a chance to meet your (future) manager before you accept the offer. Make your expectations clear and gather as much information from them about the role's expectations. The people you work with are also important. Try to meet your future team members whenever possible. Nobody achieves anything of value by themselves, you'll need to collaborate with your team and It helps a lot when you gel well.

Location

Location is a big factor in your overall quality of life. Does your company offer a remote position? Do they allow you to "work from home"? How long is the commute to the office? What is the rent there if your plan to shift in the future?

This becomes even more important when moving to a different state or country. You need to make sure that you'll be able to maintain your lifestyle in the new environment.

Work (Role and Responsibilities)

The kind of work and Impact you have is one of the core things that will shape your profile. That is what we mean when we say "experience". In the initial part of your career, I would advise you to focus on projects which complement your learning. This will require some extra effort and you'd might need to stretch a bit.

Note that having an opportunity to work on interesting problems doesn't justify being underpaid. It depends on the context and your situation, but I’d bet that the pay wouldn’t change even if the work wasn't challenging. Also, you would need some great seniors in your team to mentor you and help you learn.

Think about it: If the org is risking the project on your ability to solve it without any guidance, then how hard the problem can really be?

Stability

Any significant project will be done in stages across multiple quarters if not years. No one would hire you if you can't stick out for a big enough interval to make an impact. But if the work isn't challenging or you feel that you aren't learning anything for long stretches then maybe it's time to change things.

Also note you can change projects or teams in the same org to explore, leaving should be the last option. It takes a lot of effort to settle down in an ecosystem before you start having an impact and paying that fixed cost multiple times isn't a wise choice.

Pay

You need to pay your bills and there's no shame in asking for what is industry standard or even more (no justification needed). It's simple economics, if both parties find it favorable then the deal takes place; don't complicate it.

Learn about different components of your compensation and how they add value for you. Health insurance, free lunch, free commute, and educational budgets are some of the benefits offered by orgs. Only you can determine the value of these for you. For example, if I live at a walking distance from the office then the free commute doesn't add value for me.

Enquire about the ESOP / RSU policy before accepting the offer and do keep your risk appetite in mind while settling on the cash/equity breakup.

Some keywords to get your research started: "RSU", "ESOP", "Vesting", "Buy Back", "Liquidation", "IPO", "Vesting Cliff", "Vesting Schedule".

Talking Business

At the end of the day, you are providing skilled labor in a free market and hence you'll have to learn to negotiate to get paid fairly.

Information gathering

It's fine to talk about your salary. Some organizations make their salaries available for each level, internally or publicly.

Examples: Starbucks's Equal Pay, Buffer Public Salaries, Glitch internal Salaries

This is an exception rather than the norm. Your company policy may advise you otherwise but it's in your best interest to normalize openly talking about these numbers. You can talk in ball-park figures to avoid voiding the policy.

General etiquette should be maintained while doing so. For example, you shouldn't talk about or reveal anybody's salary without their consent.

Other sources for research are networks like Glassdoor, LinkedIn etc. I personally like the role and salary comparison tool by workat.tech. A direct connection can provide you with the most recent and valid data.

Know your worth

Not all experiences are equal and your intrinsic value for different roles will vary a lot. It's really hard to put a value on the work you do for a project.

For example, if you have been working on AI and ML projects for the last 3 years, a senior role in Web Development won't be the most relevant position for you.

The kind of projects you've worked on, your domain, and your role in them have different value for different companies. For example at a startup even at a senior level, writing code is a significant part of your responsibilities whereas at a large firm the role will include more people management, product discussions and sprint planning to unblock your team.

One important thing to note here is: don't compare yourself with your peers and friends. It will create a tunnel vision and generate envy. Explore your options and be inspired by people around you.

Negotiating

Only once you've found a role that seems like a good fit, you should talk about numbers, else you're just wasting everyone's time. I would highly advise reading on as many resources as you can.

You can read workat.tech's salary negotiation guide. You can also go through other resources for reading more about it. Here are some of my favorites:

  • Fearless Salary Negotiation
  • Never Split the Difference
  • Salary Negotiation

Some of the things that have worked for me are:

Have 2-3 options always when going in for negotiation. Please make sure all of these are roles you are willing to take up, otherwise there's no point.

Have a rough compensation range in your mind. Some orgs interview and then decide the level that will be offered. Having a salary range in mind helps you talk about the level upfront and avoid surprises as some orgs tend to under-level candidates when hiring.

Get your priorities straight. How much cash, equity, work, freedom, and perks matter to you is personal. This will play a large part in your final decision and help you negotiate better on things that add value for you.

---

Join workattech's discord community to have healthy discussions on programming, interviews and job search.

Further reading

  • Everything about your offer letter
  • Salary Negotiation Guide: Why and How to do it
  • Get a Software Engineering Job/Internship - Ultimate Guide
Chirag Jain
Chirag Jain
JavaScipt, Big Data Infra and Visualization @ Uber. Current interests include: Career development, Type Systems, State Management, and Design Systems
Related Content
SDE 1 Interview Preparation Roadmap for Product-Based Companies
How to prepare for machine coding round? - Interviews | Flipkart, Uber, Swiggy, Udaan
How to ace the Problem Solving, Data Structures and Algorithms Interview Round?
SDE Bootcamp - Become a software engineer at a product-based company
Practice Data Structures & Algorithms
Learning Resources
Interview Prep Resources
Blog
  • Career Advice and Roadmaps
  • Data Structures & Algorithms
  • Machine Coding Round (LLD)
  • System Design & Architecture
  • Backend Development
  • Frontend Development
  • Awesome Project Ideas
  • Core Computer Science
Practice Questions
  • Machine Coding (LLD) Questions
  • System Design (HLD) Questions
  • Topic-wise DSA Questions
  • Company-wise DSA Questions
  • DSA Sheets (Curated Lists)
  • JavaScript Interview Questions
  • Frontend UI Machine Coding Questions
Online Compilers (IDE)
  • Online Java Compiler
  • Online C++ Compiler
  • Online C Compiler
  • Online Python Compiler
  • Online JavaScript Compiler
Topic-wise Problems
  • Dynamic Programming Interview Questions
  • Linked List Interview Questions
  • Graph Interview Questions
  • Backtracking Interview Questions
  • Arrays Interview Questions
  • Trees Interview Questions
Company-wise Problems
  • Amazon Interview Questions
  • Microsoft Interview Questions
  • Google Interview Questions
  • Flipkart Interview Questions
  • Adobe Interview Questions
  • Facebook Interview Questions
DSA Sheets (Curated Lists)
  • Top Interview Questions
  • FAANG Interview Questions
  • Most Asked Interview Questions
  • 6 month DSA Practice Sheet
  • 3 month DSA Practice Sheet
  • Last minute DSA Practice Sheet