---
title: "Evan Ottinger (@Otty) | Hashnode"
description: "Full-Stack Software Engineer and AppSec Extraordinaire. Read the latest articles by Evan Ottinger on Hashnode."
url: "https://hashnode.com/@Otty"
---

@Otty

# Evan Ottinger

@Otty · DC Metro Area, US · Joined August 2021

Full-Stack Software Engineer and AppSec Extraordinaire

[Website](https://evanottinger.com/)

### [Testing API Key Protected Endpoints in Django](https://blog.evanottinger.com/testing-api-key-protected-endpoints-in-django?utm_source=hashnode&utm_medium=feed)

Background API keys, also known as application programming interface keys, are codes or tokens used to authenticate and authorize access to an API (Application Programming Interface). The API provider typically issues API keys to developers who need ...

2 min read · [blog.evanottinger.com](https://blog.evanottinger.com/testing-api-key-protected-endpoints-in-django?utm_source=hashnode&utm_medium=feed)

[Mar 15, 2023](https://hashnode.com/posts/testing-api-key-protected-endpoints-in-django/641247cf46f245ee844e3d09)

### [A Practical Application of dnstwist](https://blog.evanottinger.com/a-practical-application-of-dnstwist?utm_source=hashnode&utm_medium=feed)

The Problem Phishing remains one of the top methods for a malicious actor to gain access to a target environment. A vital component of a realistic phishing campaign is a familiar-looking domain address. Using a technique known as "domain squatting," ...

4 min read · [blog.evanottinger.com](https://blog.evanottinger.com/a-practical-application-of-dnstwist?utm_source=hashnode&utm_medium=feed)

[Dec 15, 2022](https://hashnode.com/posts/a-practical-application-of-dnstwist/639b946b27fd51009ae7b630)

### [Authenticating Background Tasks with Django Rest Framework SimpleJWT](https://blog.evanottinger.com/authenticating-background-tasks-with-django-rest-framework-simplejwt?utm_source=hashnode&utm_medium=feed)

Situation You have an API built with Django Rest Framework You are using SimpleJWT as your authentication backend You have integrated Celery with your Django application and are using it to run background tasks Some of your tasks need to make authen...

3 min read · [blog.evanottinger.com](https://blog.evanottinger.com/authenticating-background-tasks-with-django-rest-framework-simplejwt?utm_source=hashnode&utm_medium=feed)

[Nov 10, 2022](https://hashnode.com/posts/authenticating-background-tasks-with-django-rest-framework-simplejwt/636d2e803011e263f3caffb5)

### [What's the difference between "is" and "==" in Python?](https://blog.evanottinger.com/whats-the-difference-between-is-and-double-equals-in-python?utm_source=hashnode&utm_medium=feed)

A beginner-friendly exploration of the difference between the "is" and "==" (double-equals) operators in Python.

4 min read · [blog.evanottinger.com](https://blog.evanottinger.com/whats-the-difference-between-is-and-double-equals-in-python?utm_source=hashnode&utm_medium=feed)

[Nov 9, 2022](https://hashnode.com/posts/whats-the-difference-between-is-and-double-equals-in-python/636b218ad2404022d77a2d5f)

### [My Non-Linear Journey Into Information Security](https://blog.evanottinger.com/my-non-linear-journey-into-information-security?utm_source=hashnode&utm_medium=feed)

Recently, I've been asked by several people about my journey into the field of Information Security. Most of the time, it seems that those that ask are looking for a tip or piece of information that they do not already have--some sort of secret to un...

12 min read · [blog.evanottinger.com](https://blog.evanottinger.com/my-non-linear-journey-into-information-security?utm_source=hashnode&utm_medium=feed)

[Jul 11, 2022](https://hashnode.com/posts/my-non-linear-journey-into-information-security/62cc70290ba13ab923f68d01)
