#140 Becoming a 10x Developer (sorta)
Python Bytes - A podcast by Michael Kennedy and Brian Okken - Luni
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.