← Back to Blog

What to Expect in Your First 90 Days as a Software Engineer

TL;DR

  • The first week has almost no code. Expect meetings, documentation, and setup. That's normal.
  • Most new engineers feel useful around day 30 and genuinely productive around day 90.
  • The best question format at work: "I've tried X and Y, I'm stuck on Z" before asking anyone.
  • Going quiet is one of the most common mistakes new engineers make. Ask for feedback early.
  • Read the tests before you read the code. Start with one request, trace it end to end.

You spent months preparing for the job search. You ground LeetCode, rebuilt your portfolio, practiced behavioral interviews until the answers felt automatic. Getting the offer was the goal.

Then you accept, sign the paperwork, and realize nobody told you what happens next.

The first 90 days as a software engineer are disorienting for almost everyone. Not because the work is impossible, but because it's so different from anything you practiced. The gap between "getting the job" and "doing the job" is real, and most resources about starting a career in engineering skip it entirely.

This is what it actually looks like.

What the First Week Really Looks Like

You will not write meaningful code in your first week. In most companies, you won't write any at all.

Week one is onboarding: setting up your machine, getting accounts provisioned, completing compliance training, meeting your team, and reading documentation. Lots of documentation. Some of it will be outdated. Some of it will reference systems you haven't heard of yet. You will finish the week with more questions than you started with.

That's expected. Your manager knows this. The team knows this.

The mistake new engineers make in week one is trying to appear more prepared than they are. Nodding along when someone explains the architecture rather than asking clarifying questions. Pretending to understand the codebase terminology because asking would feel embarrassing. You're not fooling anyone, and the performance creates distance that slows down your actual ramp-up.

Ask questions in week one. Write them down as you go, batch them so you're not interrupting people constantly, and bring them to your manager in a one-on-one. "I have a few questions from this week's reading" is a completely normal thing to say.

A few things worth doing in week one regardless of your setup:

  • Identify your primary point of contact for questions (often your onboarding buddy, not your manager)
  • Find where the team's work is tracked and how tasks move from "in progress" to "done"
  • Get your local development environment working and run the app locally, even if it takes two days
  • Read through the last few weeks of pull requests to see what the team has been working on

Don't try to understand everything. That's not the goal of week one. The goal is to get oriented.

The "Useful in 30 Days" vs. "Useful in 90 Days" Reality

Here's the timeline most engineering managers privately use when thinking about a new hire:

Days 1-30: The engineer is figuring out the environment, the codebase, and the team's way of working. Almost everything they produce requires significant review and guidance. That's fine. The expectation is that they're absorbing, not shipping.

Days 31-60: The engineer starts picking up small, well-defined tasks independently. They can close tickets without hand-holding, though their code still needs review. They're starting to understand the product well enough to ask useful questions about requirements.

Days 61-90: The engineer contributes meaningfully to the sprint. They can scope work, identify blockers, and estimate effort with reasonable accuracy. Senior engineers are spending less time reviewing and redirecting their work.

That timeline varies by company, codebase complexity, and mentorship quality. At some companies, the ramp is faster. At others, it's longer. But the general shape is consistent.

The implication: if you're in week two and feeling like you're not contributing enough, you're probably on schedule. The feeling of being behind is universal in the first 30 days. It's not evidence that something is wrong.

Before you started the job, you probably thought about salary negotiation more than you thought about ramp-up time. It's worth adjusting your mental model now: the first 90 days are an investment, not a performance review.

How to Read a Real Codebase

Nothing in school prepares you to navigate a real production codebase. It's usually large, partially documented, has layers of historical decisions you don't know the context for, and contains patterns that don't match what you learned in class.

There's a sequence that works.

Start with the tests. Tests describe what the code is supposed to do in explicit terms. A well-tested codebase is a codebase where someone wrote down the expected behavior in executable form. Even if the codebase isn't well-tested (many aren't), the tests that exist will tell you more about intent than the implementation code will.

Trace one request end to end. Pick something simple: a user logs in, a record gets created, a page loads. Follow the execution path from the entry point to the output. Don't try to understand every function. Just trace the path. After a few of these, the overall structure of the application becomes much clearer.

Don't try to understand everything at once. This is the most common mistake. New engineers try to achieve a complete mental model of the codebase before they start working. That's not how experienced engineers work either. They understand the part they're working on and look things up as needed.

Use the git history. When you're looking at a piece of code that doesn't make sense, look at the git blame. Who wrote it, when, and what was the commit message? Often this surfaces context that the code itself doesn't. "Why is this validation here?" becomes clearer when you see the commit was titled "Fix issue where invalid inputs caused production crash after user report."

The professional Git workflow you'll use at work is built on the same habits that make a strong GitHub profile readable. Incremental commits, clear messages, branches per feature. It's the same skill, applied in a team context.

Ask about the design when you're confused by the intent, not just the implementation. If you can't figure out what a module is supposed to do, that's a good question for a senior engineer. If you can't figure out how a specific function works, try to figure it out yourself first.

How to Ask Questions Without Looking Clueless

There's a specific format that works for asking technical questions at work, and it's worth learning early.

Before you ask anyone for help, you should be able to say: 1. What you're trying to do 2. What you've already tried 3. Specifically where you're stuck

That looks like: "I'm trying to get the user authentication middleware to work on the staging environment. I've checked the environment variables against the production config and they look right. I've also looked at the last few deploys in the logs and I can't find where the token validation is failing. I'm stuck on why it would pass locally but fail on staging."

Compare that to: "The auth middleware isn't working on staging, can you help?"

The first version tells the person helping you what they need to know without making them ask clarifying questions. It also signals that you've done real work before asking. Most experienced engineers are happy to help when it's clear you've already tried things. They're much less patient when the question could have been resolved with five minutes of investigation.

This format also protects you from the experience of asking a question and having the person who answered it realize halfway through that you hadn't actually read the relevant documentation yet. That's uncomfortable for everyone. Do the reading first.

One more thing: don't batch questions for too long. Some new engineers go quiet for days because they don't want to seem like they're asking too much. A daily sync with your manager or onboarding buddy where you bring your current questions is far better than accumulating a week's worth of blockers.

What Good Looks Like at Month One vs. Month Three

These are rough benchmarks, not hard requirements. Use them as calibration.

Month One

  • You can set up and run the application locally without help
  • You can describe what the main parts of the product do at a basic level
  • You've closed at least one small ticket independently (even if it took longer than expected)
  • You know who to ask for different kinds of questions
  • You've had at least one feedback conversation with your manager

That last one is important. Asking for feedback at 30 days is a signal that you're taking your development seriously. It also protects you from being surprised at a formal review. "I'd love to check in: is there anything you'd want me to do differently?" is a completely reasonable thing to ask a month in.

Month Three

  • You can scope a small feature without a lot of guidance
  • Your pull requests are passing review with minimal rework
  • You understand enough about the codebase to make reasonable estimates on new tasks
  • You have a sense of what the product team is building and why
  • Your questions have shifted from "how does this work" to "should we do it this way or that way"

The shift from understanding to contributing is gradual, not sudden. Most engineers look back at month three and realize they could have moved faster, but most also realize the ramp felt longer from inside it than it looks from the outside.

Common Mistakes New Engineers Make

These come up consistently with students who go through our program and then start their first role.

Going too quiet. The impulse to look competent leads people to struggle in silence rather than ask for help. This usually shows up as missed deadlines, blocked tickets, and managers who feel like they don't know what's happening. Asking for help isn't weakness. Staying stuck for two days on something a senior engineer could have resolved in 10 minutes is a cost to the team.

Trying to impress instead of learn. Some new engineers try to contribute too much too fast: proposing architecture changes in their second week, pushing back on decisions they don't have context for, taking on complex tasks before they've understood the simpler ones. The first 90 days are a time to absorb, ask questions, and build credibility through reliable small contributions. You'll earn the space to contribute at a higher level faster if you don't try to skip to it.

Not asking for feedback. Performance reviews happen quarterly or annually at most companies. If you wait for a formal review to find out you've been doing something wrong for three months, that's a hard conversation. Ask your manager for feedback at 30 days, at 60 days, and again at 90. Not "am I doing okay?" but "what's one thing I could do differently to be more effective?"

Ignoring the non-technical work. Reading the product roadmap. Understanding why the business cares about the feature you're building. Communicating clearly in Slack and PRs. These things matter. Engineers who only think about the code and tune out the context around it take longer to ramp up and contribute less effectively to planning conversations.

Underestimating how much the portfolio projects prepared you. Working through real-world projects before your first job builds exactly the kind of judgment that makes the early months easier: scoping decisions, reading unfamiliar code, making trade-offs. It's not the same as production experience, but it's closer than most people realize.

What Your Manager Actually Wants From You

This is worth saying directly because new engineers often misread it.

Your manager does not expect you to perform like a mid-level engineer in your first 90 days. They expect you to be honest about what you know and don't know, to make steady progress on your ramp-up, and to ask for help when you need it without waiting until you're completely stuck.

The things that will make your manager's life harder: disappearing for days without updates, saying something is done when it isn't, taking on more than you can deliver without flagging it early, or avoiding difficult conversations.

The things that will make their life easier: regular check-ins, honest status updates, asking good questions, and showing that you're taking feedback seriously. None of those are hard. They're just habits that you may not have needed to build before this point.


The first 90 days are hard for everyone. That's not a consolation prize, it's just true. Engineers who look effortlessly capable at month three were almost universally confused and uncertain at month one. The discomfort is part of the process, not a sign that you're in the wrong place.

The things that make the first 90 days go well aren't technical skills you don't have yet. They're habits: asking good questions, communicating honestly, moving in small increments, and taking feedback seriously. Those are learnable before you start, and they're the actual difference between a rough first quarter and a good one.

For the day-to-day mechanics of your first weeks, how to onboard into a new codebase without drowning covers the specific techniques. How to ask questions at work without looking incompetent covers the format that signals competence. Working effectively with a senior engineer covers the relationship that shapes your growth more than anything else. And handling code review feedback is the thing most new engineers get wrong in month one.

If you're still working toward your first offer and want to know what to negotiate before you sign, salary negotiation for your first software engineering job covers that in detail. And if you want structured preparation for the full transition from job searching to actually working in the industry, here's how Globally Scoped works.

Interested in the program?