interesting tidbits

Things I've discovered while roaming through the jungle of technology

Use the valuable but limited power of your brain for more important things like remembering to tell people who you love that you love them or being thankful for what you have.

Use a password generator.

Use pass phrases wherever possible. Size matters ;)

Don’t reuse your passwords

Post-breach analysis of various breaches has showed that the same accounts were exposed over and over again, often with the same passwords which then put the victims at further risk of their other accounts being compromised.

https://haveibeenpwned.com/

Simply put, even if one site where you reused a password gets compromised, all your accounts where you had reused that password are at risk.

Store your 2FA/TOTP tokens in your password manager

If stored in an actual password manager, 2FA tokens would be encrypted with all your passwords. So one could argue that keeping your 2FA tokens in your encrypted password manager would be a security upgrade compared to many TOTP apps.

The biggest reason to keep your 2FA tokens in your password manager is that it’s in one location and gets backed up.

Far too many people don’t realize that apps like Google Authenticator and many others don’t automatically backup your 2FA tokens. So if you get a new phone or lose your phone, you also lose your 2FA.

Storing the tokens in your password manager also gives you more flexibility if you want to get out. Many of these TOTP apps don’t allow you to get the secret out once it’s saved.

Plus, it’s easier to secure one thing to the max than worry about the security of multiple little things.

Excerpt from - https://passwordbits.com/2fa-inside-password-manager/

Set up physical-only 2FA access to that password manager

Buy two USB authentication keys (about $30 each, but get at least one good sturdy one that’ll last). Have those physical keys as the only 2FA access method. Ensure one is always with you, and another is in a safe place.

Make a pragmatic choice about how you log in to your password manager. “Best” would be to require your physical key every time, and for it to log you out automatically.

The default is more realistic, which requires your physical key the first time you set it up on a new machine, and your password from thereon in.

Excerpt from - https://blog.james.cridland.net/should-you-store-your-2fa-totp-tokens-in-your-password-manager-9798199b728

I’d recommend Bitwarden.

https://bitwarden.com/

To start using it, just install the browser add-on. It will ask you to save passwords as you browse. You can also manually add your passwords if you've been using your notebook to store your passwords.”

Collect your tasks

Dump your tasks in your to-do list the moment you get them. It's important not to lose any.

It's equally important to not jump directly into execution mode. It helps to spend some time thinking about the task to tackle it effectively.

All tasks in one place

Avoid using multiple to-do lists. You should be able look at all your tasks in a single place.

Something like Trello is the perfect tool for the job. Create a list named Unallocated to collect your tasks before you review them.

We get tasks from a variety of places. You should be able to route all your tasks to your to-do list in an effortless manner.

Email

Check your email only once every two hours. Context switching can really hurt your productivity.

Run through every email and follow this simple framework -

  • If you need to act on this email and it can't wait; reply right away and archive it
  • If you need to act, but it can wait -
    • Send to your tasks board using Trello's email to board feature
    • Tag it as Do and archive it
  • If you don't need to act, but need to keep an eye on it; tag it as Follow and archive it
  • If you don't need to act, and don't need to keep an eye on it; simply archive it

Everything else

Use the home screen widget of the Trello mobile app to quickly add any task

Review your tasks

Look at your tasks atleast once every day and think about each one which needs your attention.

Try to answer these questions -

  • Why is this required?
  • Should I be the one doing this?
  • When am I supposed to finish this by?
  • What would happen if this doesn't get done?

Classify your tasks

I'd recommend using the Eisenhower matrix to classify your tasks.

Create these 4 lists in your Trello board -

  • Do right away – Urgent and important
  • Plan – Important, not urgent
  • Delegate – Urgent, not important
  • Delete – Neither urgent nor important

Miscellaneous tips

  • Block your time in your calendar to do the ones in the Plan list
  • Add due dates to every task
  • Add names of people you have delegated tasks to
  • Use labels to add tags to your tasks
  • Use the Card ageing power up to identify tasks which haven't had any updates for a while
  • Use the Calendar view to know exactly when your tasks are due”

Qualities

  • knowledge, experience, raw intelligence
  • solid understanding of engineering best practices
  • being likeable, good listener, conversationalist
  • determined, gets things done
  • is good in group settings

Questions

  • What are you looking for in a code review?
  • How do you handle new, unanticipated requirements that overturn assumptions you had made in design?
  • What book or article have you read since university that has really changed the way you look at development?
  • Have you read any books or articles that you really disagreed with? Tell me about one such case?
  • What are you reading right now?
  • ”“I'm going to give you five minutes. When I come back, I want you to explain to me something complicated that I don't already know.””
  • Give the interviewee a few minutes and ask them to come up with a mock interview in which I play the role of an interviewee. The speed at which they come up with questions and the type of questions they ask can tell a great deal about their experience.

Evaluating

  • Someone has to love the candidate. No one can hate them.
  • Dig into the candidate's development knowledge – especially knowledge that forms a part of team norms
  • Don't use impossible questions but rather make them explain and analyse a design from their past experiences
  • Focus on finding people who have a genuine love for their field – especially readers
  • Bend over backwards to hire people recommended by people already on your team”

Make unconscious conscious.

  • List your daily behaviors. Categorize as positive, negative or neutral.
  • Find underlying motives behind behaviors.

System is better than goals.

  • Show up without fail. Lost days hurt you more than successful days help you.
  • Temptation bundling. Combine “what u need to do” with “what u want to do”
  • Stack habits. After [this habit] i will [new habit]
  • State your intention to act clearly. I will [behavior] at [time] in [this location]

1% increment every day.

  • Small changes will roll up to a major behavior change over time. Have patience.

Prime your environment.

  • Environment works better than motivation.
  • Make things visible. Out of sight is out of mind.
  • Make bad habits invisible or unattractive. eg. Put your phone in a different room
  • Make separate zones. One space, one use.
  • Find groups of like minded people.
  • Reduce friction. Mediocre gym close by is better than a great gym 20 minutes away.
  • Automate or prime the environment to aid a habit. eg. Have a night routine to set everything up which you might need to start on an activity on the next morning.

Make it easy, satisfying, attractive and pleasurable to do positive things

  • Dopamine spikes due to the anticipation of something, not when we actually get it. Craving causes us to act.
  • Find a 2 min activity. Gradually increase.
  • Have small wins.
  • Measure progress in a visual tracker.

Here's the recipe to generate your favorite 2FA token without taking your hands off your keyboard.

Step 1

Store your login credentials and 2FA secret in a password manager like Bitwarden. https://bitwarden.com/help/password-manager-overview/

Step 2

Install Bitwarden CLI. https://bitwarden.com/help/cli/

Step 3

Login using bw login command and then export your Bitwarden Session Key BW_SESSION to an in-memory environment variable.

Step 4

Fetch the id of the record for which you want the 2FA token.

bw get item <credential name>

Step 5

Add the below lines to your .bashrc or .zshrc.

alias cp2fatoken="bw get totp <id from step 4> | pbcopy"

Step 6

Use cp2fatoken

Use this to track scheduled job failures. It helps to reduce alert fatigue by alerting only when a job fails.

https://deadmanssnitch.com/

EditorConfig helps maintain consistent coding styles for multiple developers working on the same project across various editors and IDEs.

The EditorConfig project consists of a file format for defining coding styles and a collection of text editor plugins that enable editors to read the file format and adhere to defined styles.

EditorConfig files are easily readable and they work nicely with version control systems.

https://editorconfig.org/

https://cloud.google.com/architecture/devops/devops-tech-trunk-based-development

Trunk-based development is a required practice for continuous integration.

Continuous integration (CI) is the combination of practicing trunk-based development and maintaining a suite of fast automated tests that run after each commit to trunk to make sure the system is always working.

Analysis shows that teams achieve higher levels of software delivery and operational performance (delivery speed, stability, and availability) if they follow these practices -

  • Have three or fewer active branches in the application's code repository.
  • Merge branches to trunk at least once a day.
  • Don't have code freezes and don't have integration phases.

More reading -