Sign in

Top writer in Technology | Backend Web Developer | bennettgarner.com

Writing code is a craft. Practice your skills and sharpen your tools to be the best programmer you can be.

If you’ve spent any time working in or learning about software development, chances are you’ve heard of the classic book The Pragmatic Programmer by Andrew Hunt and David Thomas.

You likely know a lot of the stories and terms from the book. Hunt and Thomas introduced the world to rubber duck debugging and code katas. They also popularized ideas like don’t repeat yourself (DRY) and early iterations of what would come to be known as agile development.

So, you probably…


Building a REST API in Django is so super easy. In this tutorial, we’ll walk through the steps to get your first API up and running.

(This post is part of a series where I teach how to deploy a React front end on a Django back end. However, nothing in this post is React specific. Whatever your API needs, read on!)

[Just want to see some source code? My pleasure: https://github.com/bennett39/drf_tutorial]

Why REST API?

Before we get to the code, it’s worth considering why you would want to build an API. …


Make sure your commands don’t break

Commands in Django allow you to write scripts for your application that you can run from the command line, using manage.py. Recently, I needed to write unit tests for custom Django commands.

This is the quick guide I wish I’d found first thing…

Why test custom commands?

Custom Django admin commands are meant to be useful helper scripts that automate certain processes. They can start tasks, create users, check for issues, or anything else you might want them to do.

If you don’t use commands heavily or they’re just simple helpers for use in development, then you might not need to write unit tests…


There’s a hidden game being played

A few simple changes to your approach can make all the difference as a candidate.

As an early employee at a fast-growing startup, I’ve had the opportunity to interview many software engineers. Over the course of those interviews, I’ve developed a few simple heuristics for whether the interview was a success.

For aspiring software engineers, it might be useful to hear what the person across the table (or Zoom screen) is thinking.

Interviews are (possibly) pointless

Let me preface this entire article by saying that interviews may be entirely pointless.

There’s a decent amount of evidence to suggest that picking candidates via interview is…


What's your use case? Those variables aren't needed for deployment to GCP, but if you're using them they could be configured in almost any way you want.


The most productive developers I know all have something in common. They know how to use Vim.

Welcome to Vim

I’m not telling you to switch to using Vim all the time (although you could). But in this article, I’ll argue why learning a 30-year-old text editor is important if you want to get good at software development.

The Case for Vim

Vim is:

  • Incredibly fast to use (once you learn it) — Vim commands all come from the keyboard, and they allow you to edit entire words, lines, or paragraphs of text with individual commands. …


Take advantage of aliases to become more productive

Photo by Jan Canty on Unsplash

The best developers I know all maintain a list of Bash aliases to make their lives easier. It’s one of the signs of a good developer — how much can you automate the tasks you do repeatedly?

Bash aliases are super easy to create, too! It’s low-hanging fruit to reduce your time, typing, and mental energy while coding. In this post, I’ll explain why every developer should have a list of aliases, how to do it, and the ten I’ve found most useful.

Why should I use Bash aliases?

Bash aliases are a major key to my productivity as a developer. …


Meetings ruin your productivity. If you’re a developer building complex applications, you should follow the Maker Schedule.

My Big Problem

As a software developer, I hate meetings. If you’ve worked as a developer, you probably understand.

To me, meetings feel frustrating and demoralizing. If I have a meeting scheduled, I often feel like I can’t accomplish my coding goals.

You may have noticed this, too. If you have a meeting at 1pm and another at 3pm, the hour in between the meetings feels unproductive. One hour simply isn’t enough to get complex coding work done.

As a developer, a meeting costs you a…


I recently got a good question from a reader:

Using Vue CLI, how we can use Django data in Vue? Suppose I have a pandas dataframe or dictionary I want to pass to the Vue app, how to do it?

Two Approaches to Passing Data

If you’re using Vue with Django as I’ve described, there are two ways to pass data to your components:

1. Expose an API for your data and use fetch or axios inside your Vue component. (Usually inside the mounted() method)

2. Pass the data in via the Django view/template and then set it as a prop on your vue component…


Great ideas! When you're learning to code, I believe it's so important to start small.

Build interesting projects using what you already know - not following a tutorial. These are great examples.

I wrote a whole post about this idea: https://levelup.gitconnected.com/learning-python-start-small-29d15881f780

And I wrote a series of posts making a tic-tac-toe game with the same motivation as your post. Your readers might find it interesting:

https://bennettgarner.medium.com/tic-tac-toe-series-starting-small-with-python-86e2f49db797

Thanks for writing your article! I wholeheartedly agree.

Bennett Garner

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store