Usually take it, if it gives you real engineering work, people to learn from and a path out. A first job is a platform, not a destination. Wait only if you have savings, a strong pipeline and the offer would take you away from building skills at all.
What people tell me
I have been job hunting for a few months and finally have an offer. It is not what I wanted: the tech stack is different from what I have been learning, the pay is modest, and it is not the type of company I imagined. Part of me wants to accept because I am tired of searching. Another part is scared it will pull me away from the career I actually want and I will get stuck.
A composite of the messages behind this question, with personal details left out.
Key takeaways
- A first job is mainly for learning how professional software is built. Most of that transfers anywhere.
- Judge the offer on learning, people and exit options, not only stack or brand.
- Waiting has real costs: gaps, lost income and lost experience. Only wait with savings and a strong pipeline.
- You can accept and keep a light search going, then move after a year with much better options.
- Walk away from roles with no real engineering work, no one to learn from, or long lock-in contracts.
What a first job is actually for
A first job is rarely where you end up. It is where you learn how professional software gets built: working in a real codebase, code reviews, deadlines, bugs in production, working with other people and with a manager. Almost all of that transfers, whatever the stack or company.
So the question is not "is this my dream job?" It almost never is. The question is "will this job make me meaningfully better and more hireable in a year?"
Judge the offer on the things that matter
| Question | Good sign | Warning sign |
|---|---|---|
| Will I write and ship real code? | You will work on a product with users | Mostly manual testing, data entry or support with no path to development |
| Will I have people to learn from? | A team with at least one experienced engineer who reviews your work | You would be the only developer with nobody to review anything |
| Is the work reasonably modern? | Uses version control, reviews, some tests, deployments | No Git, no reviews, code copied between folders |
| Can I leave? | Standard notice period | Long bonds, large penalties for leaving, withheld documents |
| Is the pay livable? | Modest but enough | So low you cannot support yourself |
A different stack from the one you learned is rarely a real problem. Frameworks change, and learning a second one teaches you what is general and what is specific.
The hidden cost of waiting
Holding out feels safe because nothing is committed. But waiting costs something:
- Every month without work is a month without professional experience on your CV.
- A growing gap starts to raise questions in applications.
- Financial pressure often leads to worse decisions later.
- Motivation drops with every week of rejections.
Many people who wait for the perfect role end up, six months later, accepting something worse than the offer they turned down.
When waiting makes sense
Waiting is reasonable if all of these are true:
- You have savings or support for at least three to six more months.
- You have a real pipeline: several applications at later stages, not just hope.
- The offer fails one of the serious warning signs above, such as no real engineering work or an unfair contract.
If two or more of these are not true, the offer is probably worth taking.
Take it, and keep building towards what you want
Accepting a job does not end your plan. It changes the pace. Many people accept a first role, learn a great deal in the first year, keep building in their target direction on the side, and then move with far better leverage. An engineer with a year of real experience gets very different responses from employers than a fresh graduate.
Some practical ways to steer while you are there:
- Ask to work on the parts closest to your target direction.
- Volunteer for tasks that stretch you, such as deployments, APIs or performance work.
- Keep notes on what you shipped so your next CV writes itself.
- Stay reasonably committed for at least a year. Leaving after three months usually looks worse than staying.
Questions to ask before accepting
Before you sign, it is fair to ask:
Could you tell me what a typical first three months would look like for this role? Who would review my code, and what would success look like after six months?
The answers tell you a lot about whether you will actually learn there.
My usual answer
For most people who ask me this, the honest answer is: take it, learn as much as you can, and use it as a platform. A first job is a step, not a destination.
An example of both paths
Consider someone who wanted a frontend role in a product company and got an offer from a small services company working mostly on backend PHP. They were disappointed and close to turning it down.
They accepted. In the first year, they shipped features to real clients, learned how databases and deployments work, fixed production bugs, and asked to take on the small amount of frontend work the company had. They kept building a React project in the evenings. Fourteen months later, they applied for frontend roles with real experience, stories about shipping to clients and a portfolio project. The replies were completely different from their graduate search.
Compare that with someone who turned down a similar offer and was still applying eight months later, with a growing gap and shrinking savings, and eventually took a less suitable role under pressure.
Not every story ends like the first one. But the pattern is common enough that I rarely advise waiting without a strong reason.
A quick scoring exercise
Score the offer from 1 to 5 on each of these, honestly:
- How much real code will I write and ship?
- How much will I learn from the people around me?
- How fair are the contract terms and pay for my situation?
- How much of what I learn will transfer to my target direction?
A total of 12 or more is usually worth accepting. Below 10, look harder at the warning signs, and if you do decline, have a concrete plan for the next three months, not just hope.
If you are still stuck
Read Fourteen Questions Worth Answering Before You Change Jobs and What Actually Changes in Your First Two Years as an Engineer.
If you want someone to look at your specific situation, join Sefism and, as a member, book a 1:1 session. You can also browse the other career questions people have asked.
Was this answer helpful?
Read next
- Fourteen Questions Worth Answering Before You Change JobsThe typical job change starts with one specific bad month, and within a fortnight the applications are out. Sometimes that is right, and often it produces a lateral move into a different set of problems discovered around month four. Fourteen heuristics for the whole arc: deciding, choosing, not being talked into or out of it, and leaving well.
- What Actually Changes in Your First Two Years as an EngineerInterviews test the small part of the job that is easy to test, and the rest is learned on site. Reading code as the main skill, how to ask a question that costs nothing, why small shipped changes beat large ones in progress, using code review as the fastest teaching you will get, and the four things that actually get people promoted, three of which are not about writing code.
- A Job Search Is a Pipeline, Not a PerformanceMost people run a job search as a series of hopeful individual events, which fails for a structural reason: the response rate on cold applications is low enough that any single one is close to noise. The people who find work reliably are running a pipeline instead. Thirteen heuristics for the mechanics, which are the part you actually control.
Your situation is not quite this one?
Members get written answers to their own questions, a roadmap built for them and feedback on their projects. Early access is open to X and Instagram followers and university students. Prefer to talk? A free call works too.