// full-stack python developer

Building tools that
actually work
for real people.

Niles McCrystal  ·  SystemCoder99

I build CLI tools, APIs, and backend systems with a focus on clarity, accessibility, and getting things right the first time.

Python FastAPI Typer Textual PostgreSQL UV
↓ Download CV

// about me

Who I am

I'm Niles McCrystal, a mid-level full-stack developer with a focus on Python — building everything from terminal applications and REST APIs to full cross-platform desktop apps. I specialise in tools that are clean to use, well-documented, and built to last.

One of the things I care most about is accessibility. I'm dyslexic and have auditory processing difficulties, which means I think carefully about how information is communicated — both in the software I build and in how I work with teams. I've developed tools specifically to improve accessibility in the workplace, and that perspective shapes everything I make.

Because of my auditory processing difficulties, I adopted spec-driven development as a core part of how I work. Rather than relying on back-and-forth verbal clarification, I make sure requirements are fully defined upfront — which means less rework, clearer pull requests, and better outcomes for everyone involved.

Approach

Spec-first, accessibility-minded, and pragmatic. I'd rather spend time getting requirements right than revisiting finished work.

Experience

Mid-level full-stack developer. Comfortable across the whole stack, with a strong preference for Python backends and CLI tooling.

What I Build

APIs, terminal apps, automation tools, and real-world software that solves genuine problems — often starting from personal need.

Working Style

I work best with clear written specs and async communication. I'm thorough, considered, and tend to think about edge cases early.

// things i've built

My Projects

A mix of professional work and personal tools — some finished, some growing.

// professional work

🏗️ Monorepo Build & Deploy Layer professional

A tool built on top of our internal build and deploy framework to add full monorepo support. Started as a solo project over 8 months before growing into a team effort as adoption expanded — a sign of how much it came to be relied upon.

PythonMonorepoBuild ToolingCI/CDParallelisationDependency Resolution

What It Does

  • Automatic change detection — only projects with changes are built and deployed
  • Dependency map — if a changed project is depended on by others, those are automatically rebuilt too
  • Correct build ordering — dependencies are always built before the projects that rely on them
  • Parallelised builds — independent projects build simultaneously to minimise pipeline time
  • Configurable build and deploy steps per project within the monorepo
  • Designed and built entirely from first principles — architecture, dependency resolution, and build ordering all self-designed before AI coding tools were part of my workflow
📦 UV Company Onboarding professional

Laid the groundwork to onboard UV as the company-wide standard for Python development — configuring the developer environment so that UV is automatically set up on first use, pointing to the internal package index rather than public PyPI.

UVPythonInternal ToolingPlatform EngineeringPackage Management

What I Did

  • Built the configuration groundwork to automatically set up UV for new and existing developers
  • Configured UV to use the internal package index by default, keeping dependencies off public PyPI
  • Opened a feature request upstream with the UV project for mTLS support to meet internal security requirements
  • UV is now the recommended Python tooling standard across the company
📋 Spec-Kit AI Skill & Jira Integration professional

Built a custom AI skill that bridges Spec-Kit (a spec-driven development tool by GitHub) with Jira — automatically transforming short ticket descriptions into fully-scoped feature request specs. I also advocate for spec-driven development as an accessibility practice, for both humans and AI agents alike.

AI SkillJira IntegrationSpec-Driven DevWorkflow Design

What I Built & Why

  • Built the AI skill that reads short ticket descriptions and outputs fully-detailed specs into Jira
  • Requestors write tickets the same way they always have — the skill does the heavy lifting
  • Advocates for spec-driven development as an accessibility practice — born from personal need, as auditory processing difficulties make verbal-only clarification unreliable
  • Benefits developers picking up tickets, AI coding agents acting on them, and reduces PR back-and-forth for everyone
🎨 Colour Screen Overlay professional

A workplace accessibility tool that applies coloured screen tints for users who benefit from them — particularly those with dyslexia or visual stress. Built after recognising that existing solutions were either expensive, clunky, or unavailable on managed systems.

PythonAccessibilityWorkplace Tool

// personal projects

🧩 Patchwork in development

A native Windows desktop application for plural systems — groups of people who share a single body. Patchwork gives systems a private, local-first space to document their members, track fronting history, and stay connected with trusted friends. Built with genuine care for the community it serves.

PythonKivyMDFastAPIPostgreSQLSQLiteRSA-2048AES-GCMLogto OIDC

Technical Highlights

  • End-to-end encryption via RSA-2048 + AES-GCM — the server stores and routes encrypted blobs it cannot read
  • Discord OAuth authentication via Logto OIDC — no separate password needed
  • Local-first architecture — sensitive data stays on the user's device
  • Friend system with per-friend encrypted fronting status updates
  • SimplyPlural import support for existing community users
↗ patchwork.work
⚙️ Core-Runner in development

A build, deploy, and run orchestration tool that watches for new releases of configured projects, gracefully shuts down the running version, updates, and restarts — automatically. Designed to take the manual work out of keeping self-hosted projects up to date.

PythonOrchestrationAutomationDevOps

Features

  • Automatic release detection for managed projects
  • Graceful shutdown before updates — no data loss
  • Restart after update with configurable startup checks
  • Built to manage its own sibling projects, including Patchwork
🤖 Discord Bots ongoing

A collection of practical Discord bots built to solve real everyday problems. Each bot does one thing well rather than trying to do everything.

PythonDiscord APIPostgreSQL

What They Do

  • Reminder bot — medication reminders, water reminders, and fully custom scheduled reminders
  • Hex colour bot — generates a colour swatch image from any hex code
  • Last post bot — reports the last person to post in a channel without having to scroll

// what i work with

Skills & Tools

Languages

Python 3.13SQLBash

Backend & APIs

FastAPIPydantic v2PostgreSQLSQLite

CLI & Terminal

TyperTextualRich

Desktop

KivyMDWindows Native

Auth & Security

Logto OIDCDiscord OAuthRSA-2048AES-GCM

Tooling

UVGitJira
Spec-Driven Development — I've built my workflow around writing clear, complete specifications before writing code. This came from personal necessity (auditory processing difficulties make verbal-only requirements unreliable), but the benefits are universal: fewer revisions, clearer PRs, and requirements that AI coding agents can actually act on.
Accessibility-First Thinking — As someone who is dyslexic, I've built accessibility features professionally (colour screen overlays, readable interfaces) and I bring that perspective to every project. Good software should work for the people using it, not just the people building it.

// get in touch

Let's Talk

I'm open to freelance work, contract roles, and interesting full-time opportunities — especially anything involving Python tooling, API development, or accessibility-focused software. Written communication works best for me.

A note: I work best with clear written briefs rather than calls or verbal-only discussions. If you're reaching out about a project, a short written summary of what you need goes a long way — and I'll always respond thoroughly in kind.