SlideShare a Scribd company logo
Things you should know
Building a
Public API
}During
Before
After
@yonatanm
Outbrain
Outbrain
>0.5B 190B
Unique Visitors RecommendationS
per Month
* min {control on usage}
* max {responsibility}
* decisions.exist {_.takeAtDay1}
* min {control on usage}
* max {responsibility}
* decisions.exist {_.takeAtDay1}
Quiz #1
???
Product
API
Users
Answer
Developers
Product
API
Users
Quiz #2
???
Product
API
U.X.
Answer
Product
API Resources
&& URIS
U.X.
Be consistently
consistent
* HTTP methods
* HTTP codes
* Headers
* Authentication
No one likes surprises
Make your users feel at home
Use Standards:
Error handling
It is all about the
Expectations
GET
POST
PUT
/customers/{id}
/customers
/customers
REQUEST RESPONSE
customerGET
customercustomer
customercustomer*
200
201
200
To embed
GET /customers/1
GET /customer/1/orders
|| !to embed
GET /customers/1
Can we have
both ?
To embed || !to embed ?
Simple
All you need in one request
Fewer transactions
Simple
All you need in one request
Fewer transactions Fast
Building block
flexibility
Cacheable
Fast
Building block
flexibility
Cacheable
!to embed
to embed
and do it right ?
*
Yes We Can !
GET /customers/1
GET /customers/1?embed=orders
Yes We Can #2
GET /customers/1
Quiz #3
???
Product
API
U.I.
Answer
Documentation
Product
API
U.I.
Documentation
apiary.io
Swager
Mashape and More...
apiary.io
Swager
Mashape and More...
* Be consistent
* Focus on Resources
* Less > More
* Examples
* Be consistent
* Focus on Resources
* Less > More
* Examples
‫במקביל‬ ‫עבודה‬ "
”‫דביל‬ ‫לכל‬ ‫הצלחה‬ –
‫במקביל‬ ‫עבודה‬ "
”‫דביל‬ ‫לכל‬ ‫הצלחה‬ –
** Sand-box ?
+1
** Sand-box ?
+1
Documentation
Documentation
Documentation
* UX – interactions
* UI – documentation
* Ideas to new features
* Bugs
Eat your own dog
food
Tip #1
Tip #2
What's wrong with using DB IDs
as your entity IDs?
GET /customers/1
“Authorization”
“privacy” , your privacy
“Authorization”
“privacy” , your privacy
Bi-Directional mapping using secret key
HOW?
Tip #2
Add another column in the DB
27847321845
69
1
Like a version
OR
/SUPPORT/multiple/VERSIONS/v2.5/
/SELL/your/soul/to/backwards/compatibility
URI should control
identity not presentation
http://bit.ly/1Mo0yXF
===>
GET /customer/1 HTTP/1.1
Accept: application/outbrain.customer-v2.5+json
===>
GET /customer/1 HTTP/1.1
Accept: application/outbrain.customer-v2.5+json
<===
HTTP/1.1 200 OK
Content-Type: application/outbrain.customer-v2.5+json
<===
HTTP/1.1 200 OK
Content-Type: application/outbrain.customer-v2.5+json
Like a version
– One ?
– Three ?
– Four ?
– One ?
– Three ?
– Four ?
Quiz #3
How many Types do you need ?
GET /customer/1
PUT /customer/1POST /customer/1
Clones ? Not Really !
!= Internal Model
Retrieve != Update != Create
JSON 2 Case Class [Scala]
http://json2caseclass.cleverapps.io/http://json2caseclass.cleverapps.io/
.json
.scala
Security
Tip #3
Translation
1
2
WebWeb
Business Logic (API)
4
5
6
Events
Cache
Layers – Tree structure
“Boss, Boss
his API is not RESTful”
But his API
is level 3 on
RMM
evaluating RESTFulness
0 – One URI One verb
1 (Resource) – multiple URIs One verb
2 (Verbs) – multiple URIs multiple verbs
3 – Hypertext As The Engine Of Application State
0 – One URI One verb
1 (Resource) – multiple URIs One verb
2 (Verbs) – multiple URIs multiple verbs
3 – Hypertext As The Engine Of Application State
Rest Maturity Model
steps toward the Holy Grail of REST
1, 2, 3 ... Testing
restassuredrestassured
269 Integ. tests269 Integ. tests
OB-TOKEN-V1:
Sign(
)
Security
GET /token
Basic Auth.
GET /token
-H “OB-TOKEN-V1:
VERY_LONG_TOKEN”
B64{Header} B64{claims} B64{Header} B64{claims}
Much more to talk about
* metrics and monitoring
* Internal and Public API
* Rate Limit
* metrics and monitoring
* Internal and Public API
* Rate Limit
Want to build
I'm
Hiring
The next version of
Amplify API ?

More Related Content

What's hot

An approach to app security - For beginners
An approach to app security - For beginnersAn approach to app security - For beginners
An approach to app security - For beginners
vodQA
 
Titanium Alloy Tutorial
Titanium Alloy TutorialTitanium Alloy Tutorial
Titanium Alloy Tutorial
Fokke Zandbergen
 
HTML5 e Css3 - 7 | WebMaster & WebDesigner
HTML5 e Css3 - 7 | WebMaster & WebDesignerHTML5 e Css3 - 7 | WebMaster & WebDesigner
HTML5 e Css3 - 7 | WebMaster & WebDesigner
Matteo Magni
 
What is Sauce Labs?
What is Sauce Labs? What is Sauce Labs?
What is Sauce Labs?
Sauce Labs
 
DeveloperWeek2018 - Let's Build a Chatbot
DeveloperWeek2018 - Let's Build a ChatbotDeveloperWeek2018 - Let's Build a Chatbot
DeveloperWeek2018 - Let's Build a Chatbot
Tessa Mero
 
4 Ways to Speed Up Your Mobile App Dev Daily Grind
4 Ways to Speed Up Your Mobile App Dev Daily Grind4 Ways to Speed Up Your Mobile App Dev Daily Grind
4 Ways to Speed Up Your Mobile App Dev Daily Grind
Perfecto by Perforce
 
Appcelerator Titanium Alloy
Appcelerator Titanium AlloyAppcelerator Titanium Alloy
Appcelerator Titanium Alloy
Karthi Ponnusamy
 
Syed Ubaid Ali Jafri - Secure IIS Configuration Windows 7
Syed Ubaid Ali Jafri - Secure IIS Configuration Windows 7Syed Ubaid Ali Jafri - Secure IIS Configuration Windows 7
Syed Ubaid Ali Jafri - Secure IIS Configuration Windows 7
Syed Ubaid Ali Jafri
 
Selenium and Open Source Advanced Testing
Selenium and Open Source Advanced TestingSelenium and Open Source Advanced Testing
Selenium and Open Source Advanced Testing
Austin Marie Gay
 
Import-export customer reviews magento extension
Import-export customer reviews magento extensionImport-export customer reviews magento extension
Import-export customer reviews magento extension
SoftProdigy
 
Web automation with Selenium for software engineers
Web automation with Selenium for software engineersWeb automation with Selenium for software engineers
Web automation with Selenium for software engineers
Mikalai Alimenkou
 
How To Distribute iPhone Apps to App Store
How To Distribute iPhone Apps to App StoreHow To Distribute iPhone Apps to App Store
How To Distribute iPhone Apps to App Store
EungShik (Henry) Kim
 
Selenium Tips & Tricks
Selenium Tips & TricksSelenium Tips & Tricks
Selenium Tips & Tricks
Dave Haeffner
 
Introduction to Selenium WebDriver
Introduction to Selenium WebDriverIntroduction to Selenium WebDriver
Introduction to Selenium WebDriver
SpringPeople
 
End to End Guide Windows AutoPilot Process via Intune
End to End Guide Windows AutoPilot Process via IntuneEnd to End Guide Windows AutoPilot Process via Intune
End to End Guide Windows AutoPilot Process via Intune
Anoop Nair
 
IoT with Vaadin Elements
IoT with Vaadin ElementsIoT with Vaadin Elements
IoT with Vaadin Elements
Jürgen Treml
 
Let's Build a Chatbot
Let's Build a ChatbotLet's Build a Chatbot
Let's Build a Chatbot
Tessa Mero
 
Einstieg in Office 2013 App Entwicklung
Einstieg in Office 2013 App EntwicklungEinstieg in Office 2013 App Entwicklung
Einstieg in Office 2013 App Entwicklung
atwork
 

What's hot (20)

An approach to app security - For beginners
An approach to app security - For beginnersAn approach to app security - For beginners
An approach to app security - For beginners
 
Titanium Alloy Tutorial
Titanium Alloy TutorialTitanium Alloy Tutorial
Titanium Alloy Tutorial
 
SMTA Closer
SMTA CloserSMTA Closer
SMTA Closer
 
HTML5 e Css3 - 7 | WebMaster & WebDesigner
HTML5 e Css3 - 7 | WebMaster & WebDesignerHTML5 e Css3 - 7 | WebMaster & WebDesigner
HTML5 e Css3 - 7 | WebMaster & WebDesigner
 
What is Sauce Labs?
What is Sauce Labs? What is Sauce Labs?
What is Sauce Labs?
 
DeveloperWeek2018 - Let's Build a Chatbot
DeveloperWeek2018 - Let's Build a ChatbotDeveloperWeek2018 - Let's Build a Chatbot
DeveloperWeek2018 - Let's Build a Chatbot
 
4 Ways to Speed Up Your Mobile App Dev Daily Grind
4 Ways to Speed Up Your Mobile App Dev Daily Grind4 Ways to Speed Up Your Mobile App Dev Daily Grind
4 Ways to Speed Up Your Mobile App Dev Daily Grind
 
Appcelerator Titanium Alloy
Appcelerator Titanium AlloyAppcelerator Titanium Alloy
Appcelerator Titanium Alloy
 
Syed Ubaid Ali Jafri - Secure IIS Configuration Windows 7
Syed Ubaid Ali Jafri - Secure IIS Configuration Windows 7Syed Ubaid Ali Jafri - Secure IIS Configuration Windows 7
Syed Ubaid Ali Jafri - Secure IIS Configuration Windows 7
 
Selenium and Open Source Advanced Testing
Selenium and Open Source Advanced TestingSelenium and Open Source Advanced Testing
Selenium and Open Source Advanced Testing
 
Titanium Mobile
Titanium MobileTitanium Mobile
Titanium Mobile
 
Import-export customer reviews magento extension
Import-export customer reviews magento extensionImport-export customer reviews magento extension
Import-export customer reviews magento extension
 
Web automation with Selenium for software engineers
Web automation with Selenium for software engineersWeb automation with Selenium for software engineers
Web automation with Selenium for software engineers
 
How To Distribute iPhone Apps to App Store
How To Distribute iPhone Apps to App StoreHow To Distribute iPhone Apps to App Store
How To Distribute iPhone Apps to App Store
 
Selenium Tips & Tricks
Selenium Tips & TricksSelenium Tips & Tricks
Selenium Tips & Tricks
 
Introduction to Selenium WebDriver
Introduction to Selenium WebDriverIntroduction to Selenium WebDriver
Introduction to Selenium WebDriver
 
End to End Guide Windows AutoPilot Process via Intune
End to End Guide Windows AutoPilot Process via IntuneEnd to End Guide Windows AutoPilot Process via Intune
End to End Guide Windows AutoPilot Process via Intune
 
IoT with Vaadin Elements
IoT with Vaadin ElementsIoT with Vaadin Elements
IoT with Vaadin Elements
 
Let's Build a Chatbot
Let's Build a ChatbotLet's Build a Chatbot
Let's Build a Chatbot
 
Einstieg in Office 2013 App Entwicklung
Einstieg in Office 2013 App EntwicklungEinstieg in Office 2013 App Entwicklung
Einstieg in Office 2013 App Entwicklung
 

Viewers also liked

Kitab cobaan dan tanda tanda hari kiamat 2
Kitab cobaan dan tanda tanda hari kiamat 2Kitab cobaan dan tanda tanda hari kiamat 2
Kitab cobaan dan tanda tanda hari kiamat 2
Septian Muna Barakati
 
La gestione degli stakeholder nei progetti informatici
La gestione degli stakeholder nei progetti informaticiLa gestione degli stakeholder nei progetti informatici
La gestione degli stakeholder nei progetti informatici
Antonio Caforio
 
Taller de busquedad de informacion
Taller de busquedad de informacionTaller de busquedad de informacion
Taller de busquedad de informacion
hernvaro
 
LAS TIC
LAS TICLAS TIC
LAS TIC
yamilet1997
 
Kitab haid
Kitab haidKitab haid
LunaGrown Jam & Marmalade
LunaGrown Jam & MarmaladeLunaGrown Jam & Marmalade
LunaGrown Jam & Marmalade
Christopher Wilson
 
BUILDING TECHNOLOGY PROJECT 1 BRIEF
BUILDING TECHNOLOGY PROJECT 1 BRIEFBUILDING TECHNOLOGY PROJECT 1 BRIEF
BUILDING TECHNOLOGY PROJECT 1 BRIEF
JoyeeLee0131
 
Skyscanner: to be local or not to be.
Skyscanner:  to be local or not to be.Skyscanner:  to be local or not to be.
Skyscanner: to be local or not to be.
Social Case History Forum®
 
Cross Device Optimisation - Google Analytics Shortcuts
Cross Device Optimisation - Google Analytics ShortcutsCross Device Optimisation - Google Analytics Shortcuts
Cross Device Optimisation - Google Analytics Shortcuts
Craig Sullivan
 
Oral presentation august2015
Oral presentation august2015Oral presentation august2015
Oral presentation august2015
Shum Jun
 

Viewers also liked (10)

Kitab cobaan dan tanda tanda hari kiamat 2
Kitab cobaan dan tanda tanda hari kiamat 2Kitab cobaan dan tanda tanda hari kiamat 2
Kitab cobaan dan tanda tanda hari kiamat 2
 
La gestione degli stakeholder nei progetti informatici
La gestione degli stakeholder nei progetti informaticiLa gestione degli stakeholder nei progetti informatici
La gestione degli stakeholder nei progetti informatici
 
Taller de busquedad de informacion
Taller de busquedad de informacionTaller de busquedad de informacion
Taller de busquedad de informacion
 
LAS TIC
LAS TICLAS TIC
LAS TIC
 
Kitab haid
Kitab haidKitab haid
Kitab haid
 
LunaGrown Jam & Marmalade
LunaGrown Jam & MarmaladeLunaGrown Jam & Marmalade
LunaGrown Jam & Marmalade
 
BUILDING TECHNOLOGY PROJECT 1 BRIEF
BUILDING TECHNOLOGY PROJECT 1 BRIEFBUILDING TECHNOLOGY PROJECT 1 BRIEF
BUILDING TECHNOLOGY PROJECT 1 BRIEF
 
Skyscanner: to be local or not to be.
Skyscanner:  to be local or not to be.Skyscanner:  to be local or not to be.
Skyscanner: to be local or not to be.
 
Cross Device Optimisation - Google Analytics Shortcuts
Cross Device Optimisation - Google Analytics ShortcutsCross Device Optimisation - Google Analytics Shortcuts
Cross Device Optimisation - Google Analytics Shortcuts
 
Oral presentation august2015
Oral presentation august2015Oral presentation august2015
Oral presentation august2015
 

Similar to Developing a Public API -- at ILTechTalks 2015

Building Mobile Friendly APIs in Rails
Building Mobile Friendly APIs in RailsBuilding Mobile Friendly APIs in Rails
Building Mobile Friendly APIs in Rails
Jim Jeffers
 
Startup Metrics for Pirates: AARRR! (SXSW March 2008)
Startup Metrics for Pirates: AARRR!  (SXSW March 2008)Startup Metrics for Pirates: AARRR!  (SXSW March 2008)
Startup Metrics for Pirates: AARRR! (SXSW March 2008)
Dave McClure
 
How to build Simple yet powerful API.pptx
How to build Simple yet powerful API.pptxHow to build Simple yet powerful API.pptx
How to build Simple yet powerful API.pptx
Channa Ly
 
Don't screw it up! How to build durable API
Don't screw it up! How to build durable API Don't screw it up! How to build durable API
Don't screw it up! How to build durable API
Alessandro Cinelli (cirpo)
 
Building Creative Product Extensions with Experience Manager
Building Creative Product Extensions with Experience ManagerBuilding Creative Product Extensions with Experience Manager
Building Creative Product Extensions with Experience Manager
connectwebex
 
Api development with rails
Api development with railsApi development with rails
Api development with rails
Edwin Cruz
 
Building Creative Product Extensions with Experience Manager
Building Creative Product Extensions with Experience ManagerBuilding Creative Product Extensions with Experience Manager
Building Creative Product Extensions with Experience Manager
Justin Edelson
 
Создание API, которое полюбят разработчики. Глубокое погружение
Создание API, которое полюбят разработчики. Глубокое погружениеСоздание API, которое полюбят разработчики. Глубокое погружение
Создание API, которое полюбят разработчики. Глубокое погружение
SQALab
 
Moving away from legacy code with BDD
Moving away from legacy code with BDDMoving away from legacy code with BDD
Moving away from legacy code with BDD
Konstantin Kudryashov
 
WAF ASM / Advance WAF - Brute force lior rotkovitch f5 sirt v5 clean
WAF ASM / Advance WAF - Brute force   lior rotkovitch  f5 sirt v5 cleanWAF ASM / Advance WAF - Brute force   lior rotkovitch  f5 sirt v5 clean
WAF ASM / Advance WAF - Brute force lior rotkovitch f5 sirt v5 clean
Lior Rotkovitch
 
Rest experience-report
Rest experience-reportRest experience-report
Rest experience-report
Jim Barritt
 
Creating a World-Class RESTful Web Services API
Creating a World-Class RESTful Web Services APICreating a World-Class RESTful Web Services API
Creating a World-Class RESTful Web Services API
David Keener
 
The-Power-Of-Recon (1)-poerfulo.pptx.pdf
The-Power-Of-Recon (1)-poerfulo.pptx.pdfThe-Power-Of-Recon (1)-poerfulo.pptx.pdf
The-Power-Of-Recon (1)-poerfulo.pptx.pdf
nezidsilva
 
WSO2Con EU 2015: Extending and Customizing WSO2 API Manager
WSO2Con EU 2015: Extending and Customizing WSO2 API ManagerWSO2Con EU 2015: Extending and Customizing WSO2 API Manager
WSO2Con EU 2015: Extending and Customizing WSO2 API Manager
WSO2
 
API Security - OWASP top 10 for APIs + tips for pentesters
API Security - OWASP top 10 for APIs + tips for pentestersAPI Security - OWASP top 10 for APIs + tips for pentesters
API Security - OWASP top 10 for APIs + tips for pentesters
Inon Shkedy
 
Embracing HTTP in the era of API’s
Embracing HTTP in the era of API’sEmbracing HTTP in the era of API’s
Embracing HTTP in the era of API’s
Visug
 
4 basic api design guidelines
4 basic api design guidelines4 basic api design guidelines
4 basic api design guidelines
Surendra kumar
 
Application Security in ASP.NET Core
Application Security in ASP.NET CoreApplication Security in ASP.NET Core
Application Security in ASP.NET Core
NETUserGroupBern
 
Unit Testing: Not Just for Apex
Unit Testing: Not Just for ApexUnit Testing: Not Just for Apex
Unit Testing: Not Just for Apex
Salesforce Developers
 

Similar to Developing a Public API -- at ILTechTalks 2015 (20)

Building Mobile Friendly APIs in Rails
Building Mobile Friendly APIs in RailsBuilding Mobile Friendly APIs in Rails
Building Mobile Friendly APIs in Rails
 
Startup Metrics for Pirates: AARRR! (SXSW March 2008)
Startup Metrics for Pirates: AARRR!  (SXSW March 2008)Startup Metrics for Pirates: AARRR!  (SXSW March 2008)
Startup Metrics for Pirates: AARRR! (SXSW March 2008)
 
How to build Simple yet powerful API.pptx
How to build Simple yet powerful API.pptxHow to build Simple yet powerful API.pptx
How to build Simple yet powerful API.pptx
 
Don't screw it up! How to build durable API
Don't screw it up! How to build durable API Don't screw it up! How to build durable API
Don't screw it up! How to build durable API
 
Building Creative Product Extensions with Experience Manager
Building Creative Product Extensions with Experience ManagerBuilding Creative Product Extensions with Experience Manager
Building Creative Product Extensions with Experience Manager
 
Api development with rails
Api development with railsApi development with rails
Api development with rails
 
Building Creative Product Extensions with Experience Manager
Building Creative Product Extensions with Experience ManagerBuilding Creative Product Extensions with Experience Manager
Building Creative Product Extensions with Experience Manager
 
Создание API, которое полюбят разработчики. Глубокое погружение
Создание API, которое полюбят разработчики. Глубокое погружениеСоздание API, которое полюбят разработчики. Глубокое погружение
Создание API, которое полюбят разработчики. Глубокое погружение
 
Moving away from legacy code with BDD
Moving away from legacy code with BDDMoving away from legacy code with BDD
Moving away from legacy code with BDD
 
WAF ASM / Advance WAF - Brute force lior rotkovitch f5 sirt v5 clean
WAF ASM / Advance WAF - Brute force   lior rotkovitch  f5 sirt v5 cleanWAF ASM / Advance WAF - Brute force   lior rotkovitch  f5 sirt v5 clean
WAF ASM / Advance WAF - Brute force lior rotkovitch f5 sirt v5 clean
 
Rest experience-report
Rest experience-reportRest experience-report
Rest experience-report
 
Creating a World-Class RESTful Web Services API
Creating a World-Class RESTful Web Services APICreating a World-Class RESTful Web Services API
Creating a World-Class RESTful Web Services API
 
API Design Tour: Digital River
API Design Tour: Digital RiverAPI Design Tour: Digital River
API Design Tour: Digital River
 
The-Power-Of-Recon (1)-poerfulo.pptx.pdf
The-Power-Of-Recon (1)-poerfulo.pptx.pdfThe-Power-Of-Recon (1)-poerfulo.pptx.pdf
The-Power-Of-Recon (1)-poerfulo.pptx.pdf
 
WSO2Con EU 2015: Extending and Customizing WSO2 API Manager
WSO2Con EU 2015: Extending and Customizing WSO2 API ManagerWSO2Con EU 2015: Extending and Customizing WSO2 API Manager
WSO2Con EU 2015: Extending and Customizing WSO2 API Manager
 
API Security - OWASP top 10 for APIs + tips for pentesters
API Security - OWASP top 10 for APIs + tips for pentestersAPI Security - OWASP top 10 for APIs + tips for pentesters
API Security - OWASP top 10 for APIs + tips for pentesters
 
Embracing HTTP in the era of API’s
Embracing HTTP in the era of API’sEmbracing HTTP in the era of API’s
Embracing HTTP in the era of API’s
 
4 basic api design guidelines
4 basic api design guidelines4 basic api design guidelines
4 basic api design guidelines
 
Application Security in ASP.NET Core
Application Security in ASP.NET CoreApplication Security in ASP.NET Core
Application Security in ASP.NET Core
 
Unit Testing: Not Just for Apex
Unit Testing: Not Just for ApexUnit Testing: Not Just for Apex
Unit Testing: Not Just for Apex
 

More from Yonatan Maman

2147483647
21474836472147483647
2147483647
Yonatan Maman
 
Keep your logic close and your data closer
Keep your logic close and your data closerKeep your logic close and your data closer
Keep your logic close and your data closer
Yonatan Maman
 
How to test your tests with mutation testing
How to test your tests with mutation testingHow to test your tests with mutation testing
How to test your tests with mutation testing
Yonatan Maman
 
REST in Peace
REST in PeaceREST in Peace
REST in Peace
Yonatan Maman
 
We don't do projects
We don't do projectsWe don't do projects
We don't do projects
Yonatan Maman
 
How to slice your monolithic webapp using MicroApps architecture
How to slice your monolithic webapp using MicroApps architectureHow to slice your monolithic webapp using MicroApps architecture
How to slice your monolithic webapp using MicroApps architecture
Yonatan Maman
 
From 400 bugs to 0 in 2 weeks Using FindBugs
From 400 bugs to 0 in 2 weeks Using FindBugsFrom 400 bugs to 0 in 2 weeks Using FindBugs
From 400 bugs to 0 in 2 weeks Using FindBugs
Yonatan Maman
 
Why to use Scala for building Public APIs
Why to use Scala for building Public APIsWhy to use Scala for building Public APIs
Why to use Scala for building Public APIs
Yonatan Maman
 
How to slice your monolithic webapp using MicroApps architecture
How to slice your monolithic webapp using MicroApps architectureHow to slice your monolithic webapp using MicroApps architecture
How to slice your monolithic webapp using MicroApps architecture
Yonatan Maman
 

More from Yonatan Maman (9)

2147483647
21474836472147483647
2147483647
 
Keep your logic close and your data closer
Keep your logic close and your data closerKeep your logic close and your data closer
Keep your logic close and your data closer
 
How to test your tests with mutation testing
How to test your tests with mutation testingHow to test your tests with mutation testing
How to test your tests with mutation testing
 
REST in Peace
REST in PeaceREST in Peace
REST in Peace
 
We don't do projects
We don't do projectsWe don't do projects
We don't do projects
 
How to slice your monolithic webapp using MicroApps architecture
How to slice your monolithic webapp using MicroApps architectureHow to slice your monolithic webapp using MicroApps architecture
How to slice your monolithic webapp using MicroApps architecture
 
From 400 bugs to 0 in 2 weeks Using FindBugs
From 400 bugs to 0 in 2 weeks Using FindBugsFrom 400 bugs to 0 in 2 weeks Using FindBugs
From 400 bugs to 0 in 2 weeks Using FindBugs
 
Why to use Scala for building Public APIs
Why to use Scala for building Public APIsWhy to use Scala for building Public APIs
Why to use Scala for building Public APIs
 
How to slice your monolithic webapp using MicroApps architecture
How to slice your monolithic webapp using MicroApps architectureHow to slice your monolithic webapp using MicroApps architecture
How to slice your monolithic webapp using MicroApps architecture
 

Recently uploaded

Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 

Recently uploaded (20)

Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 

Developing a Public API -- at ILTechTalks 2015