Skip to content
Avatar
🅱️
🅱️

Achievements

Achievements

Block or Report

Block or report JosephLai241

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
JosephLai241/README.md

Hey 👋

Python Rust Vim

My name is Joseph and I'm a self-taught software developer from Michigan who is passionate about computer science. I love the field and am still not sure what my niche is, so I'm currently in the process of learning a bit of everything.

Although I haven't decided on a niche, I've realized I love developing in Python and Rust, and plan on implementing future projects in either (or both) languages!

This GitHub portfolio README is a resume of sorts, as well as a showcase for my accomplishments thus far.

I'm actively searching for a job. If you're an employer, please keep me in mind during your developer search and reach out if you have an open opportunity that you think is suitable for my skill set! See the Ways to Contact Me section for additional details.

Table of Contents

Skills

This is a list of areas that I'm currently skilled in.

Languages

Python Rust Go JavaScript

Frameworks

React Flask

Databases

MongoDB SQLite

Continuous Integration

TravisCI GitHub Actions CodeCov

Testing Tools

Postman

VPS

DigitalOcean

Linux

Arch Debian

Ways to Contact Me

Note: These badges are clickable!

General

Gmail LinkedIn

For Anything Related to URS

Protonmail

On GitHub

You can also directly ask me about anything in this README's Issues tab.

Accomplishments

URS (Universal Reddit Scraper)

What Is URS?

URS is an open source intelligence project written in Python. It's a command-line tool that implements PRAW (the Python Reddit API Wrapper), offering users a large suite of tools to scrape various aspects of Reddit.

What Does It Do?

Its primary scraping tools target submissions within Subreddits, Redditor profiles, and submission comments; however URS also offers the ability to stream submissions or comments created within a Subreddit or by a Redditor in real time and export that data to JSON (or not, depending on the user's preferences).

In addition to scraping tools, URS also includes analytical tools such as the word frequencies and wordcloud generators that may be used after scraping.

It allows users to export scrape data to JSON or CSV, and offers a variety of image formats when exporting wordclouds.

How Do People Use It?

This project has been featured in various places throughout the web, including:

Future Improvements

While I believe the current suite of tools is fairly refined, the project is still a work in progress. I've already planned some enhancements for it (located in the Future kanban within the repository), but I'm always looking to hear more about how it is used with the intention of adding additional enhancements that I've not considered.

Contact

If you have any questions/comments/concerns regarding URS, please send me an email by clicking on the email badge below.

Also feel free to email me by clicking on the badge below if it helped you achieve a goal. I'd love to learn more about how it's used!

Protonmail

Personal Blog

The Stack

Frontend API Database Web Server VPS
React Flask MongoDB Nginx DigitalOcean

I created a private blog implementing React for the frontend (plus Bootstrap for styling and Axios for sending HTTP requests to the API), Flask as the API, and MongoDB as the database which holds various datasets such as blog posts and visitor information.

What Did I Learn From This?

This project has been a tremendous learning experience for me. During the process, I learned:

  • How to create a responsive frontend complete with user authentication, authorization, and dynamic rendering
  • How an API works, how to connect a frontend to a database through an API, and how to expose endpoints with distinct behaviors
    • How to test API endpoints with Postman
  • How to use a production database and apply CRUD operations via the API
  • How to secure a VPS - ufw, SSH configuration, etc.
  • How to serve all areas of the stack on a VPS
    • Serving the Flask API via Gunicorn
    • Serving the React application via NGINX, which also acts as a reverse-proxy for the Flask API
    • Spin up a database instance

Additional Projects

I learn a new language best by creating something with it. All of these projects are the result of my learning Python, Rust, or Go. I created these programs so that I could use them myself; I use these tools very frequently, if not daily. I put them on GitHub because I think others may benefit from them as well.

The Struggle


The-Struggle is a command-line tool written in Rust that helps you keep track of your job applications. It is essentially a tool that makes modifying a spreadsheet easier.

It performs the following CRUD operations on a locally-stored spreadsheet:

  • Add a new entry
  • Update an existing entry
  • Delete an existing entry
  • List all entries

Additionally, there is an insight tool which will analyze application statistics such as:

  • The number of applications:
    • That are pending a response
    • That are currently underway
    • That you have received an offer for
    • That you have been hired for
    • That have rejected you
  • The ratio of each status to the overall number of tracked job applications.

shift


shift is a command-line tool written in Go that helps contractors/remote workers keep track of their own working hours. This may also be used to keep track of time doing anything - I personally also use this to keep track of how much time I spend working on particular projects. This project is based on my friend Luke Schenk's original Python program clck.

This program is very similar to The-Struggle except for a few differences:

  • It allows users to configure whether to save shift data to a timesheet or a SQLite instance
  • Users may check the current status of their shift (how much time has elapsed since clocking in).

What I'm Currently Working On

URS is a project that I'm constantly maintaining. Otherwise I'm focused on refining my skills with Python, Rust, Go, and/or React.

I'm also in the process of creating another full-stack web application - my portfolio site.

Miscellaneous Information

  • 👯 I’m looking to collaborate on any of my projects, especially URS!
  • Fun fact - I can solve a Rubik's Cube in less than 30 seconds 🥴

Additional Skills/Interests

Languages

Java Dart

Frameworks

Flutter Angular

Actix Web

Continuous Integration

Jenkins

GitHub Statistics

Pinned

  1. URS Public

    Universal Reddit Scraper - A comprehensive Reddit scraping command-line tool written in Python.

    Python 438 83

  2. A command-line tool that helps you track your job applications. Available in Rust or Python.

    Rust 1

  3. shift Public

    A command-line tool designed for contractors/remote workers who need to track their own hours. Or track time spent doing anything.

    Go 1

  4. How to install Arch Linux on LVM with encryption, utilizing KDE Plasma as the desktop environment.

    1 1

  5. dotfiles Public

    My dotfiles for Alacritty, Fish, LeftWM, Neovim, Tmux, Vim, etc.

    Vim script

1,380 contributions in the last year

Mar Apr May Jun Jul Aug Sep Oct Nov Dec Jan Feb Mon Wed Fri
Activity overview
Contributed to JosephLai241/URS, JosephLai241/shift, JosephLai241/ASB and 5 other repositories

Contribution activity

March 2022

49 contributions in private repositories Mar 1 – Mar 10

Seeing something unexpected? Take a look at the GitHub profile guide.