03 Jan 2022

Yearly review

History / Edit / PDF / EPUB / BIB / 1 min read (~69 words)
processes work

Every year, either at the beginning or end of the year.

A few hours spread over the course of a few days.

  • Review year according to various facets
  • Plan the next year according to the same facets

  • I use a mind map software to do my yearly review and plan.

24 Jul 2021

Book rating

History / Edit / PDF / EPUB / BIB / 1 min read (~124 words)
general processes reading

In this article I define a 1-5 rating scale for books in order to be consistent across my evaluations. Given that rating books is somewhat subjective, introducing some amount of standardization on how I rate them should help with managing my reading.

Format of presentation:

Score (from 1 to 5) Representative emoji

  • Satisfaction
  • Words expressing the level of satisfaction
  • Strength of recommendation

1 🤮

  • unsatisfactory
  • very bad, horrible, boring, repetitive, disagreeable to read, waste of time, can't force myself to read
  • strongly not recommended

2 â˜šī¸

  • unsatisfactory
  • bad
  • not recommended

3 😐

  • satisfactory
  • neutral
  • might want to read

4 â˜ēī¸

  • satisfactory
  • good
  • recommended

5 😍

  • satisfactory
  • very good, great, amazing, exciting, intriguing, fascinating, full of new knowledge, can't stop reading
  • strongly recommended

02 Jun 2021

One on one

History / Edit / PDF / EPUB / BIB / 1 min read (~126 words)
processes
  • Define and agree on the purpose of the one on one
  • Define the topics to be discussed prior to meeting
  • Track and update metrics that you care about every time you meet
    • e.g., Predictability, Ownership, Purpose, Progress, Belonging
  • Discuss the status of those metrics if necessary
  • Write in a shared document (between the two of you) what is discussed
  • If any action items are defined during those meetings, use a task tracking system to keep each other accountable
    • Always define a deadline on tasks to indicate when the task should be revisited
  • Avoid using one on one for status updates

  • Read the problem statement
  • Look at any provided unit tests
  • Add any unit tests you think might be relevant and not currently covered
  • Order the unit tests from easiest to hardest
  • Ask questions to confirm your understanding of the problem and verify edge cases
  • Think of a possible approach to solve the problem
  • Share your approach with the interviewers and get their buy-in
    • You may do this by writing pseudo-code as you are explaining your thought process
  • Implement your solution
    • If you encounter any difficulties, state them and explain what you are thinking
    • Make use of preconditions/early exit if possible to handle empty cases
  • Run your code frequently, even if it is not fully working
  • Discuss any follow-up questions with the interviewers
21 Apr 2021

Managing your reading

History / Edit / PDF / EPUB / BIB / 3 min read (~529 words)
general processes reading

The process described below attempts to optimize reading quality books and enjoying the reading experience. As such, it promotes book exploration (discovery of new books) and reading books which have a high rating according to your own taste. Books which receive lower ratings (compared to other books) are moved down the reading priority list and will not be read until books that have higher priority (i.e., rating) either are finished reading or their rating decreases such that other books are now high priority.

  • Pick highly read books (use a site like goodreads to identify those books).
  • When reading a book, record the page you start and stop reading on, the time you start and stop reading and emit a rating for what you've read.
    • You can decide to optimize whether you want to optimize per page rating or per duration rating, that is, get the most value per page or by time spent reading.
  • Add new books to your reading list regularly. Those books are considered as having the highest priority and are then added to the prioritized list of books according to its rating.
  • When not reading a new book, read the books in order of priority and by interest at the time of reading.
  • From time to time you may look at your list of prioritized books and decide whether the books with the lowest priority should ever be finished. In some cases it is reasonable to decide that certain books will never be read completely.
  • As an alternative approach, one can use multi-armed bandits algorithms to decide which book to read next. Given that we can convert multi-armed bandits problem into the problem of selecting which book to read next given a sequence of readings and associated rating ("rewards"), the various algorithms (such as Epsilon-greedy or UCB1) will provide us with the next book we should read.
    • Interestingly enough, an algorithm like UCB1 will promote reading books we've never read first over reading books we've already started reading.

  1. Read partially any book for which you haven't given any rating
  2. Rate what you have read on a 1 to 5 scale, 1 being very bad and 5 being very good (see book rating)
  3. Compute the weighted rating of the book (the sum of rating times # of page associated to the reading divided by the total # of pages read so far for the book)
  4. Sort books by weighted rating (descending), then average estimated amount of time left to complete (ascending)
  5. If you have books that you haven't read yet, go back to the first step. If not, then pick the book at the top of the list computed in the previous step, then continue from step 2

  • It's better to read a good book than to finish a bad book