SlideShare a Scribd company logo
Scaling up development of
a modular code base
Robert Munteanu, Adobe Systems
About me
Motivation
Sling Modules
Agenda
●
Modular development
●
Source control
●
Build tool and continuous integration
●
(Integrated) development environment
●
Communication
●
Wrap-up
Modular development
Modular development vs modular deployment
Pure monoliths
Modular development, monolithical deployment
Modular development and deployment
Monolithical development and modular deployment
Modular development vs modular deployment
Source control
Source control: to split or not to split
Source control: single repository
$ svn checkout https://svn.apache.org↵
/repos/asf/sling/trunk sling
# change, commit atomically
$ svn ls https://svn.apache.org↵
/repos/asf/sling/tags | wc -l
1478
Source control: multiple repositories
Source control: repo (Android)
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="origin" fetch=".." />
<default revision="master" remote="origin" />
<project path="api" name="api.git"/>
<project path="impl" name="impl.git"/>
</manifest>
$ repo init -u git@github.com:org/manifest.git
$ repo sync
$ repo start new-feature api/ impl/
$ repo forall -c 'git push ...'
Source control: repo automation
#!/bin/sh
echo '<?xml version="1.0" encoding="UTF-8"?>'
echo "<!-- generated by $(basename $0) -->"
echo '<manifest>'
echo ' <remote name="origin" fetch="."/>'
echo ' <default revision="master" remote="origin"/>'
for repo in $(curl -s https://api.github.com/users/rombert/repos?sort=updated 
| jq '.[] | .name | match ("TMP-sling-org.apache.sling.*") | .string' | tr
-d '"' | sort); do
name=${repo#TMP-sling-}
echo " <project path="${name}" name="${repo}.git"/>"
done
echo '</manifest>'
Source control: migrating to individual repositories
$ git svn clone https://svn.apache.org↵
/repos/asf/sling/trunk sling/ sling
$ git clone sling org.apache.sling.engine
$ cd org.apache.sling.engine
$ git filter-branch --subdirectory-filter bundles/engine
$ git for-each-ref --format="%(refname)" refs/original/
| xargs -n1 git update-ref -d
$ ls # only data in bundles/engine
Build tool and continuous
integration
Build tool: the aggregate build
Build tool: aggregate vs individual builds
Build tool: repository
Build tool: automating creation of module builds
def manifest = new XmlParser().parse("https://github.com/.../default.xml")
/* ... boring XML parsing ... */
modules.each { module ->
jdks.each { jdkKey ->
mavenJob(jobName(module.location, jdkKey)) {
logRotator {
numToKeep(15)
}
triggers {
snapshotDependencies(true)
scm('H/15 * * * *')
}
goals("-U clean deploy")
/* other instructions skipped */
}
}
}
(Integrated) development
environment
IDE: provisioning and project discovery
IDE: shared preferences
<!-- package your preferences as a Maven artifact --->
<dependency>
<groupId>org.acme.tooling</groupId>
<artifactId>acme-eclipse-formatter</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>eclipse-formatter</packaging>
</dependency>
<!-- configure the plugin in your parent pom -->
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>eclipse-preferences-maven-plugin</artifactId>
<version>0.0.3-SNAPSHOT</version>
<extensions>true</extensions>
<configuration>
<repository>
<kind>jira</kind>
<url>https://issues.apache.org/jira</url>
</repository>
<commitTemplate>${task.key} - ${task.description}nn</commitTemplate>
</configuration>
</plugin>
</plugins>
Communication
Communication: single channel
Communication: multiple channels
Communication: side channels
Communication: summarize
Subject: [report] Jenkins - 2 jobs need attention
To: dev@sling.apache.org
1. sling-ide-tooling-1.8
[...!..!.!.]
More: https://builds.apache.org/job/sling-ide-tooling-1.8/
2. sling-aggregator
[........!!]
More: https://builds.apache.org/job/sling-aggregator-1.8/
Wrap-up
Modular development - Sling
The big picture
The big picture
Supporting tools
●
https://github.com/jenkinsci/job-dsl-plugin
●
https://gerrit.googlesource.com/git-repo/
●
https://projects.eclipse.org/projects/tools.oomph
Examples of modular development
●
https://github.com/apache/sling-tooling-jenkins
●
https://github.com/wcm-io-devops/eclipse-maven-plugin
●
https://github.com/bdelacretaz/docker-jenkins-dsl-ready
●
https://wiki.openstack.org/wiki/MailingListEtiquette
Ad

Recommended

Scaling up development of a modular code base
Scaling up development of a modular code base
Robert Munteanu
 
Kotlin 在 Web 方面的应用
Kotlin 在 Web 方面的应用
Shengyou Fan
 
以 Laravel 經驗開發 Hyperf 應用
以 Laravel 經驗開發 Hyperf 應用
Shengyou Fan
 
運用 Exposed 管理及操作資料庫
運用 Exposed 管理及操作資料庫
Shengyou Fan
 
Kotlin for API (with Ktor)
Kotlin for API (with Ktor)
Shengyou Fan
 
What happens in laravel 4 bootstraping
What happens in laravel 4 bootstraping
Jace Ju
 
Composer 經典食譜
Composer 經典食譜
Shengyou Fan
 
Development of Ansible modules
Development of Ansible modules
jtyr
 
以 Ktor 快速打造 Web 應用
以 Ktor 快速打造 Web 應用
Shengyou Fan
 
Codeigniter : Two Step View - Concept Implementation
Codeigniter : Two Step View - Concept Implementation
Abdul Malik Ikhsan
 
Kotlin 讀書會 #1
Kotlin 讀書會 #1
Shengyou Fan
 
用 Kotlin 做自動化工具
用 Kotlin 做自動化工具
Shengyou Fan
 
An introduction to Laravel Passport
An introduction to Laravel Passport
Michael Peacock
 
Денис Лебедев-Управление зависимостями с помощью CocoaPods
Денис Лебедев-Управление зависимостями с помощью CocoaPods
UA Mobile
 
Codeigniter : Using Third Party Components - Zend Framework Components
Codeigniter : Using Third Party Components - Zend Framework Components
Abdul Malik Ikhsan
 
HTML5 tutorial: canvas, offfline & sockets
HTML5 tutorial: canvas, offfline & sockets
Remy Sharp
 
通过 Ktor 迅速打造以 Kotlin 为核心的后端服务应用
通过 Ktor 迅速打造以 Kotlin 为核心的后端服务应用
Shengyou Fan
 
[HKOSCon 2020] Build an api service using ktor rapidly
[HKOSCon 2020] Build an api service using ktor rapidly
Shengyou Fan
 
OSGi, Scripting and REST, Building Webapps With Apache Sling
OSGi, Scripting and REST, Building Webapps With Apache Sling
Carsten Ziegeler
 
Building domain-specific testing tools : lessons learned from the Apache Slin...
Building domain-specific testing tools : lessons learned from the Apache Slin...
Robert Munteanu
 
Phinx talk
Phinx talk
Michael Peacock
 
Working in Team using Git in Unity
Working in Team using Git in Unity
Rifauddin Tsalitsy
 
Templating in ansible
Templating in ansible
jtyr
 
Kotlin 讀書會第三梯次第一章
Kotlin 讀書會第三梯次第一章
Shengyou Fan
 
Variable precedence: Where should I put a variable?
Variable precedence: Where should I put a variable?
jtyr
 
Using Ansible as Makefiles to unite your developers
Using Ansible as Makefiles to unite your developers
thiagoalessio
 
WorkFlow: An Inquiry Into Productivity by Timothy Bolton
WorkFlow: An Inquiry Into Productivity by Timothy Bolton
Miva
 
Scaling up development of a modular code base - R Munteanu
Scaling up development of a modular code base - R Munteanu
mfrancis
 
Scaling up development of a modular code base
Scaling up development of a modular code base
Robert Munteanu
 
Scaling up development of a modular code base
Scaling up development of a modular code base
Robert Munteanu
 

More Related Content

What's hot (19)

以 Ktor 快速打造 Web 應用
以 Ktor 快速打造 Web 應用
Shengyou Fan
 
Codeigniter : Two Step View - Concept Implementation
Codeigniter : Two Step View - Concept Implementation
Abdul Malik Ikhsan
 
Kotlin 讀書會 #1
Kotlin 讀書會 #1
Shengyou Fan
 
用 Kotlin 做自動化工具
用 Kotlin 做自動化工具
Shengyou Fan
 
An introduction to Laravel Passport
An introduction to Laravel Passport
Michael Peacock
 
Денис Лебедев-Управление зависимостями с помощью CocoaPods
Денис Лебедев-Управление зависимостями с помощью CocoaPods
UA Mobile
 
Codeigniter : Using Third Party Components - Zend Framework Components
Codeigniter : Using Third Party Components - Zend Framework Components
Abdul Malik Ikhsan
 
HTML5 tutorial: canvas, offfline & sockets
HTML5 tutorial: canvas, offfline & sockets
Remy Sharp
 
通过 Ktor 迅速打造以 Kotlin 为核心的后端服务应用
通过 Ktor 迅速打造以 Kotlin 为核心的后端服务应用
Shengyou Fan
 
[HKOSCon 2020] Build an api service using ktor rapidly
[HKOSCon 2020] Build an api service using ktor rapidly
Shengyou Fan
 
OSGi, Scripting and REST, Building Webapps With Apache Sling
OSGi, Scripting and REST, Building Webapps With Apache Sling
Carsten Ziegeler
 
Building domain-specific testing tools : lessons learned from the Apache Slin...
Building domain-specific testing tools : lessons learned from the Apache Slin...
Robert Munteanu
 
Phinx talk
Phinx talk
Michael Peacock
 
Working in Team using Git in Unity
Working in Team using Git in Unity
Rifauddin Tsalitsy
 
Templating in ansible
Templating in ansible
jtyr
 
Kotlin 讀書會第三梯次第一章
Kotlin 讀書會第三梯次第一章
Shengyou Fan
 
Variable precedence: Where should I put a variable?
Variable precedence: Where should I put a variable?
jtyr
 
Using Ansible as Makefiles to unite your developers
Using Ansible as Makefiles to unite your developers
thiagoalessio
 
WorkFlow: An Inquiry Into Productivity by Timothy Bolton
WorkFlow: An Inquiry Into Productivity by Timothy Bolton
Miva
 
以 Ktor 快速打造 Web 應用
以 Ktor 快速打造 Web 應用
Shengyou Fan
 
Codeigniter : Two Step View - Concept Implementation
Codeigniter : Two Step View - Concept Implementation
Abdul Malik Ikhsan
 
Kotlin 讀書會 #1
Kotlin 讀書會 #1
Shengyou Fan
 
用 Kotlin 做自動化工具
用 Kotlin 做自動化工具
Shengyou Fan
 
An introduction to Laravel Passport
An introduction to Laravel Passport
Michael Peacock
 
Денис Лебедев-Управление зависимостями с помощью CocoaPods
Денис Лебедев-Управление зависимостями с помощью CocoaPods
UA Mobile
 
Codeigniter : Using Third Party Components - Zend Framework Components
Codeigniter : Using Third Party Components - Zend Framework Components
Abdul Malik Ikhsan
 
HTML5 tutorial: canvas, offfline & sockets
HTML5 tutorial: canvas, offfline & sockets
Remy Sharp
 
通过 Ktor 迅速打造以 Kotlin 为核心的后端服务应用
通过 Ktor 迅速打造以 Kotlin 为核心的后端服务应用
Shengyou Fan
 
[HKOSCon 2020] Build an api service using ktor rapidly
[HKOSCon 2020] Build an api service using ktor rapidly
Shengyou Fan
 
OSGi, Scripting and REST, Building Webapps With Apache Sling
OSGi, Scripting and REST, Building Webapps With Apache Sling
Carsten Ziegeler
 
Building domain-specific testing tools : lessons learned from the Apache Slin...
Building domain-specific testing tools : lessons learned from the Apache Slin...
Robert Munteanu
 
Working in Team using Git in Unity
Working in Team using Git in Unity
Rifauddin Tsalitsy
 
Templating in ansible
Templating in ansible
jtyr
 
Kotlin 讀書會第三梯次第一章
Kotlin 讀書會第三梯次第一章
Shengyou Fan
 
Variable precedence: Where should I put a variable?
Variable precedence: Where should I put a variable?
jtyr
 
Using Ansible as Makefiles to unite your developers
Using Ansible as Makefiles to unite your developers
thiagoalessio
 
WorkFlow: An Inquiry Into Productivity by Timothy Bolton
WorkFlow: An Inquiry Into Productivity by Timothy Bolton
Miva
 

Similar to Scaling up development of a modular code base (20)

Scaling up development of a modular code base - R Munteanu
Scaling up development of a modular code base - R Munteanu
mfrancis
 
Scaling up development of a modular code base
Scaling up development of a modular code base
Robert Munteanu
 
Scaling up development of a modular code base
Scaling up development of a modular code base
Robert Munteanu
 
How maven makes your development group look like a bunch of professionals.
How maven makes your development group look like a bunch of professionals.
Fazreil Amreen Abdul Jalil
 
Maven
Maven
Jyothi Malapati
 
Maven
Maven
Jyothi Malapati
 
Maven 3 Overview
Maven 3 Overview
Mike Ensor
 
20091112 - Mars Jug - Apache Maven
20091112 - Mars Jug - Apache Maven
Arnaud Héritier
 
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
mfrancis
 
Apache Maven - eXo TN presentation
Apache Maven - eXo TN presentation
Arnaud Héritier
 
Introduction in Apache Maven2
Introduction in Apache Maven2
Heiko Scherrer
 
Maven 2.0 - Improve your build patterns
Maven 2.0 - Improve your build patterns
elliando dias
 
Java Build Tools
Java Build Tools
­Avishek A
 
Maven introduction
Maven introduction
Lai Hieu
 
Lorraine JUG (1st June, 2010) - Maven
Lorraine JUG (1st June, 2010) - Maven
Arnaud Héritier
 
Team Maven
Team Maven
elliando dias
 
YaJUG-Maven 3.x, will it lives up to its promises
YaJUG-Maven 3.x, will it lives up to its promises
Arnaud Héritier
 
ToulouseJUG-Maven 3.x, will it lives up to its promises
ToulouseJUG-Maven 3.x, will it lives up to its promises
Arnaud Héritier
 
BordeauxJUG-Maven 3.x, will it lives up to its promises
BordeauxJUG-Maven 3.x, will it lives up to its promises
Arnaud Héritier
 
Continuous Deployment Pipeline with maven
Continuous Deployment Pipeline with maven
Alan Parkinson
 
Scaling up development of a modular code base - R Munteanu
Scaling up development of a modular code base - R Munteanu
mfrancis
 
Scaling up development of a modular code base
Scaling up development of a modular code base
Robert Munteanu
 
Scaling up development of a modular code base
Scaling up development of a modular code base
Robert Munteanu
 
How maven makes your development group look like a bunch of professionals.
How maven makes your development group look like a bunch of professionals.
Fazreil Amreen Abdul Jalil
 
Maven 3 Overview
Maven 3 Overview
Mike Ensor
 
20091112 - Mars Jug - Apache Maven
20091112 - Mars Jug - Apache Maven
Arnaud Héritier
 
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
mfrancis
 
Apache Maven - eXo TN presentation
Apache Maven - eXo TN presentation
Arnaud Héritier
 
Introduction in Apache Maven2
Introduction in Apache Maven2
Heiko Scherrer
 
Maven 2.0 - Improve your build patterns
Maven 2.0 - Improve your build patterns
elliando dias
 
Java Build Tools
Java Build Tools
­Avishek A
 
Maven introduction
Maven introduction
Lai Hieu
 
Lorraine JUG (1st June, 2010) - Maven
Lorraine JUG (1st June, 2010) - Maven
Arnaud Héritier
 
YaJUG-Maven 3.x, will it lives up to its promises
YaJUG-Maven 3.x, will it lives up to its promises
Arnaud Héritier
 
ToulouseJUG-Maven 3.x, will it lives up to its promises
ToulouseJUG-Maven 3.x, will it lives up to its promises
Arnaud Héritier
 
BordeauxJUG-Maven 3.x, will it lives up to its promises
BordeauxJUG-Maven 3.x, will it lives up to its promises
Arnaud Héritier
 
Continuous Deployment Pipeline with maven
Continuous Deployment Pipeline with maven
Alan Parkinson
 
Ad

More from Robert Munteanu (20)

Secure by Default Web Applications
Secure by Default Web Applications
Robert Munteanu
 
Sling Applications - A DevOps perspective
Sling Applications - A DevOps perspective
Robert Munteanu
 
Will it blend? Java agents and OSGi
Will it blend? Java agents and OSGi
Robert Munteanu
 
Escape the defaults - Configure Sling like AEM as a Cloud Service
Escape the defaults - Configure Sling like AEM as a Cloud Service
Robert Munteanu
 
Crash course in Kubernetes monitoring
Crash course in Kubernetes monitoring
Robert Munteanu
 
Java agents for fun and (not so much) profit
Java agents for fun and (not so much) profit
Robert Munteanu
 
Will it blend? Java agents and OSGi
Will it blend? Java agents and OSGi
Robert Munteanu
 
Cloud-native legacy applications
Cloud-native legacy applications
Robert Munteanu
 
Cloud-Native Sling
Cloud-Native Sling
Robert Munteanu
 
From Monolith to Modules - breaking apart a one size fits all product into mo...
From Monolith to Modules - breaking apart a one size fits all product into mo...
Robert Munteanu
 
What's new in the Sling developer tooling?
What's new in the Sling developer tooling?
Robert Munteanu
 
Zero downtime deployments for Sling application using Docker
Zero downtime deployments for Sling application using Docker
Robert Munteanu
 
Do you really want to go fully micro?
Do you really want to go fully micro?
Robert Munteanu
 
Effective web application development with Apache Sling
Effective web application development with Apache Sling
Robert Munteanu
 
Of microservices and microservices
Of microservices and microservices
Robert Munteanu
 
Slide IDE Tooling (adaptTo 2016)
Slide IDE Tooling (adaptTo 2016)
Robert Munteanu
 
Secure by Default Web Applications with Apache Sling
Secure by Default Web Applications with Apache Sling
Robert Munteanu
 
Apache Sling as a Microservices Gateway
Apache Sling as a Microservices Gateway
Robert Munteanu
 
Apache Sling as an OSGi-powered REST middleware
Apache Sling as an OSGi-powered REST middleware
Robert Munteanu
 
Effective Web Application Development with Apache Sling
Effective Web Application Development with Apache Sling
Robert Munteanu
 
Secure by Default Web Applications
Secure by Default Web Applications
Robert Munteanu
 
Sling Applications - A DevOps perspective
Sling Applications - A DevOps perspective
Robert Munteanu
 
Will it blend? Java agents and OSGi
Will it blend? Java agents and OSGi
Robert Munteanu
 
Escape the defaults - Configure Sling like AEM as a Cloud Service
Escape the defaults - Configure Sling like AEM as a Cloud Service
Robert Munteanu
 
Crash course in Kubernetes monitoring
Crash course in Kubernetes monitoring
Robert Munteanu
 
Java agents for fun and (not so much) profit
Java agents for fun and (not so much) profit
Robert Munteanu
 
Will it blend? Java agents and OSGi
Will it blend? Java agents and OSGi
Robert Munteanu
 
Cloud-native legacy applications
Cloud-native legacy applications
Robert Munteanu
 
From Monolith to Modules - breaking apart a one size fits all product into mo...
From Monolith to Modules - breaking apart a one size fits all product into mo...
Robert Munteanu
 
What's new in the Sling developer tooling?
What's new in the Sling developer tooling?
Robert Munteanu
 
Zero downtime deployments for Sling application using Docker
Zero downtime deployments for Sling application using Docker
Robert Munteanu
 
Do you really want to go fully micro?
Do you really want to go fully micro?
Robert Munteanu
 
Effective web application development with Apache Sling
Effective web application development with Apache Sling
Robert Munteanu
 
Of microservices and microservices
Of microservices and microservices
Robert Munteanu
 
Slide IDE Tooling (adaptTo 2016)
Slide IDE Tooling (adaptTo 2016)
Robert Munteanu
 
Secure by Default Web Applications with Apache Sling
Secure by Default Web Applications with Apache Sling
Robert Munteanu
 
Apache Sling as a Microservices Gateway
Apache Sling as a Microservices Gateway
Robert Munteanu
 
Apache Sling as an OSGi-powered REST middleware
Apache Sling as an OSGi-powered REST middleware
Robert Munteanu
 
Effective Web Application Development with Apache Sling
Effective Web Application Development with Apache Sling
Robert Munteanu
 
Ad

Recently uploaded (20)

Microsoft Business-230T01A-ENU-PowerPoint_01.pptx
Microsoft Business-230T01A-ENU-PowerPoint_01.pptx
soulamaabdoulaye128
 
Rierino Commerce Platform - CMS Solution
Rierino Commerce Platform - CMS Solution
Rierino
 
Download Adobe Illustrator Crack free for Windows 2025?
Download Adobe Illustrator Crack free for Windows 2025?
grete1122g
 
How the US Navy Approaches DevSecOps with Raise 2.0
How the US Navy Approaches DevSecOps with Raise 2.0
Anchore
 
Making significant Software Architecture decisions
Making significant Software Architecture decisions
Bert Jan Schrijver
 
GDG Douglas - Google AI Agents: Your Next Intern?
GDG Douglas - Google AI Agents: Your Next Intern?
felipeceotto
 
Smart Financial Solutions: Money Lender Software, Daily Pigmy & Personal Loan...
Smart Financial Solutions: Money Lender Software, Daily Pigmy & Personal Loan...
Intelli grow
 
What is data visualization and how data visualization tool can help.pdf
What is data visualization and how data visualization tool can help.pdf
Varsha Nayak
 
Integrating Survey123 and R&H Data Using FME
Integrating Survey123 and R&H Data Using FME
Safe Software
 
Async-ronizing Success at Wix - Patterns for Seamless Microservices - Devoxx ...
Async-ronizing Success at Wix - Patterns for Seamless Microservices - Devoxx ...
Natan Silnitsky
 
Automated Migration of ESRI Geodatabases Using XML Control Files and FME
Automated Migration of ESRI Geodatabases Using XML Control Files and FME
Safe Software
 
FME as an Orchestration Tool - Peak of Data & AI 2025
FME as an Orchestration Tool - Peak of Data & AI 2025
Safe Software
 
UPDASP a project coordination unit ......
UPDASP a project coordination unit ......
withrj1
 
Women in Tech: Marketo Engage User Group - June 2025 - AJO with AWS
Women in Tech: Marketo Engage User Group - June 2025 - AJO with AWS
BradBedford3
 
About Certivo | Intelligent Compliance Solutions for Global Regulatory Needs
About Certivo | Intelligent Compliance Solutions for Global Regulatory Needs
certivoai
 
Shell Skill Tree - LabEx Certification (LabEx)
Shell Skill Tree - LabEx Certification (LabEx)
VICTOR MAESTRE RAMIREZ
 
Looking for a BIRT Report Alternative Here’s Why Helical Insight Stands Out.pdf
Looking for a BIRT Report Alternative Here’s Why Helical Insight Stands Out.pdf
Varsha Nayak
 
On-Device AI: Is It Time to Go All-In, or Do We Still Need the Cloud?
On-Device AI: Is It Time to Go All-In, or Do We Still Need the Cloud?
Hassan Abid
 
Code and No-Code Journeys: The Coverage Overlook
Code and No-Code Journeys: The Coverage Overlook
Applitools
 
MOVIE RECOMMENDATION SYSTEM, UDUMULA GOPI REDDY, Y24MC13085.pptx
MOVIE RECOMMENDATION SYSTEM, UDUMULA GOPI REDDY, Y24MC13085.pptx
Maharshi Mallela
 
Microsoft Business-230T01A-ENU-PowerPoint_01.pptx
Microsoft Business-230T01A-ENU-PowerPoint_01.pptx
soulamaabdoulaye128
 
Rierino Commerce Platform - CMS Solution
Rierino Commerce Platform - CMS Solution
Rierino
 
Download Adobe Illustrator Crack free for Windows 2025?
Download Adobe Illustrator Crack free for Windows 2025?
grete1122g
 
How the US Navy Approaches DevSecOps with Raise 2.0
How the US Navy Approaches DevSecOps with Raise 2.0
Anchore
 
Making significant Software Architecture decisions
Making significant Software Architecture decisions
Bert Jan Schrijver
 
GDG Douglas - Google AI Agents: Your Next Intern?
GDG Douglas - Google AI Agents: Your Next Intern?
felipeceotto
 
Smart Financial Solutions: Money Lender Software, Daily Pigmy & Personal Loan...
Smart Financial Solutions: Money Lender Software, Daily Pigmy & Personal Loan...
Intelli grow
 
What is data visualization and how data visualization tool can help.pdf
What is data visualization and how data visualization tool can help.pdf
Varsha Nayak
 
Integrating Survey123 and R&H Data Using FME
Integrating Survey123 and R&H Data Using FME
Safe Software
 
Async-ronizing Success at Wix - Patterns for Seamless Microservices - Devoxx ...
Async-ronizing Success at Wix - Patterns for Seamless Microservices - Devoxx ...
Natan Silnitsky
 
Automated Migration of ESRI Geodatabases Using XML Control Files and FME
Automated Migration of ESRI Geodatabases Using XML Control Files and FME
Safe Software
 
FME as an Orchestration Tool - Peak of Data & AI 2025
FME as an Orchestration Tool - Peak of Data & AI 2025
Safe Software
 
UPDASP a project coordination unit ......
UPDASP a project coordination unit ......
withrj1
 
Women in Tech: Marketo Engage User Group - June 2025 - AJO with AWS
Women in Tech: Marketo Engage User Group - June 2025 - AJO with AWS
BradBedford3
 
About Certivo | Intelligent Compliance Solutions for Global Regulatory Needs
About Certivo | Intelligent Compliance Solutions for Global Regulatory Needs
certivoai
 
Shell Skill Tree - LabEx Certification (LabEx)
Shell Skill Tree - LabEx Certification (LabEx)
VICTOR MAESTRE RAMIREZ
 
Looking for a BIRT Report Alternative Here’s Why Helical Insight Stands Out.pdf
Looking for a BIRT Report Alternative Here’s Why Helical Insight Stands Out.pdf
Varsha Nayak
 
On-Device AI: Is It Time to Go All-In, or Do We Still Need the Cloud?
On-Device AI: Is It Time to Go All-In, or Do We Still Need the Cloud?
Hassan Abid
 
Code and No-Code Journeys: The Coverage Overlook
Code and No-Code Journeys: The Coverage Overlook
Applitools
 
MOVIE RECOMMENDATION SYSTEM, UDUMULA GOPI REDDY, Y24MC13085.pptx
MOVIE RECOMMENDATION SYSTEM, UDUMULA GOPI REDDY, Y24MC13085.pptx
Maharshi Mallela
 

Scaling up development of a modular code base