Automated Data Pipelines with Dagster & PostgreSQL

I designed and automate Dagster jobs to transform JSON data into structured PostgreSQL tables, ensuring efficient data processing and integration.

Domain: Data Engineering
Since: February 2025

DagsterPythonSnowflake

Testing with Custom DBT Macros

Built Macro that took in variables passed by yaml that returned list of outlier data points for Novata.

Domain: Data Engineering
Since: February 2025

DBTyamlPostgreSQLjinja

Data Cleaning & Transformation with DBT

I use DBT to clean and transform raw data imported via Dagster, optimizing it for production-ready analytics in Snowflake.

Domain: Data Engineering
Since: January 2025

DBTyamlPostgreSQLjinjaSnowflake

Cleaning and mapping CSV's

CSV Data Processing & Transformation in TypeScriptI use fs.readFileSync to read CSV files in TypeScript, then clean, map, and transform the data into structured formats, ensuring type safety and seamless integration into applications. I have also used Pandas with Jupyter Notebooks, Matplotlib, and Seaborn to clean and transform CSV's into charts and graphs.

Domain: Server Side, Analytics
Since: December 2024

fsTypeScriptJavaScriptPythonPandasMatplotlibSeaborn

Managing work with Jira

Using Jira I organize my work on kaban boards based on order of importance and include sub-tasks for larger projects.

Domain: Client Side, Server Side, Data Engineering
Since: October 2024

Jira

Real-Time Data Synchronization

I leveraged SWR’s automatic revalidation and real-time data fetching to synchronize client states across users, enabling interactive multiplayer games like Connect 4 and Pentago, as well as instant messaging systems. I have also utilized WebRTC with socket.io to build a real time video platform.

Domain: Client Side, Server Side
Since: July 2024

Next.jsuseSWR

Test Driven Development

Used Jest testing I think about what functionality I want to achieve and how to avoid any potential edge cases.

Domain: Client Side, Server Side
Since: July 2024

Jest

Dashboard building with Sisense

Have built dashboards with Sisense and modified the admin files to change the look and feel of Sisense widgets.

Domain: Analytics
Since: July 2024

Sisense

DOM Manipulation with JavaScript

I used document.querySelector and other DOM methods to dynamically select, modify, and interact with elements on a webpage, enabling real-time UI updates and user interactions.

Domain: Client Side
Since: December 2023

JavaScriptTypeScript

Serverless Backend Development with AWS

I designed a serverless API using API Gateway to route client requests to AWS Lambda controllers, enabling seamless data updates in an Aurora RDS PostgreSQL database.

Domain: Server Side
Since: July 2023

API GatewayLambdaAmazon RDS

Web Design

I wouldn't say I have an experts eye for design. But I do use Figma to create components and color pallets to visualize before developing.

Domain: Client Side
Since: May 2023

Figma

Browser Storage Management

I first used this skill with chrome local storage to save user information. I found that this was also very useful for saving small details for user preferences as well.

Domain: Client Side
Since: May 2023

Chrome StorageJavaScriptTypeScript

Server Side Rendering

Using getServerSideProps built into Next.js I speed up load times by fetching data before rendering pages.

Domain: Server Side
Since: April 2023

Next.js

Data Modeling

I have created different data models with DBT, Sequelize, Ruby on Rails, and Sisense.

Domain: Data Engineering
Since: March 2023

SisenseDBTSequelizeRuby on Rails

BEM standards

I first learned CSS at Flat Iron School. After graduation my gameProjects would have one large CSS file that wasn't easy to navigate. So I wanted to find a way to modularize styling. I really enjoy the ability to nest classes within eachother and apply BEM principals to my SCSS now.

Domain: Client Side
Since: February 2023

CSSSCSSHTML

CRUD Operations with Controllers & PostgreSQL

I have designed RESTful APIs that handle client requests via controllers, using POST, GET, UPDATE, and DELETE methods to interact with PostgreSQL. I have implemented this using raw PSQL queries, Sequelize ORM, and Sinatra to manage structured data efficiently.

Domain: Server Side
Since: February 2023

PSQLExpressSinatraRuby on RailsPostgreSQL

Encryption

To securely store passwords, I use the bcrypt library to salt and hash them, ensuring strong encryption and protection against brute-force attacks. Salting adds randomness, making each hash unique even for identical passwords.

Domain: Server Side
Since: January 2023

bcrypt

Dynamic Rendering

Dynamic Rendering allows applications to generate UI components based on data, enabling flexibility and scalability. In React and Next.js, this involves mapping over structured data (e.g., from a database or API) and dynamically rendering components.In Next.js, dynamic routes ([id].js) combined with the useRouter hook enable content to be fetched and displayed based on URL parameters, making it easy to build data-driven pages such as blogs, profiles, and product listings.

Domain: Client Side
Since: January 2023

JavaScriptPostgreSQLJSONTypeScript

Data Identification and Key Management

I securely managed API keys using .env files and generate unique identifiers with UUIDs to ensure reliable data identification and integrity across client and server applications.

Domain: Client Side, Server Side
Since: January 2023

dotenvuuiddocker

API Routing

I have utilized many different tools for API routing. I have used Express router for routing to my controllers; Next.js Built in file routing where you just build your controller and the routes are based off file structure. I have used Sinatra separate from Ruby on Rails, and I have used Ruby on Rails.

Domain: Server Side
Since: January 2023

ExpressJavaScriptTypeScriptNextJSRubySinatraRuby on Rails

State & Lifecycle Management in React

I use useState to manage component state and useEffect to handle side effects, ensuring efficient updates and reactivity in React applications.

Domain: Client Side
Since: January 2023

React

Fetching JSON Data

Fetched JSON data, use fetch('url', { method, headers, body }), setting the method (GET, POST, etc.), headers (Content-Type: application/json), and converting the body with JSON.stringify(). The response is then parsed using .json() to convert it back into a usable JavaScript object.

Domain: Client Side, Server Side
Since: December 2022

JavaScriptTypeScript

Modular Programming

I write DRY (Don't Repeat Yourself) code by modularizing functionality into reusable components and structures. In React, I create dynamic, reusable components to streamline UI development. For styling, I use SCSS variables to maintain consistency across designs. In Vanilla JavaScript, I build reusable functions that mimic React’s component-based architecture, ensuring flexibility and maintainability across projects.

Domain: Client Side, Server Side, Data Engineering
Since: December 2022

ReactJavaScriptTypeScriptPython

HTML

I learned HTML in FlatIron. I now primarily use HTML in JSX. After graduation I expanded my knowledge of useful HTML tags.

Domain: Client Side
Since: November 2022

HTML

Debugging

When I know where the problem exists I typically use console.log or a print. When I don't know where in the function a failure has happened I use a debugger.

Domain: Client Side, Server Side
Since: November 2022

JavaScriptPythonRubyAWS

Version control with GitHub

I efficiently manage version control using Git and GitHub, leveraging branching (git checkout), merging (git merge), and repository management (git clone, git push). I follow best practices for staging (git add), committing (git commit), and tracking changes (git status), ensuring smooth collaboration and code integrity.

Domain: Client Side, Server Side, Data Engineering
Since: October 2022

GitGitHub

Vanilla Javascript

I started learning Vanilla Javascript with Udemy before I started my classes at FlatIron where I stretched this skill. After graduation I mainly use Vanilla Javascript in Chrome extensions with Rollup to easily webscrape data with query-Selectors.

Domain: Client Side, Server Side
Since: June 2022

JavaScript