<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ayaan Ahmed</title>
    <description>The latest articles on DEV Community by Ayaan Ahmed (@ayaan_ahmed_a95071c3fb797).</description>
    <link>https://dev.to/ayaan_ahmed_a95071c3fb797</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3512872%2Fd8e68f06-5b83-4653-a4f0-d3d31be67938.png</url>
      <title>DEV Community: Ayaan Ahmed</title>
      <link>https://dev.to/ayaan_ahmed_a95071c3fb797</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ayaan_ahmed_a95071c3fb797"/>
    <language>en</language>
    <item>
      <title>SE371 Project 3 Ayaan Ahmed Journal</title>
      <dc:creator>Ayaan Ahmed</dc:creator>
      <pubDate>Tue, 18 Nov 2025 02:14:57 +0000</pubDate>
      <link>https://dev.to/ayaan_ahmed_a95071c3fb797/se371-project-3-ayaan-ahmed-journal-3hd9</link>
      <guid>https://dev.to/ayaan_ahmed_a95071c3fb797/se371-project-3-ayaan-ahmed-journal-3hd9</guid>
      <description>&lt;p&gt;For the final project of the class, we were building a Tetris game as a full division instead of just our usual groups. Even though one team already had the base gameplay working, the rest of us had to add features, fix logic, write tests, and make sure everything actually integrated without blowing up the repo. It sounded simple at first, but doing this in a distributed setup with everyone touching different files was way more chaotic then I expected. For my part, I was mainly assigned the S Block, the ghost piece toggle, and reset score functionality. I thought I’d be implementing reset score myself, but when I finally pulled the latest main branch, I realized someone else already wrote the entire Score logic and tests. That honestly confused me because I had no idea who did it, and it made me feel like my task basically disappeared. I made sure I was on time too, so it was even more confusing why somebody took over. On top of that, we had so many files being edited by different people that sometimes I wasn’t even sure which branch I should be on or if my work overlapped someone else’s. The ghost piece toggle ended up being my main actual implementation along with the S Block. It was pretty small, but I still had to make sure it connected properly with everything else (SimpleBoard, Viewdata, the UI, etc). After writing the test for it I ran into the problem of the test showing “Tests run: 0,” which stressed me out until we figured out it was just a path/package issue. Once fixed, the test passed and I pushed it in its own feature branch and made the PR. The Git workflow was honestly where most of my stress came from. Pulling from main always brought in huge dumps of new changes like new sound effects, new piece logic, new classes, someone else’s unit tests, etc. It felt like every time I synced my branch I had a new puzzle to figure out. The design doc phase also showed how split everything was. Team 4 handled the actual game engine, while our division handled the extra features, updates, blocks, unique shapes, etc. But honestly, I did get better at handling Git, reading other people’s code, writing tests, and understanding how coupling between components works in a bigger system. It wasn’t perfect, and I thought it was frustrating at times, but I definitely learned more from this project and this class than any other in terms of "real world" work.&lt;/p&gt;

</description>
      <category>devjournal</category>
      <category>gamedev</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>SE371 Project 2 Ayaan Ahmed</title>
      <dc:creator>Ayaan Ahmed</dc:creator>
      <pubDate>Sun, 02 Nov 2025 00:52:20 +0000</pubDate>
      <link>https://dev.to/ayaan_ahmed_a95071c3fb797/se371-project-2-ayaan-ahmed-1b44</link>
      <guid>https://dev.to/ayaan_ahmed_a95071c3fb797/se371-project-2-ayaan-ahmed-1b44</guid>
      <description>&lt;p&gt;For Project 2, I worked on the SearchList, mainly the RangeTracker, SearchList, and SearchListFactory classes. I also wrote and ran my assigned JUnit tests (T1, T15, T16, T27–T29). Most of my time went into getting everything to build and run smoothly while keeping my branch (ayaanBranch) synced with main. There were a few bumps along the way. At one point a leftover HashMap file randomly came back into the repo, which I had to delete again. I also had to restore Node and NodeFactory from origin/main so everything matched up. After that, my build and tests passed fine on my end, though two shared tests in the main SearchListTest file were still failing. Those weren’t mine, so I didn’t touch them and just made sure my new test files worked. Cristian led the team while the rest of us worked on our sections. We used our Teams Chat to coordinate, but since we were implementing another team’s design, a few unclear spots in their documentation slowed things down. That part made it trickier since everyone’s work depended on each other lining up correctly. Overall, I learned a lot about syncing branches, fixing merge issues, and running Gradle builds properly. If I could change anything, I’d make my UML diagram a little more detailed so the connections between classes were clearer. Everything I worked on built and passed locally before I pushed my final commits and opened my pull request.&lt;/p&gt;

</description>
      <category>testing</category>
      <category>devjournal</category>
      <category>git</category>
      <category>java</category>
    </item>
    <item>
      <title>Project 1 - SE371 Ayaan Ahmed</title>
      <dc:creator>Ayaan Ahmed</dc:creator>
      <pubDate>Mon, 27 Oct 2025 00:26:11 +0000</pubDate>
      <link>https://dev.to/ayaan_ahmed_a95071c3fb797/project-1-se371-ayaan-ahmed-oh7</link>
      <guid>https://dev.to/ayaan_ahmed_a95071c3fb797/project-1-se371-ayaan-ahmed-oh7</guid>
      <description>&lt;p&gt;This project was challenging at first. Our team had to write JUnit tests for an existing “Algorithms” codebase that we didn’t write ourselves. Like queues, linked lists, and hash tables all with no real comments or explanations. I worked on the ArrayQueue, DoublyLinkedList, and HashTable tests. It took a bit to understand how each method actually worked before I could test it. Once I got the hang of Gradle and JUnit, it started to click. Seeing “BUILD SUCCESSFUL” after hours of errors felt amazing. Our leader Calvin kept everyone on track, and Alex and Cristian helped with reviews and merges. We had some confusion near the end, but everyone got their parts done and the team worked well overall. Biggest takeaway was testing code you didn’t write is way harder than it sounds, but it makes you understand the logic way deeper. And I finally learned how much those little annotations and Gradle reports actually matter in real projects.&lt;/p&gt;

</description>
      <category>testing</category>
      <category>learning</category>
      <category>devjournal</category>
      <category>java</category>
    </item>
    <item>
      <title>Ayaan Ahmed SE371 Project 1A</title>
      <dc:creator>Ayaan Ahmed</dc:creator>
      <pubDate>Wed, 08 Oct 2025 03:26:21 +0000</pubDate>
      <link>https://dev.to/ayaan_ahmed_a95071c3fb797/ayaan-ahmed-se371-project-1a-57cg</link>
      <guid>https://dev.to/ayaan_ahmed_a95071c3fb797/ayaan-ahmed-se371-project-1a-57cg</guid>
      <description>&lt;p&gt;This week I worked on setting up my environment for the unit testing project. I cloned my team’s repo onto my Mac and made my own branch (p1a/ayaan). I didn’t really know which folder I was supposed to run stuff in at first and I ran into a lot of errors with Gradle not recognizing the right Java version. My laptop was using Java 23 but the project needed Java 11, so I had to install Temurin 11 with Homebrew and fix the JAVA_HOME path manually. That part took me a while because the error messages were kind of confusing. Once I got Java set up right, I went into the Algorithms folder and ran ./gradlew clean test and it worked, all 21 tests passed. I added a small smoke test to make sure JUnit runs on my machine, then committed it to my branch and pushed it up. After that I made a pull request to the main branch so the team can merge it later. It took a bit to fiure everything out but I learned a lot about how the Gradle build works and how to get the environment running properly. Now that everything’s set up I feel way better about working on part B when we actually start writing tests.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Ayaan Ahmed SE371 Assignment 2 Journal</title>
      <dc:creator>Ayaan Ahmed</dc:creator>
      <pubDate>Wed, 01 Oct 2025 21:47:20 +0000</pubDate>
      <link>https://dev.to/ayaan_ahmed_a95071c3fb797/ayaan-ahmed-se371-assignment-2-journal-4h3m</link>
      <guid>https://dev.to/ayaan_ahmed_a95071c3fb797/ayaan-ahmed-se371-assignment-2-journal-4h3m</guid>
      <description>&lt;p&gt;For Assignment 2, I set up the new project and got a basic Main.java running first. Then I added the Player class, PlayerData, and built a linked list from scratch. At first it was just singly linked, but later I had to redo it into a doubly linked list. Along the way I wrote methods like addPlayer, initializeList, findMaxWeight, and findMinWeight. The Git part was the trickiest. I had to delete and then restore Player.java, and later I ran into merge conflicts when merging branches, but I was able to fix them and push. In the end the final demo worked and printed everything correctly. This assignment helped me get more comfortable with Git and also made me understand linked lists better.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Ayaan Ahmed SE371 Assignment 1 Journal</title>
      <dc:creator>Ayaan Ahmed</dc:creator>
      <pubDate>Fri, 19 Sep 2025 03:50:33 +0000</pubDate>
      <link>https://dev.to/ayaan_ahmed_a95071c3fb797/ayaan-ahmed-se371-assignment-1-journal-j73</link>
      <guid>https://dev.to/ayaan_ahmed_a95071c3fb797/ayaan-ahmed-se371-assignment-1-journal-j73</guid>
      <description>&lt;p&gt;SE 371 – Assignment 1 Journal&lt;/p&gt;

&lt;p&gt;September 18, 2025&lt;/p&gt;

&lt;p&gt;What I Did&lt;br&gt;
-Set up Intellij Idea as my IDE and made sure it recognized the JDK.&lt;br&gt;
-Created a small console java program that prints the nth Fibonacci number.&lt;br&gt;
-Created a GitHub account and accepted the invitation to the course organization.&lt;br&gt;
-Made a private repo inside the org and pushed my Assignment1 folder with the Fibonacci code.&lt;/p&gt;

&lt;p&gt;Difficulties and How I Solved Them&lt;br&gt;
-Github no longer lets you use a regular password for Git operations.&lt;br&gt;&lt;br&gt;
I kept getting “Invalid username or token” errors when I tried to clone the repo.&lt;br&gt;
-I fixed it by generating a Personal Access Token and using it as the password when cloning and pushing.&lt;/p&gt;

&lt;p&gt;Thoughts&lt;br&gt;
I’m looking forward to learning more about real world software d practices and how teams manage projects on GitHub.&lt;br&gt;&lt;br&gt;
The setup was a little confusing at first but it already gave me a taste of what professional workflows feel like.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
