Software Architecture, Frontend Technologies, Data Analytics, NLP and Photography, fascinates me.
Blog Posts
Three Layers of Thinking in Tech Interviews: What I Learned from Meeting Developers with 4 to 20+ Years of Experience
Developers' interview questions evolve with experience: early-career engineers focus on syntax and correctness, mid-career engineers prioritize architecture and maintainability, while senior engineers emphasize system design and strategic thinking.
Nov 18, 2025
Defensive Programming
Defensive programming enhances software robustness by anticipating problems and designing systems to handle unexpected situations. Key principles include validating inputs, failing early, minimizing assumptions, handling errors gracefully, and ensuring safe resource management. Techniques such as input sanitization, range checking, and unit testing are essential.
Oct 6, 2025
React.js
Node.js
Computer Science
Software Development
Input Validation and Security Implications in React Applications
Modern web applications built with React face significant security threats, making input validation essential for both user experience and security. Effective validation strategies include client-side, server-side, and hybrid approaches, employing techniques such as syntactic, semantic, boundary, and cross-field validation.
Oct 4, 2025
React.js
SVG and Accessibility
Ensuring accessibility in Scalable Vector Graphics (SVG) is vital for inclusive web experiences. Key practices include using
title and desc for text alternatives, applying ARIA roles and attributes, distinguishing between inline SVG and img embedding, hiding decorative SVGs from assistive technologies, and ensuring keyboard accessibility for interactive elements. Jul 30, 2025
SVG
Accessibility
The Fastest Way to Destroy a Dev Team?
Code reviews are essential for maintaining code quality and team morale. Toxic comments can demoralize developers and hinder progress, while constructive feedback fosters collaboration and innovation. Key strategies for effective code reviews include asking questions, explaining reasoning, and encouraging discussion.
Feb 11, 2025
Software Development
code review
JavsScript
Maintenance Cost of a Design System
Maintaining a
StencilJS-based design system incurs high costs due to integration challenges with popular frameworks, versioning issues, performance overhead, styling limitations, accessibility problems, poor debugging tools, and dependency on a niche ecosystem. Feb 5, 2025
Computer Science
Web Dev
Software Development
JavsScript
Promise chaining - Code Review
The Vue component implementation involves conditional rendering based on URL parameters and product validity, with a focus on error handling. Key issues include excessive promise chaining, tight coupling of conditions, and reliance on setTimeout for error management.
Oct 11, 2024
Node.js
JavsScript
vue
Exposing React App as Web Component - Microfrontend
The article discusses migrating a complex JSP application to a modern framework using Microfrontend architecture, allowing independent development of modules in React and Vue. It outlines the process of creating a React app with Vite, exposing it as a web component, and hosting it on an Express server.
May 7, 2024
React.js
Software Development
JavsScript
Why I like to do Pair Programming?
Pair programming enhances team cohesion, productivity, and code quality by fostering collaboration and shared understanding among developers. It reduces technical debt and the bus factor, while also allowing for the sharing of best practices and minimizing distractions.
Oct 5, 2023
Software Development
Thought Experiments
JavsScript
All about Information Architecture
Information architecture (IA) is crucial for organizing and structuring information in systems to enhance user comprehension and retrieval. It involves understanding user needs, content categorization through top-down and bottom-up approaches, and the importance of context.
Aug 28, 2023
Computer Science
Software Development
App Dev
Roadmap for frontend developer in 2023
Front-end development in 2023 requires proficiency in responsive design, JavaScript frameworks like React, TypeScript, CSS pre-processors, and accessibility standards. Essential skills include programming, system design, DevOps practices, and soft skills such as communication and problem-solving.
Mar 7, 2023
Software Development
React.js
Flipbox with Carousel plugin for EditorJS
A plugin for EditorJS allows users to add, edit, and delete text carousels with formatting options via an inline toolbar. Installation requires adding the plugin to the EditorJS configuration and using the provided npm command. The project is open-sourced for public use.
React.js
Software Development
Add or upgrade a user in WordPress to Administrator
To add or upgrade a user to Administrator in WordPress, use phpMyAdmin to insert the user into the wp_users table with required fields, ensuring the password is set to MD5. Then, update the wp_usermeta table to assign the user capabilities and level. Follow each step carefully to avoid errors and ensure successful access with the new admin user.
Dec 3, 2023
WordPress
Software Development
Insert Property at specific position in an Object
To insert a property and value at a specific position in a JavaScript object, use the
addToObject function. This function loops through the original object, adding the new property at the specified index while maintaining the order of existing properties. If no index is provided, the new property is added to the end of the object.Aug 27, 2023
JavsScript
Computer Science
Software Development
Fastest way to check if an object is empty
To check if an object is empty in JavaScript, the function
isObjectEmpty iterates through the object's properties. If any properties exist, it returns false; otherwise, it returns true. This method is one of the fastest ways to determine if an object is empty.Aug 27, 2023
Computer Science
React.js
JavsScript
GraphQL query parsing and validation?
The article explains the process of parsing and validating GraphQL queries, detailing steps such as lexing, parsing, and validation. It emphasizes the importance of understanding GraphQL grammar and the Abstract Syntax Tree (AST) in ensuring queries are syntactically correct and executable.
Aug 4, 2023
Computer Science
React.js
Software Development
Test Driven Development vs Behaviour Driven Development
Test Driven Development (TDD) focuses on testing implementation through unit tests, while Behaviour Driven Development (BDD) emphasizes testing system behavior via executable specifications. TDD is a developer-centric practice, whereas BDD involves collaboration among developers, users, and testers. Acceptance Test Driven Development (ATDD) is similar to BDD but focuses
Aug 1, 2023
Computer Science
Software Development
Projects
How does GraphQL work?
GraphQL is a flexible framework for data access that allows developers to specify exactly what data they need in a single request, avoiding over-fetching and under-fetching issues common in REST APIs. Key features include hierarchical queries, client-specified requests, strong typing, and introspection. It simplifies API versioning by allowing the addition of new types without …
Aug 1, 2023
Computer Science
Software Development
Web Dev
Projects
Difference between software architecture and software design
Software architecture serves as the high-level structure of a system, while software design focuses on the detailed specifications of individual components. The article explores the distinctions between these terms, emphasizing that architecture provides a broader perspective, whereas design addresses the specifics of module interactions and functionalities.
Aug 1, 2023
Computer Science
React.js
Personalisation vs Customisation
Personalisation and customisation differ in approach: personalisation automatically adjusts content based on user preferences, while customisation requires user intervention to modify their experience. Personalisation enhances user engagement and satisfaction but raises privacy concerns, whereas customisation allows users to tailor their experience but can be cumbersome.
Jul 6, 2023
AI
Python
Factory Design Pattern in Python
The Factory Method Design Pattern is a creational design pattern that abstracts object creation, allowing for the creation of different task types (Text, Audio, Video) without specifying their exact classes. It promotes loose coupling, easier testing, and extendability, while also adhering to the SOLID principles. However, it can lead to increased class complexity and reduced readability.
Apr 1, 2023
Computer Science
AI
JavsScript
Group Array of Objects by Key
The task involves grouping an array of objects by a specified key, with an example input of objects categorized by phases, steps, tasks, and values. The expected output organizes these objects into groups based on the task, demonstrating how to achieve this using a JavaScript function that utilizes the reduce method to accumulate results.
Apr 1, 2023
JavsScript
React.js
AI: Models, Algorithms and Applications
The author reflects on writing a chapter titled "Artificial Intelligence in Mental Health" for a book on AI applications, discussing the integration of AI in personalizing mental health treatments. The chapter reviews AI's role in screening and treating mental health issues, outlines economic and social implications, and identifies challenges and future research questions.
Oct 13, 2022
Computer Science
AI
Recovering deleted iPython Notebooks cells
After losing code in an iPython notebook due to a crash, the author explored various recovery methods without success. Ultimately, they discovered that using the command
%history -g -f anyfilename allowed them to save their iPython history to a file, successfully recovering their lost work.Jan 20, 2021
Python
AI
