Pam The Webivore
Essays / personalJavaScript / TypeScriptEngineering management / careersMusic
- Posts
- 369 from 6 Aug 2010 to 10 Feb 2026
- Posting
- now and then (1 in the last year)
- Kind
- personal blog
- Feed
- https://thewebivore.com/feed/
2026 1
2024 4
2023 2
2022 16
- 2022 Year in Review
- What happened next
- On doing nothing
- Using ffmpeg to cut/trim songs together with crossfade
- Improvisation and the pentatonic scale
- Atomic Habits: Book Review
- Why attracting remote workers means being a better city
- Twitter to Mastodon (and post deletions!)
- Labor and Leisure
- Is there a good computer job?
- You should quit
- Congratulations on your fake promotion!
- Pruning
- Anxiety is not a clean burning fuel
- Raise the money, then give it away: Reflections on a Giving Project
- 2021 Year in Review
2021 15
- Fetch the bolt cutters
- Testing a command inside a docker container (or getting an interactive session)
- Prioritizing Technical Debt as if Time and Money Matters (talk notes)
- A lot of it is timing: Reflections on a tech job hunt
- Missing pip in Python install
- MNAM: A method for defining your next role
- Do nothing scripting
- Functional options in Go
- Notes on Differential Privacy
- How Terraform’s simple graph concepts deploy complex infrastructure as code
- Project Brain States
- Unprecedented Times: A Socially Distanced Art Project
- When I’m 1000000
- Social media, or, towards a slower internet
- 2020 Year in Review
2020 24
- Developing the Postcard Wall
- Pandemic Chicken 🐔
- How I’m (trying) to stop overcommitting
- Fluid time: What’s on the freedom side?
- Hollow to solid or spun sugar development
- Excluding files in git grep
- The speed of time
- This is not a recipe
- I released an EP
- Time travel to combat despair
- The Postcard Wall Project
- The Art of Gathering Remotely
- !!con 2020 (#virtualbangbangcon)
- Notes from the May #p5hangout
- My music appeared in Women of React 2020!
- Featured in How I Work (from home) series
- Printing out a struct in Go
- My anxiety toolkit
- Live code stream for the Equinox!
- I made “Pits of Graph Theory” punk rock style patches!
- Oh no! Someone is incorrect on the internet!
- Impressions on working remotely
- Chesterton’s Fence and Maintaining a Codebase
- Refactoring legacy code with simple design (video reaction)
2019 23
- 2019 in review (bullets)
- Things (in Go) I’ve been learning this week
- Papers We Love Conf 2019
- Using “replace” in go.mod to point to your local module
- Thoughts on Emergent Strategy
- Notes from the North America GDE Summit
- Collaborating on live code audio using Troop
- I went to a hackerspace in Argentina and heard about cool art and tech things!
- Thoughts on Go slices and beginner’s mind
- Video review: The Economics of Open Source
- Let’s Go Video: Whats New in VS Code for Go
- Let’s Go Video: Observability in the Kitchen: Improve Your Breadmaking Skills w/OSS!!
- Let’s Go Video: Simplicity in Go
- On learning Go (and transitioning from JS)
- Let’s Go Video: The Legacy of Go
- My first day at HashiCorp!
- Reflections on StarCon 2019
- Recurse Center Mini Day 5
- Recurse Center Mini Day 4
- Recurse Center Mini Day 3
- Recurse Center Mini Day 2
- Recurse Center Mini Day 1
- Changes
2018 14
- 2018 in review (bullets)
- Algorave and Learning with LiveCode.NYC
- I was on the Cloudcast
- Community design with Mozilla Add-ons
- Why you should run your work machine on Linux
- The Multitude of Interfaces
- Broken bones (on recovery. burnout?)
- Do ask questions or, how we had a stereotypical conversation at a conference about being welcoming
- Serverless zine #0
- (Slides) Serverless and CatOps: Balancing trade-offs in operations and instrumentation
- Never Graduate Week 2018
- How your ask “to chat” about CTO roles really sounds
- Global Diversity CFP Day Recap (Philly edition)
- 2017 in review (bullets)
2017 10
- Only made possible because of Devs Like You
- Playing with ASTs in Python
- Strange Loop 2017 in Review – Day 2
- Strange Loop 2017 in Review – Day 1
- Honoring my future self
- Learning about math patterns (voronoi especially!)
- On podcasts
- Thoughts from Google I/O 2017 Days 2 & 3
- Thoughts from Google I/O 2017 (Day 1)
- The Serverless Revolution for Everyone
2016 22
- 2016 in review
- async/await and why it’s so great
- What I learned at Polymer Summit
- Object.assign is pretty rad!
- My #1 advice for getting into web development
- What is a melodica and why is it cool?
- Simple HTTP requests in Node (no packages)
- Checking out Create React App: Create React Apps without* Configuration!
- Thoughts on Cory Doctorow’s Keynote at HOPE XI
- 4 tips for being better at email introductions
- Angular 2 and Django too
- If you run Node on Lambda, you’re using Scott’s Node
- Beyond the resume is in beta!! (and, more on writing books)
- Using JavaScript for on-demand functions with AWS Lambda
- Troubles with interviews (and their solutions)
- Programming the PDP11 (cool video)
- “git butts” : Add your own commands to git! With Node!
- Bits of entropy, security, and possibly a new band name
- Philly Tech Week 2016 Retrospective
- A review of how to write
- A retrospective on working remotely 5000 miles away
- 2015 in review (bullets)
2015 44
- Please remove “junior” from your developer titles
- Free codes for React & Flux course
- Your REPL can teach you something
- Clojure Conj highlights
- Lua is weird!
- Learning more about security: Web app security tooling
- Notes from Strange Loop
- What I learned at OHSummit 2015
- Job hunting for developers: Shifting from skills to solving problems
- Accessing your local environment from a Windows VM (tutorial)
- How much does a website weigh?
- Where to learn about voice coding
- Résumés are garbage, part the second
- Firefox extension (jpm) tutorial
- 5 steps to contribute to open source software
- Burn your résumé: Finding your next job as an engineer
- Recurse Center: The return statement
- Tutorial: Deploying Dokku to DigitalOcean for excellent deploying goodness
- Recurse Center Week 12 (last week)
- Super simple environment variables in Node.js
- Recurse Center Week 11
- JavaScript Generators in 3 Minutes or Less
- Recurse Center Week 10
- Keep fun in computing
- Recurse Center Week 9
- Recurse Center Week 8
- Stop using “nerd” to describe people who like computers
- Recurse Center Week 7
- Recurse Center Week 6
- Introducing: MacVimSpeak, or, talking to your computer to use Vim
- Recurse Center Week 5
- Recurse Center Week 4
- Recurse Center Week 3
- Is Reactive Extensions for JS the framework that missed the wave?
- Adventures in data structures: Trees
- Recurse Center Week 2
- Recurse Center Week 1
- 2 step (guaranteed!) method to building a public profile as a developer
- Lean into simplicity
- Lessons from Forward2 + talk slides
- You are qualified to read an academic paper
- Themes from a year of mentorship
- What jQuery can teach you about monads
- Angry things about Apple Watch
2014 52
- 2014 in review (bullets)
- On authenticity
- Learning iOS’s Swift, for JavaScripters
- Choosing a JavaScript Framework slides + IT’S ALIVE (I think)
- A fantastic Hack the Universe (recap, show & tell)
- d3 is better and easier than I remember
- Scary Words in Programming Carnival Round-up
- Callbacks: Scary words in programming, episode 5
- You’re invited to the Scary Words in Programming Carnival!
- Recursion: Scary words in programming, episode 4
- Functors and monads: a twofer! Scary words in programming episode 3
- Transclusion: Scary words in programming, episode 2
- Scary words in programming, episode 1: Polymorphism
- Better innovation with better teams (and design thinking)
- Reflections on mentoring @ PennAppsX, and reasons to do it again
- Approaching error recovery
- Firefox decodes URIs for users?
- Why tech management will always be ‘the good ones’ from engineering, despite what tech management says (who came from engineering)
- Testing is not your lettuce
- My problem with pairing
- Why being a craftsman matters to me
- Continuously deploying your (free) OpenShift site with Travis CI
- 3 reasons you should take Coursera courses, ESPECIALLY if you went to university
- Favorite tools in JavaScript unit testing post up
- Tickets for LibertyJS are live!
- Modules in native JavaScript, compared to CommonJS
- This is what a CSS refactor looks like
- Jest from Facebook: Automagical mocking for tests if you’re into that sort of thing
- Just how blazingly easy it is to use the Karma test-runner
- Zero to Testing in JavaScript: the slides!
- We have a new podcast: Turing Incomplete
- More in front-end performance: surfnperf
- What I learned this week: What’s the deal with front-end performance?
- Testing is cool (especially in JavaScript)
- Don’t go it alone
- Using setTimeout to “win” a race condition when changing views
- Philly Tech Week Afterburn (a little late, perhaps, or perhaps just right)
- Absurdly simple proxying in Rails
- Web components … haven’t we done this before?
- Spring hacking season highlights and tips
- The big deal about web components
- LadyHacks 2014 Recap: Great folks, great teams, see you there next year!
- Ruby things I learned this week: present?, presence, and memoization
- 3 reasons why Dart’s so cool (from #flydart)
- Vim-fu: Recording a macro
- Facebook’s React, 8 months later (and where to learn about it)
- Cool word: Datensparsamkeit
- Now that jQuery’s not cool
- Book review: Testable JavaScript
- On making things and how far we’ve come
- JavaScript class launch! (peek inside for a discount code!)
- 2013 in review (bullets)
2013 57
- TIL: TATFT
- Random thing of the day: ASCII Star Wars
- When the computer doesn’t love you back (some notes on RSI and taking care of yourself)
- WTH *is* a framework?
- Will you support the Hacktory’s tech education and residency for artists?
- Metaphor of the week: Frameworks as sushi kits
- When it’s time to start speaking at conferences
- Pam, amateur humorist
- Trying out cryptography (and capture the flag)
- Video from JSConf EU now online
- Frameworks posts on the Safari Online Blog
- Ada Lovelace Day: Emma Allison and two more contemporary ladies
- Link dump from #SassConf
- Hey library! What’s your name! (and, let’s run arbitrary code in devtools!)
- BDD, Cucumber, and test-driven JavaScript
- Discount for the online JavaScript Summit
- Exactly WTH is up with $ in devtools
- JS for everyone: Materials for your next JavaScript workshop
- The tallest point between NYC and CHI — or, Pam’s new gig
- Photos from last week’s JavaScript fundamentals class
- Selenium, the most underrated tool for #opendata
- Future of JavaScript — the need to pay it forward
- #WWC2013 Wharton Web Conf recap 2013
- Selecting a Web Framework (Wharton Web Conf presentation)
- Making technical decisions (the results)
- How do you make technical decisions?
- Getting started learning (dev)ops
- Slides from Feminism & Open Source talk
- Datastorming: Coming up with good projects in open data
- Belated: I’m in print!
- Blah blah privacy (data, big stories, and community shrugging)
- Notes on #FluentConf 2013
- Choosing the best tool for the job
- Meet me in San Francisco?
- (PODCAST) Pam was on the Shop Talk Show!
- (VIDEO) Civic Hacking In Pursuit Of Democracy
- Developers and journalists speak different languages
- (VIDEO) Philly Tech Breakfast
- New project launch: Schoolhouse Watch
- Hello spring! (and hacking season!)
- Fluent webcast recording!
- As if I didn’t have enough to do … on organizing JavaScript in Philadelphia
- Upcoming (free!) webcast — O’Reilly Fluent Preview
- Get excited and make things: Rails Girls Philly
- Coding as literacy (plus 3D JS holograms!)
- Thoughts on #nicar13
- Sketches (notes) thus far from #nicar13
- Downloadable JavaScript Cheat Sheet
- Top resources for learning Django
- Wildly easy Django CSV imports
- An OpenGov (Open Government) Primer
- Agile living (and book review)
- Compass sprites and retina displays #sass
- On JavaScript Complexity
- Pam goes to art class – part 1
- Coverage of the White House Equal Futures Challenge Nationwide Codeathon
- 2012 in review (and a secret to chronicling your accomplishments)
2012 52
- Simplifying animation with CollieJS (plus, a dancing reindeer!)
- Just JavaScript: Prototyping with Node and Express
- Git Bisect: A Love Story
- What happens when a university education is free: Reflections on MOOC
- A good FAQ on RHOK
- Random Hacks Dec 2012 – who are you going to help?
- Book Review: Switch; a book about making change happen
- BarCamp Philly — amazing as usual
- Disaster, recovery, and coding for good
- Ada Lovelace Day: Justine Cassell and why I fell in love with Computer Science
- Short URLs, Big Data: Rundown of Hilary Mason at #ghc12
- Working together apart #ghc12 #tech
- The Tech Entrepreneurship Lab Session Rundown #ghc12 #tel
- Large conference survival guide #ghc12
- The Business Case for Craftsmanship
- Back to school plans
- Slides from Power Spriting with Compass
- I’m a community blogger for #ghc12!
- Some photos from the Geek Awards
- Flash and HTML5 are not equal
- Pam’s Intro to Git with GitHub
- Power-Spriting with Compass
- Less than a week left of Julython!
- Pam: The Public Speaker
- Interviewing Engineers for Engineers
- #WWC2012 Wharton Web Conf Recap
- Be a Library
- Oldie but goodie: Don’t Make Me Think
- Transitioning CSS: A basic introduction to CSS transitions
- How to ask for (tech) help when you’re helping others
- Hacking for Social Good Canvas, RHoK June 2012, and connecting problem-havers to solution-makers
- So you want to learn to code (IRL) — opportunities for women and their friends
- Test-Driven JavaScript … Today.
- Styling for Sass Addicts: A (short) Philly.rb Recap
- Building a great work culture: in praise of Hack Day
- Monday quote
- Men, sexism in tech, and a story about my dad
- The WhoPaid App Poster at PyCon2012
- PyCon 2012, iPython, and what you should be doing whether you went or not
- Eventbrite Poker Nite Photos from #PyCon
- Object Oriented CSS, SASS, and HAML
- RedSnakePhilly photo dump and recap
- “Go the Fuck Home” – my Ignite talk
- PyStar Philadelphia #3 (hint: great success)
- Philly Girl Geek Dinners #3: On ‘Shrink It & Pink It’: Designing Experiences for Women
- I love my students. Empowered learning FTW
- Don’t forget to be happy
- Embrace the artisan
- Just click the flippin’ button: Propose, poster, present
- 5 reasons to build your website in WordPress
- A fun ‘hey’ to the #techladymafia in DC
- Make everything better for everyone: Feminism for 2012
2011 18
- Seeing things as they are (an exercise in wireframing)
- PANMA Holiday Party 2011 (photos)
- Random hacks of kindness photos (scooped from elsewhere)
- Random Hacks of Kindness Philly Braindump
- In a meta-exercise, I’ll redesign my blog on my blog
- Being Geek and Being Reasonable
- CSS3 to make pretty buttons
- GHC Day 2 Recap: HTML5, long lunches, and cool posters
- Probability of political affiliation by analyzing Twitter data #ghc11
- Pretty stage at #ghc11!
- GHC Day 1 Recap
- Talker’s block
- Reasons why I’m wowed by Pottermore (or, also, why I love the Internet)
- An awesome CSS3 slidedeck
- Why you should use SVN etc. from the commandline
- Steal like an artist and other creative juicemaking
- GitHub and Koans
- Mmm, Ruby training. And unhappy mysql + snow leopard fix
2010 15
- Design Likes (insert thumbs up here)
- So I finally made a portfolio … er, kinda.
- Random: I made an animated GIF. Of otters.
- How I made GROUPINGS in Mailchimp play nicely with Drupal form input
- Bar Camp Philly
- Notes from the Tufte Course (Information Design)
- New button design from work
- Using bad code to stay on your toes
- Writing training materials (or, the Cousin Rule)
- How to add custom jQuery to a Drupal site (shortest tutorial ever)
- A meditation on email templates (and tables)
- IE Turns 15: “IE, messing up your design since 1995”
- A minor introduction to jQuery
- Installing Java on a Media Temple DV Server
- Becoming a reluctant sysadmin (fears of the command line)