SlideShare uma empresa Scribd logo
1 de 36
How to get lost in your own
country
Multiple times
Use Google Maps
About me
●
Veselin Nikolov
● @dzver
●
WordPress.com
About me
●
Background as MS SQL
DBA
● Currently trying to
keep things simple in
a team of 10
Lessons from working on
WordPress.com
WordCamp Romania 2014
What happened with the MySQL talk
One month ago
The reception
The questions
● How do I make WordPress secure
●
What are your tips for secure WordPress
●
How do I chose save plugins and themes
● How do you manage to work remotely?
●
Are there any other Bulgarians at Automattic?
! MySQL
There are no mistakes,
only lessons.
... telling stories this time.
Story #1 The ID
● 7 year old legacy code
● Entire table described in the code
● We have items with ids 5 and 6. We need to
add 7.
● The 5 and 6 were repeated 135 times in the
code.
Story #1 The ID
● One new object
● A few helpers
● 135 removed magic numbers
● One changeset
● 0 unit tests
● What could possibly go wrong?
Ups...
(I broke stuff)
Story #1 Lessons
● Pleasepleaseplease, no magic numbers
● Atomic commits, please!
● Long functions are hard to understand
● Stats monitoring
● Legacy is code for which we don't have tests
Story #2 The Notification
● Montreal
●
1+ million emails
●
1+ million discount coupons (10-ish previously)
● Friday
● What could possibly go wrong?
Story #2 The Notification
● Queries that work with small tables:
SELECT * FROM table
SELECT * FROM table ORDER BY whatever
LIMIT 200, 100
Story #2 The Notification
● Queries that don't work with large tables:
SELECT * FROM table
SELECT * FROM table ORDER BY whatever
LIMIT 200000, 100
Story #2 The Notification
● Fetching big amounts of data breaks things
●
Offsetting breaks things
●
The coupons weren't really used in the past
and didn't really work
● Repeating millions of anything means a lot of
time
Lessons
Launching big things on Friday
Offsets
SELECT * FROM ...
WHERE `id` > 1093029
ORDER BY `id` LIMIT 20
SELECT `deadline` FROM ...
WHERE `date` BETWEEN '2014-06-20'
AND ...
Offsets
SELECT * FROM ...
WHERE `id` > 1093029
ORDER BY `id` LIMIT 20
SELECT `deadline` FROM ...
WHERE `date` BETWEEN '2014-06-20'
AND ...
Offsets
SELECT * FROM `table` JOIN (
SELECT `id` FROM `table`
ORDER BY `whatever`
LIMIT 5000,50
) as `b` USING `id`
Story #3 The A/B Test
● A/B test is showing different things to users and
measuring effect
● We use Kissmetrics
● We've had 5 different A/B testing classes
Story #3 The A/B Test
● Feature-rich classes
●
Many levels of abstraction
●
Expressive names
● Many filters and actions
● What could possibly go wrong?
Story #3 The A/B Test
class Server_Side_Experiment_Visitor extends
Server_Side_Experiment_Base {
...
Story #3 The A/B Test
● Wrong results, no one knows why.
Story #3 The A/B Test
● Wrong results, no one knows why.
Story #3 The A/B Test
A new colleague joins and writes this:
ab_test(
'test-teh-button',
array(
'orange',
'blue',
)
);
// return 'orange'
Story #3 Lessons Learned
● KISS. Simplest solution worked
●
Kissmetrics rocks
●
A/B test everything
Story #4 Barry
<bazza> howdy
<dzver> hi, did I break anything?
<bazza> your blog looks hacked
Story #4
● Unique passwords
●
2-factor auth
●
Come to WordCamp Europe and maybe watch
Barry live :-)
●
#praythatbarrycomestowceurope
Summary
● KISS. Simple queries. Simple code.
●
DRY. Repetition fails.
●
A/B test. Unit test. Test!
●
Launch your next project on Friday at 7pm.
My name is Veselin
I code for food.
Ask me anything!

Mais conteúdo relacionado

Destaque

Shn Overview Updated 2009 06 P31 36
Shn Overview   Updated 2009 06 P31 36Shn Overview   Updated 2009 06 P31 36
Shn Overview Updated 2009 06 P31 36joaovox
 
Gamaa 08 Images
Gamaa 08 ImagesGamaa 08 Images
Gamaa 08 ImagesLeisha
 
IPR Enforcement in India through Criminal Measures - By Vijay Pal Dalmia
IPR Enforcement in India through Criminal Measures - By Vijay Pal DalmiaIPR Enforcement in India through Criminal Measures - By Vijay Pal Dalmia
IPR Enforcement in India through Criminal Measures - By Vijay Pal DalmiaVijay Dalmia
 
Guide for de mystifying law of trade mark litigation in India-2014
Guide for de mystifying law of trade mark litigation in India-2014Guide for de mystifying law of trade mark litigation in India-2014
Guide for de mystifying law of trade mark litigation in India-2014Vijay Dalmia
 
Prefix Forwarding for Publish/Subscribe
Prefix Forwarding for Publish/SubscribePrefix Forwarding for Publish/Subscribe
Prefix Forwarding for Publish/SubscribeZbigniew Jerzak
 
20090325 Presentatie Abn Amro E Channels Waw Slideshare
20090325 Presentatie Abn Amro E Channels Waw   Slideshare20090325 Presentatie Abn Amro E Channels Waw   Slideshare
20090325 Presentatie Abn Amro E Channels Waw SlideshareJorden Lentze
 
Сигурност при разработката на WordPress разширения
Сигурност при разработката на WordPress разширенияСигурност при разработката на WordPress разширения
Сигурност при разработката на WordPress разширенияVeselin Nikolov
 
IT Policy - Need of the Hour
IT Policy - Need of the HourIT Policy - Need of the Hour
IT Policy - Need of the HourVijay Dalmia
 
Mukul's Wedding Invitation
Mukul's Wedding InvitationMukul's Wedding Invitation
Mukul's Wedding InvitationMukulbadonia
 
Fail-Aware Publish/Subscribe
Fail-Aware Publish/SubscribeFail-Aware Publish/Subscribe
Fail-Aware Publish/SubscribeZbigniew Jerzak
 
Milieuproblematiek
MilieuproblematiekMilieuproblematiek
Milieuproblematiekguest994697
 
Fade tools
Fade toolsFade tools
Fade toolsShdwClaw
 
Marketing research of the future
Marketing research of the futureMarketing research of the future
Marketing research of the futureKristof De Wulf
 
Amazing number3
Amazing number3Amazing number3
Amazing number3ShdwClaw
 
Cesar Tabla De Datos Servipark
Cesar Tabla De Datos ServiparkCesar Tabla De Datos Servipark
Cesar Tabla De Datos Serviparkguest4ac5a34
 

Destaque (16)

Shn Overview Updated 2009 06 P31 36
Shn Overview   Updated 2009 06 P31 36Shn Overview   Updated 2009 06 P31 36
Shn Overview Updated 2009 06 P31 36
 
Gamaa 08 Images
Gamaa 08 ImagesGamaa 08 Images
Gamaa 08 Images
 
IPR Enforcement in India through Criminal Measures - By Vijay Pal Dalmia
IPR Enforcement in India through Criminal Measures - By Vijay Pal DalmiaIPR Enforcement in India through Criminal Measures - By Vijay Pal Dalmia
IPR Enforcement in India through Criminal Measures - By Vijay Pal Dalmia
 
Guide for de mystifying law of trade mark litigation in India-2014
Guide for de mystifying law of trade mark litigation in India-2014Guide for de mystifying law of trade mark litigation in India-2014
Guide for de mystifying law of trade mark litigation in India-2014
 
Prefix Forwarding for Publish/Subscribe
Prefix Forwarding for Publish/SubscribePrefix Forwarding for Publish/Subscribe
Prefix Forwarding for Publish/Subscribe
 
20090325 Presentatie Abn Amro E Channels Waw Slideshare
20090325 Presentatie Abn Amro E Channels Waw   Slideshare20090325 Presentatie Abn Amro E Channels Waw   Slideshare
20090325 Presentatie Abn Amro E Channels Waw Slideshare
 
Сигурност при разработката на WordPress разширения
Сигурност при разработката на WordPress разширенияСигурност при разработката на WordPress разширения
Сигурност при разработката на WordPress разширения
 
IT Policy - Need of the Hour
IT Policy - Need of the HourIT Policy - Need of the Hour
IT Policy - Need of the Hour
 
Mukul's Wedding Invitation
Mukul's Wedding InvitationMukul's Wedding Invitation
Mukul's Wedding Invitation
 
Fail-Aware Publish/Subscribe
Fail-Aware Publish/SubscribeFail-Aware Publish/Subscribe
Fail-Aware Publish/Subscribe
 
Milieuproblematiek
MilieuproblematiekMilieuproblematiek
Milieuproblematiek
 
HRPS DC Deck
HRPS DC DeckHRPS DC Deck
HRPS DC Deck
 
Fade tools
Fade toolsFade tools
Fade tools
 
Marketing research of the future
Marketing research of the futureMarketing research of the future
Marketing research of the future
 
Amazing number3
Amazing number3Amazing number3
Amazing number3
 
Cesar Tabla De Datos Servipark
Cesar Tabla De Datos ServiparkCesar Tabla De Datos Servipark
Cesar Tabla De Datos Servipark
 

Semelhante a Lessons from my work on WordPress.com

Veselin word camp-romania-2014
Veselin word camp-romania-2014Veselin word camp-romania-2014
Veselin word camp-romania-2014Veselin Nikolov
 
Validating big data jobs - Spark AI Summit EU
Validating big data jobs  - Spark AI Summit EUValidating big data jobs  - Spark AI Summit EU
Validating big data jobs - Spark AI Summit EUHolden Karau
 
The 30-Month Migration
The 30-Month MigrationThe 30-Month Migration
The 30-Month Migrationglvdb
 
Validating Big Data Jobs—Stopping Failures Before Production on Apache Spark...
 Validating Big Data Jobs—Stopping Failures Before Production on Apache Spark... Validating Big Data Jobs—Stopping Failures Before Production on Apache Spark...
Validating Big Data Jobs—Stopping Failures Before Production on Apache Spark...Databricks
 
Black Ops Testing Workshop from Agile Testing Days 2014
Black Ops Testing Workshop from Agile Testing Days 2014Black Ops Testing Workshop from Agile Testing Days 2014
Black Ops Testing Workshop from Agile Testing Days 2014Alan Richardson
 
Scaling MongoDB for real time analytics
Scaling MongoDB for real time analyticsScaling MongoDB for real time analytics
Scaling MongoDB for real time analyticsDavid Tollmyr
 
Acceptance Test Driven Development
Acceptance Test Driven DevelopmentAcceptance Test Driven Development
Acceptance Test Driven DevelopmentAmir Barylko
 
Google Associate Cloud Engineer Certification Tips
Google Associate Cloud Engineer Certification TipsGoogle Associate Cloud Engineer Certification Tips
Google Associate Cloud Engineer Certification TipsDaniel Zivkovic
 
Monster JavaScript Course - 50+ projects and applications
Monster JavaScript Course - 50+ projects and applicationsMonster JavaScript Course - 50+ projects and applications
Monster JavaScript Course - 50+ projects and applicationsLaurence Svekis ✔
 
How MySQL can boost (or kill) your application v2
How MySQL can boost (or kill) your application v2How MySQL can boost (or kill) your application v2
How MySQL can boost (or kill) your application v2Federico Razzoli
 
Validating big data pipelines - FOSDEM 2019
Validating big data pipelines -  FOSDEM 2019Validating big data pipelines -  FOSDEM 2019
Validating big data pipelines - FOSDEM 2019Holden Karau
 
"What we learned from 5 years of building a data science software that actual...
"What we learned from 5 years of building a data science software that actual..."What we learned from 5 years of building a data science software that actual...
"What we learned from 5 years of building a data science software that actual...Dataconomy Media
 
The agile forecast joe tristano southern fried agile 2018_ final
The agile forecast joe tristano  southern fried agile 2018_ finalThe agile forecast joe tristano  southern fried agile 2018_ final
The agile forecast joe tristano southern fried agile 2018_ finalJoe Tristano
 
Ten Groovy Little JavaScript Tips
Ten Groovy Little JavaScript TipsTen Groovy Little JavaScript Tips
Ten Groovy Little JavaScript TipsTroy Miles
 
РОМАН ЛЮБУНЬ «Automate right, start from API» Lviv QA Day 2019
РОМАН ЛЮБУНЬ «Automate right, start from API» Lviv QA Day 2019РОМАН ЛЮБУНЬ «Automate right, start from API» Lviv QA Day 2019
РОМАН ЛЮБУНЬ «Automate right, start from API» Lviv QA Day 2019GoQA
 
An Introduction To Software Development - Test Driven Development
An Introduction To Software Development - Test Driven DevelopmentAn Introduction To Software Development - Test Driven Development
An Introduction To Software Development - Test Driven DevelopmentBlue Elephant Consulting
 

Semelhante a Lessons from my work on WordPress.com (20)

Veselin word camp-romania-2014
Veselin word camp-romania-2014Veselin word camp-romania-2014
Veselin word camp-romania-2014
 
Asj session-4
Asj session-4Asj session-4
Asj session-4
 
Validating big data jobs - Spark AI Summit EU
Validating big data jobs  - Spark AI Summit EUValidating big data jobs  - Spark AI Summit EU
Validating big data jobs - Spark AI Summit EU
 
The 30-Month Migration
The 30-Month MigrationThe 30-Month Migration
The 30-Month Migration
 
Validating Big Data Jobs—Stopping Failures Before Production on Apache Spark...
 Validating Big Data Jobs—Stopping Failures Before Production on Apache Spark... Validating Big Data Jobs—Stopping Failures Before Production on Apache Spark...
Validating Big Data Jobs—Stopping Failures Before Production on Apache Spark...
 
Black Ops Testing Workshop from Agile Testing Days 2014
Black Ops Testing Workshop from Agile Testing Days 2014Black Ops Testing Workshop from Agile Testing Days 2014
Black Ops Testing Workshop from Agile Testing Days 2014
 
Scaling MongoDB for real time analytics
Scaling MongoDB for real time analyticsScaling MongoDB for real time analytics
Scaling MongoDB for real time analytics
 
Acceptance Test Driven Development
Acceptance Test Driven DevelopmentAcceptance Test Driven Development
Acceptance Test Driven Development
 
Google Associate Cloud Engineer Certification Tips
Google Associate Cloud Engineer Certification TipsGoogle Associate Cloud Engineer Certification Tips
Google Associate Cloud Engineer Certification Tips
 
Monster JavaScript Course - 50+ projects and applications
Monster JavaScript Course - 50+ projects and applicationsMonster JavaScript Course - 50+ projects and applications
Monster JavaScript Course - 50+ projects and applications
 
How MySQL can boost (or kill) your application v2
How MySQL can boost (or kill) your application v2How MySQL can boost (or kill) your application v2
How MySQL can boost (or kill) your application v2
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Validating big data pipelines - FOSDEM 2019
Validating big data pipelines -  FOSDEM 2019Validating big data pipelines -  FOSDEM 2019
Validating big data pipelines - FOSDEM 2019
 
Clean code and code smells
Clean code and code smellsClean code and code smells
Clean code and code smells
 
"What we learned from 5 years of building a data science software that actual...
"What we learned from 5 years of building a data science software that actual..."What we learned from 5 years of building a data science software that actual...
"What we learned from 5 years of building a data science software that actual...
 
The agile forecast joe tristano southern fried agile 2018_ final
The agile forecast joe tristano  southern fried agile 2018_ finalThe agile forecast joe tristano  southern fried agile 2018_ final
The agile forecast joe tristano southern fried agile 2018_ final
 
Ten Groovy Little JavaScript Tips
Ten Groovy Little JavaScript TipsTen Groovy Little JavaScript Tips
Ten Groovy Little JavaScript Tips
 
РОМАН ЛЮБУНЬ «Automate right, start from API» Lviv QA Day 2019
РОМАН ЛЮБУНЬ «Automate right, start from API» Lviv QA Day 2019РОМАН ЛЮБУНЬ «Automate right, start from API» Lviv QA Day 2019
РОМАН ЛЮБУНЬ «Automate right, start from API» Lviv QA Day 2019
 
An Introduction To Software Development - Test Driven Development
An Introduction To Software Development - Test Driven DevelopmentAn Introduction To Software Development - Test Driven Development
An Introduction To Software Development - Test Driven Development
 
Code Quality Assurance
Code Quality AssuranceCode Quality Assurance
Code Quality Assurance
 

Mais de Veselin Nikolov

Leadership for Developers, WordCamp Norway
Leadership for Developers, WordCamp NorwayLeadership for Developers, WordCamp Norway
Leadership for Developers, WordCamp NorwayVeselin Nikolov
 
Чести проблеми в сигурността на уеб проектите
Чести проблеми в сигурността на уеб проектитеЧести проблеми в сигурността на уеб проектите
Чести проблеми в сигурността на уеб проектитеVeselin Nikolov
 
NoSQL бази от данни - възможности и приложение, дипломна защита
NoSQL бази от данни - възможности и приложение, дипломна защитаNoSQL бази от данни - възможности и приложение, дипломна защита
NoSQL бази от данни - възможности и приложение, дипломна защитаVeselin Nikolov
 
20 начина да си убиеш блога, без да се усетиш
20 начина да си убиеш блога, без да се усетиш20 начина да си убиеш блога, без да се усетиш
20 начина да си убиеш блога, без да се усетишVeselin Nikolov
 

Mais de Veselin Nikolov (6)

Leadership for Developers, WordCamp Norway
Leadership for Developers, WordCamp NorwayLeadership for Developers, WordCamp Norway
Leadership for Developers, WordCamp Norway
 
WordPress Security
WordPress SecurityWordPress Security
WordPress Security
 
Чести проблеми в сигурността на уеб проектите
Чести проблеми в сигурността на уеб проектитеЧести проблеми в сигурността на уеб проектите
Чести проблеми в сигурността на уеб проектите
 
Разширения
РазширенияРазширения
Разширения
 
NoSQL бази от данни - възможности и приложение, дипломна защита
NoSQL бази от данни - възможности и приложение, дипломна защитаNoSQL бази от данни - възможности и приложение, дипломна защита
NoSQL бази от данни - възможности и приложение, дипломна защита
 
20 начина да си убиеш блога, без да се усетиш
20 начина да си убиеш блога, без да се усетиш20 начина да си убиеш блога, без да се усетиш
20 начина да си убиеш блога, без да се усетиш
 

Último

Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 

Último (20)

Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 

Lessons from my work on WordPress.com

  • 1. How to get lost in your own country Multiple times Use Google Maps
  • 2. About me ● Veselin Nikolov ● @dzver ● WordPress.com
  • 3. About me ● Background as MS SQL DBA ● Currently trying to keep things simple in a team of 10
  • 4. Lessons from working on WordPress.com WordCamp Romania 2014
  • 5. What happened with the MySQL talk
  • 8. The questions ● How do I make WordPress secure ● What are your tips for secure WordPress ● How do I chose save plugins and themes ● How do you manage to work remotely? ● Are there any other Bulgarians at Automattic?
  • 10.
  • 11. There are no mistakes, only lessons.
  • 12. ... telling stories this time.
  • 13. Story #1 The ID ● 7 year old legacy code ● Entire table described in the code ● We have items with ids 5 and 6. We need to add 7. ● The 5 and 6 were repeated 135 times in the code.
  • 14. Story #1 The ID ● One new object ● A few helpers ● 135 removed magic numbers ● One changeset ● 0 unit tests ● What could possibly go wrong?
  • 16. Story #1 Lessons ● Pleasepleaseplease, no magic numbers ● Atomic commits, please! ● Long functions are hard to understand ● Stats monitoring ● Legacy is code for which we don't have tests
  • 17. Story #2 The Notification ● Montreal ● 1+ million emails ● 1+ million discount coupons (10-ish previously) ● Friday ● What could possibly go wrong?
  • 18. Story #2 The Notification ● Queries that work with small tables: SELECT * FROM table SELECT * FROM table ORDER BY whatever LIMIT 200, 100
  • 19. Story #2 The Notification ● Queries that don't work with large tables: SELECT * FROM table SELECT * FROM table ORDER BY whatever LIMIT 200000, 100
  • 20. Story #2 The Notification ● Fetching big amounts of data breaks things ● Offsetting breaks things ● The coupons weren't really used in the past and didn't really work ● Repeating millions of anything means a lot of time
  • 22. Launching big things on Friday
  • 23. Offsets SELECT * FROM ... WHERE `id` > 1093029 ORDER BY `id` LIMIT 20 SELECT `deadline` FROM ... WHERE `date` BETWEEN '2014-06-20' AND ...
  • 24. Offsets SELECT * FROM ... WHERE `id` > 1093029 ORDER BY `id` LIMIT 20 SELECT `deadline` FROM ... WHERE `date` BETWEEN '2014-06-20' AND ...
  • 25. Offsets SELECT * FROM `table` JOIN ( SELECT `id` FROM `table` ORDER BY `whatever` LIMIT 5000,50 ) as `b` USING `id`
  • 26. Story #3 The A/B Test ● A/B test is showing different things to users and measuring effect ● We use Kissmetrics ● We've had 5 different A/B testing classes
  • 27. Story #3 The A/B Test ● Feature-rich classes ● Many levels of abstraction ● Expressive names ● Many filters and actions ● What could possibly go wrong?
  • 28. Story #3 The A/B Test class Server_Side_Experiment_Visitor extends Server_Side_Experiment_Base { ...
  • 29. Story #3 The A/B Test ● Wrong results, no one knows why.
  • 30. Story #3 The A/B Test ● Wrong results, no one knows why.
  • 31. Story #3 The A/B Test A new colleague joins and writes this: ab_test( 'test-teh-button', array( 'orange', 'blue', ) ); // return 'orange'
  • 32. Story #3 Lessons Learned ● KISS. Simplest solution worked ● Kissmetrics rocks ● A/B test everything
  • 33. Story #4 Barry <bazza> howdy <dzver> hi, did I break anything? <bazza> your blog looks hacked
  • 34. Story #4 ● Unique passwords ● 2-factor auth ● Come to WordCamp Europe and maybe watch Barry live :-) ● #praythatbarrycomestowceurope
  • 35. Summary ● KISS. Simple queries. Simple code. ● DRY. Repetition fails. ● A/B test. Unit test. Test! ● Launch your next project on Friday at 7pm.
  • 36. My name is Veselin I code for food. Ask me anything!