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.
Testing with Custom DBT Macros
Built Macro that took in variables passed by yaml that returned list of outlier data points for Novata.
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.
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.
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.
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.
Test Driven Development
Used Jest testing I think about what functionality I want to achieve and how to avoid any potential edge cases.
Dashboard building with Sisense
Have built dashboards with Sisense and modified the admin files to change the look and feel of Sisense widgets.
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.
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.
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.
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.
Server Side Rendering
Using getServerSideProps built into Next.js I speed up load times by fetching data before rendering pages.
Data Modeling
I have created different data models with DBT, Sequelize, Ruby on Rails, and Sisense.
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.
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.
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.
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.
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.
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.
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.
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.
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.
HTML
I learned HTML in FlatIron. I now primarily use HTML in JSX. After graduation I expanded my knowledge of useful HTML tags.
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.
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.
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.