Reading List
I read a lot. The following are some of my favorite articles along with their ChatGPT-produced summaries.
Productivity and time management
Maker's Schedule, Manager's Schedule
Paul Graham discusses the conflict between "maker's" and "manager's" schedules. Makers, like programmers and writers, need long, uninterrupted blocks of time to be productive, whereas managers operate on schedules filled with hourly appointments. Graham suggests that understanding and respecting these different needs can mitigate scheduling conflicts, proposing solutions like setting aside "office hours" for meetings. This approach allows makers to maintain productivity while accommodating necessary meetings.
Other takes on this idea:
- Maker vs. Manager: How Your Schedule Can Make or Break You
- The Importance of Cultivating a Deep Work Culture
Tags: productivity, time-management
Work on what matters
The guide emphasizes focusing on impactful work over low-effort, low-impact tasks ("snacking"), avoiding visibility-driven tasks ("preening"), and not pursuing low-impact, high-effort projects ("chasing ghosts"). It advises prioritizing work that addresses existential risks, finding areas with room for significant contribution, fostering team growth, making strategic edits to projects, finishing projects to realize their value, and engaging in work only you can do effectively. This approach ensures long-term career growth and fulfillment by doing genuinely valuable work.
Tags: productivity, career-development, impact, team-growth, project-management
Time management for makers
This time management guide emphasizes seven key habits for effectively managing one's schedule within an organizational context. These include defending one's time, prioritizing high-impact work, batching interrupt-driven tasks, designating low-leverage work with a time box, communicating with candor, and prioritizing ruthlessly. It highlights the importance of uninterrupted focus time for engineering productivity and offers strategies for balancing maker activities with organizational responsibilities.
Tags: productivity, time-management, software-engineering, focus-time, communication, prioritization
Why We Don't Do Daily Stand-Ups
The startup opts out of daily stand-ups, valuing distributed work and focusing on productivity over synchronous meetings. Given its global team, logistics challenge time zone alignment. The company believes in autonomy and the ability of engineers to self-organize, deeming stand-ups counterproductive to their culture of intellectual stimulation and effective work. They emphasize written communication for clarity and future reference, challenging the necessity and effectiveness of stand-ups in fostering agility or scalability within software development teams.
Tags: productivity, remote-work, autonomy, agile, communication
Want to Be More Productive? Try Doing Less.
The article suggests that productivity and happiness can increase by doing less, rather than more. By identifying and focusing on tasks that bring the most value and eliminating or delegating others, individuals can create more time for what matters, leading to a more fulfilling life. This approach is supported by exercises to help prioritize activities based on their contribution to personal and professional wins.
Tags: productivity, happiness, prioritization, delegation, personal-growth
Career development and advice
The Effective Engineer Summary
The notes outline principles for being an effective engineer, focusing on high leverage activities, optimizing for learning, prioritizing tasks, investing in iteration speed, measuring for improvement, validating ideas early, improving estimation skills, balancing quality with pragmatism, managing complexity, automating testing, repaying technical debt, reducing operational complexity, embracing failure, automating processes, and investing in team growth. It emphasizes the importance of leverage, learning, prioritization, iteration, measurement, quality, simplicity, automation, and team development in engineering effectiveness.
Tags: productivity, impact, learning-optimization, prioritization, iteration-speed, team-growth
All the evidence-based advice we found on how to be more successful in any job
The 80,000 Hours guide offers evidence-based advice for success in any job, focusing on self-care, mental health prioritization, physical health, goal setting, productivity improvement, basic social skills, surrounding oneself with great people, applying happiness research, saving money, learning effectively, job performance strategies, decision-making, acquiring work skills, mastering a field, and personal development. It emphasizes forming new habits and taking manageable steps toward improvement.
Tags: self-care, mental-health, goal-setting, productivity, social-skills, personal-development, learning, decision-making
On the Myth of the 10X Engineer and the Reality of the Distinguished Engineer
The article challenges the myth of the 10X engineer, often glorified for sheer coding output, and presents the reality of what makes a distinguished engineer truly valuable. Distinguished engineers excel not just technically but also in developing others, humility, leadership, communication, project management, understanding customer needs, and navigating organizational politics. Their contribution goes beyond code to inspire, mentor, and drive projects with a focus on long-term value and strategy, embodying qualities that elevate the entire team and organization.
Tags: career-development, leadership, mentoring, project-management, communication
Get your work recognized: write a brag document
Julia Evans advocates for maintaining a "brag document" to track accomplishments, aiding in performance reviews and personal reflection. This approach helps both the individual and their managers remember significant contributions, making it easier to advocate for promotions or raises. Sharing this document with managers and peers can also streamline the review process and support during managerial transitions.
Tags: brag-document, career-development, performance-review, personal-development, self-advocacy
The career-changing art of reading the docs
The article highlights the importance of thoroughly reading documentation for career advancement in tech. By investing time in understanding the nuances of technologies relevant to one's job, an individual can build a comprehensive knowledge base, becoming the go-to expert within their niche. This practice not only enriches technical expertise but also significantly contributes to job security and career growth by enabling individuals to tackle complex problems efficiently and innovate within their roles.
Tags: career-development, technical-expertise, documentation, continuous-learning
17 Reasons NOT To Be A Manager
The article "17 Reasons NOT To Be A Manager" explores various intrinsic reasons why someone might opt out of pursuing a management role, despite the external allure. It emphasizes personal satisfaction with one’s current role, the comparative ease of switching jobs as an engineer, fewer management positions available, the vulnerability of manager roles during cutbacks, and the unique challenges and emotional labor of management. It also touches on the misconception that management is a step up for everyone, suggesting instead that it's a distinct skill set and career path, not necessarily superior to being an individual contributor.
Tags: management-challenges, career-advice, technical-work, emotional-labor, leadership-skills
Don't Call Yourself A Programmer, And Other Career Advice
This article discusses how engineers should see themselves as creators of business value, not just coders. It emphasizes the importance of understanding the economic and business context of engineering work, advocating for skills and roles that directly contribute to a company's bottom line. The piece also advises on navigating career paths, the significance of networking, and the real-world impact of one's work beyond just programming skills.
Tags: career-advice, engineering-value, business-context, networking, skill-development
Always be quitting
The article "Always be quitting" by Julio Merino emphasizes the importance of making oneself replaceable at work to foster personal growth and team improvement. It suggests documenting knowledge, planning, meetings, bringing others into discussions, training peers, delegating tasks, and continuously learning. This approach not only prepares you for new opportunities but also enhances the overall team's capabilities, aligning with practices of high-level engineers.
Tags: career-development, knowledge-transfer, team-building, continuous-learning
20 Things I’ve Learned in my 20 Years as a Software Engineer
The article shares 20 insights from 20 years of software engineering experience, emphasizing continuous learning, the importance of building the right thing, thinking like designers, minimizing code, focusing on delivering value, and the value of writing and communication skills. It stresses avoiding over-engineering, embracing humility, valuing data integrity, and striving for smaller, manageable systems. These reflections offer practical advice for navigating the complexities and challenges of software development.
Tags: career-advice, continuous-learning, software-design, communication
The Software Engineer’s Guide to Negotiating a Raise
The guide offers strategies for software engineers to negotiate raises effectively. It emphasizes the importance of preparation, understanding one's market value, and identifying leverage points. The article suggests that timing, research, and understanding both your and your company's alternatives are key to a successful negotiation.
Tags: career-advice, salary-negotiation, market-value, leverage, preparation, software-engineering
Software engineering and design
Falling Into The Pit of Success
Jeff Atwood discusses the concept of "Falling into the Pit of Success," emphasizing how programming languages and APIs should be designed to guide developers towards successful outcomes naturally. He contrasts this with languages like C++ that can lead to common pitfalls. The idea is that good design makes success the easiest path, thereby encouraging best practices and reducing errors, extending beyond programming languages to APIs and applications of all sizes.
Tags: programming, api-design, software-engineering, coding-best-practices
Software Architecture is Overrated, Clear and Simple Design is Underrated
The article argues that simplicity in software design is more crucial than adhering to complex architecture patterns. It highlights the author's experience with large-scale projects at Uber and Skype, emphasizing practical, clear, and simple documentation over formal architecture tools. The approach encourages inclusivity, allowing team members at all levels to contribute and understand the design, thereby fostering a culture of common sense-based design over process-driven design.
Tags: software-design, simplicity, architecture-patterns, clear-documentation, engineering-culture
You Are Not Google
The article critiques the tendency of software engineers to adopt complex technologies from companies like Google without considering their own project's scale or needs. It offers a checklist, UNPHAT, to guide more deliberate technology selection, emphasizing understanding the problem, considering multiple solutions, and critically evaluating the fit of popular technologies for one's specific context.
Tags: technology-selection, software-engineering, decision-making
Regular Expressions for Regular Folk
A short, visual, example-based regular expressions e-book.
Tags: regular-expressions
PostgreSQL anti-patterns: read-modify-write cycles
The article discusses the common anti-pattern of read-modify-write cycles in PostgreSQL, where data is read, modified in the application, and written back, leading to potential concurrency issues. It explores various solutions like using calculated updates, row-level locking, serializable transactions, and optimistic concurrency control to avoid such pitfalls, emphasizing the importance of understanding and addressing concurrency for database integrity and performance.
Tags: database, anti-patterns
Leadership
Jeff Bezos: Here’s how I make Amazon’s highest-stakes decisions
Jeff Bezos shares his approach to decision-making, emphasizing quality over quantity. He prioritizes making a few high-quality decisions daily, focusing on long-term planning and the distinction between reversible and irreversible decisions. Bezos advocates for the "disagree and commit" principle to expedite decision-making and foster a supportive team environment.
Tags: decision-making, leadership, long-term-planning, Jeff-Bezos, management-strategies
How To Be Successful
Sam Altman outlines principles for achieving success, including the power of compounding, having self-belief, thinking independently, excelling in sales, taking risks, focusing, working hard, being bold, being willful, making oneself hard to compete with, building a network, owning valuable assets, and being internally driven. These insights are aimed at guiding individuals towards outlier success in their careers and lives.
Tags: leadership, focus, hard-work, networking, motivation
Strategy
We Studied 6,452 SaaS Companies. The Findings Will Make You Grow.
The article discusses growth strategies for SaaS companies, based on data from 6,452 companies. Key findings include the importance of localizing pricing for global markets, tackling delinquent churn early, dedicating time to optimize pricing, leveraging annual subscriptions for better cash flow and customer retention, and focusing on expansion revenue for sustainable growth. These strategies are actionable and can significantly impact retention, acquisition, and monetization efforts.
Tags: business-growth, pricing-strategy, customer-retention
Stepping Stones not Milestones
Successfully delivering on long-term engineering projects often involves structuring them around "stepping stones" rather than arbitrary milestones. Stepping stones are defined as coherent, tangible deliverables that provide real value and illuminate "unknown unknowns," helping teams navigate the complexities of large projects without succumbing to common pitfalls such as over-engineering or excessive resource allocation. This approach contrasts with traditional milestone-based planning, which may not effectively de-risk projects or contribute to the discovery and resolution of unforeseen challenges. Each stepping stone within this strategy should deliver a simplified yet valuable version of the final system, allow for learning and adaptation, and remain aligned with the overarching project goals.
Tags: project-management, unknown-unknowns, engineering-strategy, incremental-delivery, risk-management
The simple genius of checklists, from B-17 to the Apollo missions
The article explores the transformative power of checklists, tracing their origins from aviation history with the B-17 Flying Fortress to their critical role in the Apollo missions. It highlights how checklists have evolved into essential tools for ensuring safety and efficiency in complex operations, demonstrating their utility beyond their initial military application into space exploration and various professional fields.
Tags: checklists, safety, efficiency
Hiring
Hire For The Ability To Get Shit Done
The blog emphasizes the importance of hiring individuals who can effectively execute tasks and contribute meaningfully to startups, beyond just fitting the culture or having intelligence. It outlines practical strategies for assessing a candidate's ability to be productive, including coding exercises, evaluating personality traits like follow-through and proactivity, setting real-world tasks, direct questioning about productivity, and thorough reference checks. These methods aim to ensure hires are capable of delivering quality work promptly and are proactive and committed to the company's success.
Tags: hiring, productivity, startup-culture, task-execution, employee-evaluation
Don’t hire top talent; hire for weaknesses.
The blog post advocates for a hiring approach focused on addressing team weaknesses rather than just seeking "top talent." It suggests that understanding what is lacking within a team can lead to hiring individuals who bring the most value by complementing existing skills and perspectives, thereby strengthening the team as a whole. This method emphasizes the importance of diversity in skills and thought over merely accumulating traditionally defined top performers.
Tags: hiring, team-building, diversity, skills-gap, talent-management