Work Samples

While I can’t publicly share a lot of my work as it was made for the companies I work for, I’ll try to demonstrate some things I’ve done in the best way I can. Some of it is obsolete currently, but was relevant at the time.

AI Experiments


LayMeOn.com

LinkedIn has a premium feature on it’s Jobs search where it will show you your “Job Match Details”. This has two main problems:

  1. It’s not customizable to your preferences, so sometimes it’s results are not helpful.

  2. It costs money!

I decided to build an Agentic website that would produce the same results with much more detail, and allow users to track their job applications.

Features

  • Fetches jobs from listing URL and parses the description.

  • Analyzes job fit based on uploaded resume

  • Provides resume and cover-letter suggestions tailored for specific jobs, and provides interview preparation materials

  • Has a chat interface to discuss job postings, search the web about the company or job, and update analysis data.

Signup is disabled as this is a prototype proof of concept project, but you can set it up from the GitHub or contact me for an account.

Job Match Analysis (Simple Prototype Workflow)

Before I built LayMeOn.com, I prototyped the idea using an AI workflow.

I built the workflow with n8n, hosted locally in Docker.

Challenges

This project was fairly short, but had a few challenges:

  • n8n doesn’t have a ‘Front End’. The normal use case to send the output either in a callback or to another tool where it can be displayed, like a chat app. In my case I wanted the result to be in a webpage, so I had to have it write a new HTML file instead and then serve it. This took some troubleshooting.

  • n8n doesn’t support file writing out of the box in a local hosting. To allow this, I had to customize the docker compose file to set a local directory and allow file permissions, and then write a simple node server.

Next Steps

I don’t have any plans to scale this idea beyond current use case, but some ways it could be improved are:

  • Host the Resume PDF in a file server like a Supabase or AWS S3 Bucket so it does not have to be provided everytime.

    • Alternatively, it could be loaded via the filesystem in n8n, but that has it’s challenges.

  • Rebuild the ‘front-end’ of this into a browser extension, so it could be used in a ‘just in time’ format without ever leaving a job posting page.

  • Host n8n on webhosting service like Hostinger, which would alleviate the file permissions issues but wouldn’t make creating a ‘front-end’ any easier.

  • Future Features:

    • Resume tweaking using the provided feedback with human-in-the-loop validation

    • Cover letter templating for and suggestions, and possibly writing the whole thing.

Learning Innovation.

I believe learning suffers these days from context problems. Being able to participate in the content you’re learning in multiple modals is one key to unlocking understanding. These examples show how I try to accomplish that idea where I can.


Tough Talks

In Tough Talks, users interact with AI chatbots to role play soft skill scenarios to develop those leadership and communication best practices. Although I didn’t concept or primarily develop Tough Talks, I was an early contributor on it’s iteration, and I now manage the entire process of creating Tough Talks. I help learning designers conceive and understand the possibilities, and then develop, test, and redevelop the prompts for each scenario.

Conceptual Videos

In these videos, I managed their production. At various levels I scripted, storyboarded, and produced the final product. I did not do the voiceover or final editing, although I have extensive experience doing that. It’s just the person who did these is much better at it than I am, which is why I hired him.

Making Free Response Useful

In our learning platform at Pathstream, we have free response questions, but they aren’t very engaging as no matter what you answer, we give back a model answer to compare to. Below is a prototype I built in my free time to experiment with using AI responses to free response questions. Eventually we can use this to prototype and prompt engineer these free response interactions before deploying to our platform. I built this using Next.js, which I had never used before, as a learning exercise.

There are two pages pictured below - one where you can design a new question. This involves writing the question itself, providing a model answer for the AI to use as a reference, and the reference text from the course itself that a student would have experienced before answering the question. This keeps the AI grounded into the context of the content we are teaching, and prevent it from making up answers from it’s own training set. This would eventually be replaced with a RAG pipeline in the platform.

A New Quiz

Answering a Quiz, with an AI Response

Side Projects


Oak

Over the last year I developed, in partnership with my neighbor, the Oak application. This application helps users disseminate and evaluate consumer facing agreements using AI and a deterministic algorithm that uses community feedback to provide a concrete, non-hallucinatory grade or “vibe” to these documents. I concepted and developed the virtually entire backend schema and evaluation prototype, and then led a team to develop further features and improvements once the proof-of-concept was complete. The Oak platform is still in alpha.

Gamer Club

My friends in Discord participate in a “Gamer Club”, where we choose a game to play each month and all play it and then discuss, exactly like a book club. In order to facilitate choosing a game, I crafted a nomination and voting system that first worked through Airtable and their form tool, but recently redeveloped it as a Discord bot, powered by Supabase. It’s a simple bot, but if gets the job done!

Computer Science Learning Activities.

Data Analytics with Python

In this screen shot below, you can see an example of an early exercise where students are learning python in the context of data analytics. In this exercise, students are given several objectives and instructions in a sidebar (not pictured) as part of a larger instructional course. Each task a student completes can be checked with the buttons on the left. These run custom scripts that I wrote that look for correct code using a combination of unit tests, regular expressions, and I/O tests.


VR Development with Unity

I have a long work history of repeated re-learning and teaching introductory Unity development. Early in my position at Pathstream, I helped develop and then solely redeveloped an XR development course. This image below is a screenshot of an early draft of a single lesson, which unfortunately cannot be shared here.

Processing (Introductory Java Programming).

When I worked at Digital Media Academy, my personal favorite course (besides the Unity courses) was a course called Introduction to Programming with Java. To teach this course, I developed the curriculum to use Processing, a creative coding focused graphical “language”. Behind the scenes, Processing is a Java compiler, so during one step of the course students would transition from the processing IDE to eclipse. At one point I maintained the official guide for using Processing in Eclipse, but that is no longer supported.

Processing and the Processing foundation represents what I wish was the baseline for learning computer science - unlocking skills through creativity. Processing was developed to allow people to create art, designs, games, and much more.

It’s pretty out of date, so it definitely won’t work any more. However, you can get a sense of my writing style. This is a draft which was subsequently transferred to an LMS and then copy-edited, so there may be small errors.