Welcome!
I'm glad you've found my website! This is a portfolio page that I made to showcase some of the projects I have been working on in my spare time. As I work on more projects, I hope to demonstrate to potential employers the skills I have learned throughout my career as a software developer. Currently I have a couple downloadable apps and some links to my professional profiles on the webiste. It will keep expanding as I work on more projects.
What's new?
- September 14, 2025
Exciting news! The first update in the massive site redesign has finally been completed! And actually college coursework helped to make that happen! I'm taking a course in UI design and it gave me the opportunity to sit back and really examine what was wrong with my website. I'm happy to say I like the new concept I've come up with. It looks way more professional than my old site design. I've also taken to reducing the pages to three. The content in the "contact me" and "links" pages will be moved to the "about me" page. The links will be redesigned as well, I plan to use icons to represent my LinkedIn and Github accounts as you might see on other websites. I've also started using vw and percentage scales in my css to make the website more responsive. I'll be testing this on other devices such as mobile, but I think this is a huge step forward for the website. Stay tuned for more! Note: If the new website design doesn't load at first, clear your browser cache to display the new version.
- July 18, 2025
Well, I officially took the first step towards being a Rustacean now! So, I've officially worked on my first project in Rust. Installed the package manager, and hey, it even put in all the path variables I needed, too! I didn't have to add those manually like I did back when I first set up Javascript for node apps. Sure, it was a tutorial that used a "crate" (which is their name for packages) to display a cute message, but it taught me how to use the cargo command to run rust scripts (the file extension for them is .rs). I used Notepad++ to edit the files, and from reading a quick Wikipedia entry prior to jumping in, I got a sense of how the syntax works. I still have a lot to learn, but that's what "the book" is for.
Other than that I spoke with a colleague of mine a few days ago about my site, and she had this great suggestion of finding an HTML template on W3C.org to help build my site. It also got me thinking about expanding and giving WordPress a try. I see it mentioned a lot in job offers. Getting used to using a content management system might not be such a bad thing, and it's probably easier than trying to write the markup manually. No need to reinvent the wheel, after all, but I've more or less proven I can build these things from the ground up if I need to. But this website needs to look more professional, so sometime in the future I should get to work on that.
- April 2, 2025
Yesterday I was porductively procrastinating. If anyone is watching my Github, you may have noticed some minor changes to TimeTracker. I re-enabled the radio buttons. I also figured out that instead of worrying about using the switch case statement based on which button was checked, I would just change the dayOfWeek variable when one of the buttons is pressed. This actually allowed me to maintain the switch case structure I wanted for a lot of the logic handling which textboxes to use when updating the timer. I'm happy with the result for now, but I don't know if this is more elegant or better for performance or not. The app seems to run fine on my PC, but I should find a way to benchmark performance, and try a few ways to implement this solution to see which works better. Code optimization is DEFINITELY something I need to work on.
Aside from this, I also added an average button. I had to do some outside research for this one, but I found out that a double can get a TimeSpan value from milliseconds because you can't divide a whole TimeSpan value as-is. The solution for this one wasn't too hard to understand. I just had to make sure whenever someone touches the textboxes that each time it would update the total and averages, so a bunch of function calls were added. Also, one weird issue I had during an earlier version was that if I were to switch timers while the app was running, it would continue with that time on a different timer (which is to say if one timer would read 10 minutes, it would read 10 minutes and 1 second on the timer it switches to). To solve this issue, and to prevent further issues, I wrote a function to disable and re-enable all the buttons programmatically when the timer starts and stops. Most users I would think will not want to mess with those while the timer is running anyway. Finally, the reset buttons are added and working, but it just has a spartan text of reset. I would rather have a graphic for it, and I have an idea of what I want to use. I will work on updating the graphical elements later. For now, the features are not downloadable, but you can see the updated code in GitHub. I will update the download link when I have completed working on all the features I want to implement for the new version.
So now what's left? Well, I want to be able to export the times into a csv file. I also want to add a form for a running total, and it will take the values from the csv file and use them to calculate weekly averages! The placeholder menu items already exist, I just need to create the forms and write the code for the filestreams. Visual Studio thankfully has a convenient way to implement these with save file dialogues. I should also have popups confirming the success or failure of saving and loading. That will be implemented when I have the time and inspiration to do so. But hey, it is progress! But I suppose I better get back to focusing on college coursework.
- January 6th, 2025
Eww, a bug! I've been using my time tracker app a lot recently, and I did a dumb thing and forgot to start the timer. Well, as it turns out it pointed out an oversight in my program. I wanted users to be able to edit times manually if they need to edit it for whatever reason, and I realized I forgot to call the function to get the total amount of time after leaving the element! Furthermore, I'm not sure if it will even update when clicking on another element such as one of the menu items. I'm putting that on my to-do list. As Bob Ross would always say, we don't make mistakes, just happy accidents! And this happy accident just exposed a bug in my code! And knowing me, It will be bundled with some other useful features I wanted to implement. I wanted to add reset buttons to each of the timers, highlight or border the timer selected when the program launches for transparency, and maybe even add an average of all the days tracked. I could bundle all of this in a version 1.2 update or something like that. Please look forward to it in the near future!
- December 14th, 2024
Well, it looks like it worked. After buying the website security and changing some settings on the SSL certificate, it looks like it's working. Or, maybe I had been looking at an old version of the website. In any case, I'm not sure if I needed to just download it after making the changes, or if I simply needed to have them install it and verify proof of my ownership of the domain. Nevertheless, when I pull up my website on the browser, it FINALLY shows up as secure... But only for the main webpage. I'm working on fixing this now.
As for my little pet project, I decided to change the save file type from rkf to just txt, but I may change it to csv later on. Would be good practice. I also thought it would be nice to have reset buttons on all the timers. Why didn't I think of that sooner? Also, I should change the help text to allow people to see the format they need to enter times manually in, to avoid errors. In any case, I'll attempt to upload a zip or rar file and see if that fixed the issue of my program being mistaken for a Trojan. But now, FINALLY, I have a way to show people my work! I'll work on the site redesign soon.
Micro update: So, it turns out the subpages are going through the firewall to my actual website. I copied the certificate information so in about 10 minutes from writing this, the problem SHOULD be solved.
Micro update 2: So, it looks like Chrome still thinks the zip file is a virus, despite me adding security to the website. Might try to just make this a .exe file instead.
- December 6, 2024
I was planning to buy the security certificate today but apparently when I try to go to the page on GoDaddy to purchase it, it won't load. I don't know why. In any case, the next term has started and instead of doing my homework, I started working on Time Tracker. How ironic, the tool I used to help me manage my time became a distraction. Oh well. Testing has been going well so far, and the ability for the program to select a timer based on the day of the week is working as intended. I either want to hide the radio buttons or just update the timer based on the day of the week directly. The latter might be more direct and save a lot of space and complication. I don't intend to keep the feature to change timers as of now, but I want to retain the feature to set timers manually. Input validation ended up being simple, and I learned today that textboxes have an undo buffer that can be manipulated manually. Neato!
So now it's at version 1.1, and the guardrails are in place to prevent the program from crashing. Also, instead of using a unique file extension for saves, I'm just having it default to text files. I think this will provide another layer of customization and allow more non-technical users to edit the files, if they need to. It might also make it less likely to be confused for a virus. I still don't know what set that off to begin with. For now I'm taking the download link down, but in the future I will download the installer, and even have a ZIP or RAR file of the build for download. Which reminds me, I also fixed an issue with the graphics for the button. Instead of having it look for an image in a folder, it's just referencing a resource for the project in C#. Which means I shouldn't have to include the images folder in the installer project anymore! Testing today has also made me realize how useful a reset button for each timer would be, too, so expect that in a future update!
Minor update: I have finally purchased the SSL certificate. This would enable the whole site to communicate through the HTTPS channel. Now I've been studying this, and HTTPS sends requests through a different port than HTTP traffic, and the port is more secure. Apparently, once you download the certificate, it's easy to redirect normal HTTP traffic to HTTPS traffic. It would FINALLY remove all those "site is not secure" messages people get when navigating to the website. But actually getting it may take up to 72 hours, I guess, so I suppose I have to wait. But I'll feel better if people are downloading my projects through a secure protocol. And also my resume. As for the method of proving ownership, I guess I could update the DNS text record. I mean, heck, getting my domain associated with my webhosting server was as simple as updating some DNS records to point to the hosting server and associating it with a FQDN. Also, that reminds me... Why did I forget to validate these webpages? I should've done that a long time ago! Yikes!
- December 1, 2024
I spent the entire day working on a project. I called it TimeTracker because, well, it keeps track of time. It's a stopwatch I made that tallies the total amount of time you log to it. I made it as a way to keep track of how many hours I spend studying in the week. I followed an online tutorial on how to make a stopwatch, and with some other code I vastly expanded upon it. And that wasn't even the most challenging part! Adding the images almost broke it! But after deleting the .vs folder it rebuilt itself, but even just importing the images before building worked. I want to test this program on other machines. I'll add the build to the projects page tonight.
In other news, I'm going to bite the bullet and purchase an SSL certificate to get rid of those annoying "not secure" messages. Also, I want to redesign the website's CSS file. While I love the late 90s Yahoo Geocities look, I need something more professional looking if I want potential employers to take this seriously. That will be down the pipeline. I'm just glad I did something semi-productive tonight.
Micro update: So apparently I can't distribute this on a zip file. Seems like Windows Defender is flagging it as a Trojan. I don't even know how to write malicious code. To the best of my knowledge it's a false positive but I haven't gotten an SSL certificate yet, so I'm also a little worried about a MitM attack. Better do something about the certificate then, but I might try distributing an installer instead. But I should really do something about the certificate issue.
Second micro update: The MSI installer has been built, and the source code has been uploaded to GitHub. Hindsight is 20/20 though and I probably only needed to post the MainForm.cs file on Github, but maybe it's also a good idea to do the AboutForm.cs one, too. The hyperlinks are enabled by System.Diagnostics, which to my understanding is used for debugging purposes. I feel like there was a better, simpler way to do that. But you can probably tell I tried to have some fun with this, as it started breaking down, just for me wanting to add some images from MS-Paint. Kek.
- September 30, 2024
I added my first project to the site finally. I thought I had named it Idiot Quest but the title ended up being DerpQuest... I think I like the former title better now, but it is what it is.
In addition to that I also found Gladiator on the old laptop. Might have saved it from extinction, even. I'll update the links to the Github for this and the Dice Roller for people to look at. The Dice Roller is more likely to be maintained, but I already decided I'll port Gladiator to C# if I end up starting that up again.
- September 15, 2024
Finally completed the link to download my resume. It was actually quite simple, turns out that anchor tags have a download attribute I didn't know about. Now people finally have a way to download files from my website! Before ANY of you do this, I should resolve the issue with the security certificate being self-signed. Adding that to the to-do list!
In addition to this, I've done some research, and I'm thinking of transferring the domain from GoDaddy to Porkbun. They're super cheap, and I don't need GoDaddy's website builder or other features, just a domain. Apparently they also offer free SSL certificates! I hope this will resolve the security issue of the website. Time to price this out!
- September 13, 2024
I decided I like the idea of hosting my own website enough to pay for the service monthly. I have no complaints with cPanel but after a couple years I want to move the website to a new registrar. It seems like best practice is to use a separate host and registrar, and I don't need the sitebuilder tools. I want to build the HTML from the ground up, it's good practice, and I expect the webpage to evolve as time goes on and my skills improve.
The next order of business is to have download links for my Resume and source code for the projects. Some of them I will want to maintain before I present them to the public, but I already have the Discord Dice Rolling bot on my Github. That's one of the projects I need to modernize, as the Discord API was change and the code is no longer functional. Expect more updates over time.
I also went and changed the name of the main page to index.html. This is a common practice I almost forgot about, but thanks to this I no longer have to redirect to the main page, the server autoMAGICally loads the main page when going to the root of the website. This is so much more easy to manage and probably less effort for the server, too. Stay tuned for more updates!
- September 12, 2024
Finally tried to get this site live. Made the rookie mistake of using GoDaddy as both the site builder and web host. There are better services out there, so for now it's a bit broken. Half the time this just gives a 404 error, but when it works, it works. I'll link this LinkedIn to show everyone, but I need to revoke the SSL security. It doesn't need it and just results in getting an error message.
- September 8, 2024
Started work on this website. The logo and icon for the website was created back on September 5th, 2021, about 3 years ago. all that was left to do was write the HTML for the pages.
Today, I started to create other elements such as the graphics for the navigation bar. The master page and other pages have been worked on today. So far I like the way things look, but I'll let the public be the judge of that. I noticed the strangest quirk when designing this page, somehow a combination of having the image after the unordered list for the navigation bar and having the image as the background for the entire nav element is causing the elements to display correctly.
After redesigning the site graphic for the navigation bar and wrapping the unordered list in a div tag, the bar is displaying properly! Honestly, working on passion projects like this has taught me more than I could ever learn through college alone.
To do list:
- Redesign this site to make it look more professional.
- Throw the pages in an HTML/CSS validator to see what comes out.
- Add some Javascript functionality to the website.