Hey 👋
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
- Ways to Contact Me
- Accomplishments
- What I'm Currently Working On
- Miscellaneous Information
- Additional Skills/Interests
- GitHub Statistics
Skills
This is a list of areas that I'm currently skilled in.
Languages
Frameworks
Databases
Continuous Integration
Testing Tools
VPS
Linux
Ways to Contact Me
Note: These badges are clickable!
General
For Anything Related to URS
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:
- Page 58 of i-intelligence's September 2020 OSINT Handbook
- Medium's Week in OSINT #2019-18
- Data analysis projects, such as:
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!
Personal Blog
The Stack
| Frontend | API | Database | Web Server | VPS |
|---|---|---|---|---|
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
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
Frameworks
Continuous Integration
GitHub Statistics
|
|
|