Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Developer Productivity

Developer Productivity

How do you make your life easy as a developer? How do you cut a few seconds here and there saving yourself a large chunk of time at the end of the day?

I talked about productivity behaviors, technologies, and products for devs.

Custom bash commands
Ansible and dotfiles
terminals, tmux, and terminal multiplexing
Navigation and Window management
Git worktrees, rebase and copilot

AbdulKabir Sulaiman

December 07, 2022
Tweet

More Decks by AbdulKabir Sulaiman

Other Decks in Programming

Transcript

  1. Behaviours • Work/focus mode - Configuring Slack/Discord/Teams notifications. • Work/Home/Public

    status - only contact/message when urgent. • Lessening meeting times, normalizing leaving unimportant meetings. • Find peak time/take breaks - optimize output (90/20 - 20/5). • Define goals for the day. • Notes - Notion, Notes, Keep, Obsidian - learnings, bugs • Getting things done.
  2. “My only productivity hack is stand up and walk away

    from the computer. Rest time is best time, and I end up doing more later if i don’t force it. An important aspect to that is not judging yourself for taking the time to consider and relax before solving anything. Weird left-turn here, but there it is.” -Andrew DeRoche (Technical Lead Developer, Verafin) …this is not Andrew
  3. Do you leave things working fine or make it as

    optimal as possible? You miss out on the experience gained on edge cases and unusual scenarios that you wouldn’t come across doing the basic work. Observation and Passive Learning Shower temperature drop Advent of code Work assignments - speed, size
  4. Custom Bash commands Avoid error, challenges, typos, ‘copies’ and ‘pastes’

    open .bash_profile // add aliases source .bash_profile: // run commands
  5. Ansible - Dotfiles Top level - hosts: localhost become: true

    pre_tasks: ... vars: ... tasks: ... Task - name: string _SOME_ACTION_ tags: - list - of - tags - name: Install oh my zsh shell: curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/inst all.sh Setting up new PC - Installing libraries, packages and enabling preferences - Ansible (Cloud configuration platform) - Examples
  6. tmux tmux kill-server tmux list-sessions tmux list-sessions tmux new-session -s

    "foobar" -d -c "$HOME/personal/project" tmux new-window -n "foobar" -c "$HOME/personal" tmux switch-client -t "foobar" Kitty, Alacritty, warp.dev tmux is a terminal multiplexer. It lets you switch easily between several programs in one terminal, detach them (they keep running in the background) and reattach them to a different terminal. tmux commands, windows and sessions management, directory
  7. Technical • Use already built tools and libraries (speed, size,

    env, GPT-3) • Navigation and Window management (Yabai - Mac, bug.n - Windows) • Git rebase - https://github.com/MitMaro/git-interactive-rebase-tool • GitHub Copilot · Your AI pair programmer
  8. Git Worktrees Worktree - active change in branches, named commit,

    branch folders, version builds git clone -bare https://github.com/JustCabyr/reddit-cli.git LICENSE package-lock.json reddit.mjs README.md package.json default repo directory HEAD description info packed-refs config hooks objects refs worktree repo directory tldr git-worktree git worktree add foo -b foo Preparing worktree (new branch 'foo') HEAD description hooks objects refs config foo info packed-refs worktrees
  9. Run your code • Please ◦ Run your code ▪

    Please • I beg you ◦ You’ve been coding for 30 minutes run it!