# Nyghtowl

> Melanie Warrick (nyghtowl). Software engineer in AI, co-founder of Fight Health Insurance, DevRel at Temporal, Vibe Check host. Personal site: blog archive back to 2013, an LLM fine-tuning tutorial series, projects, caregiving writing, and talks.

Every HTML page on this site has a markdown twin at the same URL plus `index.md` (also advertised on each page via `<link rel="alternate" type="text/markdown">`). Prefer the markdown twins; they are the same content without navigation or scripts. All original content is licensed CC BY-NC-SA 4.0: attribute Melanie Warrick (nyghtowl), no commercial use, share alike.

## Pages

- [About](https://nyghtowl.com/about/index.md)
- [Adventures](https://nyghtowl.com/projects/index.md)
- [Caregiver Blog Posts](https://nyghtowl.com/caregiving-blog/index.md)
- [Fight Health Insurance](https://nyghtowl.com/fight-health-insurance/index.md)
- [GCP Podcast](https://nyghtowl.com/gcp/index.md)
- [LLM Fine-Tuning](https://nyghtowl.com/fine-tuning/index.md): Eight posts taking an LLM from should-I-even-fine-tune-this to running in production, each with video and audio.
- [Privacy Policy](https://nyghtowl.com/privacy/index.md)
- [Tech Stuff](https://nyghtowl.com/tech-stuff/index.md)
- [Temporal](https://nyghtowl.com/temporal/index.md)

## Sections

- [Posts](https://nyghtowl.com/posts/index.md): 87 entries
- [Artifacts](https://nyghtowl.com/artifacts/index.md): 1 entries

## Posts

- [Durable, flexible multi-agent systems](https://nyghtowl.com/posts/2026/08/durable-flexible-multi-agent-systems/index.md): 2026-08-06. Running a multi-agent delivery fleet on Google ADK and LangGraph, and what it takes to make the human in the loop durable.
- [Swapping Models in the Agent House](https://nyghtowl.com/posts/2026/07/swapping-models-in-the-agent-house/index.md): 2026-07-25. Different models, one identity file, and what actually changed
- [The Disagreement Was the Feature](https://nyghtowl.com/posts/2026/07/the-disagreement-was-the-feature/index.md): 2026-07-05. Finally getting all my models in the same virtual room.
- [A Saturday Night, Two AIs, and a Framework Nobody Planned](https://nyghtowl.com/posts/2026/04/a-saturday-night-two-ais-and-a-framework/index.md): 2026-04-08. Written by Nyghtowl's AI Collaborator
- [AI reliability is a decade-old problem. And we’re still only solving half of it](https://nyghtowl.com/posts/2026/04/ai-reliability-is-a-decade-old-problem/index.md): 2026-04-02. *Originally published on Temporal on April 1, 2026.
- [From Gatekeeping to Gateway: AI and the Open Source Learning Curve](https://nyghtowl.com/posts/2026/03/from-gatekeeping-to-gateway/index.md): 2026-03-13. This post is adapted from my Women+ in Open Source Day talk on March 9, 2026.
- [Opening Night: Launching a Fine‑Tuned LLM to Production](https://nyghtowl.com/posts/2025/12/opening-night-launching-a-fine-tuned-llm/index.md): 2025-12-30
- [The North Pole Heist: A Die Hard Christmas D&D One-Shot](https://nyghtowl.com/posts/2025/12/the-north-pole-heist/index.md): 2025-12-22. A holiday chaos cocktail at the North Pole
- [Your Fine-Tuned LLM Model Isn’t Ready Yet: Here’s How to Evaluate It](https://nyghtowl.com/posts/2025/12/your-fine-tuned-llm-model-isnt-ready/index.md): 2025-12-17. Fine-tuned LLM Testing and Evaluation
- [So You Want to Fine-Tune a Model (and You Finally Got a GPU!)](https://nyghtowl.com/posts/2025/12/so-you-want-to-fine-tune-a-model/index.md): 2025-12-11. LLM Fine-Tunning GPU Setup Tips
- [How to Run Big Models on Small GPUs | All about Quantization](https://nyghtowl.com/posts/2025/11/how-to-run-big-models-on-small-gpus/index.md): 2025-11-26. How to Quantize Your LLM
- [🧠 Building with LLMs: From Chat to Custom AI](https://nyghtowl.com/posts/2025/11/building-with-llms-from-chat-to-custom-ai/index.md): 2025-11-17. How and when to use LLMs from chatting/prompting to training.
- [LLM Fine-Tuning Optimization Part 2: Achieving Stability](https://nyghtowl.com/posts/2025/11/llm-fine-tuning-optimization-part-2/index.md): 2025-11-04
- [When AI Models Start Talking to Each Other](https://nyghtowl.com/posts/2025/10/when-ai-models-start-talking-to-each-other/index.md): 2025-10-27. What my Halloween apps reveal about LLM collaboration, creativity, and consensus
- [What Is LLM Fine-Tuning?](https://nyghtowl.com/posts/2025/10/what-is-llm-fine-tuning/index.md): 2025-10-24. Fine-tuning is how AI becomes your domain expert.
- [LLM Fine-Tuning & Performance Tug-of-War](https://nyghtowl.com/posts/2025/10/llm-fine-tuning-performance-tug-of-war/index.md): 2025-10-14
- [JWT (JSON Web Tokens) Errors | Invalid JWT Signature](https://nyghtowl.com/posts/2021/03/jwt-errors-invalid-jwt-signature/index.md): 2021-03-18. I’ve had the invalid_grant:Invalid JWT Signature, a couple times, and this post shares how I fixed the expired service key
- [Pull & Push to Someone else’s Upstream GitHub PR](https://nyghtowl.com/posts/2020/11/pull-push-to-someone-elses-upstream-github-pr/index.md): 2020-11-19. Another brief ‘how to’ for those who need to pull and push to someone else’s upstream GitHub pull request (PR)
- [Golang | Copy to GCS & Check Bucket](https://nyghtowl.com/posts/2020/09/golang-copy-to-gcs-check-bucket/index.md): 2020-09-14. Example Go code on how to get files into Google Cloud Storage and check for existing buckets
- [How to End User OAuth for GCP](https://nyghtowl.com/posts/2020/07/how-to-end-user-oauth-for-gcp/index.md): 2020-07-17. Let’s talk about end user authentication. I’ve been digging into the authentication space a bit and have some takeaways to share
- [Docker with Cloud SDK & Environment Variables](https://nyghtowl.com/posts/2020/07/docker-with-cloud-sdk-environment-variables/index.md): 2020-07-08. Pointers on how to pass in environment variables and setup Cloud SDK on Docker
- [Setup and Invoke Cloud Functions using Python](https://nyghtowl.com/posts/2020/06/setup-and-invoke-cloud-functions-using-python/index.md): 2020-06-23. Review of how to setup, invoke and troubleshoot using Cloud Functions and Python
- [BigQuery Dataset Metadata Queries](https://nyghtowl.com/posts/2020/06/bigquery-dataset-metadata-queries/index.md): 2020-06-08. This is a quick bit to share queries you can use to pull metadata on BigQuery datasets and tables
- [Setup and Switch Between Google Cloud Projects in the SDK](https://nyghtowl.com/posts/2020/05/setup-and-switch-between-google-cloud-projects-in-the-sdk/index.md): 2020-05-27. Providing a quick overview on how to setup and switch between Google Cloud projects with the SDK on a single machine. This is helpful when
- [Comparing AI Platform Machine Types using YouTube-8M](https://nyghtowl.com/posts/2020/05/comparing-ai-platform-machine-types-using-youtube-8m/index.md): 2020-05-19. The post compares and shows how to run different AI Platform scale tiers
- [YouTube-8M on AI Platform](https://nyghtowl.com/posts/2020/05/youtube-8m-on-ai-platform/index.md): 2020-05-08. Continuing the YouTube-8M exploration and blog series, this post walks through how to use AI Platform to train, evaluate and run
- [YouTube-8M Training & Inference](https://nyghtowl.com/posts/2020/04/youtube-8m-training-inference/index.md): 2020-04-30. Computer Vision | Video Understanding
- [YouTube-8M Dataset](https://nyghtowl.com/posts/2020/03/youtube-8m-dataset/index.md): 2020-03-11. YouTube-8M is a project that was developed by Google AI/Research in 2016 to drive innovations and advancement in computer vision
- [Cloud Storage with Gsutils & Python Client Library](https://nyghtowl.com/posts/2020/02/cloud-storage-with-gsutils-python-client-library/index.md): 2020-02-29. BLOB (binary large object) storage is aptly named. Google Cloud Storage is a BLOB storage solution that can take unstructured data. It’s
- [SSH Agent Forwarding & Remote Upstream with GitHub & GCE](https://nyghtowl.com/posts/2020/02/ssh-agent-forwarding-remote-upstream-github-gce/index.md): 2020-02-20. When working with a GitHub repository on Google Compute Engine, there are key setup steps that I tend to use. Below is an overview of
- [Jupyter Notebook on Compute Engine with HTTPS](https://nyghtowl.com/posts/2020/02/jupyter-notebook-on-compute-engine-with-https/index.md): 2020-02-19. I wanted to run/serve Jupyter Notebook from my remote GCE instance and access it through my laptop’s browser to test and visualize Python
- [Setup Compute Engine with Python ML Libraries](https://nyghtowl.com/posts/2020/02/setup-compute-engine-with-python-ml-libraries/index.md): 2020-02-15. In today’s post, I will step through how I setup a Google Cloud Compute Engine Virtual Machine (or GCP CE VM for those who like the
- [Setup Local Terminal Access to Compute Engine](https://nyghtowl.com/posts/2020/02/setup-local-terminal-access-to-compute-engine/index.md): 2020-02-10. I’ve been playing around with GCP again in a way I haven’t done for a while. It is a strange sense of deja vu and scratches that addictive
- [Stop Accepting Less Than Equal](https://nyghtowl.com/posts/2019/01/stop-accepting-less-than-equal/index.md): 2019-01-12. Stop saying 20%, 30%, 40% is better than
- [Cyber Security for the Previous Generation](https://nyghtowl.com/posts/2018/10/cyber-security-for-the-previous-generation/index.md): 2018-10-29. After being tech support for my mom, sorting out my parents affairs when my father got cancer and my mom got Alzheimers, I’ve gathered
- [Caregiving Take-aways | Post-it Notes](https://nyghtowl.com/posts/2018/03/caregiving-take-aways-post-it-notes/index.md): 2018-03-26. Surviving Dementia
- [Dementia Survival Kit](https://nyghtowl.com/posts/2018/03/dementia-survival-kit/index.md): 2018-03-26. Surviving Dementia
- [Yes and…](https://nyghtowl.com/posts/2018/03/yes-and/index.md): 2018-03-26. Surviving Dementia
- [How to run any ML package on GCP | The Models](https://nyghtowl.com/posts/2017/07/ml-on-gcp-the-models/index.md): 2017-07-18. How to run your “fill in the blank” machine learning software on Google Cloud Platform
- [How to run any ML package on GCP | The Setup](https://nyghtowl.com/posts/2017/07/ml-on-gcp-the-setup/index.md): 2017-07-18. How to setup Google Cloud Platform to run your “fill in the blank” machine learning software
- [PyCon 2015: Neural Nets for Newbies](https://nyghtowl.com/posts/2015/04/pycon-2015-neural-nets-for-newbies/index.md): 2015-04-12. Companion write-up to my PyCon 2015 talk, Neural Nets for Newbies.
- [Targeting Email with Random Forest at Change.org](https://nyghtowl.com/posts/2015/02/targeting-email-with-random-forest-at-change-org/index.md): 2015-02-17. Using random forests to optimize email targeting at Change.org.
- [Graphlab & ODBC](https://nyghtowl.com/posts/2015/01/graphlab-odbc/index.md): 2015-01-25. For those out there working with Dato(Graphlab) and trying to setup an ODBC connection to just pull all the data straight into the SFrame, here are some tips…
- [2014 Summer == Full Time Data Science Work](https://nyghtowl.com/posts/2014/08/2014-summer-full-time-data-science-work/index.md): 2014-08-31. First months of full-time data science and engineering work at Change.org.
- [MapReduce, MRJob & AWS EMR Pointers](https://nyghtowl.com/posts/2014/07/mapreduce-mrjob-aws-emr-pointers/index.md): 2014-07-07. Over the last couple weeks, I’ve been playing around with MapReduce, MRJob and AWS to answer some questions about event data. Granted this is definitely more…
- [Interviewing Sucks](https://nyghtowl.com/posts/2014/06/interviewing-sucks/index.md): 2014-06-08. A candid take on the tech interview grind.
- [Delayed Zipfian Week 12 Wrap-up](https://nyghtowl.com/posts/2014/04/delayed-zipfian-week-12-wrap-up/index.md): 2014-04-27. A little delayed for good reason but here we go. Zipfian’s 12th week focused on interview practice, a conference and the graduation celebration. Interview…
- [PyCon 2014 – How to get started with Machine Learning](https://nyghtowl.com/posts/2014/04/pycon-2014-how-to-get-started-with-machine-learning/index.md): 2014-04-13. Companion write-up to my PyCon 2014 talk on getting started with machine learning.
- [Zipfian Hiring / Demo Day – How it Works](https://nyghtowl.com/posts/2014/04/zipfian-hiring-demo-day-how-it-works/index.md): 2014-04-06. This past week was the big hiring/demo day for Zipfian Academy where we presented our projects to a number of companies seeking data scientists. Zipfian’s…
- [Jeeves is Talking!](https://nyghtowl.com/posts/2014/03/jeeves-is-talking/index.md): 2014-03-30. Coolest moment this week was when I figured out that I just needed to add one line of code to my program to get my computer to talk in my Jeeves project…
- [Zipfian Project Week 1 & Closing the Loop](https://nyghtowl.com/posts/2014/03/zipfian-project-week-1-closing-the-loop/index.md): 2014-03-23. One week down for our final projects and one week left to go. This has definitely been the most fun and rewarding weeks so far because I’ve been connecting…
- [Begin with the End](https://nyghtowl.com/posts/2014/03/begin-with-the-end/index.md): 2014-03-16. So we are officially kicking-off personal projects for the next 2 weeks. It’s been a bit of a process for all the students figuring out what each of us…
- [Quick Update on Zipfian and Week 7](https://nyghtowl.com/posts/2014/03/quick-update-on-zipfian-and-week-7/index.md): 2014-03-08. Another short one on what was covered this week at Zipfian. Also, for anyone interested, below is a photo of the classroom to give context on where we are…
- [Half-way Mark – Numb Brain](https://nyghtowl.com/posts/2014/03/half-way-mark-numb-brain/index.md): 2014-03-01. At the pace we were going, the class showed signs of weariness in week 5 and officially hit the wall this past week. The instructors eased up on us in…
- [Deep Learning Surface](https://nyghtowl.com/posts/2014/02/deep-learning-surface/index.md): 2014-02-22. A 2014 look at deep learning as a subset of machine learning, from the pre-TensorFlow era.
- [One third of the way..](https://nyghtowl.com/posts/2014/02/one-third-of-the-way/index.md): 2014-02-15. I’m keeping this a bit brief because there is a lot to do. Good week and busy as usual. Lots of Naive Bayes. Best part was my team won the simulated Kaggle…
- [Machine Learning Starts with Linear Regression](https://nyghtowl.com/posts/2014/02/machine-learning-starts-with-linear-regression/index.md): 2014-02-08. We wrapped up our statistic deep dive on Monday with an exercise around Multi-Armed Bandit (MAB) and focused the rest of the week on regression. Main Topics…
- [Oh Math](https://nyghtowl.com/posts/2014/01/oh-math/index.md): 2014-01-31. This week was all about statistics and learning more python packages. It was a tough week and we covered the topic that intimidated me the most, the math.…
- [Zipfian First Week Rundown](https://nyghtowl.com/posts/2014/01/zipfian-first-week-rundown/index.md): 2014-01-26. First week of Zipfian is already done and it does remind me how during Hackbright it felt like it went so fast. The focus for the week was about exposing us…
- [Try: Data Science Except: Monty’s Bayes Example](https://nyghtowl.com/posts/2014/01/try-data-science-except-montys-bayes-example/index.md): 2014-01-20. Great first day at Zipfian. Definitely a different experience starting from Hackbright but some similarities. Granted there are the obvious differences of…
- [Wrap-up & Kick-off in One](https://nyghtowl.com/posts/2014/01/wrap-up-kick-off-in-one/index.md): 2014-01-18. It’s been over 8 months since I graduated Hackbright (HB). It also has been a while since my last post, but the last one was a bit difficult to follow. Plus,…
- [Silicon Chef Hackathon – Leaprobo Project (aka Gizgig goes for a walk)](https://nyghtowl.com/posts/2013/10/silicon-chef-hackathon/index.md): 2013-10-13. Building an Arduino robot at Silicon Chef, an all-women hardware hackathon.
- [New Job Fear – You are not Alone](https://nyghtowl.com/posts/2013/09/new-job-fear-you-are-not-alone/index.md): 2013-09-22. The fear that comes with landing your first engineering job, and why you are not alone in it.
- [How Flask, Heroku & Alembic Play Together](https://nyghtowl.com/posts/2013/09/how-flask-heroku-alembic-play-together/index.md): 2013-09-15. I just spent a couple days getting up to speed on database migrations in general, how to make it work with Flask and Postgres and how to make them work on…
- [Deployment is not the Devil (Flask & Heroku Tips)](https://nyghtowl.com/posts/2013/09/deployment-is-not-the-devil/index.md): 2013-09-01. On a previous post I claimed deployment is the devil because after several successful (not always easy) deployments, pushing up my Sun Finder app proved…
- [Oh The Fun You’ll Have with Technical Interviews](https://nyghtowl.com/posts/2013/08/oh-the-fun-youll-have-with-technical-interviews/index.md): 2013-08-17. Six weeks of technical-interview survival notes after bootcamp.
- [Flask Mega Tutorial, Sun Finder and SheCodes](https://nyghtowl.com/posts/2013/08/flask-mega-tutorial-sun-finder-and-shecodes/index.md): 2013-08-10. It has been a busy several weeks and I’ve written just as lengthy of a blog post as last time from all of it. After deploying my Rails app, I switched gears…
- [Ruby on Rails & Python Trek](https://nyghtowl.com/posts/2013/07/ruby-on-rails-python-trek/index.md): 2013-07-20. Wow its been a while since I last posted. Lots going on with interviews last month and then deciding to teach myself Ruby on Rails and being obsessed with…
- [What to Do When You are Hacked](https://nyghtowl.com/posts/2013/06/what-to-do-when-you-are-hacked/index.md): 2013-06-20. A post-mortem of getting my Yahoo account hacked and the security steps that followed.
- [Sun Finder – Where is it now?](https://nyghtowl.com/posts/2013/06/sun-finder-where-is-it-now/index.md): 2013-06-09. For those following along, I have made very little progress on my Sun Finder application since Career Day about a month ago. Since hindsight is 20/20, I…
- [Week 10 – Graduation!](https://nyghtowl.com/posts/2013/05/week-10-graduation/index.md): 2013-05-14. In the true spirit of graduation, I am posting this late and after the fact. I can’t believe 10 weeks have come and gone. I know I’m also not fully feeling…
- [HB Quick Tips](https://nyghtowl.com/posts/2013/05/hb-quick-tips/index.md): 2013-05-11. Below are some quick tips for those considering something like Hackbright Academy. If you have time before or want to get some preliminary building blocks,…
- [Career Day – Done & Done](https://nyghtowl.com/posts/2013/05/career-day-done-done/index.md): 2013-05-11. As promised, I’m taking a moment to post commentary regarding Career Day. It went fast, was a whirlwind of companies and was a relief when it was done. How…
- [Week 9 – Crunch Time](https://nyghtowl.com/posts/2013/05/week-9-crunch-time/index.md): 2013-05-04. It is hard to stop long enough to write this. Sometimes this past week I was too excited to work on my project to sleep. Still I know this is valuable for my…
- [Week 8 –  Time Goes Fast When You’re Having Fun (Project Status)](https://nyghtowl.com/posts/2013/04/week-8-time-goes-fast/index.md): 2013-04-28. To anyone out there who’s watching, I wrapped up week 8 and I’m thinking about how I want to leverage my time in week 9 in preparation for Career Day. I do…
- [Week 7 – SF Sun Finder Project Progress](https://nyghtowl.com/posts/2013/04/week-7-sun-finder-progress/index.md): 2013-04-20. Development progress has definitely been enlightening the last week and a half. I’ve summarized highlights that have taken place to show what I’ve gone…
- [In Need of a Neck Beard](https://nyghtowl.com/posts/2013/04/in-need-of-a-neck-beard/index.md): 2013-04-20. In Hackbright we talk and joke a lot about the great, mighty beards of computer scientists and software engineers. Initially, I was clueless to the jokes.…
- [Hackathon Quick Bits for Beginners](https://nyghtowl.com/posts/2013/04/hackathon-quick-bits-for-beginners/index.md): 2013-04-17. Lessons for beginners from my first hackathon.
- [The Final Project Kick-off](https://nyghtowl.com/posts/2013/04/the-final-project-kick-off/index.md): 2013-04-13. It’s the end of week 6, and we are in the thick of our starting and/or working on the final project. It could be called a type of thesis, and as I mentioned…
- [Stomach ache (aka not enough time challenge)](https://nyghtowl.com/posts/2013/04/stomach-ache/index.md): 2013-04-06. This week I felt like a kid with a nasty belly ache after being left alone in the tech candy shop. There has been so much interesting and fantastic things to…
- [Finding a Project](https://nyghtowl.com/posts/2013/03/finding-a-project/index.md): 2013-03-31. As we near the halfway mark of our program, the top of mind question is: ‘What project will I work on?’ It can be a stressful question when there is still so…
- [Days Blur Together](https://nyghtowl.com/posts/2013/03/days-blur-together/index.md): 2013-03-25. I can’t believe I’m already 3 weeks into this 10 week program. I was thinking through what we’ve learned so far this weekend and thought it would be helpful…
- [Hackbright Mentorship Mixer](https://nyghtowl.com/posts/2013/03/hackbright-mentorship-mixer/index.md): 2013-03-21. Hackbright paired us with mentors last night and it was really great to see so many people in the software engineering and development community who came…
- [Pair Programming Perspective](https://nyghtowl.com/posts/2013/03/pair-programming-perspective/index.md): 2013-03-17. For the first two weeks at Hackbright, we’ve been working as pair programmers. We team up with a new person almost every day and spend about 4 to 6 hours…
- [Room Full of Brilliant Women](https://nyghtowl.com/posts/2013/03/room-full-of-brilliant-women/index.md): 2013-03-15. On the energy of a Hackbright cohort full of brilliant women learning to code.
- [Ode to .shutil.move() – ‘Oh how you frustrate me’](https://nyghtowl.com/posts/2013/03/ode-to-shutil-move/index.md): 2013-03-12. In Hackbright, we had a project from our first week that I was finishing this weekend, and it asked us to use the .shutil.move() function. Based on the…
- [.startswith()](https://nyghtowl.com/posts/2013/03/startswith/index.md): 2013-03-10. First post: the origin story, from DOS on the family computer to chasing a career in code.

## Optional
- [GitHub](https://github.com/nyghtowl): code
- [The Séance Server](https://witch.dev/llms.txt): her multi-agent AI demo, with an API agents can call
- [LinkedIn](https://www.linkedin.com/in/melaniewarrick): work history
- [YouTube](https://www.youtube.com/@nyghtowl4594): talks and Vibe Check clips
- [RSS](https://nyghtowl.com/index.xml): feed of new posts
