I authored many books that you can find here, thank you for taking the time to check them out. Remember there are also over 200+ free video tutorials on my YouTube channel. Learn more about me by clicking about.

The !Empathetic Engineer
A short story portraying the software engineer archetype
Kindle, epub, mobi (2019)

Free Payhip link

Learn GIS Programming with ArcGIS for Javascript API 4.x and ArcGIS Online: Learn GIS programming by building an engaging web map application works on mobile or the web Kindle & Paperback (2018)

GIS Programming kindle book
click on the image to purchase the ebook on Amazon

In late 2012 I got an email from a book publisher author with a proposal to author a book. They have found me through my blog and linked a blog post I wrote back in 2009 on ArcGIS Server technology. I accepted their offer and wrote the book and 3 others that followed.

This makes me question, why did I write that original blog post? I didn’t know that one day a publisher will google that technology and find my post and make me an offer to write a book. I can’t remember why exactly I wrote that post but I knew that I was having fun doing it. Sharing my experience with the world through this writing always felt good to me.

In August 2017 I started a new series called Getting Started with ArcGIS Javascript API 4.x on YouTube. That series became really popular. The interaction on that series inspired me to write this book to discuss things I might have missed in that video series and to distill all my findings, knowledge into a book. So if you are new to the YouTube channel consider subscribing to check out more content over there

Today, I decided to re-live the experience of writing a book. However, no publisher is backing up this book. This book is written from the heart, full of joy, from me to you. It is a brain dump of what I think will be a very beneficial work for you guys.

As of the time of writing this preface, I did not pick a title of this book. And I’m feeling good about this. I know the topic and I can imagine how the book will look like. However, I feel that picking a title will force my thoughts through a narrow path and thus limit the potential of what this book could be. Obviously, if you are reading this that means I have already picked a title.

This book is about building web maps using Javascript technology. I picked Javascript because it is a resilient light-weight technology that can run on both the server and the client, mobile, IOT and supercomputer machines. 

Traditional technology books discuss tools. “This is how to load a web map in a browser”. “This is how to query the rest endpoint”. “This is how to render a 3d map”. You get a catalog of tools and what they do. There is nothing wrong with this format. In fact, it is a good reference. However, you don’t get any context when reading such books to take action and build something. It is like learning what is a hammer, nail and screwdriver does but these tools are useless if no one shows you how to build a table using these tools.

I like to write my books by example, where I build an app and in the process explain the various tools I’m planning to use to build this app. Personally, I feel this is a better way of learning as it gives context.

I hope you enjoy this book.

What are we building in this book?
We will be building a web mapping application from scratch. For tourists, we are building an app that helps users locate landmarks. The app shows the landmarks in a map such as libraries, cafes, restaurants schools and much more. It has a search capability to search for landmarks where they will be highlighted on the map. It also shows the nearby landmarks within specific miles from current location. So you can answer interesting questions such as show me all libraries within 100 feet of this coffee shop or are there any liquor stores within a mile from this school? I will be providing you with the sample data which I created myself, this data is not real it is just sample. All we need is to write the application. The app will run on both mobile and desktop.

Don’t worry if this seems like a lot. We will break down those functionalities into different chapters and slowly walk through each.

Who this book is written for?
Anyone interested in learning how to build a web mapping application. Basic programming knowledge is recommended but not required. I will explain all that is required as we go through the book.

System Requirements
I designed this book in a way so you don’t require a special or license to get started. I will be using a mac in this book but will include instructions for Windows and Linux. We will use ArcGIS Online free account to host our landmark data and ArcGIS Javascript API 4.x to write the web application. I will provide that data in GeoJSON format so we can upload it to ArcGIS Online.

Software Requirements
All you need on your machine is a text editor to write code and a web server to serve the static files. I will be using Node JS as a web server and Visual Studio Code as the text editor. We will take care of the download and installation of those two in chapter 1.

An all-in-one start up kit to author, manage, and administer ArcGIS geodatabases

About This Book

  • Covers the basics of building Geodatabases, using ArcGIS, from scratch
  • Model the Geodatabase to an optimal state using the various optimization techniques
  • Packed with real-world examples showcasing ArcGIS Geodatabase to build mapping applications in web, desktop, and mobile

Who This Book Is For

This book is aimed at geospatial developers who want to work with ArcGIS geodatabases as well as manage them. Having knowledge of building a geodatabase from scratch isn't a must; Learning ArcGIS Geodatabases is ideal for those who want to use ArcGIS geodatabase for the first time, or for those who want to migrate from their existing legacy database to a geodatabase.

What You Will Learn

  • Explore the benefits of geodatabases with practical illustrations
  • Work with geodatabase datasets covering feature classes, tables, relationship classes, coverage, and annotations
  • Model your geodatabase by creating a sturdy design that can sustain large edits and decrease maintenance
  • Discover various tools to optimize queries and response time, which will help you to fine-tune your geodatabase
  • Utilize Python scripting to author your geodatabase programmatically
  • Set up and configure a full-fledged networked enterprise geodatabase using ArcSDE technology
  • Add programming flavors to your geodatabase using Python

In Detail

ArcGIS is an industry standard for geospatial development and management. A geodatabase is the database used to store and manage the spatial data.
Learning ArcGIS Geodatabases offers a comprehensive working and practical experience for readers who are interested in knowing about ArcGIS. The initial chapters guide you through authoring geodatabases and creating a geodatabase schema and datasets. Then, the book focuses extensively on modeling and optimizing geodatabases.
Finally, you will be able to work comfortably with datasets, annotations, and relationship classes, making it easier to migrate from a legacy database to an ArcGIS geodatabase.


Administering ArcGIS for Server

Installing and configuring ArcGIS for Server to publish, optimize, and secure GIS services

About This Book

  • Configure ArcGIS for Server to achieve maximum performance and response time
  • Understand the product mechanics to build up good troubleshooting skills
  • Filled with practical exercises, examples, and code snippets to help facilitate your learning

Who This Book Is For

If you are a GIS user, analyst, DBA, or programmer with a basic knowledge of ESRI GIS, then this book is for you.

What You Will Learn

  • Design the architecture of ArcGIS for Server to meet your organization's requirements
  • Consume GIS services from multiple cross-platform endpoints including mobile and tablet for field users
  • Optimize ArcGIS for Server to make it run efficiently and effectively
  • Acquire troubleshooting skills by understanding how the technology mechanics work
  • Learn the concept of web services and the various types of GIS services available in ArcGIS for Server

In Detail

ArcGIS for Server is a new technology that has been developed to bring geographically-enabled information from multiple sources into one single platform and make it available for sharing services. Server supports many types of services, and the beauty of this technology is that it has an edge over other products, as the source of information can be directly plugged into Server without the need to change or migrate the existing infrastructure.
Administering ArcGIS for Server teaches you the mechanics of ArcGIS for Server, equipping you with the skills to not only install and configure Server, but to do it efficiently to achieve effective results. You will also learn how to plan, analyze, design, and finally publish and consume GIS services from various platforms including mobile and tablets.
We start by installing Server and authoring and consuming GIS services. We then move on to planning services before showing you how to optimize, secure, and debug them.
One of the hot topics in this book is the optimizing of GIS services, which will help you manage resources efficiently. You will also learn how to apply multiple security mechanisms on ArcGIS for Server and safely expose the services to the public in a secure manner.
Administering ArcGIS for Server will help you prepare a robust Server infrastructure for your organization.

ArcGIS By Example

Develop three engaging ArcGIS applications to address your real-world mapping scenarios

About This Book

  • Design, build and run ArcGIS applications using ArcObjects SDK
  • Extend ArcGIS objects and use add -ins to deploy applications on top of ArcGIS
  • An example-centric practical guide to help you understand mapping scenarios with ArcGIS

Who This Book Is For

If you are an application developer and wish to enhance your skills for the GIS domain with ArcGIS, then this book is for you. Previous experience with ArcGIS is not required.

What You Will Learn

  • Use essential ArcGIS code to query geodatabases
  • Communicate with ArcGIS maps, with the help of critical designing and optimization tips
  • Highlight and interact with objects on your map
  • Query ArcGIS geodatabases with related data to display your information on ArcGIS
  • Edit your underlying geodatabase
  • Explore strategies for the adaptation of various types of spatial analysis techniques into the GIS framework
  • Analyze tools for Geographical Information Systems and remote sensing
  • Experience ArcGIS's advanced tools for manipulation of shapefiles and geodatabases

In Detail

ArcGIS is a geographic information system (GIS) for working with maps and geographic information. It is considered the turnkey solution to creating and sharing interactive maps. ArcGIS is designed to work the way you work. With nothing to install and set up, ArcGIS helps you make your work productive from day one.
The book covers the design and development of three ArcGIS applications to guide the readers in crafting their own GIS solution as per their requirements. The book begins by giving you a refresher on the concepts of ArcGIS. Without wasting any time, you'll begin with developing your first ArcGIS application. You will be developing a cell tower analysis tool. Following this, you will be guided through mapping signal strength and real - time maneuvering in your GIS system. You will then move on to the second application of the book: a restaurant mapping system. The application will allow tourists to browse restaurants on a map, according to their preferences. Next, you will learn how to work with reviews and ratings and also cover some of the advanced searching options offered by ArcGIS. You will then make use of advanced ArcObjects to develop your third application: an excavation planning manager. The book will conclude by teaching you how work out excavation cost calculations and also saving and retrieving your excavation designs.

Style and approach

The book offers an enhanced way of learning ArcGIS, through the design and development of three applications throughout its length. In addition to this the book also covers features that you can add to your application as you develop each one covered in the book.

Building Web Applications with ArcGIS

Build an engaging GIS Web application from scratch using ArcGIS

About This Book

  • Learn how to design, build, and run high performance and interactive applications with the help of ArcGIS
  • Incorporate ArcGIS for Server services to allow end users to visualize, query, and edit GIS data using the ArcGIS JavaScript APIs
  • Step-by-step tutorial that teaches you how to design and customize a GIS web application from scratch

Who This Book Is For

If you are a GIS user or a web programmer, this book is for you. This book is also intended for all those who have basic web development knowledge with no prior experience of ArcGIS and are keen on venturing into the world of ArcGIS technology. The book will equip you with the skills to comfortably start your own ArcGIS web development project.

What You Will Learn

  • Script essential ArcGIS JavaScript code to consume with ArcGIS services
  • Edit ArcGIS services by adding new records, update existing ones and upload attachments
  • Consume GIS services from multiple cross-platform endpoints that include mobile and tablet for field users
  • Query ArcGIS services with related data and display the information on your website
  • Communicate with the services to query, retrieve, and display the results
  • Use the ArcGIS JavaScript API to communicate with ArcGIS Online as a backend database
  • Test your website on mobile devices

In Detail

ArcGIS allows users to create rich maps and applications that interact with services hosted on ArcGIS for Server and ArcGIS Online. This book will help you to understand the ArcGIS JavaScript API in a fun way while building a real-life project.
This book revolves around a fictional project called Bestaurants. The journey starts with a description of the project requirements before moving on to designing and sketching an interface of what the website will look like. Then, gradually with each chapter, you will add a single functionality until the full ArcGIS application is completed.
By the end of this book, you will have built an entire ArcGIS web application from scratch. An additional bonus appendix is included on how to build ArcGIS applications with ArcGIS Online–a new and extremely useful service offered by Esri.