User Interfaces

Ease-of-use is a critical feature for real systems with real users. The development of a high-quality user interface involves testing on actual users before full-scale deployment and then making refinements based on feedback from those users. GGA has extensive experience designing, developing, testing, and refining interfaces to meet demanding user requirements.

Architecture

At GGA, we have the deep understanding of the system architecture that is required for building large, robust systems. We design modular systems to reduce complexity and allow the reuse of system components. As part of this effort, we factor systems into appropriate APIs and libraries. In addition, we use existing standards and code bases whenever appropriate to increase interoperability and reduce development time. At the architecture level, we routinely consider scalability, evolvability, and performance requirements, while remaining fully aware of the dangers of premature optimization.

Application Servers

The world is moving rapidly toward web-based applications and away from desktop applications. This eliminates most per-user installation and maintenance costs but requires scalable, reliable, and secure servers. GGA offers expertise with a full range of application servers, including traditional CGI scripts, Java Server Pages (JSPs), and Enterprise Java Beans. We also have practical experience with several commercial application server products.

Algorithms

Scientific programs and sophisticated business applications are often based on mathematical algorithms that allow the programs to make the most efficient use of time and computing resources. GGA has the expertise to develop and implement algorithms from description. This important capability allows us to devise powerful solutions to the most complex programming problems. We also have the ability to design new algorithms if required.

Network Protocols

Building effective systems in a networked world requires expertise in the special considerations imposed by networks. Problems may occur at any time or point within a network. For that reason, network applications must be error-tolerant, and protocols must be designed to work in the face of delays, poor latency, high error rates, and unpredictable bandwidth. GGA has extensive experience working with standard network protocols, such as HTTP 1.1 and LDAP, and expertise in developing application-specific protocols if necessary.

Operating Systems

Operating systems control software access to computing resources. Familiarity with operating systems is essential for writing efficient software, particularly for applications that are I/O or disk intensive. GGA understands the idiosyncrasies of all the common modern operating systems, including the various Windows products, several different Unix products, MacOS, and PalmOS.