I've been thinking about AI-generated tests and the friction around them. AI can generate a lot of tests, but figuring out which ones are "good" requires human review that doesn't scale. The reframe I keep coming back to is to stop judging them on quality and start thinking of them as tripwires. Their job isn't to validate correctness, it's to alert reviewers when something significant changed. If a PR trips them, look closely. If nothing trips, the change likely didn't touch core logic.
If that framing holds, you could use techniques like mutation testing to find gaps where code changes would go unnoticed, then generate tests targeting those gaps at scale. The bar shifts from "is this a good test" to "would this catch a change," which is much easier to clear with less review overhead and directly accelerates code reviews by telling reviewers where to focus. Still thinking through this but it feels like an interesting direction to explore.
How to safely connect cloud server to home GPU server
Unlock home GPU power for cloud workloads with Tailscale and Docker. I demo a simple architecture that tunnels requests to your local rig, skipping pricey cloud GPUs. All ports stay hidden, ensuring a tight, cost-effective environment.
DeepSeek-R1: A Peek Under the Hood
DeepSeek-R1 uses cost-effective Reinforcement Learning to unlock emergent reasoning. By rewarding correct, verifiable steps, it refines logic and answers—showcasing how systematic feedback can reduce data needs and boost performance. Here I discuss my understanding from research paper.
Using LLMs and Cursor to become a finisher
Struggling to finish side projects due to limited time? In my latest blog post, I share how I improved my productivity using AI tools like LLMs and Cursor IDE. Learn to refine specs, bootstrap code, and iterate effectively to rapidly build and deploy your projects—even with a busy schedule.
Managing Secrets in NixOS Home Manager with SOPS
Discover how to securely manage secrets in NixOS Home Manager using SOPS and sops-nix. Learn to set up Age encryption, create encrypted secret files, integrate SOPS with NixOS, and access secrets as environment variables. Perfect for maintaining secure, declarative NixOS configurations.
Run custom GGUF model on Ollama
Learn how to install a custom Hugging Face GGUF model using Ollama, enabling you to try out the latest LLM models locally. This guide covers downloading the model, creating a Modelfile, and setting up the model in Ollama and Open-WebUI.
Guide to extending OpenWebUI using Pipelines
Explore OpenWebUI's Pipelines: extend your self-hosted LLM interface. Learn to create custom pipelines, from filters to tools. Intercept LLM interactions, implement function-calling, and integrate new providers. Enhance AI workflows or build RAG systems with this guide to OpenWebUI's extensibility.
A beginners guide to fine tuning LLM using LoRA
Discover how to create a synthetic dataset, select the right metrics for evaluation, and fine-tune your model using LoRA for a narrow scenario. Plus, learn how to serve your model efficiently using LLaMa.cpp on Mac/Linux.
A guide to using Python with Supabase securely
Learn how to use Python with Supabase for web development for all your AI/LLM backend needs. Create a secure Python service that validates JWT tokens from Supabase and integrates with Next.js.
Suggestions for onboarding remote Software Engineers
Onboarding remote Software Engineers can be challenging. Here are some suggestions from my experience of onboarding multiple engineers remotely to make them become part of team.
Why I created a vaccine finder
I recently built findvaccinefor.me [https://findvaccinefor.me] which gets data from WA state sources such as vaccinelocator.doh.wa.gov [http://vaccinelocator.doh.wa.gov] and prepmod.doh.wa.
Debugging in Google Colab notebook
Introduction on debugging in Python Jupyter notebooks with examples in Google Colab using ipdb.
Fence your TypeScript, for saner project boundaries
Solve the problem of dependency creep and add boundaries to your TypeScript project to limit what is exported and imported from a package.
Using path aliases in React Native created with Expo and Typescript
Managing big apps have its own problems and one of them is managing imports. Typescript allows you to have path aliases which makes it easier to refer to modules. In this tutorial we will see how we can use path aliases in React Native app created using Expo and Typescript.
Securing MongoDB using Let's Encrypt certificate
I had to setup few instances of MongoDB in DigitalOcean [https://m.do.co/c/1fe978d3b5b4] but I also wanted to make them secure using TLS/SSL. One way would
Upgradeable smart contracts in Ethereum
Imagine a world where a software is maintaining millions of dollars worth of money, but there is an exploit which allows the hacker to take all that money away. Now
Libraries in Solidity for code reusability and testing it
What are Libraries in Solidity You might have heard of the DRY principle (don't repeat yourself). It is very essential in large programs to have the ability to
Leverage union types in Typescript to avoid invalid states
Typescript has a type system which provides more capabilities than the type system in C# and Java. The one that I found to be very useful is the union type
Creating object based on interface type in Typescript
Interface in Typescript is used to tell the compiler what the shape of the JS object should look like. It is a compile time construct hence it will not have
Setting up continuous integration for F# Suave app to Azure
Whenever I start a project I tend to have a continuous build and deployment pipeline setup as it makes the development and testing a lot more easier. In this tutorial
Deploying F# Suave web app to Azure using Flynn
I was playing around with F# and Suave to build a service and the first thing I usually do whenever I dive into a new language and web framework is
Use Wit.ai Natural Language Processing in Elixir for bots
When creating bots you have to converse with the users and maintain context of the conversation so you can understand the intent of the users, do the necessary actions and
Create messenger bots using Elixir and Microsoft bot framework
Microsoft recently released the bot framework [https://dev.botframework.com/] to create bots for various messaging platforms such as Slack, Facebook, Telegram etc. It provides a unified interface for all
Redux - Calling web service asynchronously
> The store in Redux should be synchronous and should not have any side effects. How can you then make service calls or do anything asynchronously? That is the question
Coding agents have a tendency to make all experiences be alike. Using them to push UX is more of something we should do as experimentation is now a lot cheaper. I love the idea of apps being much more extensible and customizable by the users.