How to send long text input to ChatGPT using the OpenAI API
A straightforward guide to sending large input to ChatGPT using Python.
Optimizing text for ChatGPT: NLP and text pre-processing techniques
Mastering text preprocessing to send more input to ChatGPT.
Leading with a cybersecurity mindset
Systems for considering software development from a security standpoint.
Do I raise or return errors in Python?
Raise, return, and how to never fail silently in Python.
Add search to Hugo static sites with Lunr
Make your static site searchable with a client-side search index.
How to get hired as a software developer
What to know before applying for a software developer job.
How to become a software developer
The article I wish I had read when I started coding.
Responsive pages and color themes with minimal CSS
Building a responsive website with color themes? Start at the root.
Build your own serverless subscriber list with Go and AWS
How to build your own newsletter list with DynamoDB and SES email sign up confirmations.
Increase developer confidence with a great Django test suite
How to write tests for your Django applications that are painless and productive.
Django project best practices to keep your developers happy
Using Makefiles, pre-commit, and GitHub Actions to help create a happy development team.
Manipulating data with Django migrations
How to update Django models and manipulate existing data using migrations.
How GitHub Codespaces increases productivity and lowers barriers
A look at how GitHub Codespaces can increase productivity and help new teammates and contributors start developing fast.
How to create a self-documenting Makefile
Accelerate your workflow and DevOps with command-line aliases you can check in
Writing efficient Django
How to use Django's views, models, and queries to build a better application.
Look mom, I'm a GitHub Action Hero
The GitHub blog interviews me for their GitHub Action Hero series.
Technical ergonomics for the efficient developer
If you knew these tools existed, you'd probably be using them by now.
If you want to build a treehouse, start at the bottom
How threat modeling and pushing left help create a stable foundation for secure software.
Hugo vs Jekyll: an epic battle of static site generator themes
A comparison of nuances of creating themes for the top two static site generators.
Breaking bottlenecks 🍾
A talk on the benefits of non-blocking functions for programs, developers, and organizations.
The past ten years, or, how to get better at anything
Thoughts on learning software development, technical blogging, and what the past ten years have taught me.
Secure web forms for the front-end developer
How to design secure web forms: validate, sanitize, and control.
Secure application architecture basics: separation, configuration, and access
A starting point for building secure application architecture, for busy developers.
Migrating to the cloud but without screwing it up, or how to move house
A practical guide to moving to cloud services with minimal downtime, using AWS examples.
Git commit practices your future self will thank you for
Learn how to easily create a clean and readable Git commit history with git squash, message templates, git stash, and tags.
An automatic interactive pre-commit checklist, in the style of infomercials
How to set up an interactive checklist using a Git pre-commit hook script.
How to set up a short feedback loop as a solo coder
Strategies for continuous improvement when you're a freelance developer.
How to code a satellite algorithm and cook paella from scratch
A guide to expertly tackling seemingly complicated problems that you'd rather never tackle in the first place.
Making sandwiches with closures in JavaScript
An explanation of closures and how they can emulate private methods in JavaScript.
Understanding Array.prototype.reduce() and recursion using apple pie
An explanation of JavaScript reduce() method and recursive functions using delicious, attention-retaining apples.
Iterating over objects and arrays: frequent errors
A quick reference to why your code isn't working, or some errors I frequently make with iteration when the coffee wears off.
Iteration in Python: for, list, and map
The basics of writing iterations in Python using for loops, list comprehensions, and map.