<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[IceSpikes]]></title><description><![CDATA[IceSpikes]]></description><link>https://paoloragudo.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Mon, 02 Nov 2026 18:00:58 GMT</lastBuildDate><atom:link href="https://paoloragudo.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Choosing Backend and Cloud as a Niche]]></title><description><![CDATA[Reasons why I chose backend and cloud as a niche, how the journey is going so far, projects that I've built, and future prospects.]]></description><link>https://paoloragudo.hashnode.dev/choosing-backend-and-cloud-as-a-niche</link><guid isPermaLink="true">https://paoloragudo.hashnode.dev/choosing-backend-and-cloud-as-a-niche</guid><category><![CDATA[backend]]></category><category><![CDATA[Cloud]]></category><category><![CDATA[Beginner Developers]]></category><category><![CDATA[Career]]></category><category><![CDATA[Cloud Computing]]></category><category><![CDATA[C#]]></category><category><![CDATA[dotnet]]></category><dc:creator><![CDATA[Paolo Ragudo]]></dc:creator><pubDate>Tue, 27 Oct 2026 14:41:15 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/69e22c3f66d26d064ad6f6e5/2a127e18-498d-4bf7-b41e-b0629b1b9fd2.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Software Engineering is a broad field. It has web development, cybersecurity, systems programming, Internet of Things, cloud, and many others. In a field as broad as this, deciding which area to specialize in has led me to putting off the question indefinitely. And with graduations nearing, I needed to take a step and make a decision, before the time catches up and suddenly I’m left with sprawling areas that I worked on, and a master to none.</p>
<hr />
<h2>Choosing a niche does not lock me out from others</h2>
<p>Perhaps one of the reasons that I couldn’t make a decision was the idea that if I went and specialized in one area, I am locking myself out from other areas. I thought that if I specialized in embedded systems, I would only ever get to work on embedded systems and that alone. But that couldn’t be further from the truth. You still can and will get to work on other areas besides the one you choose. I did not know where this idea came from, but that stopped me from picking a focus and starting early on.</p>
<hr />
<h2>Why I chose Backend and Cloud</h2>
<h3>Frontend was a skill-issue</h3>
<p>I hated frontend. In frontend, it feels almost chaotic and unstructured. Adding style classes, divs, and then you would get a completely different result from the one you intended. I acknowledge that this is just a skill issue. It is in many ways unpredictable, at least for me.</p>
<p>While I built full stack applications end-to-end before, backend just seemed to be more interesting to me. It’s structured. The answers are definitive and certain, things are more formally standardized, and I really liked that aspect in backend development.</p>
<p>I also enjoyed designing systems, charts, drawing diagrams, and conceptualizing where and how data will flow from one component to another, how services will perform under different circumstances, and other exciting topics related to designing systems.</p>
<h3>The thrill of seeing my projects live over the internet</h3>
<p>Seeing my projects deployed and live online was really thrilling. Exploring cloud also sparked a curiosity in me — a kind of creative curiosity that for a long time really needed an outlet — that led me into a rabbit hole of looking up Virtual Private Servers (VPS), containers, concurrency, systems, multi-tenancy, reverse-proxy, and many more. It’s also one of the main reasons that really pushed me to finally start a website after wanting to for so long.</p>
<p>To me, the cloud felt like an extension of the backend (you could even consider it as the backbone, infrastructure, or the plumbing of backend over the internet). It felt like my projects and ideas are not just sitting locally in my laptop, but discoverable and accessible by anyone in the world, and I could actually show it live. It just felt really interesting and exciting to me and I really gravitated towards it.</p>
<hr />
<h2>How it’s going so far</h2>
<p>Ever since I made the decision to pick a niche and start really digging deep, I’ve decided that the only way I’m going to make progress and see success is to commit.</p>
<h3>Consistency as my companion</h3>
<p>I needed a plan, a schedule, a habit. But to really keep moving forward, I needed to be <strong>CONSISTENT</strong>.</p>
<img src="https://cdn.hashnode.com/uploads/covers/69e22c3f66d26d064ad6f6e5/13a26628-fd05-44df-aeb2-a197961c75a3.png" alt="notion calendar showing daily study logs" style="display:block;margin:0 auto" />

<p>So I committed to studying and coding at least one hour every single day (except Sundays). I started somewhere around June 2026, and it has been going on consistently until now.</p>
<p>Although some days I skip, and there are occasions where I skip days consecutively, I always try to pick the pace back up again and keep it going.</p>
<h3>A Roadmap</h3>
<p>This is one of the early problems I encountered during the first weeks of starting: I didn’t have a roadmap. I would lookup topics and find what to study and build. But without a roadmap to progressively guide me, I was just wandering aimlessly.</p>
<img src="https://cdn.hashnode.com/uploads/covers/69e22c3f66d26d064ad6f6e5/161ee987-a0cf-4fbe-86f8-26e2518133e1.png" alt="partial screenshot of the backend roadmap from roadmap.sh" style="display:block;margin:0 auto" />

<p><em>A partial overview of the backend roadmap from</em> <a href="http://roadmap.sh"><em>roadmap.sh</em></a></p>
<p>And so I started looking at the <a href="https://roadmap.sh/backend">roadmap.sh backend roadmap</a>. It’s a good and fairly comprehensive roadmap and people would repeatedly recommend it. There are also roadmaps for the other areas in software and computer science as well!</p>
<p>The roadmap tells you what topics and skills you’d need to learn and in what order, but it does not mention what projects to make. I can pretty much build anything I want, and I did build things that I want (a ticket queue system, a mobile expense tracker app, an online tic tac toe game), but I also wanted a list of curated projects I wanted to follow along. I found that <a href="https://roadmap.sh/backend/project-ideas">this</a> was a good list of 20 backend projects that progressively gets harder and more advanced and builds on top of previous projects. As of writing this blog, I am at Project 4 where I’m learning about JWTs and how to implement them in .NET.</p>
<hr />
<h2>Projects I’ve built so far</h2>
<p>Some notable projects I have made over the past 3 months since I’ve started are listed below:</p>
<h3>Ticket Queueing System</h3>
<img src="https://cdn.hashnode.com/uploads/covers/69e22c3f66d26d064ad6f6e5/91a5c6d6-187b-4bd0-8ebf-bee40ba9e52d.png" alt="an asp.net and react ticket queueing system project" style="display:block;margin:0 auto" />

<p>I know the frontend looks atrocious, but that wasn’t really the focus of the project. It was to understand how to implement web sockets for real time updates. Each ticket has a random amount of seconds needed to finish that ticket. Instead of a push-pull system like standard queueing systems, the tickets just get assigned automatically to a free worker via a background process. Updates are real time and synced across all clients.</p>
<p>You can checkout the project on GitHub <a href="https://github.com/p-ragudo/DotnetProjects">here</a>.</p>
<h3>Template-based Mobile App Expense Tracker and a Google Sheets spreadsheet as a data store</h3>
<img src="https://cdn.hashnode.com/uploads/covers/69e22c3f66d26d064ad6f6e5/4c03cc1f-3e38-4d94-b000-ee0f34ac0dc8.png" alt="an expense tracker mobile application screenshot" style="display:block;margin:0 auto" />

<p>My daily expenses started to look the same: commute and food; almost the same every single day. So I built an expense tracker app that allows you to make an expense template.</p>
<p>The design choice to use a spreadsheet was intentional. With just one tap, that expense gets recorded into Google Sheets in my account, which allows me to log expenses in a spreadsheet where I can then later perform analytics and get more insights about my spending using the built-in tools that spreadsheets have, and it saves me the pain of having to build my own analytics and data visualization tools.</p>
<p>Another design choice is instead of the mobile app calling the google sheets API, it talks to a .NET backend that connects to the google sheets API. This might sound like another extra layer, but there are two reasons for this design choice:</p>
<p><strong>(1)</strong> I wanted to decouple the app from all the logic and processing</p>
<p><strong>(2)</strong> I wanted to build and deploy a .NET backend.</p>
<p>For a personal expense tracking app, it does the job alright. You can also find the GitHub repository <a href="https://github.com/p-ragudo/DotnetProjects">here</a>.</p>
<h3>Online Tic-Tac-Toe Pvp Game</h3>
<img src="https://cdn.hashnode.com/uploads/covers/69e22c3f66d26d064ad6f6e5/d3ca443d-cb2f-49b2-af76-8c9bbbd2dcdd.png" alt="screenshot of a browser-based online pvp tic-tac-toe game" style="display:block;margin:0 auto" />

<p>I’ve always wanted to make a live tic-tac-toe pvp game ever since I created one in the terminal using Java 2 years ago. But back then, I didn’t have the skills to make one yet, and after a while, it got pushed into the background.</p>
<p>Well, I decided to finally take the step and made it happen. Using the experience with building the ticket queueing system, I implemented web sockets for live gameplay. This, however, added a new layer where real-time updates and syncing are isolated to only connected players.</p>
<p>I also built the backend or server to be client implementation-agnostic. It doesn't matter whether a client is a flashy and polished React frontend, or a simple terminal. As long as they adhere to the server’s contract, a Next.js client and a console client can even play against each other!</p>
<p>I was originally gonna decouple game state from the server using an external memory store such as Redis, but decided that with the current scale of my application, a single monolith deployment would do the job.</p>
<img src="https://cdn.hashnode.com/uploads/covers/69e22c3f66d26d064ad6f6e5/a852a840-27fe-424f-ad92-044a5bd4bfe3.png" alt="gameplay screenshot of the tic-tac-toe game" style="display:block;margin:0 auto" />

<p>Also, this UI doesn’t look half as bad as my previous projects. I call that improvement!</p>
<p>You can actually play the game right now <a href="https://tictactoe-icespikes.vercel.app/">here</a>!</p>
<hr />
<h3>20 Backend Projects Roadmap</h3>
<img src="https://cdn.hashnode.com/uploads/covers/69e22c3f66d26d064ad6f6e5/8b9e4310-9b69-4a1a-91f4-059e342b76f1.png" alt="screenshot of the 20 backend projects roadmap from roadmap.sh" style="display:block;margin:0 auto" />

<p>Not a project, but a set of projects. Right now, I decided to follow a more structural approach. I’m following this <a href="https://roadmap.sh/backend/project-ideas">backend roadmap projects</a> and slowly building each project, trying to learn and improve.</p>
<p>Additionally, I paired it with the <a href="https://roadmap.sh/backend">backend roadmap in roadmap.sh</a>. I use the general roadmap for which topics to progressively learn, and the 20 backend projects for what projects to build.</p>
<p>As of writing this blog, I am at <strong>Project #4</strong>, an Expense Tracker API with JWTs as an authentication scheme.</p>
<p>Come check out the <a href="https://github.com/p-ragudo/backend-projects">github repo</a> if you’re interested!</p>
<p>These projects may seem introductory or amateur-ish, but it’s a start. And as I get better and better, my projects will improve and become more and more complex. The important thing here is to be consistent, and I’ve displayed here that I show up every time. I’m playing the long game.</p>
<hr />
<h2>Future Plans</h2>
<p>Learning backend has been fun so far, and hopefully I make a good career out of it. I also plan to get into linux and devops soon, which I think will be more if not as fun.</p>
<p>Some projects I got lined up next are Redis, Docker, a Git clone, or something entirely my own. Eventually, I also want to start building something that people will use and I will actively maintain. I think there is great value in that.</p>
<p>I believe one of the things that keeps me and will keep me going is the fact that I find it fun, enjoyable, and overall just a really great experience.</p>
<p>I’m really excited to continue learning, exploring, and to see what things I will build in the future!</p>
<hr />
<p>If you want to follow along my journey, you can visit my blog at <a href="https://paoloragudo.com/blog">paoloragudo.com/blog</a>.</p>
<p>I post once a week every Sundays. At the time of writing this article, I have not yet setup a newsletter yet or some form of subscription and content distribution (but I will soon!).</p>
<p>I repost these articles across blogging platforms such as DEV, Hashnode, and Medium. I also post daily on LinkedIn, X, and sometimes Reddit.</p>
<p>Thanks for reading to the end!</p>
]]></content:encoded></item><item><title><![CDATA[Uncooking myself as a graduating CS student | Flashcards App Pt.1]]></title><description><![CDATA[Almost graduating. What do I have to show for?]]></description><link>https://paoloragudo.hashnode.dev/uncooking-myself-as-a-graduating-cs-student-flashcards-app-pt-1</link><guid isPermaLink="true">https://paoloragudo.hashnode.dev/uncooking-myself-as-a-graduating-cs-student-flashcards-app-pt-1</guid><dc:creator><![CDATA[Paolo Ragudo]]></dc:creator><pubDate>Fri, 17 Apr 2026 22:22:31 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/69e22c3f66d26d064ad6f6e5/ed1a1f8b-e28d-4fd0-a2cb-cca16b5c7231.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>As of writing this blog, I'm almost finished in my 3rd year in CS. It got me thinking about future career prospects and my chances of employment given my current state. What do I have to show so far after 3 years of CS?</p>
<p>After this realization, I frantically started looking to build projects and applying to hackathons. I must admit, though, that progress hasn't exactly been fast. During the almost five months that I have started learning the MERN stack, I have built 1 project (<a href="https://www.youtube.com/watch?v=F9gB5b4jgOI&amp;t=11475s">tutorial</a>) and this flashcards app (on going). I planned on finishing this within just 2 months, but life and school got in the way (we're at our undergrad research phase) and here we are.</p>
<h2>Why a flashcards app?</h2>
<p>The first project I built using MERN was from a <a href="https://www.youtube.com/watch?v=F9gB5b4jgOI&amp;t=11475s">tutorial</a> from freecodecamp on YouTube. It was a simple fullstack note-taking app. It's supposed to take you from zero to deployment. And it did. I was proud of myself for successfully completing the course, albeit a tutorial project.</p>
<p>Then, it got me thinking for my next project. I wanted to build a fullstack application applying the knowledge I've gained from that project without using any tutorials. I wanted it to be a step more in difficulty and features, but no so difficult that I will burn out and never actually complete it. I had to rack my brain for ideas that are not just simple note taking CRUD apps.</p>
<h3>Class exams reviewer</h3>
<p>The flashcards idea came to me when I remembered the time I made a simple flashcard reviewer for my class for an upcoming exam.</p>
<img src="https://cdn.hashnode.com/uploads/covers/69e22c3f66d26d064ad6f6e5/d5b39dda-13dc-406c-a756-ee88c2ff26e0.png" alt="" style="display:block;margin:0 auto" />

<p>It was simple. The professor gave us a list of questions with multiple choices and a key to correction. It would be an oral examination where the professor will randomly pick 3 questions from the reviewer and a student would pick the correct choice. So I took the reviewer and made a quick HTML and JS flashcards reviewer where the questions are randomized, and the choices for each question are also randomized. Then I sent the link to my peers.</p>
<p>Come exam day. I saw almost everyone using the reviewer I made. I felt proud that something I made was actually being used by people and I was providing value. The exam came, and almost all of the class got perfect scores. Some of my peers thanked me for the reviewer, and asking questions how I built and deployed it.</p>
<p>This gave me the perfect idea for my next MERN project. A flashcards app similar to the one I made for creating your own sets.</p>
<h2>Features</h2>
<p>Essentially, a flashcards app is also just a CRUD app. But it has some additional logic that makes it a step further than a simple read and write.</p>
<img src="https://cdn.hashnode.com/uploads/covers/69e22c3f66d26d064ad6f6e5/fdc85424-6d65-4fe2-a1be-e60b1c7996f6.png" alt="" style="display:block;margin:0 auto" />

<p>Here we have a classic front and back type of flashcard. It lets you define a front term and a back term, exactly like a flashcard.</p>
<img src="https://cdn.hashnode.com/uploads/covers/69e22c3f66d26d064ad6f6e5/33002a58-52f2-45cd-9a6c-20672a6c72ee.png" alt="" style="display:block;margin:0 auto" />

<p>But here is an interesting little feature. You can turn your flashcard into a multiple-choice type card. Just like the flashcards reviewer I made for my peers, I implemented this feature in my second MERN project. <a href="https://knowt.com/">Knowt</a> has a similar feature, but it only has 3 fixed options, which is very limiting. In my app, you can define as many options as you want.</p>
<img src="https://cdn.hashnode.com/uploads/covers/69e22c3f66d26d064ad6f6e5/7d6f1555-ef67-42fc-8453-7e1d1a3b3289.png" alt="" style="display:block;margin:0 auto" />

<img src="https://cdn.hashnode.com/uploads/covers/69e22c3f66d26d064ad6f6e5/35732e46-df92-4af3-8945-d340465f238d.png" alt="" style="display:block;margin:0 auto" />

<p>Above are examples of how the UI would look like when you review the cards. The eye button is a hint feature that reveals how many possible correct options exist for that card. As of now, there are no features yet for grouping reviewed cards into "know" and "don't know", but in the future perhaps.</p>
<h2>Conclusion</h2>
<p>Almost finished with my CS degree with only a year left until graduation and I have little to show for. I realized I was "cooked" if I didn't do something about it sooner. This led me to start building projects and upskilling. This is one of many projects that I'm planning to do in a quest to "uncook" myself. Follow me through my journey of slowly climbing my way out of this situation and become the developer that I've always wanted to be!</p>
]]></content:encoded></item></channel></rss>