Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
php[world] 2016 Keynote - Cruft to Class: NPR’s...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Nara Kasbergen
November 17, 2016
Programming
320
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
php[world] 2016 Keynote - Cruft to Class: NPR’s 15-year Journey with PHP
by Nara Kasbergen & Paul Miles
November 17, 2016
Nara Kasbergen
November 17, 2016
More Decks by Nara Kasbergen
See All by Nara Kasbergen
[Webinale] Voice: The New Frontend
xiehan
0
100
[IPC] Empathy as a Service: Supporting Mental Healthin the Tech Workplace
xiehan
0
120
[VoiceCon] The Voice Technology Landscape
xiehan
0
91
[NPR x phpworld] Improving Company Culture with Donut
xiehan
0
120
[GHC19] Empathy as a Service: Supporting Mental Health in the Tech Workplace
xiehan
0
250
[CascadiaPHP] Empathy as a Service: Supporting Mental Healthin the Tech Workplace
xiehan
0
110
[Tinel] Voice: The New Frontend
xiehan
0
88
Audio-First Voice Development: The good,the bad & the ugly
xiehan
0
110
[phpday] LET'S GET META! What the data from the joind.in API can teach us about the PHP community
xiehan
0
310
Other Decks in Programming
See All in Programming
「AI時代、配布するPythonコードをどう守るか: 難読化の実験と判断軸」 #PyconJP2026
pkshadeck
PRO
2
180
[DroidKaigi 2026] Bring your own phones to Gradle Managed Devices
f2lk
0
110
個人開発基盤をまるごとCloudflareに引っ越して爆速で総合的体験を向上させた話
tinykitten
0
140
Webの地図
yosuke_furukawa
PRO
3
3.2k
思考垂れ流し開発 ~音声入力 × AIエージェント × 開発ハーネスによる試行錯誤~
npostring
0
1k
ALB ログから Trace を気合で繋げる技術
fohte
7
880
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
460
RSSとCodexを使ってX投稿自動化してみた
ochtum
0
110
Family mrubyの進捗
kishima
1
100
スマート反転とウェブアクセシビリティ
camiha
0
170
Snowflakeで業務アプリを作ろう。 Snowflakeのアプリ機能解説&実践ガイド
ayumu_yamaguchi
1
180
Can LLMs Replicate 4 Years of Compose Migration? Exploring the boundaries of automation with 279 XML files from a real product
makun
0
130
Featured
See All Featured
Google's AI Overviews - The New Search
badams
0
1.6k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Abbi's Birthday
coloredviolet
3
9.9k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
320
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
Technical Leadership for Architectural Decision Making
baasie
3
560
How STYLIGHT went responsive
nonsquared
100
6.3k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
520
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
520
The agentic SEO stack - context over prompts
schlessera
0
910
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
42k
Transcript
php[world] 2016 Cruft to Class: NPR’s 15-year Journey with PHP
Nara Kasbergen (@xiehan) & Paul Miles (@milespj) • November 17, 2016
None
None
A story in 5 acts
Act I: In the beginning…
November 2001 npr.org re-launches using PHP (previously just static files)
None
None
None
None
None
2 in 10 Americans regularly got their news online in
2000 Source: Pew Research
3 in 10 Americans regularly got their news online in
2006 Source: Pew Research
7% U.S. adults who used social media sites in 2005
Source: Pew Research
None
11% U.S. adults who had listened to at least one
podcast in 2006 Source: Edison Research
February 2004 First commit to NPR Digital Media's master repository
on CVS
January 2007 Steve Jobs announces the first Apple iPhone
November 2007 First version of our mobile site (m.npr.org) launches
Act II: Enter the API
August 2008 NPR Digital Media launches its "Story API", an
XML-based, PHP-powered public API
None
Spring 2009 NPR Digital Media adopts "Scrum" flavor of Agile
Spring 2009 Every NPR Digital Media developer gets their own
virtual machine set up almost identically to our stage/production servers
Spring 2009 NPR Digital Media switches from CVS to SVN
July 2009 Seamus (our CMS) and npr.org re-launch with a
complete redesign
July 2009 NPR Digital Media launches the NPR News app
for iOS
October 2009 npr.org upgrades to PHP 5.2
November 2009 npr.org switches from Oracle to MySQL under-the-hood
November 2009 Second version of m.npr.org, built by a third
party, launches
8,543 commits to the master repository from Sep 2007 –
May 2011 by 9 different developers
Act III: Let's go responsive
May 2011 NPR Digital Media holds its first-ever "Serendipity Days"
(hack week)
September 2011 npr.org upgrades to PHP 5.3.8 from 5.2.9
April 2012 NPR Digital Media adopts Jenkins for builds and
continuous integration (as a result of a Serendipity Days project!)
October 2012 NPR Digital Media launches a new responsive layout
for blogs on npr.org, the first phase in a multi-year responsive redesign project
May 2013 NPR Digital Media begins work on the "Carbon
Services", a new API that will power what eventually becomes NPR One
July 2013 npr.org upgrades to PHP 5.5.0 from 5.3.8
August 2013 NPR Digital Media launches a new responsive homepage
for npr.org
7,302 commits to the master repository from May 2011 –
Dec 2013 by 11 different developers
Act IV: New recruits, new ideas
March 2014 NPR Digital Media completes the switchover from SVN
to Git
March 2014 NPR Digital Media begins using Composer for dependency
management
July 2014 NPR Digital Media launches NPR One, our newest
mobile app for iOS and Android
April 2015 First true unit test is added our main
repository
June 2015 NPR Digital Media begins "DevOpsification" project
March 2016 npr.org retires its Flash-based pop-up audio player in
favor of a persistent HTML5 audio player
May 2016 NPR Digital Media launches a public developer blog,
npr.codes
November 2016 npr.org finally upgrades to PHP 5.6
4 in 10 Americans regularly get their news online in
2016 Source: Pew Research
65% U.S. adults who used social media sites in 2015
Source: Pew Research
21% U.S. adults who listened to a podcast last month
Source: Edison Research
17,354 commits to the master repository from Dec 2013 –
Nov 2016 by 22 different developers
Act V: The future
sometime in 2017 npr.org upgrades to PHP 7
7 strategies for success
1. Serendipity Days
Give people time & space to be creative
Put their best ideas into action
2. Agile
Don't fix what isn't broken
Always be open to changing the process if needed
Monday Tuesday Wednesday Thursday Friday SPRINT PLANNING Developer Mtg. Code
Code Code Code 5pm Code Complete Code Reviews (all day) Set Up Staging QA #1 QA #2 QA #3 2:30pm Code Freeze RELEASE Retrospectives Hotfixes
3. Continuous Deployment
Separate code concerns
Automate builds and deployments
Refactor while delivering features
4. DevOps
Treat infrastructure as code
Provides consistency
Fosters testing and QA
5. Invest in Testing
Run tests on every commit
Fix failing tests immediately
Story not done until tests written
Measure coverage
6. Community & Standards
Attend conferences
Speak at conferences & meetups
Blog openly npr.codes - NPR's public developer blog
Use open-source software
Use community standards & best practices
7. Happy Employees
Hire good coders
Hire good coders
Hire good humans
About Us Nara Kasbergen Software Engineer twitter.com/xiehan linkedin.com/in/narakasbergen Paul Miles
Development Manager twitter.com/milespj linkedin.com/in/milespj npr.codes - NPR's public developer blog twitter.com/NPRTechTeam
None