Software Engineer Handbook
  • πŸ‘‹Welcome to this handbook
  • Level 0 : Non-technical considerations
    • How to manage your time effectively
    • How to prepare for job interviews #1 : Digital Presence
    • How to prepare for job interviews #2 : At the interview
  • Level 1 : Computer Science
    • Intro: Why computer science is critical
    • Algorithms & Data structures Handbook
      • Algorithms & Data structures Handbook
      • Sorting Algorithms
      • Data Structures ADTs Implementation (In Go)
      • Techniques for Solving Data Structures Problems
    • Computer Organization and Architecture
    • Operating Systems
    • Database systems
  • Level 2 : System Design
    • Step 1 : Analysis
    • Step 2 : Digging deeper into data modeling
    • Step 3 : High-Level component design
    • Step 4: Low-Level / Detailed Design system
      • Clients
      • Application Servers
      • Databases
      • Security
      • Distributed Systems with Microservices
  • Level 4: Productivity Handbook for Software Engineers
    • How I use Fig
    • Command line tools
    • Develop on the cloud
  • Extra
  • Leadership
    • Processes
    • Poeple
    • Delivery
    • Transitioning to a new role
    • Resources I like
Powered by GitBook
On this page
  • Productivity Handbook for Software Engineers
  • Manage your attention not your time
  • What I do to manage my attention
  • Learning
  • How I use Notion 🏑
  • Other apps that I use
  • Software Engineers ⚑

Level 4: Productivity Handbook for Software Engineers

Productivity Handbook for Software Engineers

Manage your attention not your time

The new economy requires you to have 2 core abilities

  • The ability to quickly master hard things

  • The ability to produce at an elite level, in terms of both quality and speed

  • Deep Work

What I do to manage my attention

  1. My first 3-5 hours in the morning either at work/weekend days I specifically dedicate it for deep work for personal/professional growth

    1. No social media

    2. Clearing my space and my surrounding from any distraction

    3. Solving the problem at hand

  2. I go for multiple walks as time-break

  3. A great performance to reach is : 6 hours/day of focus on researching, designing, and shipping code, next 2-3 hours for meetings, breaks…

  4. Maintenance day: I batch many tasks and do it in one day, things like cleaning my car, buying needed items, or fixing something at my home all of it happens in a single day. Interruption in the middle of the day is the enemy of deep work

  5. I know what I’m going to learn or research for my next week before the week starts, thinking of what I want to learn at the middle of the week is a slow and a distracting process

Learning

Learning totally new subject

  1. Learn it only on the weekends, specially mornings are perfect for digging deep into a subject,

πŸ’‘ Attention residue: you have limited attention for your day, there is couple of studies that indicate you can increase it a little bit, but generally it’s limited. So at the end of the day is not a good way to stat a heavy subject

  1. Taking notes to build a mental model 🧠

  2. Using tools such as

    1. Notion pages to bookmark related pages to the subject πŸ”–

    2. My iPad to draw diagrams and summaries of the most important information 〰️

Your are familiar with the subject and wants to improve your knowledge

  1. You can learn it part of your day job, or at night: The mental model of what this technology is for, how to use it and so on is there, you can improve and maintain your knowledge at low-focus mode 🎴

  2. Levels of understanding:

    1. Basics: Try to create something as fast as possible

      1. Did you learn the basics very well? πŸ€”

      2. Did you implement many through-away prototypes ? πŸ’»

    2. Intermediate:

      1. Build a mind map of what you learned so far πŸ—ΊοΈ

      2. Explain it to yourself, once you noticed a gap of how you articulated a topic, put a todo to learn it be βœ…

      3. Try to improve it with time, as if you are building a game of Legos, and the Legos are the topics

    3. Advanced:

      1. Start learning about motivations behind this technology, why does it exist, what is the history of solutions that comes before it

      2. Best practices and conventions

      3. Use cases and engineering teams experiences about it (engineering blogs are extremely helpful in this context)

How I use Notion 🏑

Life Wiki for monthly planning

  1. Life: General improvement guidelines

  2. Growth: Reading list

  3. The Week ahead: each week I update and maintain the month list (Levels by importance)

PR Checklist πŸš€

Before submitting a PR, I check a checklist page with all of needed items to be checked (read the checklist manifesto book if you are interested)

Other apps that I use

  1. Manage my tab better with Alt-tab

  1. Search better with Alfred πŸ”

Software Engineers ⚑

How I use Fig

Command line tools

Develop on the cloud

PreviousDistributed Systems with MicroservicesNextHow I use Fig

Last updated 2 years ago

or for mind maps

Miro
Whimsical
AltTab
Alfred - Productivity App for macOS
Untitled