Writing Archive
Favorites
- Work Sample Tests: A Framework for Good Work Sample Tests: Eight Rules for Fair Tests November 17th, 2021
- "Where did we get lucky?" February 4th, 2020
- You have two jobs November 1st, 2017
- Psychological safety in the InfoSec industry April 18th, 2016
- I refuse to tolerate assholes May 19th, 2011
- How the news breaks November 8th, 2006
2024
- Thinking About Risk: Mitigation December 10th, 2024
- Thinking About Risk: An introduction to thinking about risk December 4th, 2024
- Free digital security checkups for people/organizations concerned about the incoming US government November 11th, 2024
- Why you should run for the DSF Board, and my goals for the DSF in 2025 October 18th, 2024
- If we had $1,000,000… October 8th, 2024
- Ethical Applications of AI to Public Sector Problems October 1st, 2024
- All I Need to Know About Engineering Leadership I Learned From Leave No Trace July 12th, 2024
- Paying More for Media June 11th, 2024
- Why I'm Not Writing a Productivity Series April 4th, 2024
- Mentorship, coaching, sponsorship: three different — and equally important — tools for developing talent April 1st, 2024
- Discussing Open Source funding and sustainability on the Sustain podcast March 29th, 2024
- Talking about Django's history and future on Django Chat March 20th, 2024
- So you've been reorg'd... March 12th, 2024
- Estimating Software Projects: Breaking Down Tasks March 11th, 2024
- Paying people to work on open source is good actually February 16th, 2024
- Tracking Engineering Time February 7th, 2024
- Philanthropy Update January 10th, 2024
- My Diverse Hiring Playbook January 4th, 2024
2023
- Managing Technical Debt December 20th, 2023
- Making Decisions: First decide how to decide: “one weird trick” for easier decisions December 5th, 2023
- Making Decisions: RFC processes are a poor fit for most organizations December 1st, 2023
- Professionalism: No Yelling November 21st, 2023
- Performance Is Contextual November 20th, 2023
- How to Build Trust November 16th, 2023
- Does someone need to be a good manager to give good management advice? November 16th, 2023
- Seniority and self-management: you don't have to do this alone October 4th, 2023
- RTO vs WFH: my default recommendations for remote vs colocated teams September 29th, 2023
- Team size isn't a measure of success September 11th, 2023
- Mailbag: Should you give candidates feedback on their interview performance? August 25th, 2023
- Do I need a consultant, contractor or employee? August 24th, 2023
- Hire for Floors, not Ceilings August 16th, 2023
- Giving It All Away: My Philanthropic Plan May 15th, 2023
- Follow-ups to "Incompetent but Nice" March 31st, 2023
- Incompetent but Nice March 28th, 2023
2022
- Professionalism: You should maintain a transition file November 9th, 2022
- Performance "Seasons" Are Useless — Use Anniversary Reviews Instead October 25th, 2022
- The Intersection of Tenure and Seniority October 20th, 2022
- Writing With Copilot October 14th, 2022
- When Is Short Tenure a Red Flag? October 14th, 2022
- Is this a parable about software development? October 13th, 2022
- Role Title Terminology October 12th, 2022
- Post-interview recommendations: a case against 'maybe' September 23rd, 2022
- Quality Is Systemic September 9th, 2022
- Taking notes in interviews August 12th, 2022
- Panel interviews don't work July 8th, 2022
- Checking References: What to do if a reference check goes wrong July 6th, 2022
- Checking References: How to Check References June 24th, 2022
- Checking References: Yes, You Should Check References June 22nd, 2022
- DORA Metrics: the Right Answer to measuring engineering team performance June 17th, 2022
- Making a Compelling Offer — in this economy? June 16th, 2022
- Mailbag: Dealing With Misalignment While Hiring May 23rd, 2022
- Professionalism: Honesty is a professional behavior May 19th, 2022
- Professionalism: What is “professionalism” and why am I writing about it? April 12th, 2022
- Is my advice too mercenary? April 11th, 2022
- Your last one-on-one: what to do instead of an exit interview April 7th, 2022
- Exit Interviews Are a Trap April 4th, 2022
- That Wild Ask A Manager Story February 14th, 2022
- I was on The Changelog February 14th, 2022
- Developing a Values Interview Question January 31st, 2022
- Book Review: Powerful (Patty McCord) January 18th, 2022
- Year in Review: 2021 January 7th, 2022
- Work Sample Tests: Wrap Up and Q&A January 6th, 2022
2021
- Work Sample Tests: What doesn't work (and why) December 30th, 2021
- Work Sample Tests: Labs & Simulation Environments December 24th, 2021
- Volunteer Responsibility Amnesty Day December 20th, 2021
- Work Sample Tests: ‘Reverse’ Code Review December 15th, 2021
- Work Sample Tests: Bring Your Own Code December 7th, 2021
- Work Sample Tests: Pair Programming November 30th, 2021
- Work Sample Tests: Coding “Homework” November 23rd, 2021
- Work Sample Tests: A Framework for Good Work Sample Tests: Eight Rules for Fair Tests November 17th, 2021
- Work Sample Tests: The tradeoff between inclusivity and predictive value November 10th, 2021
- Work Sample Tests: Introduction to Work Sample Tests November 9th, 2021
- When you're a manager, your behavior is under a microscope October 26th, 2021
- Dear Potheads, You Can Work for the U.S. Government, Maybe October 25th, 2021
- Simple Product Management Tricks October 20th, 2021
- What is your labor worth? Tech compensation in 2021 October 13th, 2021
- Delegation: How to Delegate Meeting Attendance October 6th, 2021
- Delegation: Briefing a Delegate September 27th, 2021
- People- vs Results-Oriented Management: Both Work! September 22nd, 2021
- Delegation: Delegate Outcomes, Not Methods July 21st, 2021
- Delegation: Make Failure A (Safe) Option July 20th, 2021
- Delegation: “Give Away Your Toys” July 19th, 2021
- Delegation: What's delegation? July 19th, 2021
- Probably Are Gonna Need It: Application Security Edition July 8th, 2021
- Book Review: Team Topologies July 5th, 2021
- The VPP/VPE Relationship June 16th, 2021
- Estimating Software Projects: So you messed up. Now what? June 8th, 2021
- Estimating Software Projects: The art of the SWAG June 2nd, 2021
- Estimating Software Projects: My Software Estimation Technique May 25th, 2021
- Estimating Software Projects: Software Estimation Is Hard. Do It Anyway. May 20th, 2021
- 2021 DBIR Highlights May 18th, 2021
- Positive feedback is different from praise May 12th, 2021
- The Mass Email Mistake May 10th, 2021
- Three Feedback Models April 22nd, 2021
- The Fundamental Purpose of Middle Management: Context Down, Information Up April 19th, 2021
- Are You Stuck On Vision, Strategy, or Tactics? April 16th, 2021
- Embrace the Grind April 7th, 2021
- Mailbag: Adapting Interview Questions for Junior Candidates March 29th, 2021
- “Fair” Doesn't Mean “Equal” March 28th, 2021
- How managers should respond to defensiveness after feedback March 23rd, 2021
- The Three Kinds of Organizational Power March 15th, 2021
- How Long Does It Take to Hire Someone? March 11th, 2021
- Coworking With a Friend to Write More March 9th, 2021
- “Why Did You Leave Your Last Job?” March 8th, 2021
- How to Give a Status Update To Executives March 5th, 2021
- Unpacking Interview Questions: Types of Interview Questions March 1st, 2021
- Effective Organizations Value Autonomy February 26th, 2021
- Unpacking Interview Questions: Interview Question Series Wrap Up February 15th, 2021
- Unpacking Interview Questions: The Weakness Question February 12th, 2021
- Unpacking Interview Questions: “Tell Me About a Disagreement…” February 11th, 2021
- Unpacking Interview Questions: Diversity, Equity, and Inclusion February 10th, 2021
- Unpacking Interview Questions: “Tell Me About a Project You Led…” February 9th, 2021
- Unpacking Interview Questions: “Explain a Topic At Multiple Levels…” February 8th, 2021
- SOCCR: the framework I use for decision briefs January 30th, 2021
- How to gather consensus before a big decision January 18th, 2021
- Hangar's Dumb Security Questionnaire January 15th, 2021
- Why I'm excited to get a COVID vaccine January 13th, 2021
- Articles for r2c: Bringing Security along on the CI/CD journey January 11th, 2021
- Designing Engineering Organizations January 5th, 2021
2020
- AI is catching up to the hype December 28th, 2020
- Measuring Hiring Manager Effectiveness September 14th, 2020
- Articles for r2c: Not all attacks are equal: understanding and preventing DoS in web applications September 11th, 2020
- Training Interviewers September 8th, 2020
- Articles for r2c: Preventing SQL Injection in Django May 15th, 2020
- What accomplishments sound like on software engineering resumes May 8th, 2020
- Layoffs are Coming March 13th, 2020
- Django's new governance model March 12th, 2020
- The Innovation/Execution Spectrum February 18th, 2020
- "Where did we get lucky?" February 4th, 2020
- Demos, Prototypes, and MVPs January 16th, 2020
- 📣 Now on Google Cloud Run January 5th, 2020
2019
- My Python Development Environment: My Python Development Environment, 2020 Edition November 11th, 2019
- My questions for prospective employers (Director/VP roles) April 23rd, 2019
- IQ isn't enough to get hired April 3rd, 2019
- Goals aren't enough; you have to talk about performance, too April 1st, 2019
2018
- My interview kickoff script, annotated November 29th, 2018
- Hire me to help you hire November 27th, 2018
- A bit of smart security design from Tiller November 19th, 2018
- 2018 life update May 3rd, 2018
- A reading list for new engineering managers May 2nd, 2018
- The Moment April 2nd, 2018
- My Python Development Environment: My Python Development Environment, 2018 Edition February 21st, 2018
2017
- You have two jobs November 1st, 2017
- Five stories about the California Wildfires you probably missed October 22nd, 2017
- Don't include social engineering in penetration tests June 27th, 2017
2016
- Getting started with pytest November 27th, 2016
- Django Under the Hood 2016 Highlights November 22nd, 2016
- So you want a new admin? May 26th, 2016
- Ratchets & Levers May 19th, 2016
- 2016 DBIR Highlights April 27th, 2016
- A reading list for InfoSec engineers April 20th, 2016
- Psychological safety in the InfoSec industry April 18th, 2016
2015
- How do you run distributed standups? June 4th, 2015
- Shanley and my PyCon talk June 1st, 2015
2014
- Uber and the Fourth Estate November 18th, 2014
- Python Programmers Support the Ada Initiative September 23rd, 2014
- Re: What Can Men Do? April 25th, 2014
- The limits of "unlimited" vacation March 18th, 2014
- Retiring as BDFLs January 13th, 2014
2013
- Bagels December 2nd, 2013
- To my friends in the Node community November 30th, 2013
- On TRUCEConf November 9th, 2013
- Personal lessons from XOXO September 22nd, 2013
- Join me in supporting the Ada Initiative August 27th, 2013
- Getting features into Django May 23rd, 2013
- I've joined Heroku May 13th, 2013
2012
- Auto-building Sphinx docs May 24th, 2012
- Measuring the Django Community: The Django community in 2012 March 5th, 2012
2011
- DIY supplies October 31st, 2011
- Why conferences need a code of conduct August 4th, 2011
- P.J. Eby on PyPI July 5th, 2011
- Is there a market for paid Django apps? June 28th, 2011
- A REST wankery question May 25th, 2011
- I refuse to tolerate assholes May 19th, 2011
- Work for me! April 25th, 2011
- Help desk software? March 4th, 2011
2010
- Configuration and architecture November 9th, 2010
- CI is hard! November 8th, 2010
- Office hours November 7th, 2010
- Django classes: deployment, ecosystem November 4th, 2010
- How to roast a chicken November 3rd, 2010
- Django gotcha: concrete inheritance November 2nd, 2010
- What's your favorite Django app? November 1st, 2010
- "Web Scale" October 28th, 2010
- Peter Norvig on programming languages October 18th, 2010
- man tar August 3rd, 2010
- Mark Shuttleworth on Tribalism July 31st, 2010
- GvR on commit privileges July 26th, 2010
- What to do when PyPI goes down July 20th, 2010
- Backwards compatibility June 9th, 2010
- util June 8th, 2010
- Dynamic form generation February 28th, 2010
- Early registration for my Advanced Django class ends soon February 16th, 2010
- To hell with web standards February 12th, 2010
2009
- Fixing PostgreSQL's default encoding on Ubuntu 9.10 December 12th, 2009
- Writing Great Documentation: You need an editor November 12th, 2009
- Writing Great Documentation: Technical style November 11th, 2009
- Writing Great Documentation: What to write November 10th, 2009
- My travel kit November 9th, 2009
- Measuring the Django Community: The Django community in 2009 November 6th, 2009
- Thank you, Rails November 5th, 2009
- On commit bits November 4th, 2009
- Lessons from Rackspace's downtime November 3rd, 2009
- The power of "no" November 2nd, 2009
- SEO scumbags October 29th, 2009
- QFT October 20th, 2009
- Job opportunity: engineer at Whiskey Media October 13th, 2009
- * is Unix October 7th, 2009
- Python is Unix October 6th, 2009
- Django Master Class, October 16 September 18th, 2009
- Contributor License Agreements September 17th, 2009
- Snakes on the Web September 4th, 2009
- Reminder: Django Training August 7th, 2009
- Django Training July 20th, 2009
- Twenty questions about the GPL July 13th, 2009
- Django internals: authentication July 13th, 2009
- Professionalism July 4th, 2009
- SVN usability June 30th, 2009
- Looking for a Django developer? June 10th, 2009
- More buildout notes April 20th, 2009
- Developing Django apps with zc.buildout April 15th, 2009
- Nobody expects Python packaging! April 13th, 2009
- Hooray for standards April 9th, 2009
- Python implementation details March 26th, 2009
- It's time for a change March 4th, 2009
- FAQ: Untrusted users and HTML February 24th, 2009
- The taste of shame and humiliation February 2nd, 2009
- Why I'm excited about Python 3 January 22nd, 2009
- Descriptivists and Prescriptivists January 13th, 2009
- What is django.contrib? January 8th, 2009
2008
- "Syntactic Sugar" November 22nd, 2008
- Typography: Rhythm & Proportion November 21st, 2008
- Minimalism November 18th, 2008
- REST worst practices November 14th, 2008
- PyCon Braindump March 19th, 2008
- Help OSI March 18th, 2008
- Sailing on… February 21st, 2008
- A picture is worth a thousand words January 30th, 2008
- Shameless self-promotion January 29th, 2008
2007
- Django Book Update November 13th, 2007
- Of the Web October 19th, 2007
- CouchDB first impressions October 18th, 2007
- The sorry state of database journalism September 12th, 2007
- My "personal security" plan August 31st, 2007
- Seasoning Templates July 19th, 2007
- Die, Marker Felt, Die! July 16th, 2007
- Dear Adobe July 2nd, 2007
- Some guesses about the future May 31st, 2007
- Django projects May 22nd, 2007
- Django Internships at the Journal-World May 2nd, 2007
- Measuring the Django Community: Circles of Django (2007) March 22nd, 2007
- You vs. the Real World March 12th, 2007
- Jimbo's Number March 6th, 2007
- Ripped by Engadget March 5th, 2007
- Five things I hate about Python March 4th, 2007
- Overheard at PyCon February 23rd, 2007
- I don't care whose is bigger February 19th, 2007
- Fried Chicken January 29th, 2007
2006
- How the news breaks November 8th, 2006
- Wanted: kick-ass sysadmin September 18th, 2006
- Pronouncement August 22nd, 2006
- Post-OSCONum part 1: try not to suck July 28th, 2006
- "Show-stoppers" July 20th, 2006
- Digg dugg July 17th, 2006
- Bad dog! July 10th, 2006
- Improved text image view June 30th, 2006
- Django OSCON shirts June 27th, 2006
- Django propaganda May 3rd, 2006
- A complete waste of time April 21st, 2006
- Django meetup in Palo Alto April 12th, 2006
- Merquery March 29th, 2006
- Quiet Enjoyment March 23rd, 2006
- Free server? Probably not March 22nd, 2006
- Free servers? March 2nd, 2006
- Django stuff at Pycon March 2nd, 2006
- WWBD February 17th, 2006
- Template + Cache = Crazy Delicious January 31st, 2006
- Why you should use Django January 27th, 2006
- Strike averted January 13th, 2006
- Done January 4th, 2006
2005
- Dojo gets a manual December 23rd, 2005
- Django, meet Dojo December 19th, 2005
- Have more… December 14th, 2005
- Django performance tips December 12th, 2005
- Hiring, part II December 8th, 2005
- We're hiring! December 7th, 2005
- Lightpd on Ubuntu December 5th, 2005
- What can Django learn from Rails? December 5th, 2005
- allofmp3.com RSS feed September 22nd, 2005
- Private Dancer? September 9th, 2005
- A note to web designers August 26th, 2005
- A quick comparison August 22nd, 2005
- Sera's Pancakes August 21st, 2005
- Django and Rails August 16th, 2005
- Reboot August 15th, 2005