Skip to content

Latest commit

 

History

History
68 lines (59 loc) · 3.6 KB

File metadata and controls

68 lines (59 loc) · 3.6 KB

Chapter 1: The Big Picture

If You Only Take Away One Thing

  • you need to own your own career, because no one else will guide you.
  • personal responsibility and initiative => trustworthy professional => grow and advance.

What Is the Job?

  • We write a lot of code.
  • We debug code (analyze why things are going wrong).
  • We work normal-ish hours.
  • We coordinate with other engineers, product managers, customers, operations teams, and etc.
  • We write frequently for humans: design proposals, status updates, defect posmortems.

What It Means to Grow

  • We solve problems with a vector of skills built:
    • Coding: Clarity, testing, documentation, discipline in scope of diffs.
    • Project management: Identifying dependencies, updating stakeholders, tracking tasks.
    • Communication: Clear emails, engaging presentations, evangelizing our ideas.
    • Personal organization and time management: Not dropping balls, prioritizing effectively.
    • Architecture: The macroscopic design of systems.
    • Leadership/mentorship: at a level appropriate to their position.
    • Emotional skills: Empath, confidence, stree management, work-life balance.
  • We enjoy benefits
    • Money
    • Respect
    • Title
    • Fulfillment, pride, and a sense of purpose

Ten Principles

  • Reason about business value

    • Your job isn't just to write code; your code is to make good decisions and help your company succeed, and that requires understanding what really matters.
  • Unlock yourself

    • Your job is to figure out how to create value with your efforts.
  • Take initiative

    • Own your team's and company's mission.
  • Improve your writing

    • Crisp technical writing => eases collaboration and improves your ability to persuade, inform, and teach.
  • Own your project management

    • Understand the dependency graph for your project, ensure key pieces hava owners, write good summaries of plans and status, and proactively inform stakeholders of plans and progress.
    • Practice running meetings.
  • Own your education

    • Find a way to make learning part of your daily life; get one mailing lists, find papers and books, find papers and books that are worth reading, and read the manual cover to cover for technologies you work with.
  • Master your tools

    • e.g., editor, debugger, compiler, IDE, database, network tools, and Unix commands.
  • Communicate proactively

    • Well-organized communication => confidence, goodwill in collaborators.
    • Knowledge sharing => learning and camaraderie.
    • Set a regular cadence of informing stakeholders on project goals, progress, and obstacles.
  • Find opportunities to collaborate

    • Good collaboration => increases your leverage, improves your visibility in your organization => have an impact.
    • Cross-functional projects => critical.
  • Be professional and reliable

    • Come to meetings on time and prepared, then pay attention.
    • Deliver what you say you will, and communicate proactively when things go wrong (they will).
    • Show your colleagues respect and appreciate.
    • Minimize your complaining; bring the peole around you up, not down.
  • Your Relationship with Your Employer

    • Your company will never do anything for you out of sentiment.
    • Your company doesn't owe you education, career development, a raise, or a long-term guarantee of employment.
    • Everything your company does is business, not personal, and you shouldn't take it personally.
    • You don't owe your company your personal loyalty.
    • When you want something from your employer, you should approach it calmly, as a negotiation between two business.
    • => mutually beneficial relationship.