Learn Python with Talk Python's 270 hours of courses

10 Tips and Tools for Developer Productivity

Episode #345, published Wed, Dec 15, 2021, recorded Wed, Nov 17, 2021

You know that feeling when one of your developer friends or colleague tells you about some amazing tool, library, or shell environment that you never heard of that you just have to run out and try right away? This episode is jam-packed full of those moments. We welcome back Jay Miller to discuss tools and tips for developer productivity. The title says 10 tips, but we actually veer into many more along the way. I think you'll really enjoy this useful and light-hearted episode.

Watch this episode on YouTube
Play on YouTube
Watch the live stream version

Episode Deep Dive

Guests Introduction and Background

Jay Miller is a seasoned developer advocate with a strong background in Python, automation, and productivity tooling. He’s particularly interested in helping people accelerate their workflows and has a reputation for exploring and sharing unexpected ways to leverage technology. Jay hosts the Conduit podcast on Relay.fm, focusing on productivity strategies for everyone from notebook-and-pen folks to professional software developers. Prior to that, he hosted the Productivity in Tech podcast. He is an active Python community member who frequently speaks on topics such as Flask, automation, and DevOps practices.


What to Know If You're New to Python

If you’re brand new to Python, here are a few critical points from this episode that will help you follow along and make the most of the tips:

  • Virtual Environments: You’ll hear about “virtual environments” (venvs) being automatically activated or managed. These let you isolate your project’s dependencies so you don’t break other Python applications.
  • Package Installation: Understanding pip install [package_name] is important for trying out new productivity tools.
  • Shell vs. UI Tools: Python folks often toggle between the command line (shell) and graphical user interfaces (GUIs) for Git, server management, etc. Realize both approaches are valid depending on your comfort level.
  • Basic Git Workflow: Even if you prefer GUIs, know a few terminal-based Git commands so you can troubleshoot or merge quickly when a tool isn’t available.

Key Points and Takeaways

  1. Invest in a Modern Shell Environment Many Python developers rely heavily on the command line, so upgrading beyond system defaults (like switching to ZSH or using Oh My Posh on Windows Terminal) can transform your day-to-day workflow. These shell enhancements offer powerful auto-completion, better Git integration, and visual cues to streamline your command-line experience.
  2. Leverage ngrok for Local Development and Demos ngrok allows you to securely expose a local web server to the internet. This is particularly helpful for testing webhooks from external services, collaborating with teammates, or giving interactive demos without deploying to a production environment.
  3. Add Security Headers Automatically with Secure.py Ensuring your web app sets proper security headers (like X-Frame, CSP, and HTTPS-related flags) can be tedious. Secure.py provides a simple way to wrap frameworks like Flask, FastAPI, Django, and more with recommended headers, removing the guesswork from robust security.
  4. Use a Visual Git Tool Alongside Basic CLI Knowledge While terminal Git commands are essential to understand, a visual tool can simplify complex operations and present branching, commits, and merges in a clear interface. Tools such as SourceTree, GitHub Desktop, or Git integration within VS Code and PyCharm help you see history and merge workflows more intuitively.
  5. Sync Your Forks on GitHub with a Single Click When you fork a project on GitHub, keeping it in sync with the upstream repository can be cumbersome. GitHub’s “Fetch Upstream” button automates the process so you don’t have to configure remote refs or merge manually.
  6. Enable HTTPS Certificates via Let’s Encrypt Obtaining SSL/TLS certificates no longer has to be expensive or overly complicated. Let’s Encrypt offers free, automatically renewing certificates to keep your web apps secure.
  7. Website Quality Checks: Sitemaps and Page Speed Having a sitemap helps you systematically test each page to guard against broken links or server errors. Additionally, using Google’s PageSpeed Insights shows how quickly your site loads and offers recommendations to optimize your front-end performance (like shrinking images or fine-tuning JavaScript).
  8. Automate Dependency Updates with pip-tools Managing Python dependencies can get tricky if you only pin top-level packages. pip-tools (especially pip-compile --upgrade) can ensure your entire dependency chain is consistently updated, avoiding security holes and resolving version conflicts.
  9. Improve Your Code Style with Black and isort Maintaining consistent code formatting saves time and reduces friction in code reviews. Black standardizes your Python code’s style automatically, while isort ensures your imports stay tidy, grouping them neatly.
  10. Try Nerd Fonts for Better Terminal Readability If you spend hours in the terminal, consider fonts optimized for coding. Nerd Fonts include icons and ligatures that help your prompt and tools like Oh My Zsh or Oh My Posh display advanced glyphs more clearly.

Interesting Quotes and Stories

  • Jay Miller on Doing Server Admin: “If I can avoid having to open up firewall ports, I’m going to, which is why ngrok saves me so much hassle.”
  • Michael Kennedy on Black’s Real Value: “It’s not just code formatting. It’s settling the debate so we can focus on actually building the app, not spacing around commas.”

Key Definitions and Terms

  • Shell / Terminal: A text-based user interface environment for running commands, managing files, and executing scripts. Common shells include ZSH, Bash, and PowerShell.
  • SSL / TLS Certificates: Digital certificates that authenticate a server’s identity and enable encryption of communication.
  • Sitemaps: A file (often XML) that lists all pages on a site, helping search engines and testers systematically discover and crawl them.
  • pip-tools: A set of command-line tools to manage Python package dependencies more reliably, producing a fully pinned requirements.txt.

Learning Resources

If you want to dig deeper into Python fundamentals or refine your craft, here are a few courses from Talk Python Training:

  • Python for Absolute Beginners: Ideal if you are just starting out and want a thorough introduction to Python’s core language concepts.
  • Up and Running with Git: Learn practical Git skills with an emphasis on GUI tools (like SourceTree) as well as essential command-line usage.

Overall Takeaway

Your day-to-day Python workflow can be made significantly smoother with a few strategic tools and minor workflow changes. From upgrading your command line and automating SSL certificates to syncing GitHub forks with one click, small enhancements lead to big boosts in productivity. By layering in additional safeguards, such as security headers via Secure.py and consistent formatting with Black, you free up bandwidth for meaningful coding rather than “housekeeping” tasks. Even more importantly, keep experimenting, stay curious, and share what you learn—because the Python community thrives when we all contribute our tips and best practices.

Links from the show

Jay on Twitter: @kjaymiller
More Oh my ZSH plugins: github.com
exa: the.exa.website
bat: github.com
ripgrep/amber: github.com
Neovim: neovim.io
RUMPS macOS Framework: github.com
Black: github.com
pypi-changes package: readthedocs.io
asdf-python: github.com
WAVE Web Accessibility Evaluation Tool: wave.webaim.org
Google PageSpeed: pagespeed.web.dev
XKCD Commit messages: xkcd.com
secure package: github.com
OWASP Top 10: owasp.org
ngrok: ngrok.com
starship: starship.rs
Homebrew: brew.sh
Chocolatey: chocolatey.org
pip-tools: github.com
Let's Encrypt: letsencrypt.org
Sourcetree Git App: sourcetreeapp.com
Oh my ZSH: ohmyz.sh
nerd fonts: nerdfonts.com
Oh my Posh: ohmyposh.dev
Windows Terminal: microsoft.com
McFly shell history: github.com
Fig IO enhanced shell: fig.io
Conduit podcast: relay.fm
htmx course at Talk Python: talkpython.fm/htmx
Watch this episode on YouTube: youtube.com
Episode transcripts: talkpython.fm

--- Stay in touch with us ---
Subscribe to Talk Python on YouTube: youtube.com
Talk Python on Bluesky: @talkpython.fm at bsky.app
Talk Python on Mastodon: talkpython
Michael on Bluesky: @mkennedy.codes at bsky.app
Michael on Mastodon: mkennedy

Talk Python's Mastodon Michael Kennedy's Mastodon