I am a software engineer by profession and my current work involves designing and developing web based applications that incorporate geographic information systems (GIS in short). In general, I am interested in designing and developing analytical applications and software development practices.
Since my current interests center around GIS here is a very brief introduction. A GIS refers to an overarching technology involving hardware, software, networks, databases, people and processes that can be used for decision making centered around locations. As can be imagined, such decision making is applicable in a wide variety of areas. Examples are public health, emergency management, military, energy, telecommunications. Hence GIS, as a technology, is widely used in the aforementioned (and many other) domains. GIS applications are widely available in the desktop environments but web based GIS is a relatively newer concept. In such distributed environments, reconciling computationally-intensive GIS operations and providing meaningful and responsive user interfaces at the same time is one of the biggest challenges. The trick is to design systems that extract high levels of efficiency from every component of the distributed system and the communication protocols that interconnect those components.
I have to deal with a very widely used commercial solution in this sphere (ESRI) and have to use my other development experience in J2EE to come up with solutions to client needs. To this end I draw from my experience in various frameworks and APIs. I am also learning a lot of new frameworks and techniques that can potentially be more relevant to the various challenges faced in distributed GIS solution development.
I am also interested in software development methodologies. In most of my jobs I have had to establish a proper methodology that allows rapid software delivery consistent with client expectations and time lines. Establishing a method is not only dependent on technical support but also dependent on human interactions. My interest lies in finding the right mixture of the two that is relevant to the specific environment.
Another aspect of software development is the automation of the more repetitive aspects. Developing good automation support is an area which I find very interesting also. I use various scripting technologies like UNIX scripting (in a UNIX environment), Ant, Gant, Perl, etc to this end.
In this blog I intend to capture my experiences and knowledge as I develop different solutions. It is intended to be in journal format so that I can improve on my understanding as time passes. Comments and feedback are also most welcome, preferably in a nice way
.
Thanks for visiting.