Engineering is an incredibly diverse domain that comprises numerous sub-fields, each with its unique tools, techniques, and specialisation. It is a vast universe spanning the traditional realms of mechanical, civil, and electrical engineering, while simultaneously stretching into the modern disciplines of computer, biomedical, environmental engineering, and beyond. Yet, despite the
In July 1969, humanity achieved one of its most audacious technological feats - landing men on the moon. Powering this achievement was a piece of engineering brilliance known as the Apollo Guidance Computer (AGC), a system responsible for navigating the vast expanse of space to our celestial neighbour and back.
Hey friends, as software engineers, our field is constantly evolving, demanding that we stay updated with the latest concepts and approaches. One powerful concept that transcends boundaries and can significantly enhance our problem-solving abilities is abstraction - simplifying complex ideas, systems, or objects by focusing on the essential aspects while
In the vast and fast-paced field of software engineering, constant change is the only constant. New tools, technologies, and methodologies are continuously sprouting up, and every year brings an avalanche of change that could easily overwhelm even the most diligent and studious engineer. With the bewildering speed of change, it's
Hey Friends, I am putting together my thoughts on dependency injection and curating my study of it as a software engineering pattern. I am assuming you, as the reader have significant experience with working with Dependency injection implementation in a real world scenario. Software engineering is a dynamic field, with
The entire universe is a distributed system. But in software engineering we are interested in a minute subset of distributed systems and how to observe and control them to make our lives easier and often to make money and drive economy. Observability, in this context, is about gathering the necessary
Hey friends, I find that it is easy to get trapped in conformity biases with certain principles and opinions. I think it helps inverting these long standing principles on their heads and come to your own conclusions. Here are a few common software engineering principles and contrarian views on them.
I am collecting and curating resources covering Internationalisation and Localisation of software systems. Localisation is a complex topic and has a lot of moving parts to get right. This is a live article which I intend to add to and refine over time. Learn Internationalization from W3C Learn i18nResources of
Have you ever wanted your app to behave differently on single-clicking and double-clicking? Sounds like an easy one to implement right? Wrong! The issue is that the browser also interprets a double click as two single clicks and causes BOTH your event handlers to fire causing bloodshed and destruction 😭 We
Sometimes we’d like to split third-party external styles or legacy styles into a separate CSS bundle on building our angular application. This can be done quite easily. Keep reading to know more. Including External Styles As commonly known, we can include any external styles in our angular application by
One of TypeScript’s primary design goals [https://github.com/microsoft/TypeScript/wiki/TypeScript-Design-Goals] is to “Statically identify constructs that are likely to be errors.” While TypeScript introduces type safety which eliminates a plethora of bugs at compile-time, it also gives us the power to override the compiler’s type
Angular comes with great built-in support for configuring multiple environments. But sometimes we want to simply pass in environment variables through the command line to toggle certain runtime features. This can be a pain using environment.ts files as we need to create a new environment.ts file for every