SlideShare una empresa de Scribd logo
1 de 191
Descargar para leer sin conexión
Rise of the machines
Automate your development
@svenpet
Disclaimer
Scripts Chef, Puppet, etc better build pipelines
Disclaimer
Ideas through examples
Rise of the machines
ROBOTS
are coming to our day to day lives
Rise of the Machines - Automate your Development
Rise of the Machines - Automate your Development
Rise of the Machines - Automate your Development
Rise of the Machines - Automate your Development
Rise of the machines
IN Software Development
Sven Peters
Atlassian Evangelist
@svenpet
svenpet.com
Automation in Software Development
my personal story
build scripts (make)
1996
JUnit
2001
2004
ant -> later maven
2005
Eclipse (code generation)
Hudson
2006
2009
Puppet
1998
GUI builder
2013
Docker
Build & Tests
Deployments
Small scripts
What are we automating right now?
What are we automating right now?
Code Reviews
Stand Ups
Ops
Support
Merging
Engineering Health
Bots everywhere
Coding bots Ops bots Service bots Doc bots
Report botsTest bots
Welcome… or
I’m new
Add ons
Postgres
Scala
IntelliJ
Git
JDK
Happy installing & setup…
for the next 8 hours
Rise of the Machines - Automate your Development
Rise of the Machines - Automate your Development
Rise of the Machines - Automate your Development
Rise of the Machines - Automate your Development
Rise of the Machines - Automate your Development
Rise of the Machines - Automate your Development
Rise of the Machines - Automate your Development
Agent CharlieMeet
Download
Install
Configure
Agent CharlieMeet
Download
Install
Configure
Agent CharlieMeet
Puppet, Shell & Ruby
Works with OSX & Ubuntu
Atlassian Plugin SDK
Bitbucket SSH Keys
Git
Mercurial
HipChat
HomeBrew
IntelliJ IDEA
JDK
Maven
PostgreSQL
Stash Keys
and much more…
Without
Agent Charlie
With
Agent Charlie
Coding bots
Automate your Coding phase
27’’ is not enough
Chat
Email
Repo
manager
IDE
Command
line
Issue
Tracker
Issue tracker workflow
TODO IN PROGRESS IN REVIEW DONE
BRANCH CODE REFACTOR PULL MERGE
Developer workflow
BRANCH CODE REFACTOR PULL MERGE
What you should do
TODO IN PROGRESS IN REVIEW DONE
BRANCH CODE REFACTOR PULL MERGE
What you do
TODO IN PROGRESS IN REVIEW DONE
Keep the team updated!
Rise of the Machines - Automate your Development
Smart commits
mention issue_key and #trigger the issue tracker
Github JIRA YouTrack Trello Bitbucket
Control the issue by commits
TODO IN PROGRESS IN REVIEW DONE
JRA-566 #start-Progress
JRA-566 #start-review
fixes #566
No
tool switching
Robot is just
receiving
commands
TODO IN PROGRESS IN REVIEW DONE
branch
commit
Controlled by action
pull
create review
request
merge
close review
Rise of the Machines - Automate your Development
Our workflow
TODO IN PROGRESS IN REVIEW DONE
branch pull merge
branch pull merge
master
JRA-554-bugfix
branch pull merge
master
commits code directly to the master branch!
branch pull merge
master
branch pull merge
master
JRA-554-bugfix
branch pull merge
master
JRA-554-bugfix
bad surprise
sh*t happens, but can be avoided
bad surprise
sh*t doesn’t happen that often
no
branch pull merge
don’t branch from a red build
master
JRA-554-bugfix
branch pull merge
master
JRA-554-bugfix
invite the best reviewers
Rise of the Machines - Automate your Development
Recent comitters or author
auto suggest reviewer
branch pull merge
minimum 2 approvals
master
JRA-554-bugfix
branch pull merge
unapprove reviewers when code changes
master
JRA-554-bugfix
The need to update older versions
master
Version 1.1
Version 1.0
Support older versions
master
Version 1.1
Version 1.0
JRA-234-hotfix
Support older versions
master
Version 1.1
Version 1.0
JRA-234-bugfix
Support older versions
boring!
Huhu
I can do it!
master
Version 1.1
Version 1.0
JRA-234-bugfix
auto merges
Test bots
SMARTER Test Automation
&:hover {
text-decoration: none;
color: @invertedBodyTextColor
background-color: #366ca6;
cursor: pointer;
}
&:hover {
text-decoration: none;
color: @invertedBodyTextColor
background-color: #366ca6;
cursor: pointer;
}
Static code analysis can catch this!
Findbugs - Checkstyle - PMD
Listen to what Freud tells you about
source codeyour
Freud Bot
&:hover {
text-decoration: none;
color: @invertedBodyTextColor
background-color: #366ca6;
cursor: pointer;
}
You should use a variable instead for . I suggest that you use a variable of similar color:#366CA6
@globalHeaderPrimaryActionFallbackColor @globalHeaderTopColor @primaryLinkColor
Freud Bot
for Pull Requests
Freud Bot
less review work makes suggestions
We are trying hard to write
awesome code
package	com.miguelcatalan.materialsearchview;	
import	android.app.Activity;	
import	android.widget.ListView;	
import	android.widget.RelativeLayout;	
import	android.widget.TextView;	
import	java.lang.reflect.Field;	
import	java.util.List;	
/**	
	*	@author	Miguel	Catalan	Bañuls	
	*/	
public	class	MaterialSearchView	extends	FrameLayout	implements	Filter.FilterListener	{	
				private	MenuItem	mMenuItem;	
				private	boolean	mIsSearchOpen	=	false;	
				public	MaterialSearchView(Context	context)	{	
								this(context,	null);	
				}	
				public	MaterialSearchView(Context	context,	AttributeSet	attrs)	{	
								this(context,	attrs,	0);	
				@Override	
				public	void	onTextChanged(CharSequence	s,	int	start,	int	before,	int	count)	{	
									mUserQuery	=	s;	
									startFilter(s);	
										MaterialSearchView.this.onTextChanged(s);	
					}	
			}	
LOC: 32
MyAwesomeClass
One month later
package	com.miguelcatalan.materialsearchview;	
import	android.app.Activity;	
import	android.content.Context;	
import	android.content.Intent;	
import	android.content.pm.PackageManager;	
import	android.content.pm.ResolveInfo;	
import	android.content.res.TypedArray;	
import	android.graphics.Rect;	
import	android.graphics.drawable.Drawable;	
import	android.os.Build;	
import	android.os.Parcel;	
import	android.os.Parcelable;	
import	android.speech.RecognizerIntent;	
import	android.text.Editable;	
import	android.text.TextUtils;	
import	android.text.TextWatcher;	
import	android.util.AttributeSet;	
import	android.util.Log;	
import	android.view.KeyEvent;	
import	android.view.LayoutInflater;	
import	android.view.MenuItem;	
import	android.view.View;	
import	android.view.inputmethod.InputMethodManager;	
import	android.widget.AdapterView;	
import	android.widget.EditText;	
import	android.widget.Filter;	
import	android.widget.Filterable;	
import	android.widget.FrameLayout;	
import	android.widget.ImageButton;	
import	android.widget.ListAdapter;	
import	android.widget.ListView;	
import	android.widget.RelativeLayout;	
import	android.widget.TextView;	
import	com.miguelcatalan.materialsearchview.utils.AnimationUtil;	
…one month later
LOC: counting….
MyAwesomeClass
mSearchSrcTextView.setText(null);	
								mSearchSrcTextView.requestFocus();	
								if	(animate)	{	
												AnimationUtil.fadeInView(mSearchLayout,	AnimationUtil.ANIMATION_DURATION_MEDIUM,	new	AnimationUtil.AnimationListener()	{	
																@Override	
																public	boolean	onAnimationStart(View	view)	{	
																				return	false;	
																}	
																@Override	
																public	boolean	onAnimationEnd(View	view)	{	
																				if	(mSearchViewListener	!=	null)	{	
																								mSearchViewListener.onSearchViewShown();	
																				}	
																				return	false;	
																}	
																@Override	
																public	boolean	onAnimationCancel(View	view)	{	
																				return	false;	
																}	
												});	
								}	else	{	
												mSearchLayout.setVisibility(VISIBLE);	
												if	(mSearchViewListener	!=	null)	{	
																mSearchViewListener.onSearchViewShown();	
												}	
								}	
								mIsSearchOpen	=	true;	
				}	
				/**	
					*	Close	search	view.	
					*/	
				public	void	closeSearch()	{	
…one month later
LOC: 986
MyAwesomeClass
Code over time
86%
20
1045
27
test coverage
deprecated methods
old unit tests (JUnit 3)
compiler warnings
Code over time
83% test coverage
23 deprecated methods
1136 old unit tests (JUnit 3)
36 compiler warnings
Code over time
75% test coverage
32 deprecated methods
1289 old unit tests (JUnit 3)
45 compiler warnings
Developers are trying to
solve problems
Developers don’t write
bad code on purpose
Calling
Dr. Codemeasure constantly the engineering health
measure constantly the engineering health
Calling
Dr. Code
jira.stats.tests.junit.3.count
No more JUnit 3 tests!
JUnit 3 JUnit 4
jira.stats.bundled.jars.in.plugins
Inspect all the things
jira.stats.tests.junit.3.count
Hall of Shame!
You’ll enter the
JS not minified
API compatibility :(
New JUnit3 test
Caught by Dr Code?
Hall of Shame!
You’ll enter the
Wallboard - so everyone sees it!
Hall of Fame!
You’ll enter the
Fixed a matrix?
public	abstract	class	Task	{	
	 public	final	void	executeWith(Callback	callback)	{	
	 	 execute();	
	 	 if	(callback	!=	null)	{	
	 	 	 callback.call();	
	 	 }	
	 }	
	 public	abstract	void	execute();	
}	
public	abstract	class	Task	{	
	 public	final	void	executeWith(Callback	callback)	{	
	 	 execute();	
	 	 if	(callback	!=	null)	{	
	 	 	 callback.call(20);	
	 	 }	
	 }	
	 public	abstract	void	execute();	
}	
Old version New version
public	abstract	class	Task	{	
	 public	final	void	executeWith(Callback	callback)	{	
	 	 execute();	
	 	 if	(callback	!=	null)	{	
	 	 	 callback.call();	
	 	 }	
	 }	
	 public	abstract	void	execute();	
}	
public	abstract	class	Task	{	
	 public	final	void	executeWith(Callback	callback)	{	
	 	 execute();	
	 	 if	(callback	!=	null)	{	
	 	 	 callback.call(20);	
	 	 }	
	 }	
	 public	abstract	void	execute();	
}	
Old version New version
Old version New version
Old version New version
Hard to spot?
Image Compare Bot
Compare images
(on build)
Alert on differences
(build warning)
Easy reporting
(build report)
Our functional tests ran for
h ursso we ran them parallel
Test block 1
Test block 2
Test block 3
Test block 4
Test block 5
statically sized test blocks
waiting for the longest test block
Hallelujah
Functional Test Balancer
T1
T 2
T 3
T4
T5
T6
T7
T8
T9
T10
T11
T 12
T13
T14
Hallelujah
build status
build status
build status
Flaky Test Detector
Flaky Test Detector
failing
test
rerun test
successful
test
test in
quarantaine
continue build
create
issue
1888
flaky tests
detected
817
quarantined tests
fixed
Flaky Test Detector
no log file searching
forces fixing flaky tests
no manual reruns
no more ‘this one again’ moments
OPS bots
Automated Operations
Rise of the Machines - Automate your Development
Ops nowproblem
ops
Slow feedback loop
devprob
Faster feedback loop
devprob
Faster feedback loop
knows which team -> service responsibility
Faster feedback loop
But that’s a lot of configuration!
Faster feedback loop
add team in
deployment
descriptor
add
connection to
pager duty
Own your code
end-to-end
Prepared for the release?
WAIT…
Release Notes?
New Feature
Improvement
Bugfix
Do you know which features really ship?
Release Branch
Merged
JRA-345
Commit
messages
+
Issue
information
=
Release
notes
Release Notes Bot
Rise of the Machines - Automate your Development
Label in GitHub Issues
Label in GitHub Issues
Rise of the Machines - Automate your Development
Rise of the Machines - Automate your Development
New features
Improvements
Fixed bugs
Issue Description
as
Release Notes
Human readable
issue descriptions
Think about
customer value
No surprises
Service bots
Automate your Service
Support Developer
scanning log filesask for log file system knowledge
pause work
Support Developer
scanning log filesask for log file system knowledge
Support Hercules
scanning log filesask for log file system knowledge
Teaching the robot
Hercules get’s smarter
suggest read
update
{
Well f*%k me
THE ROBOT
was right! }
Your boss has a really important task for your team
Everyone is working from home today
Rise of the Machines - Automate your Development
by
Rise of the Machines - Automate your Development
With chat you can reach everyone immediately
All these
questions!
How do I
download the
Sprint report?
How do I set up
a build for my
feature branch?
What Java
versions do we
support?
!ask
I’ll look it up for you
Self service for chat
!ask the knowledge base first!
REPORT bots
Manual Reporting sucks
Stand Up
Automating
s ?
too long
setup VC calls
timezones remind people
Stand Up
Problems
Rise of the Machines - Automate your Development
Never miss a stand up
Music - Start at 09:29:00
Crontab!
Video - Open at 09:30
No video set up time
Stand up report bots
colocated
distributed
different timezones
Status
update
Team
update
Stand up bot
Exception
Build failure
New issue
Deployment
Chat Bots
everywhere
ΩΩΩΩ
Builds
ΩΩΩΩ
Deployments
ΩΩΩΩ
Exceptions
Chat Bots
everywhere
Fast feedback loops Team knowledge Start discussions
The build
failed
New
deployment
The build
failed
New
deployment
The build
failed
New
deployment
New
important
issue
New
deployment
New
important
issue
New
deployment
New
important
issue
New
deployment
Get the big picture
Get the big picture
Every team has one or more
http://atlasboard.bitbucket.org/
Every team has one or more
http://atlasboard.bitbucket.org/
see what’s going on point directly
All kind of boards
AdvocatesDeveloper
Support
Bots everywhere
Coding bots Ops bots Service bots Doc bots
Report botsTest bots
Reinvent the wheel?
Lots of unmaintained projects
Writing automation code
Very specific problem
No. 1 Problem
10%
for better engineering health
work time
Technical debt
10%
for better engineering health
work time
Technical debt
Rise of the Machines - Automate your Development
is serious fun!
Automation
Go - Ruby - PHP - Python
Languages
Puppet - Chef - Ansible - Docker
Technologies
Fast feedback
Success
Your Problems
Motivation
From scripts on a developer hard disc
to professional automation
Source Control
Add code to
Code Reviews
Do
for every change
Tests
Write
Deployment Scripts
Have
Keep your automated systems
under control
Keep your automated systems
under control
Lots of different places
Instances for automation services
costcentre
ow
ner
service
We use labels
for better overview
Micros <our own PaaS>
Docker
Java
Go
Python
micros service:create <service-name> Service
descriptor
Owner
PagerDuty
Cost
Centre
MicrosSimple to create & register
Were are we heading?
Better customer insides
better conclusions
collecting more data
Were are we heading?
Faster dev feedback loops
less time updating &
searching
integrated tools
Were are we heading?
Better Quality
deeper code analysis
smarter tests
Were are we heading?
Building software
Parts can be automated
craft
is a
Creating customer value
is an
art
Hard to automate
Rise of the machines
…Skynet became self aware
Rise of the Machines - Automate your Development
@svenpet
svenpet.com/talks
I’ll be back…
find slides here
Photo
Credits
“VW Golf TDI Clean Diesel was 2010 8983" by Mariordo
Mario Roberto Duran Ortiz - Own work. Licensed under
CC BY-SA 3.0 via Commons - https://
commons.wikimedia.org/wiki/
Backyard Series by syauqee mohamad "http://
www.flickr.com/photos/7901820@N07/6945260735"
Tesla Model S by Chrishmt0423 from flickr
Burnt & Abandoned Computer "http://www.flickr.com/
photos/99649389@N02/13262802714"

Más contenido relacionado

La actualidad más candente

CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day ThailandCI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day ThailandTroublemaker Khunpech
 
Git 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using GitGit 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using GitGeoff Hoffman
 
Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Jenkinsconf Presentation - Advance jenkins management with multiple projects.Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Jenkinsconf Presentation - Advance jenkins management with multiple projects.Ohad Basan
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkinsAbe Diaz
 
Jenkins Docker
Jenkins DockerJenkins Docker
Jenkins DockerAlex Soto
 
Docker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationDocker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationGiacomo Vacca
 
DockerCon EU 2015: Continuous Integration with Jenkins, Docker and Compose
DockerCon EU 2015: Continuous Integration with Jenkins, Docker and ComposeDockerCon EU 2015: Continuous Integration with Jenkins, Docker and Compose
DockerCon EU 2015: Continuous Integration with Jenkins, Docker and ComposeDocker, Inc.
 
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) PipelineAnatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) PipelineRobert McDermott
 
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-CodeSD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-CodeBrian Dawson
 
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)CloudBees
 
At Your Service: Using Jenkins in Operations
At Your Service: Using Jenkins in OperationsAt Your Service: Using Jenkins in Operations
At Your Service: Using Jenkins in OperationsMandi Walls
 
An Introduction To Jenkins
An Introduction To JenkinsAn Introduction To Jenkins
An Introduction To JenkinsKnoldus Inc.
 
Game of Codes: the Battle for CI
Game of Codes: the Battle for CIGame of Codes: the Battle for CI
Game of Codes: the Battle for CIAtlassian
 
OSDC 2017 - Julien Pivotto - Automating Jenkins
OSDC 2017 - Julien Pivotto - Automating JenkinsOSDC 2017 - Julien Pivotto - Automating Jenkins
OSDC 2017 - Julien Pivotto - Automating JenkinsNETWAYS
 
Yale Jenkins Show and Tell
Yale Jenkins Show and TellYale Jenkins Show and Tell
Yale Jenkins Show and TellE. Camden Fisher
 

La actualidad más candente (20)

CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day ThailandCI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
 
Git 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using GitGit 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using Git
 
Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Jenkinsconf Presentation - Advance jenkins management with multiple projects.Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Jenkinsconf Presentation - Advance jenkins management with multiple projects.
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkins
 
Jenkins Docker
Jenkins DockerJenkins Docker
Jenkins Docker
 
Docker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationDocker and Puppet for Continuous Integration
Docker and Puppet for Continuous Integration
 
DockerCon EU 2015: Continuous Integration with Jenkins, Docker and Compose
DockerCon EU 2015: Continuous Integration with Jenkins, Docker and ComposeDockerCon EU 2015: Continuous Integration with Jenkins, Docker and Compose
DockerCon EU 2015: Continuous Integration with Jenkins, Docker and Compose
 
Jenkins tutorial
Jenkins tutorialJenkins tutorial
Jenkins tutorial
 
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) PipelineAnatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
 
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-CodeSD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
 
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
 
At Your Service: Using Jenkins in Operations
At Your Service: Using Jenkins in OperationsAt Your Service: Using Jenkins in Operations
At Your Service: Using Jenkins in Operations
 
An Introduction To Jenkins
An Introduction To JenkinsAn Introduction To Jenkins
An Introduction To Jenkins
 
Welcome to Jenkins
Welcome to JenkinsWelcome to Jenkins
Welcome to Jenkins
 
Game of Codes: the Battle for CI
Game of Codes: the Battle for CIGame of Codes: the Battle for CI
Game of Codes: the Battle for CI
 
OSDC 2017 - Julien Pivotto - Automating Jenkins
OSDC 2017 - Julien Pivotto - Automating JenkinsOSDC 2017 - Julien Pivotto - Automating Jenkins
OSDC 2017 - Julien Pivotto - Automating Jenkins
 
Yale Jenkins Show and Tell
Yale Jenkins Show and TellYale Jenkins Show and Tell
Yale Jenkins Show and Tell
 
CI is dead, long live CI
CI is dead, long live CICI is dead, long live CI
CI is dead, long live CI
 
Who *is* Jenkins?
Who *is* Jenkins?Who *is* Jenkins?
Who *is* Jenkins?
 
Jenkins CI presentation
Jenkins CI presentationJenkins CI presentation
Jenkins CI presentation
 

Destacado

Git and GitHub for Documentation
Git and GitHub for DocumentationGit and GitHub for Documentation
Git and GitHub for DocumentationAnne Gentle
 
Continuous Delivery with Jenkins and Wildfly (2014)
Continuous Delivery with Jenkins and Wildfly (2014)Continuous Delivery with Jenkins and Wildfly (2014)
Continuous Delivery with Jenkins and Wildfly (2014)Tracy Kennedy
 
Bamboo - an introduction
Bamboo - an introductionBamboo - an introduction
Bamboo - an introductionSven Peters
 
GitFlow, SourceTree and GitLab
GitFlow, SourceTree and GitLabGitFlow, SourceTree and GitLab
GitFlow, SourceTree and GitLabShinu Suresh
 
Ic maven jenkins_sonar
Ic maven jenkins_sonarIc maven jenkins_sonar
Ic maven jenkins_sonarRocío Muñoz
 
Gitlab Training with GIT and SourceTree
Gitlab Training with GIT and SourceTreeGitlab Training with GIT and SourceTree
Gitlab Training with GIT and SourceTreeTeerapat Khunpech
 
Introduction to Git/Github - A beginner's guide
Introduction to Git/Github - A beginner's guideIntroduction to Git/Github - A beginner's guide
Introduction to Git/Github - A beginner's guideRohit Arora
 
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners HubSpot
 

Destacado (10)

Git and GitHub for Documentation
Git and GitHub for DocumentationGit and GitHub for Documentation
Git and GitHub for Documentation
 
Git best practices workshop
Git best practices workshopGit best practices workshop
Git best practices workshop
 
Continuous Delivery with Jenkins and Wildfly (2014)
Continuous Delivery with Jenkins and Wildfly (2014)Continuous Delivery with Jenkins and Wildfly (2014)
Continuous Delivery with Jenkins and Wildfly (2014)
 
Bamboo - an introduction
Bamboo - an introductionBamboo - an introduction
Bamboo - an introduction
 
GitFlow, SourceTree and GitLab
GitFlow, SourceTree and GitLabGitFlow, SourceTree and GitLab
GitFlow, SourceTree and GitLab
 
Ic maven jenkins_sonar
Ic maven jenkins_sonarIc maven jenkins_sonar
Ic maven jenkins_sonar
 
Gitlab Training with GIT and SourceTree
Gitlab Training with GIT and SourceTreeGitlab Training with GIT and SourceTree
Gitlab Training with GIT and SourceTree
 
Introduction to Git/Github - A beginner's guide
Introduction to Git/Github - A beginner's guideIntroduction to Git/Github - A beginner's guide
Introduction to Git/Github - A beginner's guide
 
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners
 
Speaking part 3
Speaking part 3Speaking part 3
Speaking part 3
 

Similar a Rise of the Machines - Automate your Development

Don't Be Mocked by your Mocks - Best Practices using Mocks
Don't Be Mocked by your Mocks - Best Practices using MocksDon't Be Mocked by your Mocks - Best Practices using Mocks
Don't Be Mocked by your Mocks - Best Practices using MocksVictor Rentea
 
Testing of javacript
Testing of javacriptTesting of javacript
Testing of javacriptLei Kang
 
Static Code Analysis PHP[tek] 2023
Static Code Analysis PHP[tek] 2023Static Code Analysis PHP[tek] 2023
Static Code Analysis PHP[tek] 2023Scott Keck-Warren
 
Is your code ready for PHP 7 ?
Is your code ready for PHP 7 ?Is your code ready for PHP 7 ?
Is your code ready for PHP 7 ?Wim Godden
 
Continous Delivering a PHP application
Continous Delivering a PHP applicationContinous Delivering a PHP application
Continous Delivering a PHP applicationJavier López
 
Embedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops wayEmbedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops wayAnne Nicolas
 
Containerize your Blackbox tests
Containerize your Blackbox testsContainerize your Blackbox tests
Containerize your Blackbox testsKevin Beeman
 
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13Fred Sauer
 
One commit, one release. Continuously delivering a Symfony project.
One commit, one release. Continuously delivering a Symfony project.One commit, one release. Continuously delivering a Symfony project.
One commit, one release. Continuously delivering a Symfony project.Javier López
 
Simple tools to fight bigger quality battle
Simple tools to fight bigger quality battleSimple tools to fight bigger quality battle
Simple tools to fight bigger quality battleAnand Ramdeo
 
Clearly, I Have Made Some Bad Decisions
Clearly, I Have Made Some Bad DecisionsClearly, I Have Made Some Bad Decisions
Clearly, I Have Made Some Bad DecisionsJonathan Hitchcock
 
All the Laravel things: up and running to making $$
All the Laravel things: up and running to making $$All the Laravel things: up and running to making $$
All the Laravel things: up and running to making $$Joe Ferguson
 
Test First, Refresh Second: Web App TDD in Grails
Test First, Refresh Second: Web App TDD in GrailsTest First, Refresh Second: Web App TDD in Grails
Test First, Refresh Second: Web App TDD in GrailsTim Berglund
 
Test First Refresh Second: Test-Driven Development in Grails
Test First Refresh Second: Test-Driven Development in GrailsTest First Refresh Second: Test-Driven Development in Grails
Test First Refresh Second: Test-Driven Development in GrailsTim Berglund
 
SpringOne Platform recap 정윤진
SpringOne Platform recap 정윤진SpringOne Platform recap 정윤진
SpringOne Platform recap 정윤진VMware Tanzu Korea
 
Windows Server 2008 for Developers - Part 2
Windows Server 2008 for Developers - Part 2Windows Server 2008 for Developers - Part 2
Windows Server 2008 for Developers - Part 2ukdpe
 
Lewis brady engine_terminology (edited version)
Lewis brady engine_terminology (edited version)Lewis brady engine_terminology (edited version)
Lewis brady engine_terminology (edited version)LewisB2013
 
Google App Engine for Java v0.0.2
Google App Engine for Java v0.0.2Google App Engine for Java v0.0.2
Google App Engine for Java v0.0.2Matthew McCullough
 
Effizientere WordPress-Plugin-Entwicklung mit Softwaretests
Effizientere WordPress-Plugin-Entwicklung mit SoftwaretestsEffizientere WordPress-Plugin-Entwicklung mit Softwaretests
Effizientere WordPress-Plugin-Entwicklung mit SoftwaretestsDECK36
 

Similar a Rise of the Machines - Automate your Development (20)

Don't Be Mocked by your Mocks - Best Practices using Mocks
Don't Be Mocked by your Mocks - Best Practices using MocksDon't Be Mocked by your Mocks - Best Practices using Mocks
Don't Be Mocked by your Mocks - Best Practices using Mocks
 
Testing of javacript
Testing of javacriptTesting of javacript
Testing of javacript
 
Static Code Analysis PHP[tek] 2023
Static Code Analysis PHP[tek] 2023Static Code Analysis PHP[tek] 2023
Static Code Analysis PHP[tek] 2023
 
Is your code ready for PHP 7 ?
Is your code ready for PHP 7 ?Is your code ready for PHP 7 ?
Is your code ready for PHP 7 ?
 
Continous Delivering a PHP application
Continous Delivering a PHP applicationContinous Delivering a PHP application
Continous Delivering a PHP application
 
Embedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops wayEmbedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops way
 
Containerize your Blackbox tests
Containerize your Blackbox testsContainerize your Blackbox tests
Containerize your Blackbox tests
 
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
 
One commit, one release. Continuously delivering a Symfony project.
One commit, one release. Continuously delivering a Symfony project.One commit, one release. Continuously delivering a Symfony project.
One commit, one release. Continuously delivering a Symfony project.
 
Simple tools to fight bigger quality battle
Simple tools to fight bigger quality battleSimple tools to fight bigger quality battle
Simple tools to fight bigger quality battle
 
Clearly, I Have Made Some Bad Decisions
Clearly, I Have Made Some Bad DecisionsClearly, I Have Made Some Bad Decisions
Clearly, I Have Made Some Bad Decisions
 
All the Laravel things: up and running to making $$
All the Laravel things: up and running to making $$All the Laravel things: up and running to making $$
All the Laravel things: up and running to making $$
 
Test First, Refresh Second: Web App TDD in Grails
Test First, Refresh Second: Web App TDD in GrailsTest First, Refresh Second: Web App TDD in Grails
Test First, Refresh Second: Web App TDD in Grails
 
Test First Refresh Second: Test-Driven Development in Grails
Test First Refresh Second: Test-Driven Development in GrailsTest First Refresh Second: Test-Driven Development in Grails
Test First Refresh Second: Test-Driven Development in Grails
 
Event loop
Event loopEvent loop
Event loop
 
SpringOne Platform recap 정윤진
SpringOne Platform recap 정윤진SpringOne Platform recap 정윤진
SpringOne Platform recap 정윤진
 
Windows Server 2008 for Developers - Part 2
Windows Server 2008 for Developers - Part 2Windows Server 2008 for Developers - Part 2
Windows Server 2008 for Developers - Part 2
 
Lewis brady engine_terminology (edited version)
Lewis brady engine_terminology (edited version)Lewis brady engine_terminology (edited version)
Lewis brady engine_terminology (edited version)
 
Google App Engine for Java v0.0.2
Google App Engine for Java v0.0.2Google App Engine for Java v0.0.2
Google App Engine for Java v0.0.2
 
Effizientere WordPress-Plugin-Entwicklung mit Softwaretests
Effizientere WordPress-Plugin-Entwicklung mit SoftwaretestsEffizientere WordPress-Plugin-Entwicklung mit Softwaretests
Effizientere WordPress-Plugin-Entwicklung mit Softwaretests
 

Más de Sven Peters

Team Shaping - Building a shared understanding
Team Shaping - Building a shared understandingTeam Shaping - Building a shared understanding
Team Shaping - Building a shared understandingSven Peters
 
Developer Joy - How great teams get s%*t done
Developer Joy - How great teams get s%*t doneDeveloper Joy - How great teams get s%*t done
Developer Joy - How great teams get s%*t doneSven Peters
 
Teams Flow, Stay in sync, async
Teams Flow, Stay in sync, asyncTeams Flow, Stay in sync, async
Teams Flow, Stay in sync, asyncSven Peters
 
The Hitchhiker's Guide to a Great Developer Career
The Hitchhiker's Guide to a Great Developer CareerThe Hitchhiker's Guide to a Great Developer Career
The Hitchhiker's Guide to a Great Developer CareerSven Peters
 
The Effective Developer - Work Smarter, not Harder
The Effective Developer - Work Smarter, not HarderThe Effective Developer - Work Smarter, not Harder
The Effective Developer - Work Smarter, not HarderSven Peters
 
How to Become a Conference Speaker
How to Become a Conference SpeakerHow to Become a Conference Speaker
How to Become a Conference SpeakerSven Peters
 
The Effective Developer - Work Smarter, Not Harder
The Effective Developer - Work Smarter, Not HarderThe Effective Developer - Work Smarter, Not Harder
The Effective Developer - Work Smarter, Not HarderSven Peters
 
5 Things: How to Rock Remote Work
5 Things: How to Rock Remote Work5 Things: How to Rock Remote Work
5 Things: How to Rock Remote WorkSven Peters
 
A Career Advice: Change is the Only Constant
A Career Advice: Change is the Only ConstantA Career Advice: Change is the Only Constant
A Career Advice: Change is the Only ConstantSven Peters
 
Be More Productive with Confluence
Be More Productive with ConfluenceBe More Productive with Confluence
Be More Productive with ConfluenceSven Peters
 
Less Process, more Guidance with a Team Playbook
Less Process, more Guidance with a Team PlaybookLess Process, more Guidance with a Team Playbook
Less Process, more Guidance with a Team PlaybookSven Peters
 
The Secret Sauce of Successful Teams
The Secret Sauce of Successful TeamsThe Secret Sauce of Successful Teams
The Secret Sauce of Successful TeamsSven Peters
 
Kick-@$$ Sofware Development
Kick-@$$ Sofware DevelopmentKick-@$$ Sofware Development
Kick-@$$ Sofware DevelopmentSven Peters
 
The 5 Hottest Atlassian News from Summit 2014
The 5 Hottest Atlassian News from Summit 2014The 5 Hottest Atlassian News from Summit 2014
The 5 Hottest Atlassian News from Summit 2014Sven Peters
 
Atlassian - Software For Every Team
Atlassian - Software For Every TeamAtlassian - Software For Every Team
Atlassian - Software For Every TeamSven Peters
 
It's the culture, but not as you know it
It's the culture, but not as you know itIt's the culture, but not as you know it
It's the culture, but not as you know itSven Peters
 
Atlassian - The Latest & Greatest April 2014
Atlassian - The Latest & Greatest April 2014Atlassian - The Latest & Greatest April 2014
Atlassian - The Latest & Greatest April 2014Sven Peters
 
Getting Git Right
Getting Git RightGetting Git Right
Getting Git RightSven Peters
 
Build Better Software Together
Build Better Software TogetherBuild Better Software Together
Build Better Software TogetherSven Peters
 

Más de Sven Peters (20)

Team Shaping - Building a shared understanding
Team Shaping - Building a shared understandingTeam Shaping - Building a shared understanding
Team Shaping - Building a shared understanding
 
Developer Joy - How great teams get s%*t done
Developer Joy - How great teams get s%*t doneDeveloper Joy - How great teams get s%*t done
Developer Joy - How great teams get s%*t done
 
Teams Flow, Stay in sync, async
Teams Flow, Stay in sync, asyncTeams Flow, Stay in sync, async
Teams Flow, Stay in sync, async
 
The Hitchhiker's Guide to a Great Developer Career
The Hitchhiker's Guide to a Great Developer CareerThe Hitchhiker's Guide to a Great Developer Career
The Hitchhiker's Guide to a Great Developer Career
 
The Effective Developer - Work Smarter, not Harder
The Effective Developer - Work Smarter, not HarderThe Effective Developer - Work Smarter, not Harder
The Effective Developer - Work Smarter, not Harder
 
How to Become a Conference Speaker
How to Become a Conference SpeakerHow to Become a Conference Speaker
How to Become a Conference Speaker
 
The Effective Developer - Work Smarter, Not Harder
The Effective Developer - Work Smarter, Not HarderThe Effective Developer - Work Smarter, Not Harder
The Effective Developer - Work Smarter, Not Harder
 
5 Things: How to Rock Remote Work
5 Things: How to Rock Remote Work5 Things: How to Rock Remote Work
5 Things: How to Rock Remote Work
 
A Career Advice: Change is the Only Constant
A Career Advice: Change is the Only ConstantA Career Advice: Change is the Only Constant
A Career Advice: Change is the Only Constant
 
Be More Productive with Confluence
Be More Productive with ConfluenceBe More Productive with Confluence
Be More Productive with Confluence
 
Less Process, more Guidance with a Team Playbook
Less Process, more Guidance with a Team PlaybookLess Process, more Guidance with a Team Playbook
Less Process, more Guidance with a Team Playbook
 
The Secret Sauce of Successful Teams
The Secret Sauce of Successful TeamsThe Secret Sauce of Successful Teams
The Secret Sauce of Successful Teams
 
Kick-@$$ Sofware Development
Kick-@$$ Sofware DevelopmentKick-@$$ Sofware Development
Kick-@$$ Sofware Development
 
The 5 Hottest Atlassian News from Summit 2014
The 5 Hottest Atlassian News from Summit 2014The 5 Hottest Atlassian News from Summit 2014
The 5 Hottest Atlassian News from Summit 2014
 
Coding Culture
Coding CultureCoding Culture
Coding Culture
 
Atlassian - Software For Every Team
Atlassian - Software For Every TeamAtlassian - Software For Every Team
Atlassian - Software For Every Team
 
It's the culture, but not as you know it
It's the culture, but not as you know itIt's the culture, but not as you know it
It's the culture, but not as you know it
 
Atlassian - The Latest & Greatest April 2014
Atlassian - The Latest & Greatest April 2014Atlassian - The Latest & Greatest April 2014
Atlassian - The Latest & Greatest April 2014
 
Getting Git Right
Getting Git RightGetting Git Right
Getting Git Right
 
Build Better Software Together
Build Better Software TogetherBuild Better Software Together
Build Better Software Together
 

Último

Mobile App Development company Houston
Mobile  App  Development  company HoustonMobile  App  Development  company Houston
Mobile App Development company Houstonjennysmithusa549
 
If your code could speak, what would it tell you? Let GitHub Copilot Chat hel...
If your code could speak, what would it tell you? Let GitHub Copilot Chat hel...If your code could speak, what would it tell you? Let GitHub Copilot Chat hel...
If your code could speak, what would it tell you? Let GitHub Copilot Chat hel...Maxim Salnikov
 
Practical Advice for FDA’s 510(k) Requirements.pdf
Practical Advice for FDA’s 510(k) Requirements.pdfPractical Advice for FDA’s 510(k) Requirements.pdf
Practical Advice for FDA’s 510(k) Requirements.pdfICS
 
Unlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsUnlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsconfluent
 
Revolutionize Your Field Service Management with FSM Grid
Revolutionize Your Field Service Management with FSM GridRevolutionize Your Field Service Management with FSM Grid
Revolutionize Your Field Service Management with FSM GridMathew Thomas
 
8 key point on optimizing web hosting services in your business.pdf
8 key point on optimizing web hosting services in your business.pdf8 key point on optimizing web hosting services in your business.pdf
8 key point on optimizing web hosting services in your business.pdfOffsiteNOC
 
Large Scale Architecture -- The Unreasonable Effectiveness of Simplicity
Large Scale Architecture -- The Unreasonable Effectiveness of SimplicityLarge Scale Architecture -- The Unreasonable Effectiveness of Simplicity
Large Scale Architecture -- The Unreasonable Effectiveness of SimplicityRandy Shoup
 
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdf
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdfFlutter the Future of Mobile App Development - 5 Crucial Reasons.pdf
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdfMind IT Systems
 
VuNet software organisation powerpoint deck
VuNet software organisation powerpoint deckVuNet software organisation powerpoint deck
VuNet software organisation powerpoint deckNaval Singh
 
Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...
Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...
Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...Splashtop Inc
 
Building Generative AI-infused apps: what's possible and how to start
Building Generative AI-infused apps: what's possible and how to startBuilding Generative AI-infused apps: what's possible and how to start
Building Generative AI-infused apps: what's possible and how to startMaxim Salnikov
 
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptxCYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptxBarakaMuyengi
 
Leveling Up your Branding and Mastering MERN: Fullstack WebDev
Leveling Up your Branding and Mastering MERN: Fullstack WebDevLeveling Up your Branding and Mastering MERN: Fullstack WebDev
Leveling Up your Branding and Mastering MERN: Fullstack WebDevpmgdscunsri
 
Boost Efficiency: Sabre API Integration Made Easy
Boost Efficiency: Sabre API Integration Made EasyBoost Efficiency: Sabre API Integration Made Easy
Boost Efficiency: Sabre API Integration Made Easymichealwillson701
 
BusinessGPT - SECURITY AND GOVERNANCE FOR GENERATIVE AI.pptx
BusinessGPT  - SECURITY AND GOVERNANCE  FOR GENERATIVE AI.pptxBusinessGPT  - SECURITY AND GOVERNANCE  FOR GENERATIVE AI.pptx
BusinessGPT - SECURITY AND GOVERNANCE FOR GENERATIVE AI.pptxAGATSoftware
 
openEuler Community Overview - a presentation showing the current scale
openEuler Community Overview - a presentation showing the current scaleopenEuler Community Overview - a presentation showing the current scale
openEuler Community Overview - a presentation showing the current scaleShane Coughlan
 
Technical improvements. Reasons. Methods. Estimations. CJ
Technical improvements.  Reasons. Methods. Estimations. CJTechnical improvements.  Reasons. Methods. Estimations. CJ
Technical improvements. Reasons. Methods. Estimations. CJpolinaucc
 
Mobile App Development process | Expert Tips
Mobile App Development process | Expert TipsMobile App Development process | Expert Tips
Mobile App Development process | Expert Tipsmichealwillson701
 
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...telebusocialmarketin
 

Último (20)

Mobile App Development company Houston
Mobile  App  Development  company HoustonMobile  App  Development  company Houston
Mobile App Development company Houston
 
If your code could speak, what would it tell you? Let GitHub Copilot Chat hel...
If your code could speak, what would it tell you? Let GitHub Copilot Chat hel...If your code could speak, what would it tell you? Let GitHub Copilot Chat hel...
If your code could speak, what would it tell you? Let GitHub Copilot Chat hel...
 
Practical Advice for FDA’s 510(k) Requirements.pdf
Practical Advice for FDA’s 510(k) Requirements.pdfPractical Advice for FDA’s 510(k) Requirements.pdf
Practical Advice for FDA’s 510(k) Requirements.pdf
 
Unlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsUnlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insights
 
Revolutionize Your Field Service Management with FSM Grid
Revolutionize Your Field Service Management with FSM GridRevolutionize Your Field Service Management with FSM Grid
Revolutionize Your Field Service Management with FSM Grid
 
8 key point on optimizing web hosting services in your business.pdf
8 key point on optimizing web hosting services in your business.pdf8 key point on optimizing web hosting services in your business.pdf
8 key point on optimizing web hosting services in your business.pdf
 
20140812 - OBD2 Solution
20140812 - OBD2 Solution20140812 - OBD2 Solution
20140812 - OBD2 Solution
 
Large Scale Architecture -- The Unreasonable Effectiveness of Simplicity
Large Scale Architecture -- The Unreasonable Effectiveness of SimplicityLarge Scale Architecture -- The Unreasonable Effectiveness of Simplicity
Large Scale Architecture -- The Unreasonable Effectiveness of Simplicity
 
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdf
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdfFlutter the Future of Mobile App Development - 5 Crucial Reasons.pdf
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdf
 
VuNet software organisation powerpoint deck
VuNet software organisation powerpoint deckVuNet software organisation powerpoint deck
VuNet software organisation powerpoint deck
 
Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...
Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...
Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...
 
Building Generative AI-infused apps: what's possible and how to start
Building Generative AI-infused apps: what's possible and how to startBuilding Generative AI-infused apps: what's possible and how to start
Building Generative AI-infused apps: what's possible and how to start
 
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptxCYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
 
Leveling Up your Branding and Mastering MERN: Fullstack WebDev
Leveling Up your Branding and Mastering MERN: Fullstack WebDevLeveling Up your Branding and Mastering MERN: Fullstack WebDev
Leveling Up your Branding and Mastering MERN: Fullstack WebDev
 
Boost Efficiency: Sabre API Integration Made Easy
Boost Efficiency: Sabre API Integration Made EasyBoost Efficiency: Sabre API Integration Made Easy
Boost Efficiency: Sabre API Integration Made Easy
 
BusinessGPT - SECURITY AND GOVERNANCE FOR GENERATIVE AI.pptx
BusinessGPT  - SECURITY AND GOVERNANCE  FOR GENERATIVE AI.pptxBusinessGPT  - SECURITY AND GOVERNANCE  FOR GENERATIVE AI.pptx
BusinessGPT - SECURITY AND GOVERNANCE FOR GENERATIVE AI.pptx
 
openEuler Community Overview - a presentation showing the current scale
openEuler Community Overview - a presentation showing the current scaleopenEuler Community Overview - a presentation showing the current scale
openEuler Community Overview - a presentation showing the current scale
 
Technical improvements. Reasons. Methods. Estimations. CJ
Technical improvements.  Reasons. Methods. Estimations. CJTechnical improvements.  Reasons. Methods. Estimations. CJ
Technical improvements. Reasons. Methods. Estimations. CJ
 
Mobile App Development process | Expert Tips
Mobile App Development process | Expert TipsMobile App Development process | Expert Tips
Mobile App Development process | Expert Tips
 
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
 

Rise of the Machines - Automate your Development