
Hi! I’m Matt Layman.
I am a Senior Staff Software Engineer at Included Health.
I like to teach others about writing good software while streaming on YouTube and am committed to helping my local community grow its tech skills by volunteering as a meetup organizer for Python Frederick.
Want to learn Django from top to bottom?
Understand Django will walk you through the Django web framework. We start from the top at an exploration of the browser and the layers that make the internet work, then dig deep down through the framework to reveal how you can make web applications using Django.
By the time you finish reading this book, you'll have a much deeper knowledge of how web applications work and, specifically, how Python-based web applications are built.
You can read the book online for free, right now. Prefer your own copy? You can buy an e-book or physical book today.
Recent Articles
All Articles
- Enhancing Chatbot State Management with LangGraph
- Layman's Guide to Python Built-in Functions
- Fun With Scrapy Link Validation on CI
- Python, Markdown, and Tailwind: Best Buds!
- Announcing luatest: A Lua test runner inspired by pytest
- Locking Down Your Users' Secrets: Django Sessions 101
- Sync or Async? Unpacking the Mysteries of Django Signals
- Time Travel with django-simple-history
- Learn Django or Ruby on Rails?
- Distributed System IDs
- Brute Force Development
- Huge Software Systems
- Finding Your Audience for Technical Docs
- Authz dilemmas
- Announcing django-denied
- Debugging Tips And Techniques
- Lua Log #9: HTTP Parser
- Lua Log #8: HTTP Parsing
- Security And Django
- Lua Log #7: Routing Requests
- Lua Log #6: LASGI - ASGI in Lua
- Lua Log #5: Callbacks to Coroutines
- Lua Log #4: Build a (Terrible) Package
- Lua Log #3: Logging Without Logging
- Lua Log #2: Yak Shaving the Ecosystem
- Go Fast With Django
- Lua Log #1: Event Loop Adventures
- Most Abstract Function First Is Better
- Goals for 2022
- Command Your App
- User File Use
- Team Topologies: a review
- Making Sense Of Settings
- Per-visitor Data With Sessions
- Deploy A Site Live
- Test Your Apps
- How To Use Htmx In Django
- Are Django and Flask Similar?
- Which Django Version Should I Use?
- Serving Static Files
- Middleware Do You Go?
- How To Set Up Tailwind CSS In Django On Heroku
- Make A Hugo Static Blog Inside A Django App
- User Authentication
- Hijack To Help Customers
- Anatomy Of An Application
- From Concept To Live In Two Weeks With Django
- Administer All The Things
- Django Testing Toolbox
- Store Data With Models
- User Interaction With Forms
- Vim 101: Basics of the Vim Text Editor
- Templates For User Interfaces
- Views On Views
- Django Riffs, a podcast for learning Django
- URLs Lead The Way
- Serverless Python And Why You Should Try It Out
- From Browser To Django
- A Failed SaaS Postmortem
- Python Tears Through Mass Spectrometry Data
- Godot You Want To Make A Videogame
- Publish to DEV automatically with GitHub Actions
- Python alternative to Docker
- Python Testing 201 with pytest
- Quick and dirty mock service with Starlette
- On Patreon
- Using Git and GitHub to safely store your code
- Supercharging Vim: Blazing fast search and global replace
- Strategy for developer weight loss
- Teaching a kid to code with Pygame Zero
- Completing Account Deactivation on Building SaaS
- Supercharging Vim: Navigate files instantly
- Python Testing 101 with pytest
- Ansible Cranked to 11
- Building SaaS in January
- The Sleepy Developer: How Sleep Affects Your Code
- Local web development vs Vagrant vs Docker: What’s right for you?
- Django Tutorial Adventure Part 2
- Deciphering Python: How to use Abstract Syntax Trees (AST) to understand code
- Building SaaS with Python on Twitch
- Build Native Mobile Apps with Python (BeeWare)
- Consistent Python code with Black
- A tale of two site generators
- New Job: Doctor on Demand
- Full Health Developer Launch
- RFNM - Request For New Maintainer
- Developer Health Survey
- Doing code review
- Data science in Python
- Supercharging Vim: Instant testing
- Supercharging Vim: Using plugins
- Scraping the web with Scrapy
- Web frameworks shootout
- A NES for Christmas
- Pipfile and pipenv
- HTTPS made simple with Netlify
- No nitpicking in code reviews
- Using Pipfile for fun and profit
- Feature flags and waffles
- Pythonic code: leveraging packages
- Aphantasia
- Pythonic code: using the standard library
- Pythonic code: built-in functions
- Pythonic code: the property decorator
- Pythonic code: the with statement
- Pythonic code: the list comprehension
- Semantic UI in Ember
- The Pragmatic Programmer revisited
- 12-factor Django apps
- Open Graph, X cards, and plugins... Oh My!
- Cure for Imposter Syndrome
- PostgreSQL text search in Django
- Rollbar monitoring of Celery in a Django app
- A currentUser service for Ember with JWT
- The necessity of software abstraction
- 2 Critical Python packaging tools
- Sideload JSON API resources in Django
- Monitor Ember app errors with Rollbar
- handroll, sitemaps, and robots.txt
- Using Segment with Ember.js
- Using Brunch for JavaScript work
- Reading through the Python standard library
- Ship your requirements.txt
- We're all ambidextrous
- dotfiles: Hone your software tools
- Highlighting new file formats with Pygments
- Extending handroll for fun
- Oh, my shell? Oh My Zsh
- Inject JavaScript with PhantomJS to inspect websites
- Connect Python objects to blinker signals
- Toying with Statsd and Graphite
- A complete guide to i18n in Python
- A "simple" D3.js area chart
- Laziness is motivating
- handroll 1.1 released
- handroll: a simple website generator
- tappity tap TAP tappy
- Advanced Rails
- Patterns of Enterprise Application Architecture
- Test your packaging
- MarkWiki 1.3 released
- Ruby on Rails Tutorial
- Dreaming in code
- MarkWiki 1.2 released... now actually somewhat useful
- Java: a bad choice for FOSS
- ØMQ: A dynamic book with surprises
- Office Zen
- When you're feeling all TAPped out
- A Layman's walk through Code
- Should you cp from copywriters?
- It's fun -> ok!
- New website and server
- Java, Eclipse, and Maven altogether
- Pretty Perl and maintainability
- JavaScript has “Good Parts”!? Yes, it does.
- Perl Testing: A Developer’s Notebook
- Into the rabbit hole
- Code cleanup with Pylint
- Test Driven Development woes
- print 'Hello World!'


