Career Advice for Software Developers
Career advice is personal, but some patterns hold across most situations. Here’s what I’ve learned.
Technical Skills Are Necessary But Not Sufficient
Being a great coder isn’t enough:
- Can you communicate your ideas?
- Do people want to work with you?
- Can you understand business needs?
- Do you deliver on commitments?
The best developers I know combine technical skills with soft skills.
Invest in Fundamentals
Frameworks change. Fundamentals don’t:
- Data structures and algorithms
- System design
- Networking basics
- Operating system concepts
- Security principles
Learn React, but also learn why it works.
Build a Track Record
Your work speaks louder than your resume:
- Contribute to open source
- Write about what you learn
- Build side projects
- Ship things that people use
Visibility matters. Let people see your work.
Optimize for Learning
Early in your career, prioritize:
- Quality of colleagues (learn from the best)
- Exposure to production systems
- Mentorship opportunities
- Challenging problems
These compound more than salary in the long run.
Communication Matters
Invest in:
- Writing: Clear emails, docs, specs
- Speaking: Meetings, presentations
- Listening: Understanding requirements
Great engineer + poor communication = limited impact
Good engineer + great communication = unlimited impact
Networking Isn’t Sleazy
Build genuine relationships:
- Help others without expecting returns
- Share knowledge freely
- Stay in touch with former colleagues
- Engage in communities
Opportunities come through people.
Know Your Worth
- Track your accomplishments
- Research market rates
- Don’t undervalue yourself
- Be prepared to negotiate
But also: money isn’t everything.
Manage Your Manager
Your manager can’t help if they don’t know:
- What you’re working on
- Where you’re stuck
- What you want
Proactively communicate. Don’t wait for 1:1s.
Specialize or Generalize?
Both paths work:
Specialist:
- Deep expertise in one area
- Go-to person for that domain
- Can command premium for expertise
Generalist:
- Broad knowledge across areas
- Can connect different domains
- Flexibility in roles
Choose based on what you enjoy.
Avoid Burnout
Warning signs:
- Dreading work
- Constant exhaustion
- Cynicism
- Reduced effectiveness
Prevention:
- Set boundaries
- Take vacations
- Pursue hobbies
- Sleep enough
You can’t pour from an empty cup.
The Long Game
Career is a marathon:
Year 1-3: Learn fundamentals, build skills
Year 3-7: Develop expertise, take ownership
Year 7-15: Lead, mentor, expand scope
Year 15+: Define direction, influence broadly
Don’t optimize for short-term gains at the expense of long-term growth.
When to Move On
Consider leaving when:
- You’ve stopped learning
- Values misalignment
- No growth opportunities
- Toxic environment
- Significantly underpaid
Don’t job hop randomly, but don’t stay too long in a bad situation.
Define Success for Yourself
Not everyone needs to:
- Be a manager
- Join a startup
- Work at FAANG
- Start a company
Define what success means to you. Then optimize for that.
Summary
- Combine technical and soft skills
- Build in public
- Invest in fundamentals
- Communicate clearly
- Build relationships
- Take care of yourself
- Play the long game
Your career is uniquely yours. Take advice (including this) with appropriate skepticism.
Comments