- Developing an AI-powered language learning app for iOS and Android, taking it from a personal proof-of-concept to a formal research tool for a master’s degree study on micro-learning.
- Built an interactive mobile study tool for the U.S. Naturalization Test, featuring audio questions, practice exams, and bookmarking to help learners master the official USCIS curriculum.
- Architected and built the unified software infrastructure for the City of Fort Worth’s public websites, consolidating disparate CMSs, APIs, and datasets into a single, manageable Jekyll-based static site.
- Established the core technical foundation for a Code for America civic tech project, implementing the project structure, building the automated testing suite, and debugging the core scheduling logic for a citizen reminder system.
Independent Programmer and Consultant
2014 – present, Independent Programmer and Consultant
Projects (12)
Nuggets
2023 – present, Author
React Native app for iOS and Android that uses AI and finite state machines to generate personalized learning curriculum.
gregoryjscott.com
2014 – present, Author
My portfolio website that uses Jekyll to create static HTML pages using YAML, Markdown, and HAL-based hypermedia.
hazelandgreg.wedding
2025, Author
Wedding website for Hazel and Greg
aprender
2017, Author
CLI for learning Spanish
fortworthtexas.gov
2015 – 2016, Technical Lead
Jekyll static site for the City of Fort Worth, Texas.
Denver Schedules API
2014, Contributor
JSON API that provides access to Denver activities that impact the residents of Denver.
jekyll-api
2014, Author
RubyGem Jekyll plugin that produces a JSON API from Markdown frontmatter.
jekyll-embed
2014, Author
RubyGem Jekyll plugin that embeds HAL-based linked resources in Markdown. frontmatter
jekyll-load
2014, Author
RubyGem Jekyll plugin that merges YAML data files into Markdown pages.
jekyll-prep
2014, Author
RubyGem Jekyll plugin for transforming Jekyll page data during builds.
Simpler
2010 – 2013, Author
Library that provides a simpler approach to C# class design.
MvcIntegrationTestFramework
2010, Author
Framework that can be used to perform integration tests on a ASP.NET MVC application.
Languages (7)
C#
C# is a general-purpose, object-oriented programming language developed by Microsoft. It is used to develop a variety of applications, including web, mobile, desktop, and gaming applications. C# is based on the C and C++ programming languages, and it is designed to be simple, powerful, and type-safe. It supports both procedural and object-oriented programming paradigms, and it is used to create applications for the .NET framework. C# is a versatile language that can be used to create a wide range of applications.
CSS
CSS (Cascading Style Sheets) is a style sheet language used for describing the presentation of a document written in a markup language such as HTML. CSS is designed to enable the separation of presentation and content, including layout, colors, and fonts. This separation can improve content accessibility, provide more flexibility and control in the specification of presentation characteristics, enable multiple web pages to share formatting by specifying the relevant CSS in a separate .css file, and reduce complexity and repetition in the structural content.
HTML
HTML (HyperText Markup Language) is a markup language used to create webpages and web applications. It is the standard markup language used to create webpages and web applications. HTML is written in the form of HTML elements consisting of tags enclosed in angle brackets. These tags describe the content and structure of webpages and web applications. HTML also provides a means to create interactive webpages and web applications with the use of HTML forms, which can be used to collect user input.
JavaScript
JavaScript is a high-level, interpreted programming language that is used to create interactive web pages and applications. It is a scripting language that is used to add dynamic elements to web pages, such as animations, interactive forms, and dynamic content. JavaScript is also used to create mobile applications and desktop applications. It is an object-oriented language that is used to create complex applications.
Ruby
Ruby is an open-source, object-oriented programming language created by Yukihiro Matsumoto in 1995. It is designed to be simple and easy to use, yet powerful and flexible. Ruby is often used for web development, scripting, and general-purpose programming. It is known for its use of blocks, which allow for the creation of concise and powerful code. Ruby is also popular for its use of metaprogramming, which allows for the dynamic creation of code at runtime.
SQL
SQL (Structured Query Language) is a domain-specific language used in programming and designed for managing data held in a relational database management system (RDBMS). It is used to perform tasks such as retrieving, updating, inserting, and deleting data from a database. SQL is also used to create and modify database structures, such as tables, views, and stored procedures. It is a powerful language that can be used to query, analyze, and manipulate data.
Typescript
Typescript is a typed superset of JavaScript that compiles to plain JavaScript. It adds optional static typing to the language, allowing developers to use type annotations to catch errors early in the development process. It also provides features such as classes, modules, and interfaces that are not available in JavaScript. Typescript is designed to make it easier to write and maintain large-scale applications.
Databases (2)
DynamoDB
Amazon DynamoDB is a fully managed NoSQL database service that provides fast and predictable performance with seamless scalability. It is a serverless database that can automatically scale up or down to meet the needs of your application. DynamoDB offers a flexible data model, reliable performance, and automatic scaling of throughput capacity. It also provides encryption at rest, point-in-time recovery, and other features to help protect your data.
Postgres
Postgres is an open source object-relational database management system (ORDBMS) developed by the PostgreSQL Global Development Group. It is designed to be extensible, highly reliable, and standards-compliant. Postgres is used for a wide range of applications, including data warehousing, e-commerce, web applications, and more. It supports a wide range of data types, including JSON, XML, and user-defined types. It also provides powerful features such as triggers, stored procedures, and views. Postgres is highly scalable and can handle large amounts of data. It is also highly secure, with built-in authentication and access control.
Tools (19)
Amplify
AWS Amplify is a comprehensive development platform from Amazon Web Services that enables developers to quickly build, deploy, and manage scalable full-stack web and mobile applications. It provides a set of libraries, UI components and a command-line interface for integrating popular front-end frameworks (React, Angular, Vue, iOS, Android, Flutter) with cloud backends, including authentication, GraphQL and REST APIs, storage, and serverless functions. Amplify Studio offers a visual development environment for designing UI and data models, while built-in hosting, CI/CD and environment management streamline the application lifecycle so teams can focus on features instead of infrastructure.
Azure AI
Azure AI is a suite of cloud-based services and APIs for integrating AI capabilities—such as computer vision, speech processing, natural language understanding and decision-making—into applications. It’s commonly used for image and text analysis, speech-to-text and translation, and building conversational agents, with seamless integration into Azure’s infrastructure for scalable deployment and management.
Docker
Docker is an open-source platform for developing, shipping, and running applications. It uses container technology to package applications into isolated, lightweight, and portable containers that can be quickly deployed and moved between different computing environments. Docker also provides a set of tools and services to help developers build, ship, and run applications in a more efficient and secure way.
EC2
Amazon Elastic Compute Cloud (EC2) is a web service that provides secure, resizable compute capacity in the cloud. It is designed to make web-scale cloud computing easier for developers. EC2 allows users to launch virtual servers, called “instances”, which can be configured to their specific needs. EC2 also provides users with the ability to scale their computing resources up or down as needed, allowing them to pay only for the resources they use.
ECR
Amazon Elastic Container Registry (ECR) is a fully-managed Docker container registry that makes it easy to store, manage, and deploy Docker container images. It is secure, highly available, and scales automatically to meet the needs of your applications. ECR integrates with Amazon Elastic Container Service (ECS) and AWS Fargate, simplifying your development to production workflow. It also provides features such as image scanning, lifecycle policies, and IAM authentication.
ECS
Amazon Elastic Container Service (ECS) is a container orchestration service from Amazon Web Services (AWS) that enables users to easily deploy, manage, and scale containerized applications on AWS. It provides a secure and scalable platform for running Docker containers, allowing users to quickly and easily deploy and manage applications in the cloud. ECS also provides features such as automated container scaling, service discovery, and resource management.
Expo
Expo is an open-source platform and toolchain built around React Native that lets developers write modern JavaScript or TypeScript to produce fully native iOS, Android and web apps without configuring Xcode or Android Studio. It provides a comprehensive SDK of prebuilt, cross-platform APIs (camera, sensors, notifications, maps, file system, etc.), a command-line interface for project scaffolding and local testing, and cloud services for building binaries, over-the-air updates, push-notification delivery and app store publishing. By abstracting away much of the native configuration—while still allowing “ejecting” to integrate custom native modules—Expo accelerates development, simplifies maintenance and lowers the barrier to entry for mobile-first teams.
Fargate
Fargate is an Amazon Web Services (AWS) technology that allows users to deploy and manage containers without having to manage the underlying infrastructure. It provides a serverless compute engine for containers that eliminates the need to provision, configure, and scale clusters of virtual machines. Fargate also provides a secure and reliable platform for running containers, allowing users to focus on building and running their applications, rather than managing the underlying infrastructure.
HAL
The Hypertext Application Language (HAL) is a simple, vendor-neutral media type for representing resources and their relationships in JSON or XML, designed to make RESTful APIs more discoverable and self-descriptive. In HAL, each resource’s state is represented by its attributes, its hyperlinks by a standardized “_links” section (allowing clients to navigate between related resources), and any embedded sub‐resources by an “_embedded” section. By providing a consistent convention for linking and embedding, HAL enables clients to follow HATEOAS principles—dynamically discovering available operations and transitions—without relying on out-of-band documentation.
Heroku
Heroku is a cloud-based Platform as a Service (PaaS) that simplifies the deployment, management and scaling of modern web applications. Developers push code to Heroku via Git or GitHub, and Heroku’s buildpacks automatically detect the language (such as Ruby, Node.js, Python, Java, Go or PHP), install dependencies and compile a runnable slug. Applications run in lightweight, isolated containers called dynos, which can be scaled horizontally or vertically on demand. The platform also offers a marketplace of add-ons (databases, caching, monitoring, logging, etc.), a web-based dashboard and a command-line interface, allowing teams to iterate quickly without managing underlying infrastructure.
IAM
AWS Identity and Access Management (IAM) is a web service that helps you securely control access to AWS resources. With IAM, you can create and manage AWS users and groups, and use permissions to allow and deny their access to AWS resources. IAM also enables you to create and manage security credentials such as access keys, passwords, and multi-factor authentication devices. You can use IAM to manage access to AWS services such as Amazon EC2, Amazon S3, and Amazon RDS.
Jekyll
Jekyll is an open-source, Ruby-based static site generator that transforms plain-text content (written in Markdown, Textile or HTML) and Liquid-templated layouts into a complete, static website. By using simple “front matter” at the top of each page or post to define metadata (like title, date and categories), Jekyll assembles content with shared layouts, includes and assets into fully rendered HTML files. Because it produces only static pages—no databases or server-side processing—it delivers fast, secure sites that are easy to host (notably on GitHub Pages) and maintain via version control.
Node
Node.js is an open-source, cross-platform JavaScript runtime environment that executes JavaScript code outside of a browser. It is used to create server-side and networking applications. Node.js applications are written in JavaScript and can be run within the Node.js runtime on OS X, Microsoft Windows, and Linux. Node.js also provides a rich library of various JavaScript modules which simplifies the development of web applications using Node.js.
OpenAI
OpenAI provides a suite of AI development tools and APIs built on large-scale machine learning models for natural language understanding, generation and reinforcement learning. It’s commonly used to integrate text generation, code completion, summarization, translation and conversational agents into applications.
React Native
React Native is an open-source framework developed by Facebook that enables developers to build mobile apps for iOS and Android using JavaScript and React. Instead of rendering web views, React Native translates UI components into native platform widgets, delivering near-native performance and look-and-feel. Its component-based architecture and one-way data flow mirror React for the web, making it easy for JavaScript developers to pick up. Features like hot reloading accelerate the development cycle by instantly reflecting code changes on the device. A rich ecosystem of libraries and a large community contribute reusable modules and plugins, simplifying access to native device features (camera, geolocation, sensors) without writing platform-specific code. By sharing logic and UI components across platforms, React Native significantly reduces development time and maintenance overhead compared to traditional native app development.
S3
Amazon Simple Storage Service (S3) is a cloud storage service offered by Amazon Web Services (AWS). It provides object storage through a web service interface and is designed to store and retrieve any amount of data from anywhere on the web. It is highly scalable, secure, and durable, and provides features such as data versioning, encryption, and access control. S3 is used by many organizations for storing and backing up data, hosting websites, and streaming media.
SQS
Amazon Simple Queue Service (SQS) is a fully managed message queuing service that enables applications to quickly and reliably queue messages that one component of an application can later process. SQS eliminates the complexity and overhead associated with managing and operating message-oriented middleware, and provides a simple and cost-effective way to decouple the components of an application. SQS offers a reliable, highly-scalable, hosted queue for storing messages as they travel between computers. It also provides a simple web services interface that can be used to access queues, add, receive, and delete messages.
VPC
Amazon Virtual Private Cloud (VPC) is a cloud computing service that provides users with a virtual private cloud, allowing them to provision a logically isolated section of the Amazon Web Services (AWS) cloud. It provides users with complete control over their virtual networking environment, including selection of their own IP address range, creation of subnets, and configuration of route tables and network gateways. It also provides users with the ability to securely connect their VPC to their existing IT infrastructure using industry-standard encrypted IPsec VPN connections.
XState
XState is a JavaScript/TypeScript library for modeling application logic as finite state machines and hierarchical statecharts, enabling developers to define states, transitions, guards, actions, and invoked services declaratively. With built-in support for parallel and history states, runtime interpreters, visualizers, and integrations for React, Vue, Angular, and Node.js, XState delivers predictable, testable, and maintainable state management for complex synchronous and asynchronous workflows.
Operating Systems (5)
Android
Android is a mobile operating system developed by Google. It is based on a modified version of the Linux kernel and other open source software, and is designed primarily for touchscreen mobile devices such as smartphones and tablets. Android has a large community of developers writing applications ("apps") that extend the functionality of the devices. Apps can be downloaded from third-party app stores or through online stores such as Google Play. Android has been the best-selling OS on tablets since 2013, and on smartphones it is dominant by any metric.
iOS
iOS is a mobile operating system developed by Apple Inc. for its iPhone, iPad, and iPod Touch devices. It is the second most popular mobile operating system in the world, behind Android. iOS is based on the Mac OS X operating system and provides a user interface based on direct manipulation of the screen using multi-touch gestures. It includes features such as a home screen with app icons, a notification center, and access to the App Store for downloading apps. iOS also includes features such as iCloud, AirPlay, and Apple Pay.
Linux
Linux is an open-source operating system that is based on the Linux kernel. It is a free and powerful operating system that is used in many different types of computing devices, from smartphones to supercomputers. It is highly customizable and can be used for a variety of tasks, from web hosting to software development. It is also highly secure and reliable, making it a popular choice for many users.
macOS
macOS is Apple’s Unix‐based desktop operating system, first released in 2001 as Mac OS X and built on the open‐source Darwin core and the proprietary XNU kernel. Designed exclusively for Mac computers, it combines a polished Aqua graphical interface with deep integration of hardware and software, offering features like Spotlight search, Time Machine backups, and Continuity for seamless work across Apple devices. With strong emphasis on stability, security and performance, macOS supports a rich ecosystem of native and third-party applications via the Mac App Store and developer tools such as Xcode, making it a popular choice for both creative professionals and everyday users.
Windows
Windows is a series of operating systems developed by Microsoft. It is the most popular operating system for personal computers, and is used in a variety of devices, including desktop and laptop computers, tablets, and smartphones. Windows provides a graphical user interface, allowing users to interact with their computer using a mouse and keyboard. It also includes a range of applications, such as web browsers, media players, and office suites. Windows also includes a range of security features, such as user accounts, firewalls, and antivirus software.