SlideShare a Scribd company logo
How to build your own ride-share app
Richard Süselbeck
Amsterdam | April 2-3, 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
How do they do that?
Richard Süselbeck
Principal Developer Evangelist
HERE Technologies
@sueselbeck @heredev
https://developer.here.com
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
2018-08-29 12.52.24.jpg
2018-08-29 12.52.24.jpg
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
2018-08-29 12.52.24.jpg
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Where to?
Pickup: 72 Noble St, Brooklyn
Confirm ride
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
"Where am I?"
"Where am I?"
Positioning API
PositioningManager positioningManager = PositioningManager.getInstance();
positioningManager.start(PositioningManager.LocationMethod.GPS_NETWORK);
GeoCoordinate coordinate = positioningManager.getPosition().getGeocoordinate();
String locationString = coordinate.getLatitude() + "," + coordinate.getLongitude();
Toast.makeText(getApplicationContext(), locationString, Toast.LENGTH_SHORT).show();
PositioningManager positioningManager = PositioningManager.getInstance();
positioningManager.start(PositioningManager.LocationMethod.GPS_NETWORK);
GeoCoordinate coordinate = positioningManager.getPosition().getGeocoordinate();
String locationString = coordinate.getLatitude() + "," + coordinate.getLongitude();
Toast.makeText(getApplicationContext(), locationString, Toast.LENGTH_SHORT).show();
PositioningManager positioningManager = PositioningManager.getInstance();
positioningManager.start(PositioningManager.LocationMethod.GPS_NETWORK);
GeoCoordinate coordinate = positioningManager.getPosition().getGeocoordinate();
String locationString = coordinate.getLatitude() + "," + coordinate.getLongitude();
Toast.makeText(getApplicationContext(), locationString, Toast.LENGTH_SHORT).show();
PositioningManager positioningManager = PositioningManager.getInstance();
positioningManager.start(PositioningManager.LocationMethod.GPS_NETWORK);
GeoCoordinate coordinate = positioningManager.getPosition().getGeocoordinate();
String locationString = coordinate.getLatitude() + "," + coordinate.getLongitude();
Toast.makeText(getApplicationContext(), locationString, Toast.LENGTH_SHORT).show();
"Where am I?"
40.728215,-73.958251
"Where am I?"
52.38326, 4.92032
We are currently at 52.38326, 4.92032. What does that mean?
Latitude & Longitude
Latitude Longitude
Equator
Prime Meridian
+60
-30
-90 (South)
+90 (North) 180
-120 (West)
+30 (East)
Where does the lat/long come from?
Where does the lat/long come from?
GPS
GNSS
Where does the lat/long come from?
GPS, GLONASS, GALILEO, BeiDou, IRNSS, QZSS
Where does the lat/long come from?
GNSS
"Where am I?"
40.728215, -73.958251
"Where am I?"
40.728215, -73.958251
Maps API
"Where am I?"
Making maps is hard
Making maps is hard
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
m_map.setCenter(new GeoCoordinate(40.75051,-73.99335),
Map.Animation.NONE);
m_map.setMapScheme(Map.Scheme.HYBRID_NIGHT_TRANSIT);
m_map.setLandmarksVisible(true);
m_map.setZoomLevel(17);
m_map.setTilt(45);
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
"Where am I?"
"Where am I?"
Pickup: 72 Noble St, Brooklyn
Geocoder API
"Where am I?"
Pickup: 72 Noble St, Brooklyn
Geocoder API
Gedempt Hamerkanaal,
1021 Amsterdam, Nederland52.38344, 4.92044
72 Noble St, Brooklyn,
NY 11222, USA
40.728215, -73.958251
GeoCoordinate pickup = new GeoCoordinate(40.728215,-73.958251);
ReverseGeocodeRequest2 revGeocodeRequest = new
ReverseGeocodeRequest2(pickup);
revGecodeRequest.execute(new ResultListener<Location>() {
@Override
public void onCompleted(Location location, ErrorCode errorCode) {
updateTextView(location.getAddress().toString());
}
});
GeoCoordinate pickup = new GeoCoordinate(40.728215,-73.958251);
ReverseGeocodeRequest2 revGeocodeRequest = new
ReverseGeocodeRequest2(pickup);
revGecodeRequest.execute(new ResultListener<Location>() {
@Override
public void onCompleted(Location location, ErrorCode errorCode) {
updateTextView(location.getAddress().toString());
}
});
GeoCoordinate pickup = new GeoCoordinate(40.728215,-73.958251);
ReverseGeocodeRequest2 revGecodeRequest = new
ReverseGeocodeRequest2(pickup);
revGecodeRequest.execute(new ResultListener<Location>() {
@Override
public void onCompleted(Location location, ErrorCode errorCode) {
updateTextView(location.getAddress().toString());
}
});
"Where are the drivers?"
Pickup: 72 Noble St, Brooklyn
"Where are the drivers?"
Pickup: 72 Noble St, Brooklyn
"Where are the drivers?"
Pickup: 72 Noble St, Brooklyn
Positioning API
"Where am I going?"200 Central Park W
Pickup: 72 Noble St, Brooklyn
"Where am I going?"200 Central Park W
Pickup: 72 Noble St, Brooklyn
200 Central Park W, New York
200 Central Park S, New York
200 Central Park N, New York
200 Central Ave, Brooklyn
Geocoder
Autocomplete API
200 Central Park W
Pickup: 72 Noble St, Brooklyn
200 Central Park W, New York
200 Central Park S, New York
200 Central Park N, New York
200 Central Ave, Brooklyn
"Where am I going?"
http://autocomplete.geocoder.api.here.com/6.2/suggest.json
?app_id=MY_APP_ID
&app_code=MY_APP_CODE
&query=200+central+park
&prox=40.76863,-73.97626,3000
http://autocomplete.geocoder.api.here.com/6.2/suggest.json
?app_id=MY_APP_ID
&app_code=MY_APP_CODE
&query=200+central+park
&prox=40.76863,-73.97626,3000
http://autocomplete.geocoder.api.here.com/6.2/suggest.json
?app_id=MY_APP_ID
&app_code=MY_APP_CODE
&query=200+central+park
&prox=40.76863,-73.97626,3000
http://autocomplete.geocoder.api.here.com/6.2/suggest.json
?app_id=MY_APP_ID
&app_code=MY_APP_CODE
&query=200+central+park
&prox=40.76863,-73.97626,3000
{
"suggestions": [
{
"label": "United States, NY, New York, 200 Central Park W",
"language": "en",
"countryCode": "USA",
"locationId": "NT_srx4m-dHrwiUBDnXi3NAwD_yADM",
"address": {
"country": "United States",
"state": "NY",
"county": "New York",
"city": "New York",
"district": "Upper West Side",
"street": "Central Park W",
"houseNumber": "200",
"postalCode": "10024"
},
"matchLevel": "houseNumber"
},
{
"label": "United States, NY, New York, 200 Central Park S",
...
},
...
]
}
"Where am I going?"american museum of
Pickup: 72 Noble St, Brooklyn
American Museum of Natural History
American Museum of the Moving Image
Museum of the American Gangster
Museum of Chinese in the Americas
Places API
american museum of
Pickup: 72 Noble St, Brooklyn
American Museum of Natural History
American Museum of the Moving Image
Museum of the American Gangster
Museum of Chinese in the Americas
"Where am I going?"
DiscoveryRequest request = new SearchRequest("american museum of");
GeoCoordinate manhattan = new GeoCoordinate(40.71451, -74.00602);
request.setSearchCenter(manhattan);
request.setCollectionSize(5);
request.execute(new SearchRequestListener());
class SearchRequestListener implements ResultListener<DiscoveryResultPage> {
@Override
public void onCompleted(DiscoveryResultPage data, ErrorCode error) {
List<DiscoveryResult> items = data.getItems();
for (DiscoveryResult item : items) {
PlaceLink placeLink = (PlaceLink) item;
// display information
}
}
}
DiscoveryRequest request = new SearchRequest("american museum of");
GeoCoordinate manhattan = new GeoCoordinate(40.71451, -74.00602);
request.setSearchCenter(manhattan);
request.setCollectionSize(5);
request.execute(new SearchRequestListener());
class SearchRequestListener implements ResultListener<DiscoveryResultPage> {
@Override
public void onCompleted(DiscoveryResultPage data, ErrorCode error) {
List<DiscoveryResult> items = data.getItems();
for (DiscoveryResult item : items) {
PlaceLink placeLink = (PlaceLink) item;
// display information
}
}
}
"How long does it take?"
"How much does it cost?"
"What is the route?"
american museum of
Pickup: 72 Noble St, Brooklyn
American Museum of Natural History
American Museum of the Moving Image
Museum of the American Gangster
Museum of Chinese in the Americas
"How long does it take?"
"How much does it cost?"
"What is the route?"
Confirm ride
28 min - $24 - $29
Routing API
"How long does it take?"
"How much does it cost?"
"What is the route?"
Confirm ride
28 min - $24 - $29
CoreRouter router = new CoreRouter();
RoutePlan routePlan = new RoutePlan();
routePlan.addWaypoint(new RouteWaypoint(
new GeoCoordinate(40.728215,-73.958251)));
routePlan.addWaypoint(new RouteWaypoint(
new GeoCoordinate(49.1947289, -123.1762924)));
RouteOptions routeOptions = new RouteOptions();
routeOptions.setTransportMode(RouteOptions.TransportMode.CAR);
routeOptions.setRouteType(RouteOptions.Type.FASTEST);
routePlan.setRouteOptions(routeOptions);
router.calculateRoute(routePlan, new RouteListener());
CoreRouter router = new CoreRouter();
RoutePlan routePlan = new RoutePlan();
routePlan.addWaypoint(new RouteWaypoint(
new GeoCoordinate(40.728215,-73.958251)));
routePlan.addWaypoint(new RouteWaypoint(
new GeoCoordinate(49.1947289, -123.1762924)));
RouteOptions routeOptions = new RouteOptions();
routeOptions.setTransportMode(RouteOptions.TransportMode.CAR);
routeOptions.setRouteType(RouteOptions.Type.FASTEST);
routePlan.setRouteOptions(routeOptions);
router.calculateRoute(routePlan, new RouteListener());
CoreRouter router = new CoreRouter();
RoutePlan routePlan = new RoutePlan();
routePlan.addWaypoint(new RouteWaypoint(
new GeoCoordinate(40.728215,-73.958251)));
routePlan.addWaypoint(new RouteWaypoint(
new GeoCoordinate(49.1947289, -123.1762924)));
RouteOptions routeOptions = new RouteOptions();
routeOptions.setTransportMode(RouteOptions.TransportMode.CAR);
routeOptions.setRouteType(RouteOptions.Type.FASTEST);
routePlan.setRouteOptions(routeOptions);
router.calculateRoute(routePlan, new RouteListener());
CoreRouter router = new CoreRouter();
RoutePlan routePlan = new RoutePlan();
routePlan.addWaypoint(new RouteWaypoint(
new GeoCoordinate(40.728215,-73.958251)));
routePlan.addWaypoint(new RouteWaypoint(
new GeoCoordinate(49.1947289, -123.1762924)));
RouteOptions routeOptions = new RouteOptions();
routeOptions.setTransportMode(RouteOptions.TransportMode.CAR);
routeOptions.setRouteType(RouteOptions.Type.FASTEST);
routePlan.setRouteOptions(routeOptions);
router.calculateRoute(routePlan, new RouteListener());
private class RouteListener implements CoreRouter.Listener {
public void onProgress(int percentage) {
// Display a message indicating calculation progress
}
public void onCalculateRouteFinished(List<RouteResult> routeResult,
RoutingError error) {
mapRoute = new MapRoute(routeResult.get(0).getRoute());
map.addMapObject(mapRoute);
updateTextView(routeResult.get(0).getRoute().getLength());
}
}
private class RouteListener implements CoreRouter.Listener {
public void onProgress(int percentage) {
// Display a message indicating calculation progress
}
public void onCalculateRouteFinished(List<RouteResult> routeResult,
RoutingError error) {
mapRoute = new MapRoute(routeResult.get(0).getRoute());
map.addMapObject(mapRoute);
updateTextView(routeResult.get(0).getRoute().getLength());
}
}
private class RouteListener implements CoreRouter.Listener {
public void onProgress(int percentage) {
// Display a message indicating calculation progress
}
public void onCalculateRouteFinished(List<RouteResult> routeResult,
RoutingError error) {
mapRoute = new MapRoute(routeResult.get(0).getRoute());
map.addMapObject(mapRoute);
updateTextView(routeResult.get(0).getRoute().getLength());
}
}
...
"length": 9919,
"travelTime": 1664,
"maneuver": [
{
"position": {
"latitude": 40.728361,
“longitude": -73.9582743
},
"instruction": "Head toward West St on Noble St. Go for 79 m.",
"travelTime": 15,
"length": 79,
"id": "M1",
"_type": "PrivateTransportManeuverType"
},
{
"position": {
"latitude": 40.7282925,
"longitude": -73.9590061
},
"instruction": "Turn right onto West St. Go for 239 m.",
...
"Which drivers are nearby?"
Finding nearby drivers…
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Isoline Routing API
"Which drivers are nearby?"
Finding nearby drivers…
Isoline Routing API
"Which drivers can reach
me in 10 minutes?"
Finding nearby drivers…
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
https://isoline.route.api.here.com/routing/7.2/calculateisoline.json
?app_id={YOUR_APP_ID}
&app_code={YOUR_APP_CODE}
&mode=fastest;car;traffic:enabled
&destination=40.728215,-73.958251
&range=600
&rangetype=time
https://isoline.route.api.here.com/routing/7.2/calculateisoline.json
?app_id={YOUR_APP_ID}
&app_code={YOUR_APP_CODE}
&mode=fastest;car;traffic:enabled
&destination=40.728215,-73.958251
&range=600
&rangetype=time
https://isoline.route.api.here.com/routing/7.2/calculateisoline.json
?app_id={YOUR_APP_ID}
&app_code={YOUR_APP_CODE}
&mode=fastest;car;traffic:enabled
&destination=40.728215,-73.958251
&range=600
&rangetype=time
Routing API
Positioning API
"Where is my driver?"
"When does she arrive?"
Where to?
Your driver will arrive in 4 mins
Confirm ride
$28.27
Thanks for riding with HERE, Richard!
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ac mi a
sem viverra lobortis. Donec at massa vel nibh lobortis laoreet. Orci varius
natoque penatibus et magnis dis parturient montes, nascetur ridiculus
mus. Praesent finibus facilisis nisi, id consectetur eros scelerisque non.
Suspendisse ut ligula interdum, dictum velit vel, interdum erat. Sed
vulputate laoreet tempus. Sed varius felis sed lorem semper commodo.
Thank you for riding with Richard!
Give a compliment?
@sueselbeck
https://developer.here.com/

More Related Content

PDF
How to Build Your Own Ridesharing App (droidcon NYC 2018)
HERE Technologies
 
PDF
Garmin Developer Summit 2018 - Talk
Richard Süselbeck
 
PDF
Solid principles in practice the clean architecture - Droidcon Italy
Fabio Collini
 
PDF
SOLID principles in practice: the Clean Architecture
Fabio Collini
 
PPTX
Lowering in C#: What really happens with your code?, from NDC Oslo 2019
David Wengier
 
PPTX
A (very) opinionated guide to MSBuild and Project Files
David Wengier
 
PDF
JS Fest 2019. Anjana Vakil. Serverless Bebop
JSFestUA
 
PDF
You will learn RxJS in 2017
名辰 洪
 
How to Build Your Own Ridesharing App (droidcon NYC 2018)
HERE Technologies
 
Garmin Developer Summit 2018 - Talk
Richard Süselbeck
 
Solid principles in practice the clean architecture - Droidcon Italy
Fabio Collini
 
SOLID principles in practice: the Clean Architecture
Fabio Collini
 
Lowering in C#: What really happens with your code?, from NDC Oslo 2019
David Wengier
 
A (very) opinionated guide to MSBuild and Project Files
David Wengier
 
JS Fest 2019. Anjana Vakil. Serverless Bebop
JSFestUA
 
You will learn RxJS in 2017
名辰 洪
 

Similar to Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019 (20)

PDF
How to Build Your Own Ridesharing App (droidcon NYC 2018)
Richard Süselbeck
 
PDF
Creating an Uber Clone - Part XVII - Transcript.pdf
ShaiAlmog1
 
PDF
Creating an Uber Clone - Part XVII.pdf
ShaiAlmog1
 
PDF
Product concept - TripNaut
Caio Donini
 
PDF
International Journal of Engineering Research and Development
IJERD Editor
 
PPTX
Presentation
Vickey Rawat
 
PPTX
Tnooz THack London - Travel Technology Europe showcase
tnooz
 
PDF
[React-Native Tutorial] Map
Kobkrit Viriyayudhakorn
 
PPTX
Tnooz THack London - Travel Technology Europe showcase
Kevin May
 
PDF
Maps API on_mobile_dev_festbangkok
ss318
 
PPTX
Use of AI in commuting
Bansi Mehta
 
PDF
DIY Uber
NSCoder Mexico
 
PDF
Oculus presentation
Zx MYS
 
PDF
Location-Based Services on Android
Jomar Tigcal
 
PPTX
Mapathon 2013 - Google Maps Javascript API
NAILBITER
 
PPTX
MOBILE APP.pptx
duraimurugan alagarsamy
 
PDF
IRJET - Optimized Travel Planner
IRJET Journal
 
PDF
Ben Dowling - Geomium - Building a Geo App - Geomob Feb 2011
GeomobLDN
 
PDF
Services, Data and Architectures for Building a Geo App
Ben Dowling
 
PDF
Getting Oriented with MapKit: Everything you need to get started with the new...
John Wilker
 
How to Build Your Own Ridesharing App (droidcon NYC 2018)
Richard Süselbeck
 
Creating an Uber Clone - Part XVII - Transcript.pdf
ShaiAlmog1
 
Creating an Uber Clone - Part XVII.pdf
ShaiAlmog1
 
Product concept - TripNaut
Caio Donini
 
International Journal of Engineering Research and Development
IJERD Editor
 
Presentation
Vickey Rawat
 
Tnooz THack London - Travel Technology Europe showcase
tnooz
 
[React-Native Tutorial] Map
Kobkrit Viriyayudhakorn
 
Tnooz THack London - Travel Technology Europe showcase
Kevin May
 
Maps API on_mobile_dev_festbangkok
ss318
 
Use of AI in commuting
Bansi Mehta
 
DIY Uber
NSCoder Mexico
 
Oculus presentation
Zx MYS
 
Location-Based Services on Android
Jomar Tigcal
 
Mapathon 2013 - Google Maps Javascript API
NAILBITER
 
MOBILE APP.pptx
duraimurugan alagarsamy
 
IRJET - Optimized Travel Planner
IRJET Journal
 
Ben Dowling - Geomium - Building a Geo App - Geomob Feb 2011
GeomobLDN
 
Services, Data and Architectures for Building a Geo App
Ben Dowling
 
Getting Oriented with MapKit: Everything you need to get started with the new...
John Wilker
 
Ad

More from Codemotion (20)

PDF
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Codemotion
 
PDF
Pompili - From hero to_zero: The FatalNoise neverending story
Codemotion
 
PPTX
Pastore - Commodore 65 - La storia
Codemotion
 
PPTX
Pennisi - Essere Richard Altwasser
Codemotion
 
PPTX
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Codemotion
 
PPTX
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Codemotion
 
PPTX
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Codemotion
 
PDF
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Codemotion
 
PDF
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Codemotion
 
PDF
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Codemotion
 
PDF
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Codemotion
 
PDF
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Codemotion
 
PDF
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Codemotion
 
PPTX
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Codemotion
 
PPTX
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
Codemotion
 
PDF
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Codemotion
 
PDF
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Codemotion
 
PDF
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Codemotion
 
PDF
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Codemotion
 
PDF
Mike Kotsur - What can philosophy teach us about programming - Codemotion Ams...
Codemotion
 
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Codemotion
 
Pompili - From hero to_zero: The FatalNoise neverending story
Codemotion
 
Pastore - Commodore 65 - La storia
Codemotion
 
Pennisi - Essere Richard Altwasser
Codemotion
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Codemotion
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Codemotion
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Codemotion
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Codemotion
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Codemotion
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Codemotion
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Codemotion
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Codemotion
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Codemotion
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Codemotion
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
Codemotion
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Codemotion
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Codemotion
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Codemotion
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Codemotion
 
Mike Kotsur - What can philosophy teach us about programming - Codemotion Ams...
Codemotion
 
Ad

Recently uploaded (20)

PDF
Software Development Methodologies in 2025
KodekX
 
PDF
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
PPTX
The Future of AI & Machine Learning.pptx
pritsen4700
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PDF
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PPTX
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
PPTX
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PDF
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
PDF
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
PDF
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PDF
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
PDF
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
Software Development Methodologies in 2025
KodekX
 
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
The Future of AI & Machine Learning.pptx
pritsen4700
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
The Future of Artificial Intelligence (AI)
Mukul
 

Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019

Editor's Notes