Over time core business logic of an application becomes tightly coupled with various libraries, frameworks and technologies making it harder to evolve and test. It becomes challenging for long lasting product that needs to keep up with changing customer needs and evolution of technology. Ports and Adapters Architecture (Alistair Cockburn), also known as Hexagonal and Plug-in architecture, can help by Continue reading
Tech companies are shifting more towards machine learning or AI-first strategy. What does that mean to them? What does that mean to us? Growing number of aging population and shrinking funding are putting enormous pressure to the overall healthcare system for keeping up with the desired quality of care with limited resources. Thus, there is an increasing focus on machine learning capabilities for just-in-time alerts to predict various future events so that undesirable incidents can be reduced by giving attention to the right people at the right time. This talk explores the underlying framework behind such capabilities, various strategies for a resilient system, and the role of a machine learning platform. Continue reading
The goal of a video analytics system or application is to generate insights from an observed video stream. In a video analytics system, a continuous stream of video frames is the input which might be originated from various sources, e.g., web cam, mobile camera, Kinect sensor, security camera, video file etc. The output could be one or more video frames per input frame or some data representing insights or perception of the observed scene. Depending on the application, the output video frames might be annotated. For instance, in a face detection application (typically available in cameras), detected faces are highlighted with rectangle; in an object detection system (surveillance applications), moving objects are highlighted and might be annotated with object class such as person, group, car etc. Continue reading
This is a minimalist software architecture reading list based on my current work context. Last updated on 5th August 2018. This list is deliberately kept short in the spirit of Pareto principle, a vital few resources (20%) having (80%) impact. Continue reading
Test Driven Development (TDD) and Behaviour Driven Development (BDD) are the most widely used technical practices in agile software development. These two automated testing approaches are not alternative to each other but complement each other by addressing software quality from a different angle.
To understand the unique strengths of these two practices, let’s think of the journey a user story that is ready for development and has the required acceptance criteria. The acceptance criteria of a story tells about the expected behaviours from customers’ perspective. Continue reading