#140 Becoming a 10x Developer (sorta)
Python Bytes - A podcast by Michael Kennedy and Brian Okken - Mondays
   Categories:
Sponsored by DigitalOcean: pythonbytes.fm/digitalocean
Brian #1: Becoming a 10x Developer : 10 ways to be a better teammate
- Kate Heddleston
 - “A 10x engineer isn’t someone who is 10x better than those around them, but someone who makes those around them 10x better.”
- Create an environment of psychological safety
 - Encourage everyone to participate equally
 - Assign credit accurately and generously
 - Amplify unheard voices in meetings
 - Give constructive, actionable feedback and avoid personal criticism
 - Hold yourself and others accountable
 - Cultivate excellence in an area that is valuable to the team
 - Educate yourself about diversity, inclusivity, and equality in the workplace
 - Maintain a growth mindset
 - Advocate for company policies that increase workplace equality
 
 - article includes lots of actionable advice on how to put these into practice.
 - examples: 
- Ask people their opinions in meetings.
 - Notice when someone else might be dominating a conversation and make room for others to speak.
 
 
Michael #2: quasar & vue.py
- via Doug Farrell
 - Quasar is a Vue.js based framework, which allows you as a web developer to quickly create responsive++ websites/apps in many flavours:
- SPAs (Single Page App)
 - SSR (Server-side Rendered App) (+ optional PWA client takeover)
 - PWAs (Progressive Web App)
 - Mobile Apps (Android, iOS, …) through Apache Cordova
 - Multi-platform Desktop Apps (using Electron)
 
 - Great for python backends
 - tons of vue components
 - But could it be all python?
 
Brian #3: Regular Expressions 101
- We talked about regular expressions in episode 138
 - Some tools shared with me after I shared a regex joke on twitter, including this one.
 - build expressions for Python and also PHP, JavaScript, and Go
 - put in an example, and build the regex to match
 - explanations included
 - match information including match groups and multiple matches
 - quick reference of all the special characters and what they mean
 - generates code for you to see how to use it in Python
 - Also fun (and shared from twitter):
- Regex Golf
- see how far you can get matching strings on the left but not the list on the right.
- I got 3 in and got stuck. seems I need to practice some more
 
 
 - see how far you can get matching strings on the left but not the list on the right.
 
 - Regex Golf
 
Michael #4: python-diskcache
- Caching can be HUGE for perf benefits
 - But memory can be an issue
 - Persistence across executions (e.g. web app redeploy) an issue
 - Servers can be issues themselves
 - Enter the disk! Python disk-backed cache (Django-compatible). Faster than Redis and Memcached. Pure-Python.
 - DigitalOcean and many hosts now offer SSD’s be default
 - Unfortunately the file-based cache in Django is essentially broken.
 - DiskCache efficiently makes gigabytes of storage space available for caching. 
- By leveraging rock-solid database libraries and memory-mapped files, cache performance can match and exceed industry-standard solutions.
 - There's no need for a C compiler or running another process.
 - Performance is a feature
 - Testing has 100% coverage with unit tests and hours of stress.
 
 - Nice comparison chart
 
Brian #5: The Python Help System
- Overview of the built in Python help system, 
help() - examples to try in a repl
help(print)- help(dict)
 help('assert')import math; help(math.log)
 - Also returns docstrings from your non-built-in stuff, like your own methods.
 
Michael #6: Python Architecture Graphs
- by David Seddon
 - Impulse - a CLI which allows you to quickly see a picture of the import graph any installed Python package at any level within the package.
 - Useful to run on an unfamiliar part of a code base, to help get a quick idea of the structure.
 - It's a visual explorer to give you a quick signal on architecture.
 - Import Linter - this allows you to declare and check contracts about your dependency graph, which gives you the ability to lint your code base against architectural rules.
 - Helpful to enforce certain architectural constraints and prevent circular dependencies creeping in.
 
Extras
Michael:
Jokes
Two threads walk into a bar. The barkeeper looks up and yells, 'Hey, I want don't any conditions race like time last!’
A string value walked into a bar, and then was sent to stdout.
