About Truscable

  • Home
  • About Truscable

Truscable stands for Trustable, Usable and Scalable. The most important aspects of Product Engineering that come together to build the best in class software that is robust, scalable and loved by users.

Contact Us

Trustable

Trustability is a way to define multiple aspects that come together to make for a robust software. This encompasses a wide range of engineering aspects.

Security

Security considerations are crucial in both high-level design (HLD) and low-level design (LLD) stages of software development. Addressing security early in the design process helps build robust and secure systems. With an abundance of open source libraries, multiple clients such as mobile applications and different browsers, as well as the emergence of new threats, ensuring security in a system involves multiple facets of cyber security such as authentication, access control, session management, network security as well as handling code level vulnerabilities such as parameterised queries and threats from the use of third party open source libraries. Understanding the fundamentals of security related concepts is absolutely essential.

Reliability

Reliability is a term to describe correctness and integrity of a system. Rich large scale applications of today have multiple moving parts that have to work in tandem to produce a result. This often comprises of a distributed architecture, complex state management and multiple open source libraries for building and running the software. Ensuring that all of these pieces can work together reliably to achieve a desired outcome or handle gracefully the inevitable failures is what makes reliability so important.

Availability

Availability is an aspect that deals with system robustness at both low level (LLD) and high level (HLD) to ensure that a system does not go down in the event of a failure and critical functionality continues to be available. A thorough understanding of software engineering concepts is critical for this. This is done by applying principles of High Availability as well as good error handling in code and carefully evaluating each low level design to ensure robust handling of failures.

Usable

Usability is the aspect that deals with the design of effective User Interfaces. User Experience Design (UX Design) involves designing products with a primary focus on enhancing the overall experience and satisfaction of the users while also ensuring that the designs meet the primary business objectives.

Positive

Designing positive experiences for customers is very important. This includes not just the functional aspects. This includes not just accessibility, consistency and other functional aspects, but also aesthetics, effective error handling etc. A positive experience is inviting and makes it easier for an end user to spend a longer time on an application without getting fatigued.

Intuitive

Intuitive interfaces are the ones that allow a user to have a natural interaction with a product with as little need for guidance as possible. This involves creating user centred designs that provide a good organisation of information, feedback, error handling and other aspects that reduce the cognitive load on an end user.

Business Oriented

Business Oriented designs are designs that focus on the business objectives while also ensuring a positive and intuitive experience for the end users. It is essential to question what is it that a certain product or feature sets out to achieve and use this as an input to guide the navigation, information architecture and conversion related design.

A good design cannot be built in isolation but in close consultation with technical teams to determine the practical aspects of technical design and implementation. This can result in more effective designs and huge savings in costs by shifting left in the development lifecycle.

Scalable

Scalability refers to the ability of a system to scale up to meet the growing demands. Scalability broadly has three aspects.

High Level Design

High Level Design for a system should account for the potential growth in demand and whether the system architecture would be able to accommodate it. This involves choice of databases, other underlying technologies and how they would work together to solve a large problem.

Low Level Design

Low Level Design for a system should account for the potential changes in functionality as a result of the evolution. An effective low level design ensures good data modelling, API’s, modularisation as well as other aspects commonly known as Design Principles and Patterns.

Logging and Monitoring

Logging and Monitoring involves application of best practices and tools that make quick error detection and recovery possible. For large scale and distributed systems, this is a must have.

Mohammad Azhar

(Founder & Senior Tech Architect)

With more than 18 years of experience across multiple industries and technology stacks, Mohammad Azhar has seen the technology industry evolve over a couple of decades. He has vast experience across multiple technologies and has worked for both early stage startups as well as large enterprises building large scale products from the ground up.