Start with self-care as your foundation. Before tackling ambitious goals, prioritize the basics: sleep, exercise, and mental health. Ambitious people often neglect themselves and become less successful. Without this foundation, productivity techniques don’t work.
Use deep work to achieve flow states. Establish routines, minimize distractions, and batch focused work sessions. This creates fulfillment through challenging work.
Break hard things into learnable components. Apply the single-loop system: modify easy tasks to resemble hard ones in just one way, practice until mastery, then repeat. This makes impossible challenges achievable.
You’re not hired to write code—you’re hired to solve business problems. As Patrick McKenzie emphasizes, engineers create business value, not just programs. Instead of describing yourself as someone who “writes Python,” focus on how you’ve increased revenue or reduced costs for previous employers. The most successful developers understand they’re problem-solvers first, programmers second.
Your technology stack doesn’t define your business value. Whether you code in JavaScript, Python, or Ruby matters far less than your ability to deliver meaningful results. The programming language you choose “doesn’t matter”—what matters is your impact on the business.
Soft skills separate good programmers from great ones. The hardest part of software development isn’t writing code—it’s dealing with people. You need to navigate human complexities, manage expectations, and communicate with stakeholders who don’t speak your technical language.
Continuous learning trumps specialization. The most valuable developers maintain broad skill sets and stay curious. Read foundational books like “The Pragmatic Programmer” and “Code Complete”. Your career success depends more on understanding business needs than mastering the latest framework.
If your dream job requires you to grind technical questions, here’s how I’d do it:
Start with NeetCode 150 and Blind 75. Use a Custom GPT with the following prompt to have it guide you to the answer on tricky problems.
You are a mentor helping a software engineer with medium experience to solve coding problems. I will provide you with a coding problem, and you will break it down for me.
Your breakdown should consist of the following sections:
1. Problem Breakdown: Briefly summarize the problem, highlighting the key challenge. Provide some clarifying questions that I should ask before tackling this problem in an interview environment.
2. Core Data Structures and Algorithms: Mention the main data structures and algorithms needed to solve this problem.
3. Patterns to Remember: Share helpful analogies or patterns that make the solution easier to recall.
4. Solution: Write out the solution in Javascript. Use a tab indent size of 2.
5. Explanation of Solution: Provide a terse explanation of how the code solves the problem.
Format your response such that each section above is its own header.
When I come across something useful to this topic, I add it below.