Nuggets

2023 – present, Author

Dynamic Curriculum Generation with AI

This project began as a proof of concept to validate the use of AI for generating dynamic language-learning exercises. While the initial version was built with Swift, I transitioned to React Native to support a wider range of platforms.

In 2024, the project evolved from a personal tool into a formal research initiative. In collaboration with my fiancée, the app was rebuilt for a master’s degree capstone study on the effectiveness of microlearning for adult Spanish learners. This research version is available in the App Store and Play Store.

More recently, we added English lessons to help learners study for the U.S. Naturalization Test and obtain their citizenship. This marks the first step in the app’s next evolution: using AI to create a truly personalized learning journey. The upcoming version generates a curriculum tailored to each learner’s unique goals and interests, continuously assesses fluency, and adapts to their progress.

Key Takeaway

Every application contains a state machine—either an explicit, well-defined one, or an ad hoc, implicit one scattered across the codebase.

My initial choice for state management, Zustand, worked well for managing state but offered no structure for organizing event logic and business rules. Adopting XState allowed me to model all application logic as finite state machines. This approach has completely changed how I build apps.

Languages (1)

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 (1)

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.

Tools (16)

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.

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.

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 (3)

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.

Jobs (1)

Independent Programmer and Consultant

2014 – present, Independent Programmer and Consultant

Independent Programmer and Consultant, building next-generation education technology and partnering with select clients to architect high-impact software solutions