We develop custom full stack apps.
Our approach is agile and collaborative.
OKAYA keeps you on the right side of innovation.
Web Apps / Mobile
It is necessary for thriving businesses to utilize reliable, efficient, scalable and secure IT systems. With the proliferation of mobile devices in this modern era, one must consider building mobile alongside traditional and legacy applications. Our process generally has 3 phases:
1.) Planning: This phase is very crucial as it involves the most important stakeholders of the project
(i.e. the customer and the end user). Planning includes idea generation, defining functional requirement, deciding platform, and design prototyping. We use modern programming languages
(e.g. Scala, Golang, and Kotlin).
2.) Development: After thorough review, actual development starts when prototypes of design are finalized with slight modifications. Programmers and testers follow a roadmap to complete the product build. We use effective development practices and methodologies depending on the nature of the product such as Agile, Rapid, Extreme Programming, and Continuous Integration.
3.) Deployment & Maintenance: Once the product has passed rigorous quality testing and customer beta testing, the application is deployed in the production environment using deployment tools like Bamboo, Jenkins, and Chef. Our maintenance team continually monitors and proactively handles any remaining production issues to keep systems up and running efficiently.
Database / Data Warehouse
An organized collection of data is stored in software that interact with users and applications to capture and analyze data. Database Management Systems (DBMS) provide various functions which can be classified into four main groups:
1.) Data definition: Creation, modification and removal of definitions that define the organization of the data.
2.) Update: Insertion, modification, and deletion of the actual data.
3.) Retrieval: Providing information in a form directly usable or for further processing by other applications. The retrieved data may be made available in a form basically the same as it is stored in the database or in a new form obtained by altering or combining existing data from the database.
4.) Administration: Registering and monitoring users, enforcing data security, monitoring performance, maintaining data integrity, dealing with concurrency control, and recovering information that has been corrupted by some event such as an unexpected system failure.
Relational Database Management Systems (RDBMS) were heavily used in 80s and 90s, with Oracle and Microsoft SQL Server as popular platforms. However, the system response time becomes slow when you use RDBMS for massive volumes of data. To resolve this problem, we could "scale up" our systems by upgrading our existing hardware, but this process is expensive.
The alternative is using NoSQL databases to distribute database load on multiple hosts whenever the load increases. This method, known as "scaling out," has been popularized by Internet giants like Google, Facebook, and Amazon who deal with huge volumes of data.
Features of NoSQL:
3.) Simple API
Examples of NoSQL Databases:
Key Value Pair Based: Redis, Dynamo, Riak
Column-based: HBase, Cassandra, HBase, Hypertable
Document-Oriented: Amazon SimpleDB, CouchDB, MongoDB
Graph-Based: Neo4J, Infinite Graph, OrientDB, FlockDB
With the increasing amount of data and need for analysis of this large and complex storage, most of the companies are moving towards data warehousing. Being a permanent storage, decades of empirical data can be leveraged to take informed business decisions. This data has to be moved from different source of database systems like applications, ERP and CRM systems, independent files and other sources. There is a further division of data warehouse which happens into ETL and Business Intelligence.
ETL Process: It is the actual process which is employed from moving the data to the warehouse system. Business requirement of how to move the data is considered when moving the data. The most popular tools which are used these days are: Informatica PowerCenter, IBM InfoSphere Information Server, Microsoft SQL Server Integration Services (SSIS), SAP Business Objects Data Services (BODS) etc.
Business Intelligence: Business intelligence tools are all about helping you understand trends and deriving insights from your data so that you can make tactical and strategic business decisions. These tools are used to pulled reports from the Data warehouse. The complex data is present in such a simple and elaborative manner that it becomes easier to take help of these reports in taking business decisions. Some popular tools are: SAP Business Intelligence, MicroStrategy, SAS Business Intelligence, TIBCO Spotfire, Microsoft Power BI, Tableau, Oracle BI, QlikView etc.
Cloud Computing: Cloud computing is a general term for anything that involves delivering hosted services over the Internet. These services are broadly divided into three categories: Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) and Software-as-a-Service (SaaS). The name cloud computing was inspired by the cloud symbol that's often used to represent the Internet in flowcharts and diagrams.
Cloud computing characteristics and benefits
Self-service provisioning: End users can spin up compute resources for almost any type of workload on demand. This eliminates the traditional need for IT administrators to provision and manage compute resources.
Elasticity: Companies can scale up as computing needs increase and scale down again as demands decrease. This eliminates the need for massive investments in local infrastructure, which may or may not remain active.
Pay per use: Compute resources are measured at a granular level, enabling users to pay only for the resources and workloads they use.
Workload resilience: Cloud service providers often implement redundant resources to ensure resilient storage and to keep users' important workloads running -- often across multiple global regions.
Migration flexibility: Organizations can move certain workloads to or from the cloud -- or to different cloud platforms -- as desired or automatically for better cost savings or to use new services as they emerge.
Types of cloud computing services:
Although cloud computing has changed over time, it has been divided into three broad service categories: infrastructure as a service (IaaS), platform as a service (PaaS) and software as a service (SaaS).
AWS Lambda, Google Cloud Functions and Azure Functions are examples of serverless computing services.
IT Infrastructure: IT infrastructure refers to the composite hardware, software, network resources and services required for the existence, operation and management of an enterprise IT environment. It allows an organization to deliver IT solutions and services to its employees, partners and/or customers and is usually internal to an organization and deployed within owned facilities.
IT infrastructure consists of all components that somehow play a role in overall IT and IT-enabled operations. It can be used for internal business operations or developing customer IT or business solutions.
Typically, a standard IT infrastructure consists of the following components:
Hardware: Servers, computers, data centers, switches, hubs and routers, and other equipment
Software: Enterprise resource planning (ERP), customer relationship management (CRM), productivity applications and more
Network: Network enablement, internet connectivity, firewall and security
Meatware: Human users, such as network administrators (NA), developers, designers and end users with access to any IT appliance or service are also part of an IT infrastructure, specifically with the advent of user-centric IT service development.
Devops: DevOps is a culture which promotes collaboration between Development and Operations Team to deploy code to production faster in an automated & repeatable way. The word 'DevOps' is a combination of two words 'development' and 'operations.' DevOps helps to increases an organization's speed to deliver applications and services. It allows organizations to serve their customers better and compete more strongly in the market.
In simple words, DevOps can be defined as an alignment of development and IT operations with better communication and collaboration.
DevOps allows Agile Development Teams to implement Continuous Integration and Continuous Delivery. This helps them to launch products faster into the market.
Other Important reasons are:
1. Predictability: DevOps offers significantly lower failure rate of new releases
2. Reproducibility: Version everything so that earlier version can be restored anytime.
3. Maintainability: Effortless process of recovery in the event of a new release crashing or disabling the current system.
4. Time to market: DevOps reduces the time to market up to 50% through streamlined software delivery. This is particularly the case for digital and mobile applications.
5. Greater Quality: DevOps helps the team to provide improved quality of application development as it incorporates infrastructure issues.
6. Reduced Risk: DevOps incorporates security aspects in the software delivery lifecycle. It helps in reduction of defects across the lifecycle.
7. Resiliency: The Operational state of the software system is more stable, secure, and changes are auditable.
8. Cost Efficiency: DevOps offers cost efficiency in the software development process which is always an aspiration of IT companies' management.
9. Breaks larger code base into small pieces: DevOps is based on the agile programming method. Therefore, it allows breaking larger code bases into smaller and manageable chunks.
DevOps Automation Tools
1.) Infrastructure Automation: Amazon Web Services (AWS)
2.) Configuration Management: Chef
3.) Deployment Automation: Jenkins
4.) Performance Management: App Dynamic
5.) Log Management: Splunk
6.) Monitoring: Nagios
UX / UI
One’s ability to interact with any application, whether it is traditional, web, or mobile, depends on how well the interface is designed. Ideally, the interface should have an easy learning curve and be simple to navigate. This allows the end user to focus on what truly matters, getting work done.
User Experience (UX):
1.) User Research: Users of the system have a purpose and goals when using the application or system. Thus, we study the characteristics and behaviors of the user base before prototyping the design.
2.) User Story: We create descriptions of the system’s features in human language, which helps us to accurately design the system around user requirements.
3.) Information Architecture: We organize and structure the content and functions to reduce the time and effort spent to perform various tasks in the application.
4.) Wireframe: This is a visual aide that represents the barebone framework of the application or website. Wireframes are developed by arranging interface elements to best achieve a particular purpose.
5.) Copywriting: Copywriting is an art of communication. We combine vocabulary with visual design to garner more attention of the audience.
6.) Testing & Prototyping: The draft version of the product is tested and modified in iteration until it fulfils the client and user needs.
User Interface (UI):
1.) Visual Design: Imagery, color, shapes, typography, and form are used to enhance usability and improve the user experience. Visual design as a field has grown out of both UI design and graphic design.
2.) Branding: We decide which graphic assets best suit the client’s aesthetic. Branding can be realized via a set of visual elements, primarily logos, brand colors, typography, graphic elements and templates.
3.) Layout, Color & Fonts: Visual elements are arranged on a page while considering organizational principles of composition to achieve specific communication objectives. Fonts and color account for more than 95% of user experience.
4.) Consistency: We adopt consistent and familiar patterns throughout in order to reduce the learning curve of the product.
Data Science / AI / ML
Data Science: It brings the analytical power and insights of the organization to a whole new level. Very large and complex data and information cannot be process without mathematical and statistical computing. This opens a horizon for the analyst team to figure out the data is the most creative and visualize manner. As companies across the spectrum turn their attention to building a data analytics strategy to remain competitive in a digitally-focused global environment, they’ll need an assortment of data science tools capable of slicing, dicing, and operationalizing enterprise data in myriad ways.
Data collection tools: GoSpotCheck, IBM Datacap, Mozenda, Octoparse, OnBase etc.
Data analysis tools: Alteryx, Domino Data Lab, KNIME, RapidMiner etc.
Data warehousing tools: Amazon Redshift, Google BigQuery, Microsoft Azure etc.
Data visualization tools: Google Fusion Tables, JReport, Microsoft Power BI, Qlik etc.
Machine Learning: Parsing data, learning from it, and then making predictions about your business is the purpose and promise of machine learning. Today’s machine learning tools use a variety of algorithms to represent, evaluate, and optimize your data to accurately interpret both generalizations and anomalies.
Here are some of the best machine learning tools available: Anaconda, Databricks, DataRobot, Feature Labs, H20.ai etc.
Artificial Intelligence: Artificial intelligence (AI) is the simulation of human intelligence processes by machines, especially computer systems. These processes include learning (the acquisition of information and rules for using the information), reasoning (using rules to reach approximate or definite conclusions) and self-correction. Applications of AI include expert systems, speech recognition and machine vision.
While AI tools present a range of new functionality for businesses, the use of artificial intelligence raises ethical questions. This is because deep learning algorithms, which underpin many of the most advanced AI tools, are only as smart as the data they are given in training. Because a human select what data should be used for training an AI program, the potential for human bias is inherent and must be monitored closely.
Some industry experts believe that the term artificial intelligence is too closely linked to popular culture, causing the general public to have unrealistic fears about artificial intelligence and improbable expectations about how it will change the workplace and life in general. Researchers and marketers hope the label augmented intelligence, which has a more neutral connotation, will help people understand that AI will simply improve products and services, not replace the humans that use them.
Because hardware, software and staffing costs for AI can be expensive, many vendors are including AI components in their standard offerings, as well as access to Artificial Intelligence as a Service (AIaaS) platforms. AI as a Service allows individuals and companies to experiment with AI for various business purposes and sample multiple platforms before making a commitment. Popular AI cloud offerings include Amazon AI services, IBM Watson Assistant, Microsoft Cognitive Services and Google AI services.
Big Data / Analytics
Big Data: It is a phrase used to mean a massive volume of both structured and unstructured data that is so large it is difficult to process using traditional database and software techniques. In most enterprise scenarios the volume of data is too big, or it moves too fast or it exceeds current processing capacity. Today almost every organization extensively uses big data to achieve the competitive edge in the market.
Open source big data tools for big data processing and analysis are the most useful choice of organizations considering the cost and other benefits.
Hadoop is the top open source project and the big data bandwagon roller in the industry. However, it is not the end! There are plenty of other vendors who follow the open source path of Hadoop.