development

Be welcome to Not Made by a Human.

Be welcome to Not Made by a Human.

We are an indie tech company dedicated to delivering high-quality solutions, tools that feel like premium software but are 100% free and require no downloads.Since 2015, our mission has been to democratize programming by providing simple, secure, and efficient tools for developers of all skill levels. — Our Products (totally free) 1. HTML Tester (Build 75, 2025)A practical and straightforward tool for creating, testing, and debugging HTML code. Our simple yet feature-rich interface ensures precision and agility, with support for all JS libraries. It provides helpful data such as File Size, Characters, Tags, and direct access to colors from the…
Read More
Sufficient Software Tests Using Metrics

Sufficient Software Tests Using Metrics

The primary goal of software testing is to prevent bugs and defects from reaching end users. Effective testing ensures that the software is reliable, functional, and meets the specified requirements, enhancing user satisfaction. However, simply knowing how much of the code is executed (or covered) by tests is not enough. Testing metrics provide insight into how effective tests are, and whether the software system is tested sufficiently. The code coverage metric measures the percentage of code executed during testing but does not account for the quality of those tests. We need to have a combination of different metrics to evaluate…
Read More
Push Back on Whiteboard Tests

Push Back on Whiteboard Tests

With the rise of ghost jobs and startups' unrealistic expectations, it's time for Senior and Mid-Level Devs to push back on whiteboard tests. Whiteboard Tests Not Suitable for Senior Devs If you are a Senior Dev, you probably have plenty of experience and plenty of projects that you worked on. Companies should have no excuse to keep on the circus of technical rounds at this point except maybe situational or behavioral assessments which is a different story. I've often been interviewed by companies, and every time I push back on whiteboard tests, I got either rejected or they look at…
Read More
You’re Doing Error-Handling Wrong!

You’re Doing Error-Handling Wrong!

You’re Doing Error-Handling Wrong: A Case for Predictable and Standardized Responses Introduction: An Opinionated Stance Error handling in JavaScript is a topic that evokes strong opinions, and I’m here to share mine: the traditional try-catch approach is clunky, inconvenient, and outdated. At Garmingo, where we built Garmingo Status — a SaaS solution for uptime and infrastructure monitoring—we’ve shifted away from try-catch blocks. Instead, we embraced a TypeScript-based approach that provides predictable, standardized responses for asynchronous operations. This article shares why we believe this paradigm is a game-changer for developer productivity and how it helped simplify our codebase. While it’s an…
Read More
AI-Based Vulnerability Scanning for Cloud Infrastructure

AI-Based Vulnerability Scanning for Cloud Infrastructure

AI-Based Vulnerability Scanning for Cloud Infrastructure: A New Era in Security The rapid adoption of cloud computing has brought about numerous advantages for organizations, including scalability, cost-efficiency, and increased agility. However, this shift has also introduced new security challenges, particularly regarding the identification and mitigation of vulnerabilities within complex and dynamic cloud environments. Traditional vulnerability scanning methods often struggle to keep pace with the evolving threat landscape and the ephemeral nature of cloud resources. This is where AI-based vulnerability scanning emerges as a crucial component of modern cloud security strategies. The Limitations of Traditional Vulnerability Scanning: Traditional vulnerability scanners typically…
Read More
LeetCode Meditations: Longest Increasing Subsequence

LeetCode Meditations: Longest Increasing Subsequence

The description for this problem simply states: Given an integer array nums, return the length of the longest strictly increasing subsequence. For example: Input: nums = [10, 9, 2, 5, 3, 7, 101, 18] Output: 4 Explanation: The longest increasing subsequence is [2, 3, 7, 101], therefore the length is 4. Enter fullscreen mode Exit fullscreen mode Or: Input: nums = [0, 1, 0, 3, 2, 3] Output: 4 Enter fullscreen mode Exit fullscreen mode Or: Input: nums = [7, 7, 7, 7, 7, 7, 7] Output: 1 Enter fullscreen mode Exit fullscreen mode Similar to the previous problem in…
Read More
Cracking the Code: How the MVVM with Bridge Pattern Saves a Messy Frontend UI (Part 2)

Cracking the Code: How the MVVM with Bridge Pattern Saves a Messy Frontend UI (Part 2)

Note: This is the second part of our series on the MVVM architecture in the frontend. If you haven’t read the first part yet, we highly recommend starting here. Bridge Pattern Coding Example In the first part of this series, we discussed how the Bridge Pattern can enhance the reusability and maintainability of UI components in a large-scale frontend application. While we focused primarily on the high-level design with uml class diagrams, the real challenge lies in its implementation. After all, even the best designs are merely theoretical without effective implementation. Example: A Reusable Button Component Let’s walk through a…
Read More
Email Marketing Trends to Watch in 2025

Email Marketing Trends to Watch in 2025

At the same time, email marketing remains one of the most crucial aspects of digital marketing; it continues to return fantastic investments against emerging technologies that keep changing the landscape. Moving into 2025, the future of emerging technology marketing trends in redefining brand and audience relationships is promising. This means marketers can rethink their strategies for better performance compared to that of competitors. Here are the email marketing trends to watch in 2025, with actionable insights to help you stay ahead: Hyper-personalization to Drive Relevance It replaces adding a first name in your emails, which was sufficient some years ago.…
Read More
Setting Up a Conda Environment for Your Python Projects

Setting Up a Conda Environment for Your Python Projects

When working on Python projects, it’s essential to create isolated environments to manage dependencies and avoid conflicts. This guide will help you install Anaconda, fix common issues, and set up a virtual environment for your projects. 1. Install Anaconda (in root terminal) First, install Anaconda by following this guide. Ensure that you have added Anaconda to your shell configuration (~/.zshrc or ~/.bashrc). After installation, verify by running: conda --version Enter fullscreen mode Exit fullscreen mode 2. Fix Conda Activation Errors If you encounter errors when running conda activate venv, such as permission issues, follow these steps to fix them: Adjust…
Read More
ML Pie chart

ML Pie chart

import boto3 import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import joblib import tempfile from sklearn.compose import ColumnTransformer from sklearn.preprocessing import OneHotEncoder, StandardScaler from sklearn.feature_selection import SelectKBest, f_classif from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, confusion_matrix # Define S3 details bucket_name="employee-data" file_key = 'inputfiles/employee_cleaned_data.csv' # Load dataset from S3 s3_client = boto3.client('s3') obj = s3_client.get_object(Bucket=bucket_name, Key=file_key) df = pd.read_csv(obj['Body']) # Data preprocessing df = df.drop(columns=['employee_id']) df['region'] = df['region'].str.extract('(d+)').astype(int) X = df.drop(columns=['turnover']) y = df['turnover'] # Column transformer preprocessor = ColumnTransformer( transformers=[ ('num', StandardScaler(), ['age', 'salary']), ('cat', OneHotEncoder(), ['department',…
Read More
No widgets found. Go to Widget page and add the widget in Offcanvas Sidebar Widget Area.