Journal

A Term’s End

I can’t believe how fast one term came and went. The past few months have been filled with some of the most interesting people and experiences I will never forget. Going into my first term of university I felt a lot of stress about the unknowns. I didn’t know how hard the classes would be. I didn’t know if I would find my place. I didn’t know if the whole situation would work out. What I did know was that I was excited nonetheless, and in the end, it all worked out fine. I learned a lot about people this term, especially the very motivated and talented people of the software engineering cohort. As someone who went to school in a less tech-focused region, it was refreshing to meet people who shared common interests. Whether it was talking about the latest Hacker News posts, the impossible job market, or the shared dread of ECE 105, the SE cohort became the group of people who I now spend the majority of my day with. ![DP Library](/journal/dplibrary.jpeg) _The DP library where I studied for exams 24/7_ Perhaps one of my favourite events of this term was my SE 101 project UW Map. In short, UW Map is a webapp that allows fellow students to find their way around campus while avoiding all the traffic. We utilized ESP-32s to scan for nearby devices and then send that data to a backend which is then displayed on the frontend which was designed by me. I used Next.js and Mapbox to render the data points and also made custom graphs to display the hourly traffic in a certain area. Add some animations, dynamic colours, custom Mapbox layers and you have a simple dashboard that shows you where the busiest parts of campus are. Working on a team to build UW Map was a really great experience and I am lucky to have worked with some really smart people. Overall, I think the project came out great. Some of us have even continued to make improvements this year. If you would like to check it out, it's live at [uwmap.live](https://uwmap.live/). If you want to check out the code, [here is the GitHub link](https://github.com/e226li/uwmap). ![UW Map](/journal/uwmap.png) _The UW Map dashboard_ In addition to this project, I have also been working on maintaining and updating my dark mode extension [Calendar Dark Mode](https://chromewebstore.google.com/detail/calendar-dark-mode/djohocjcheabcpjfaokeancojipglfbe). I’ve made a [small landing page website](https://calendardarkmode.me) and now have almost 40000 users! Starting off as just a small project that I built, I can’t believe that it has garnered this much traction. I really love getting emails from people making suggestions for the extension and making it better as a whole. Reading people’s feedback has been very rewarding and it really drives my passion to make products that people like (and use!). Also just to note, I can’t believe that I turned into the average UW blog where I just write for a little while and then completely ditch it for the sake of school. Looking back on this quote just makes me laugh. > I hope to do some more writing in the following weeks. This second term seems to be chill so far so I hope that I will be able to do some more writing and get involved with some communities within the university. In addition, my co-op search (which I also hope to write about!) is currently ongoing so on the off chance that you are reading this and are hiring, please send me a message anywhere, [linkedin](https://www.linkedin.com/in/alexstarosta/) or [email](mailto:info@alexstarosta.dev). Anyway thanks for your time and have a good one.

3 min read

The First Month

It’s currently 11:11 PM on Saturday, September 30th, and I am happy to be here. My first month has been busy, filled with new experiences, and a whole lot of studying. Everyone here is incredibly smart at what they do and there is always something you can learn from talking to others. My cohort is filled with many talented people and I wouldn’t have it any other way. I have felt growth every day thus far and continue to learn in lectures and from the environment around me. I’m taking 6 classes this term: - CS 137 - MATH 115 - MATH 117 - MATH 135 - ECE 105 - SE 101 Initially, I have to say that all my professors have been great thus far. Besides the fact that I'm slow and university moves fast, I have felt okay about my success in the classes. Out of all the areas that need to improve, I would definitely say that it would have to be my math skills as the regular Ontario curriculum doesn't leave you with the best start for university. I would advise using the [UWaterloo Courseware](https://cemc.uwaterloo.ca/resources/courseware/courseware.html) to fill in the gaps that high school has missed. If you are not from Canada or take classes at an academically reputable high school, you probably are in a much better spot than I was going into university. But at the end of the day, it’s mostly about how much effort you put into doing the work and staying focused while studying. Oh yeah, orientation was alright. It was mainly composed of various events and activities, but I found talking to various people the most rewarding aspect of it all. It was a great atmosphere: ![Orientation](/journal/orientation.jpeg) _UWaterloo Engineering hardhat ceremony_ I hope to do some more writing in the following weeks yet I will probably be busy studying for my first midterms next week. University is a very fast experience. Every day contains a new task to complete and this all has to be done while balancing the various aspects of life. While overwhelmed at first, today I feel more accustomed to my new environment. While nothing is really “trivial” there does not seem to be anything that I cannot tackle (_well at least not until midterms_). Anyway, have a good one.

2 min read

Learning About Chrome Extensions

This past summer I have been trying to become a more well-rounded programmer. Whether that’s practicing Leetcode problems, learning touch typing, or doing some more reading - one of the largest lapses in my knowledge was in web development. Sure, I knew the basics, but I hadn't really looked too much into it. So, like any aspiring web developer, I searched online for what I could learn next. I eventually stumbled upon React, then TailwindCSS, and finally ended up jumping headfirst into learning NextJS. I did the blog website tutorial on the NextJS website and read through some of the React documentation to get a feeling of what was expected. I then started to work on this website, but in the end, an obvious realization came to mind; I had to become better with regular JavaScript. Going back to being a more well-rounded programmer, another change I made to my routine was working with a calendar to manage my time. For me, Google Calendar works best and is a great resource for time management, but there was one problem with the interface that I did not like, and that was, it had no dark mode option. I looked around for various ways to change this such as changing the Chrome flags, or downloading some Chrome extensions, but in the end, there was nothing that I really liked - nothing that was dedicated to this problem. And then it hit me, I could practice basic web development by creating my own dark-mode Chrome extension. There are many types of tools you can build as Chrome extensions, like productivity widgets, or themes. It is also surprisingly easy to get started, all you need is a manifest.json file that stores your Chrome extension’s information and that’s it. From there, you can branch out to making scripts, pop-ups, or event handlers that can utilize Chrome APIs. To create the first version of my Calendar Dark Mode Chrome extension, I just had a simple script that would inject a custom stylesheet that I had made into the page. ```js function injectDarkModeStylesheet() { const link = document.createElement("link"); link.rel = "stylesheet"; link.type = "text/css"; link.href = chrome.runtime.getURL("darkmode.css"); const head = document.head || document.getElementsByTagName("head")[0]; if (head) { head.appendChild(link); } } ``` This simple function worked great, but if I wanted to add more features like customizability and an option to change between modes, I knew that I was going to have to take that next step and set up a more scalable project. I looked around for various boilerplate templates as a new starting point but I felt that a whole React project would be a little overkill for what I was trying to achieve. I ended up going with a standard vanilla JavaScript Vite project and just placed my previous files in the public folder. From here, it was very easy to make the new additions I wanted, especially now that I had TailwindCSS to help with styling my new popup for the dashboard. After a couple of days of learning more about Chrome storage and JavaScript event handling, I created version two of Calendar Dark Mode. ![The Extension](/journal/cdmmockup.png) _The version 2 dashboard_ In the end, creating this Chrome Extension taught me a lot about JavaScript, the Chrome API and just debugging in the browser itself. Looking back, the only thing I would change would be to just use some premade Tailwind components sooner. Sometimes you just get stuck in trying to design the front end and it just takes up more time than it needs to. If you are new to web development and want to practice some of your skills in a new way, I would recommend building a Chrome Extension. For ideas on what to build, try and find something _(big or small)_ that is an inconvenience to you on the web, and create the solution. This whole project began from not liking the Google Calendar UI and wanting to change it. If you want to check out some of the resources I used, here they are: - [The Developer Dashboard](https://chrome.google.com/webstore/developer/dashboard) - [The Chrome API documentation](https://developer.chrome.com/docs/extensions/mv3/) - [Vite starting guild](https://vitejs.dev/guide/#scaffolding-your-first-vite-project) - [TailwindCSS](https://tailwindcss.com/) - [Free components for TailwindCSS](https://flowbite.com/blocks/) If you would like to check out the project, you can find that [here.](https://chrome.google.com/webstore/detail/calendar-dark-mode/djohocjcheabcpjfaokeancojipglfbe) Thank you for your time and have a good one.

4 min read

The Motivation Moving Forward

It has been 102 days since I received my offer into the University of Waterloo’s Software Engineering program. This new beginning in a world of uncertainty and ambition has led me to make some changes to my life, one of them being the start of this journal. You may wonder why I don’t refer to this as a blog. While some may treat two and two the same, I feel that a journal achieves more in self-reflection than reader engagement. Don’t get me wrong, I will strive to make these entries informational, but I won’t treat them as if I am solely writing for an audience _(if that makes any sense)_. My main objectives with this journal are to: 1. Express my thoughts in a format that I can look back on. 2. Create a collection of knowledge and learned experiences. 3. Practice writing. I plan to keep these entries concise and without _(too many)_ long tangents or irrelevant topics. I will probably write about software, university, and anything else that I feel is worth talking about. With a goal to make this journal a collection of information and experiences for myself, hopefully, it may even help you. In 19 days, I will be taking my first classes at the University of Waterloo. I believe that university is a time for new beginnings and can really help you shift into the person you want to become. Whether that entails becoming better at a skill, communicating, or just increasing one’s capacity for learning, I plan on documenting the challenges I face and how to learn from my mistakes. As I wrap up this first entry, I would like to say thank you for your time and I look forward to writing more in the future. If you would like to talk about anything within my writing or just to connect, feel free to email me or [add me on LinkedIn.](https://www.linkedin.com/in/alexstarosta/) Have a good one.

2 min read