<?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: Kareem Itani</title>
    <description>The latest articles on DEV Community by Kareem Itani (@kareem_itani_e51fee03fb7a).</description>
    <link>https://dev.to/kareem_itani_e51fee03fb7a</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%2F2009920%2F9d182ef7-207f-414a-89a9-ee4665876429.png</url>
      <title>DEV Community: Kareem Itani</title>
      <link>https://dev.to/kareem_itani_e51fee03fb7a</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kareem_itani_e51fee03fb7a"/>
    <language>en</language>
    <item>
      <title>I’ve Been Working on Something Big</title>
      <dc:creator>Kareem Itani</dc:creator>
      <pubDate>Sat, 28 Mar 2026 17:55:29 +0000</pubDate>
      <link>https://dev.to/kareem_itani_e51fee03fb7a/ive-been-working-on-something-big-k1k</link>
      <guid>https://dev.to/kareem_itani_e51fee03fb7a/ive-been-working-on-something-big-k1k</guid>
      <description>&lt;h1&gt;
  
  
  EmailBuddy
&lt;/h1&gt;

&lt;p&gt;I’ve been working on something really big, it’s  been on my mind for maybe a year now and I’ve been working on it for 8 months already, so I want to talk about it. EmailBuddy is your help for your inbox.&lt;/p&gt;




&lt;h1&gt;
  
  
  What is EmailBuddy?
&lt;/h1&gt;

&lt;p&gt;What is EmailBuddy? He’s supposed to be your one stop shop for cleaning up your email inbox. So for example, if you have like 100,000 emails and you don’t know where to even start, that’s the point of EmailBuddy. It’s supposed to help you in multiple different ways and try to help bring back some structure into your email.&lt;/p&gt;




&lt;h1&gt;
  
  
  Inbox Health &amp;amp; Score
&lt;/h1&gt;

&lt;p&gt;One key feature we have is our inbox score. There is five main categories that comprise this score. Those are unread emails, spam emails, old newsletters, expired promotions, security emails. These are emails that may not be needed anymore like expired 2fa emails. &lt;/p&gt;

&lt;p&gt;If we go a level deeper, we can interact with each score and see which emails are  falling under these categories. You can get a summary from EmailBuddy saying what to do, then you can delete emails by cherry picking which ones you don’t need, or you can delete 100 at a time, or if you really don’t want them delete all of them at once. &lt;/p&gt;




&lt;h1&gt;
  
  
  Cleanup Feature
&lt;/h1&gt;

&lt;p&gt;Another feature is the cleanup feature, this one is my personally favorite it pulls in your last 200 emails (it can get more emails if you click deeper scan) and it will sort it by senders who have sent you the most emails. &lt;/p&gt;

&lt;p&gt;So for example, let’s say you have Amazon at the top of this list and it’s showing you have 150 emails. You can click the sender, then you can see all your emails from Amazon. You can get a summary from Emailbuddy and a recommendation on what to do with them. &lt;/p&gt;

&lt;p&gt;Also, you will get four key actions: unsubscribe, mark as spam, mark as read, delete all. I like the control and transparency that comes from this feature. You see how much one sender is taking up your inbox and you get to take care of it in whatever way you feel like.&lt;/p&gt;




&lt;h1&gt;
  
  
  Automation
&lt;/h1&gt;

&lt;p&gt;For the automation feature, there are toggles available that allow you to do delete certain emails such as delete old promos, old receipts, auto phishing emails. When you toggle these and then hit run it will remove all of these emails at once. &lt;/p&gt;

&lt;p&gt;This one is a very strong feature, but it can be dangerous since it will or most of the work for the user but can be super effective.&lt;/p&gt;




&lt;h1&gt;
  
  
  Wrapping up
&lt;/h1&gt;

&lt;p&gt;Those are some of the core features of the app to help people clean up and manage their emails. Currently, I have a roadmap setup for future updates.&lt;/p&gt;

&lt;p&gt;If you are interested in the app I’ll leave a link right here if you want to give it a try. At the end of the day this project was for me to learn more about how app development is some and it’s been a blast learning.&lt;/p&gt;

&lt;p&gt;Try it out: &lt;a href="https://apps.apple.com/us/app/emailbuddy-clean-inbox/id6759539281" rel="noopener noreferrer"&gt;https://apps.apple.com/us/app/emailbuddy-clean-inbox/id6759539281&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>What It’s Like Moving from TD to Chase</title>
      <dc:creator>Kareem Itani</dc:creator>
      <pubDate>Fri, 03 Oct 2025 04:40:44 +0000</pubDate>
      <link>https://dev.to/kareem_itani_e51fee03fb7a/what-its-like-moving-from-td-to-chase-559h</link>
      <guid>https://dev.to/kareem_itani_e51fee03fb7a/what-its-like-moving-from-td-to-chase-559h</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;Recently I have moved over to Chase, and with that there comes a new system for me to learn. To understand this blog, I want to talk about the differences between TD and Chase, or at least my one month at Chase, and let’s go from there.&lt;/p&gt;

&lt;h1&gt;
  
  
  Working In Person
&lt;/h1&gt;

&lt;p&gt;It’s been really nice to work in person. I get to see my teammates. It’s actually super convenient to get up and shoulder tap one of my coworkers and ask them for help rather than having to message them in Teams and, hopefully, they will respond. Rather than having to wait 15–20 minutes for someone to get back to me, it’s just nice to get up and say, like, “Hey, by the way…” or “Do you want to go get lunch?” It’s a very organic feeling.&lt;/p&gt;

&lt;p&gt;I was lucky with the remote, but I felt like after a while I was slowly losing my mind. I needed to go out and see real people. The main time I got to be more personal at TD was when I was in Canada, because I was fully remote, and when I was there it was a great time. The building was huge, and it was really a perfect time compared to being in an office at Chase.&lt;/p&gt;

&lt;p&gt;I do like to be in an office. I think my coworkers are very friendly, and they’re very helpful. But honestly, the more and more I go to the office and think about my time at TD, I think hybrid is the best. Sometimes you just don’t want to come in, and sometimes you really do want to come in. Being remote for too long will drive me crazy. And sometimes, just waking up in the morning and not feeling all right, you just want to work from home. So I think they both have their pros and cons.&lt;/p&gt;

&lt;p&gt;As of now, I still enjoy going into the office. Let’s see how long that lasts, but luckily for me, the commute is not too bad like 45 minutes to an hour. But I do think hybrid is the best choice. The more I spend time being in an office, the more it reminds me of that.&lt;/p&gt;

&lt;h1&gt;
  
  
  Moving from Bank to Bank
&lt;/h1&gt;

&lt;p&gt;In terms of moving from bank to bank, it wasn’t too bad. There were a lot of similarities  a lot of red tape everywhere. The biggest difference was going from waking up and working right away, to waking up and getting dressed and going into the office and, you know, taking a commute. It is a big change, and for now I’m okay with it. Let’s see how long that lasts, but this is what I wanted, so we’ll see how long until I start to complain. Generally, I do notice a lot of similarities in processes across the banks.&lt;/p&gt;

&lt;h1&gt;
  
  
  Growth and Experience
&lt;/h1&gt;

&lt;p&gt;I guess the biggest change in myself is that even though I’m switching to a new team and a new product, I’ve learned so much from my time at TD that I can transfer over to my new team. I am able to pick up on these concepts, and I know how the application works without even being there. I kind of understand the overall big pieces and what the application is supposed to do, and I’m able to put together a mental image of how everything should flow more or less. Honestly, that just boils down to experience.&lt;/p&gt;

&lt;p&gt;That’s the biggest thing  the more time I spend, the more everything starts to make sense. It’s really incredible to see how far you’ve come. I remember when I first started, I barely knew anything. From my first day at TD until now, I’ve learned so much, and it’s really shaped me into becoming a better developer in that sense.&lt;/p&gt;

&lt;h1&gt;
  
  
  Looking Ahead
&lt;/h1&gt;

&lt;p&gt;Overall, the growth from entry-level to now being mid-level has been quite dramatic. The knowledge I’ve gained is huge, and I can only imagine how big the knowledge gap is going to be between me and senior. But I’m looking forward to pushing myself and getting there.&lt;/p&gt;

&lt;p&gt;It’s such a rewarding feeling to look back and see how much you’ve grown. I’m looking forward to even more of that feeling.&lt;/p&gt;

</description>
      <category>career</category>
      <category>productivity</category>
      <category>watercooler</category>
    </item>
    <item>
      <title>Beyond Code: The Key to Becoming a Better Developer</title>
      <dc:creator>Kareem Itani</dc:creator>
      <pubDate>Tue, 12 Aug 2025 14:16:00 +0000</pubDate>
      <link>https://dev.to/kareem_itani_e51fee03fb7a/beyond-code-the-key-to-becoming-a-better-developer-274m</link>
      <guid>https://dev.to/kareem_itani_e51fee03fb7a/beyond-code-the-key-to-becoming-a-better-developer-274m</guid>
      <description>&lt;h3&gt;
  
  
  &lt;strong&gt;The Importance of Reading PRs&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Today I wanted to talk about something that might be a little underrated. You might be thinking, what could that be?&lt;/p&gt;

&lt;p&gt;So, the ability to read a PR. It's something I didn’t realize was much more important than I expected.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Understanding the Thought Process Behind PRs&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The ability to read a PR and understand where the changes are happening, why someone made this change, and their thought process while making it is an amazing skill. It’s much more useful than I initially realized when I was starting out.&lt;/p&gt;

&lt;p&gt;It’s definitely a difficult skill to develop—just looking at code and trying to piece together why and how someone did something without having to pull down the branch or run the code. Simply analyzing it from a PR perspective is challenging.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;The Value of Strong Code-Reading Skills&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;But I think it really helps. It’s a fundamental skill. Once you get good at it, you naturally become better at reading code. You start recognizing when something looks off.&lt;/p&gt;

&lt;p&gt;In fact, if you’re struggling to read the code, it’s often because it was written poorly. That in itself is useful feedback—if someone reviews your PR and finds it hard to follow, that’s a sign something needs improvement.&lt;/p&gt;

&lt;p&gt;At the core of it, this skill is about reading other people's code. Reading your own code is usually easier because it follows your thought process. But being able to understand how others think when they code? That’s what really makes you a better developer.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Overcoming the Intimidation of PRs&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;I remember when I first started professionally. I’d open a PR, and immediately, I’d feel overwhelmed—so many changes, red and green lines everywhere.&lt;/p&gt;

&lt;p&gt;I had no clue what was touched or changed. I didn’t understand the code at all.&lt;/p&gt;

&lt;p&gt;At some point, I decided to push through that fear. I told myself, &lt;em&gt;I can do this.&lt;/em&gt; I started poking at the PR, slowly piecing things together. And if I got really stuck, I’d pull down the branch and run the code to see what changed.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;The Breakthrough Moment&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Taking that first step—just looking at the PR and attempting to understand it—was the game changer. I realized it’s okay if it’s difficult. The key was to not give up.&lt;/p&gt;

&lt;p&gt;Once you improve at reading PRs, everything starts clicking. You begin to follow the flow of thought behind the code naturally.&lt;/p&gt;

&lt;p&gt;And beyond that, it helps unlock a deeper understanding of coding principles—like OOP, design patterns, and different frameworks.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;The Significance in a Developer’s Career&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;This is a fundamental skill that every developer needs. If you’re working in the field, you’re not the only one pushing code—you’re going to be reading a lot of other people’s code.&lt;/p&gt;

&lt;p&gt;Having this skill will make your work smoother and earn you respect. People will notice when you catch mistakes they didn’t see or suggest a better way to write something.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How to Get Started&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;My best advice? Give it a try. If you’re working, open a PR and attempt to understand what changes were made. If you’re unsure about approving, that’s fine—just go through it piece by piece.&lt;/p&gt;

&lt;p&gt;If you’re not working at a company with PRs, try reviewing code with friends on a project. You don’t have to be perfect. Your PR comments can even be simple questions, like &lt;em&gt;“Hey, what does this do?”&lt;/em&gt; That’s completely okay.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Final Thoughts&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;This is honestly one of the greatest skills I’ve developed.&lt;/p&gt;

&lt;p&gt;So, let me ask you: Do you remember your first PR? What was it like reading and approving it for the first time?&lt;/p&gt;

&lt;p&gt;Let me know your thoughts. And as always, have a good day!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Breaking Into Tech</title>
      <dc:creator>Kareem Itani</dc:creator>
      <pubDate>Sun, 13 Jul 2025 17:30:00 +0000</pubDate>
      <link>https://dev.to/kareem_itani_e51fee03fb7a/breaking-into-tech-2ial</link>
      <guid>https://dev.to/kareem_itani_e51fee03fb7a/breaking-into-tech-2ial</guid>
      <description>&lt;h3&gt;
  
  
  The Struggle
&lt;/h3&gt;

&lt;p&gt;The hardest part about breaking into tech is getting your first professional experience. Once you have your first professional job, it gets easier over time. The job itself is going to be difficult, but you’ll figure out how to do it and, through help from your coworkers and multiple hours of studying, you’ll do it, but the hardest part is getting your foot in the door.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Importance of Experience and Projects
&lt;/h3&gt;

&lt;p&gt;You see what you have on your piece of paper. In this case, it's your resume. Work experience and projects really go a long way to forming who you are. Like experience and projects honestly are the most important things on your resume, recruiters won’t look at your resume for more than 6, maybe 7 seconds. Make sure to find the main sticking point on your resume that can sell you as a person well.&lt;/p&gt;

&lt;h3&gt;
  
  
  Building a Strong Project
&lt;/h3&gt;

&lt;p&gt;I recommend you work on a nice big large project, like a project with a database, frontend, backend and a good design.&lt;/p&gt;

&lt;p&gt;It’s a good way of showing that you know what you're doing. That would be really great on a resume if you don't have experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Getting Your First Experience
&lt;/h3&gt;

&lt;p&gt;Honestly, I recommend taking what you can. I started off with an unpaid internship back when I was in college.&lt;/p&gt;

&lt;p&gt;You need something to hit the ground. Make sure people look at you. In the short term, it’s a learning experience for you, great for your resume and, in the long term, it could lead to your first full-time job. From that, you can do so much.&lt;/p&gt;

&lt;h3&gt;
  
  
  Networking and Putting Yourself Out There
&lt;/h3&gt;

&lt;p&gt;Make sure, outside of your project and experience, there are other ways that you can improve yourself other than just your resume.&lt;/p&gt;

&lt;p&gt;For example, going to coding meetups, and meeting other people in general.&lt;/p&gt;

&lt;p&gt;You can also just go on LinkedIn and start connecting with some people that you would like to be. Maybe a developer at Amazon, or Meta, or Airbnb, or whatever it may be.&lt;/p&gt;

&lt;p&gt;Just put yourself out there and make sure you can connect with them and talk to them.&lt;/p&gt;

&lt;p&gt;The more connections you have, the more eyes you'll get, and the higher chance of maybe something working out.&lt;/p&gt;

&lt;h3&gt;
  
  
  Expanding Your Knowledge
&lt;/h3&gt;

&lt;p&gt;Never stop learning. Try to expand your knowledge as much as you can.&lt;/p&gt;

&lt;p&gt;Try to think of it like you're trying to look at the whole picture. For you to look at the whole picture, you need to keep stepping back.&lt;/p&gt;

&lt;p&gt;The only way you can keep stepping back is with more and more knowledge you get. Let's step back and look at this other part of the picture.&lt;/p&gt;

&lt;p&gt;And then step back and look at the other part of the picture. You want as much understanding of it as possible.&lt;/p&gt;

&lt;h3&gt;
  
  
  Final Thoughts
&lt;/h3&gt;

&lt;p&gt;I know it's really rough out there to get a job in tech nowadays. Keep trying. Keep going. It might take some time, it may even take a lot of time. Your future self will take you for it just keep going.&lt;/p&gt;

&lt;p&gt;Tech is really an amazing field, it has a lot of perks and benefits but it’s super competitive and hard to really break into but you have to write your own success story, keep going you will make it.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to make an api endpoint call</title>
      <dc:creator>Kareem Itani</dc:creator>
      <pubDate>Tue, 10 Jun 2025 13:30:00 +0000</pubDate>
      <link>https://dev.to/kareem_itani_e51fee03fb7a/how-to-make-an-api-endpoint-call-56cm</link>
      <guid>https://dev.to/kareem_itani_e51fee03fb7a/how-to-make-an-api-endpoint-call-56cm</guid>
      <description>&lt;h3&gt;
  
  
  What Is an API Endpoint?
&lt;/h3&gt;

&lt;p&gt;An API endpoint is an endpoint that you can hit, that results in a certain action happening, that can lead to the frontend.&lt;/p&gt;

&lt;p&gt;For instance, if you go on Facebook and you get to your profile, what this does is it hits a  &lt;code&gt;/profile page&lt;/code&gt;, this endpoint will take you over to your personal profile page for the specific user currently logged on.&lt;/p&gt;

&lt;p&gt;An endpoint is essentially a thing you can go to, and it does something for you on the backend. This could be related to databases, scraping information, or other heavy-lifting tasks. It processes actions on the backend and sends data to the frontend or performs backend operations.&lt;/p&gt;




&lt;h3&gt;
  
  
  Understanding MVC (Model-View-Controller)
&lt;/h3&gt;

&lt;p&gt;There’s this concept called MVC:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Model:&lt;/strong&gt; This is the data object that you can fill up and want to return.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;View:&lt;/strong&gt; What the user sees at the end.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Controller:&lt;/strong&gt; The first point of interaction with the API call.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, if we’re writing a controller:&lt;/p&gt;

&lt;p&gt;Controllers catch certain endpoints. For instance, if we’re on port &lt;code&gt;8080&lt;/code&gt; and we have a &lt;code&gt;/home&lt;/code&gt; endpoint on our controller, the controller can check if &lt;code&gt;/home&lt;/code&gt; is hit. Once it’s hit, the controller can trigger specific actions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step-by-Step Example: Get Profile Page
&lt;/h3&gt;

&lt;p&gt;Let’s say we’re working on a controller with a &lt;code&gt;getProfilePage&lt;/code&gt; method:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;When &lt;code&gt;getProfilePage&lt;/code&gt; is hit, it goes into the controller’s method.&lt;/li&gt;
&lt;li&gt;Inside this method, it can call a &lt;strong&gt;service&lt;/strong&gt;.

&lt;ul&gt;
&lt;li&gt;A service is responsible for processing an action, such as interacting with a database or performing a calculation.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Once the service completes its task, it returns data back to the controller.&lt;/li&gt;
&lt;li&gt;The controller then sends this data back to the frontend.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A user hits the &lt;code&gt;getProfile&lt;/code&gt; endpoint.&lt;/li&gt;
&lt;li&gt;The service retrieves information about the user based on their ID through a database query.&lt;/li&gt;
&lt;li&gt;The database returns the user’s details to the service.&lt;/li&gt;
&lt;li&gt;The service sends it back to the controller.&lt;/li&gt;
&lt;li&gt;Finally, the controller returns it to the frontend, where it can be displayed to the user.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Frontend Interaction with API
&lt;/h3&gt;

&lt;p&gt;From the frontend, you can make an API call to retrieve information. For instance:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When a frontend calls the &lt;code&gt;getProfile&lt;/code&gt; endpoint, it expects the user’s data in return.&lt;/li&gt;
&lt;li&gt;The backend handles the heavy lifting, fetching and processing the data while the frontend receives and displays the result.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Suggested Exercise: Login Page
&lt;/h3&gt;

&lt;p&gt;To practice, try creating a simple login page:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Allow the user to input a username and password.&lt;/li&gt;
&lt;li&gt;On clicking login, the frontend sends an API call to the backend.&lt;/li&gt;
&lt;li&gt;The backend checks the database:

&lt;ul&gt;
&lt;li&gt;If the user exists, return a success status (e.g., &lt;code&gt;200&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;If the user doesn’t exist, return an error (e.g., &lt;code&gt;401&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Upon success, display the user’s profile information.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This flow will help solidify your understanding of API endpoints.&lt;/p&gt;

&lt;h3&gt;
  
  
  Final Thoughts
&lt;/h3&gt;

&lt;p&gt;This is the fundamental concept of making an API call. Controllers handle incoming requests, services perform backend tasks, and models structure the data returned to the frontend.&lt;/p&gt;

&lt;p&gt;It takes some practice, but it’s a necessary skill for web development. Almost every website, if it’s not static, will need API calls. My advice: Keep it simple and start with basic exercises, like the login page example.&lt;/p&gt;

&lt;p&gt;Let me know what kind of projects you’re thinking about making with this new information. Have a good day!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>From Hacker to Judge: My First Hackathon on the Other Side</title>
      <dc:creator>Kareem Itani</dc:creator>
      <pubDate>Thu, 15 May 2025 13:42:21 +0000</pubDate>
      <link>https://dev.to/kareem_itani_e51fee03fb7a/from-hacker-to-judge-my-first-hackathon-on-the-other-side-34d9</link>
      <guid>https://dev.to/kareem_itani_e51fee03fb7a/from-hacker-to-judge-my-first-hackathon-on-the-other-side-34d9</guid>
      <description>&lt;h3&gt;
  
  
  First-Time Judge Experience
&lt;/h3&gt;

&lt;p&gt;Recently, I did something that I never thought I was going to do before, which was being a judge at a hackathon. For many years, I’ve been on the other end of just making projects and hoping they were good enough to win the hackathon, but I was lucky enough to be able to actually be a judge at a  hackathon. I have judged over 12 projects and I want to talk about them, so let’s get into it.&lt;/p&gt;

&lt;p&gt;So I guess the first question is, where was the hackathon hosted? It was hosted at Hunter College. They had a lot of nice people running the show.&lt;/p&gt;

&lt;h3&gt;
  
  
  Judges, Pairings, and Teams
&lt;/h3&gt;

&lt;p&gt;There were 10 judges consisting of developers and professors from the school. Every judge was paired up, so in my case, I was lucky enough to have a professor from the school. He was very knowledgeable, had a lot of insight, and he was very nice to talk to. I think there were about 35 teams in total, which is a good number for a hackathon.&lt;/p&gt;

&lt;h3&gt;
  
  
  Memorable Projects
&lt;/h3&gt;

&lt;p&gt;There were a lot of interesting projects. One of them was a local bartering app. If you have any food you don’t want, maybe someone else can offer you a different type of food, and you can have a nice exchange where you’re both happy. The goal was to reduce the amount of food that New York throws out in general.&lt;/p&gt;

&lt;p&gt;There was another product that was very provoking. When creating an issue on GitHub, an AI bot will open up a PR and that PR contains the fix of the issue, so a developer can go in and check the PR to see if the solution was good enough. There could be some benefit to it, like if a product manager or anyone who isn’t very technical in the team uses it. But the big flaw I see is AI having trouble understanding where the code fix is going to go. In big enterprise code bases, a project is over 2000 files long and writing down updates on a button color might be very difficult due to the fact there are so many buttons. The product manager would have to have enough context to know which file the change would be going into and at that point the product manager doesn't fall under the categories of not very technical. There are a lot of flaws in the project, but I really do think it has potential.&lt;/p&gt;

&lt;h3&gt;
  
  
  Judging Process and Ceremony
&lt;/h3&gt;

&lt;p&gt;There were two rounds for the judging process. The first round was all 8 projects per group of two judges, and the second round was a more refined one that the other judges judged, that consisted of about 3 teams.&lt;/p&gt;

&lt;p&gt;After all that, we had our closing ceremony. They had a lot of prizes: a few monitors, mouse, chargers. They gave a shout-out to all the judges and mentors for being there, which was very nice. At the end, I really liked that they had handwritten cards for each judge. It had a personalized thank-you letter inside it, which felt very personal.&lt;/p&gt;

&lt;h3&gt;
  
  
  Final Thoughts
&lt;/h3&gt;

&lt;p&gt;Overall, honestly, for the first hackathon, being a judge was a lot more fun than I realized. It’s really nice to be in that position. It's interesting to see what people can cook up in 24–48 hours and loaded on caffeine. It felt like a breath of fresh air to meet some people in the field who have a common understanding of what you do. I might do it again. I may also drag a friend with me to do it and see what they think about it. I guess we’ll see what happens next&lt;/p&gt;

</description>
    </item>
    <item>
      <title>The Importance of Code Hygiene</title>
      <dc:creator>Kareem Itani</dc:creator>
      <pubDate>Mon, 14 Apr 2025 19:49:21 +0000</pubDate>
      <link>https://dev.to/kareem_itani_e51fee03fb7a/the-importance-of-code-hygiene-40op</link>
      <guid>https://dev.to/kareem_itani_e51fee03fb7a/the-importance-of-code-hygiene-40op</guid>
      <description>&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;p&gt;Welcome back today. I want to talk about tech debt and the importance of code hygiene. This is my advice and my input on it. We’ll dive into two critical aspects: managing code smells and removing unused libraries. These practices not only help in keeping your codebase clean but also improve overall project performance and maintainability.&lt;/p&gt;

&lt;h3&gt;
  
  
  Understanding Tech Debt
&lt;/h3&gt;

&lt;p&gt;Tech debt is like the leftover food you have in your fridge that you don’t want to deal with until it's too late. You know it's important to deal with, but sometimes you just push it off. I think that’s the best way for me to put it.&lt;/p&gt;

&lt;p&gt;Tech debt can be a combination of things in your codebase from lines of code that aren't being used anymore or libraries that are imported that may not need to be there. Essentially, it's just small mistakes or leftover messes that can quickly add up in your application.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Sad Truth of Code Health
&lt;/h3&gt;

&lt;p&gt;What's going to happen most of the time is that managers aren't going to value tasks like cleaning up tech debt over pushing new features, a UI update, a new endpoint, or maybe a new database column. They really don’t like to look into the health of the application.&lt;/p&gt;

&lt;p&gt;Usually, when you work in a smaller team of a few people, it is harder to find time to do clean-up work when the higher ups only want the newest latest feature all the time. As a developer, you never have enough time to go back and clean it all up.&lt;/p&gt;

&lt;h3&gt;
  
  
  Routine Code Cleanup
&lt;/h3&gt;

&lt;p&gt;Cleaning up tech debt is really important, and you'll thank yourself in the long run. Maybe set up something with your co-workers once a week when you review old code or, as you push your new code, take a second look.&lt;/p&gt;

&lt;p&gt;Make sure everything is clean. You'll undo old libraries, methods that have been deprecated but no one removed. Outdated code creates unnecessary clutter.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Challenge of Removing Code
&lt;/h3&gt;

&lt;p&gt;It’s much easier to add code than it is to remove it. Once code gets wrapped up in other classes, methods, and functions, everything becomes entangled. Cleaning it up later is tough. You have to be careful when adding new code to prevent bloating the application.&lt;/p&gt;

&lt;h3&gt;
  
  
  Final Thoughts on Tech Debt
&lt;/h3&gt;

&lt;p&gt;My advice to anybody is to take tech debt seriously. You won’t always have the chance to go back and clean it up, because you'll always be pushing forward to do something new.&lt;/p&gt;

&lt;p&gt;I like to think about it like this: you are working in a kitchen as a chef, and work after you are done for the day, clean up your station so you can come back the next day and work in a good environment.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>A Social Media App that Encourages Quality Over Quantity</title>
      <dc:creator>Kareem Itani</dc:creator>
      <pubDate>Sun, 16 Mar 2025 22:06:16 +0000</pubDate>
      <link>https://dev.to/kareem_itani_e51fee03fb7a/a-social-media-app-that-encourages-quality-over-quantity-3f36</link>
      <guid>https://dev.to/kareem_itani_e51fee03fb7a/a-social-media-app-that-encourages-quality-over-quantity-3f36</guid>
      <description>&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;p&gt;I’ve got some exciting news. I wanted to make a social media app for a while and I finally was able to do it with an interesting twist on the idea.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;The Vision Behind the Idea&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The biggest problem nowadays is that social media are filled with a bunch of junk posts that have no meaning to them. I want to make something that people want to put more effort into. I was aiming for a person's real look into their day or how they're feeling. I feel like Twitter has become, for example, just a mess of just garbage, sometimes where it's just a bunch of brain rot and low-effort content.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;The Gimmick and Concept&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Well, what’s the whole gimmick then? You can only make one post a day, and after that day is up, the post will be archived into your backlog. Where nobody can see it but you, so you can keep track. This should encourage people to make more thoughtful posts, hopefully sparking more organic posts, in a sense.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Technical Details&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;So, my front end, my back end, my knowledge of APIs, containers, Figma were all implemented. I did a lot of designing, redesigning, and restructuring. A lot of nights thinking about where this should go? How should I do this? What should I do with this? I used Next.js for the frontend framework. Since I haven't used it before, I thought it would be a good learning experience. I set up the backend with java/Spring for my services with a progress database. Used DTO, models, controllers, services for the backend to help me get the data from the database and then send it up to the frontend.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Feedback Request&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;If you want to try it out, here's the link to &lt;a href="http://behere.onrender.com/" rel="noopener noreferrer"&gt;behere.onrender.com&lt;/a&gt;. Keep in mind it may take a minute for the front end and back to start up. It's something I've been working on for a while. If you'd like to give it a try, let me know if there's anything you liked or didn't like or thought about adding or anything. I thought it was a cute project to work on in the meantime between everything else I'm doing. So, yeah, let me know what you think.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Conclusion&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;I am glad I was actually able to make this app. If I had told my younger self back in college that I would have built such a complex website, I wouldn’t have believed it. This was a fun passion project. I thank you for reading along.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>javascript</category>
      <category>socialmedia</category>
    </item>
    <item>
      <title>Level up your tech career by being social</title>
      <dc:creator>Kareem Itani</dc:creator>
      <pubDate>Sat, 22 Feb 2025 23:29:53 +0000</pubDate>
      <link>https://dev.to/kareem_itani_e51fee03fb7a/level-up-your-tech-career-by-being-social-1lma</link>
      <guid>https://dev.to/kareem_itani_e51fee03fb7a/level-up-your-tech-career-by-being-social-1lma</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;The Importance of Being Social in a Tech Company&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Have you ever thought about the most important skill as a software developer outside of coding? While technical skills are essential, there’s another aspect that could be even more important, that is being social. I’ve been thinking a lot about the role of social skills in the tech industry and I wanted to share some thoughts and how important it is.&lt;/p&gt;

&lt;h3&gt;
  
  
  Networking
&lt;/h3&gt;

&lt;p&gt;Let’s face it - networking is important. You’ve probably heard it a million times, but it’s true. I believe who you know matters more than what you know. You could create something amazing like the next Facebook, but if no one knows who you are, it’s like it never happened.&lt;/p&gt;

&lt;p&gt;For example, you’ve been working hard on a feature for months, and it turns out great. But if no one knows you built it, your manager might not even notice, and you could miss out on the recognition or promotion you deserve.&lt;/p&gt;

&lt;p&gt;Building relationships within the company ensures that your efforts don’t go unnoticed. Even if the project is small, if people know you and see what you’re working on, you’re more likely to gain attention and opportunities.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Building Strong Connections&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;It’s not just about recognition, having &lt;strong&gt;strong connections&lt;/strong&gt; with your coworkers makes collaboration easier. If you’re constantly engaging with your team and building a strong bond, it becomes much smoother to ask for help when needed.&lt;/p&gt;

&lt;p&gt;You’re stuck on a bug for hours. Instead of struggling alone, if you’ve built a solid connection with someone, you can reach out without feeling awkward. Having that comfort level with your coworkers can make problem-solving faster and more enjoyable. You don’t want to be the person who only reaches out when something is wrong; being present and friendly makes your presence more liked.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Building Strong Connections&lt;/strong&gt; Future Job Opportunities
&lt;/h3&gt;

&lt;p&gt;Social connections can also open up new opportunities down the road. Imagine one of your coworkers leaves the company and months later offers you a referral at their new workplace. Referrals can significantly boost your chances of landing a job, especially when the job market is tough.&lt;/p&gt;

&lt;p&gt;Building a network of people who trust you as a developer can make all the difference when it comes to finding new roles. Instead of stressing over applications, you’ll have connections vouching for you.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Conclusion&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Being social is often overlooked in the tech world because of the main focus being put on your technical abilities, but being social also plays a crucial role in career growth. Networking, building connections, and opening doors for future opportunities are all key benefits of being socially engaged at work.&lt;/p&gt;

&lt;p&gt;I’ve personally found that being social and outgoing has helped me grow faster in my career and meet people I wouldn’t have connected with otherwise.&lt;/p&gt;

&lt;p&gt;So, if you’re in tech and you’re not social, I’d encourage you to give it a try. The rewards, both personally and professionally, are worth it. Leave a comment and let me know what you think!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>The Harder the Struggle, the Bigger the Growth</title>
      <dc:creator>Kareem Itani</dc:creator>
      <pubDate>Mon, 20 Jan 2025 23:28:05 +0000</pubDate>
      <link>https://dev.to/kareem_itani_e51fee03fb7a/the-harder-the-struggle-the-bigger-the-growth-8o3</link>
      <guid>https://dev.to/kareem_itani_e51fee03fb7a/the-harder-the-struggle-the-bigger-the-growth-8o3</guid>
      <description>&lt;h4&gt;
  
  
  Appreciate Yourself
&lt;/h4&gt;

&lt;p&gt;You know what's one thing that all developers don't do? I've realized this further in my career.&lt;/p&gt;

&lt;p&gt;No one really appreciates how far they've come. No one realizes how much they've done to get where they are. I find this very common among multiples, like people and developers. It scopes outside of being just a developer, but you kind of forget about all the previous challenges, difficulties, and goals.&lt;/p&gt;

&lt;p&gt;You have to appreciate yourself. When times get hard, you keep going, and I'm sure you'll keep going. It won't be the last time that you get through something that you got stuck on. It happens, pat yourself on the back for what you've done in your career and don't be so harsh on yourself now.&lt;/p&gt;

&lt;h4&gt;
  
  
  Remembering Your Journey
&lt;/h4&gt;

&lt;p&gt;You get so lost in the journey that you forget how far you've come.&lt;/p&gt;

&lt;p&gt;The harder the struggle, the bigger the growth. Maybe you're working on how a four loop works, and now you're writing a full stack website that has a database and everything. Your challenges are still there, but just on a bigger scale. Sometimes you just have to appreciate the struggle.&lt;/p&gt;

&lt;h4&gt;
  
  
  Reflect on Your Growth
&lt;/h4&gt;

&lt;p&gt;My best advice as a developer is just don't get into yourself too much. Because once you think that you're bad or not good enough, it's hard for you to get out of that mindset.&lt;/p&gt;

&lt;p&gt;I feel like everyone has a bit of impostor syndrome no matter what, so you can't really escape it. No one really thinks that they're good enough. If you're not struggling, then you can't get any better. In my case, writing these blogs is a struggle for me. This is way out of my comfort zone, but I’m trying to see if I can learn more about writing and getting my thoughts out there.&lt;/p&gt;

&lt;h4&gt;
  
  
  Be Your Biggest Fan
&lt;/h4&gt;

&lt;p&gt;At the end of the day, no one is going to want you to succeed how much as you do, so try to be your biggest fan. Try to make your future self look back at what you have done and smile knowing that you were able to make it through all the struggle.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>From Chaos to Clarity: Refactoring Long Methods into Pure Functions</title>
      <dc:creator>Kareem Itani</dc:creator>
      <pubDate>Sun, 22 Dec 2024 06:15:28 +0000</pubDate>
      <link>https://dev.to/kareem_itani_e51fee03fb7a/from-chaos-to-clarity-refactoring-long-methods-into-pure-functions-4364</link>
      <guid>https://dev.to/kareem_itani_e51fee03fb7a/from-chaos-to-clarity-refactoring-long-methods-into-pure-functions-4364</guid>
      <description>&lt;h3&gt;
  
  
  &lt;strong&gt;The Problem with Long Methods in Code&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Hey there, I’ve been thinking a lot about code structure recently, particularly long methods. Today, I want to share some thoughts and advice on dealing with long methods or functions, and why they can be an issue.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What is the difference between Methods and Functions&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Methods and functions are very similar but they differ just a little bit, a function relies on data getting passed in through a parameter compared to a method which can be done globally.&lt;/p&gt;

&lt;p&gt;For example, this would be a pure function in java and is dependent on parameters being passed in&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MathUtils&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;addNumbers&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;However, this method is accessing a variable outside of the method call&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Counter&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;increment&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="o"&gt;++;&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Due to the fact that a method can access variables globally it can bit a bit tricky to test at times and can lead to unexpected side affects. Compared to a function which only will interact with what is passed on which can make it easier to test on.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;The Issue with Long Methods&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Long methods can quickly become a problem for developers. Imagine having a function that does multiple things—calling other functions, creating variables, making hash maps, arrays, and more. If one part of that process changes, it could cause unexpected results or side effects, which are not only frustrating but can also be tricky to debug. It makes the code harder to read and manage.&lt;/p&gt;

&lt;p&gt;A method that is overloaded with too many responsibilities can also be a nightmare for other developers to follow. If you have a long method with many loops, method calls, and lots of logic packed in, it's likely going to confuse someone reading it later on.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Why Pure Functions Matter&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;One of the best practices to combat long methods is creating pure functions. You may be wondering, "What's a pure function?" Basically a pure function is one that does only one thing and does it well, without side effects.&lt;/p&gt;

&lt;p&gt;For example, let’s say you’re building a calculator app. You don’t want one method to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Receive the user’s input,&lt;/li&gt;
&lt;li&gt;Determine the operation,&lt;/li&gt;
&lt;li&gt;Perform the calculation,&lt;/li&gt;
&lt;li&gt;Return the result,&lt;/li&gt;
&lt;li&gt;And then prompt the user for another input.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s a lot of responsibility for one method. Instead, break it up: one method could receive the user’s input, another could handle the operation, and so on. Each method should focus on a single task and perform it without affecting other parts of the code.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Refactoring Becomes Easier&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;By breaking up methods into smaller, single-purpose methods, you make your code much easier to refactor. For example, if you need to change how the operation is performed in the calculator app, you know exactly where to go and what to change. There’s no risk of breaking other parts of the application because the method is isolated and doesn’t rely on other methods unnecessarily.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Identifying Issues Becomes Simpler&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Pure functions make debugging much easier. If you expect a certain result like 17 from a method and get an unexpected outcome, you can quickly isolate the problem. If the issue lies in the next method and not the pure function, you already know the pure function is working as expected. This level of isolation is critical in keeping your code maintainable.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;The Importance of Readability&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Long, bloated methods are hard to read. When you submit a pull request and another developer is reviewing your code, you don’t want them to get confused. If your coworker needs to call you to clarify what you’ve changed, it’s a sign that your code may be too complicated. Refactoring your methods into smaller, single-purpose ones helps maintain clarity and allows others to understand your code more easily.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Planning Before You Code&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Before you dive straight into coding, take a moment to plan. I know it’s easy to get excited and want to jump right into writing code, but if you take a little time to think through your approach, your code quality will improve. Break things down into smaller parts, make sure each method has a clear and single responsibility, and you'll find your code becomes much more manageable.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Final Thoughts&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The best advice I can give is to practice breaking down your code into pure functions. It takes time and patience, but it’s worth the effort. You’ll thank yourself later when your code is clean, maintainable, and easy to debug.&lt;/p&gt;

&lt;p&gt;Remember, coding is a journey, and we all make mistakes along the way. Don’t be too hard on yourself, give it time, keep learning, and stay optimistic. I hope this advice is useful, and I’m sure you’ll get better with practice.&lt;/p&gt;

&lt;p&gt;Thanks for reading! Until next time.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Navigating the Full-Stack Path</title>
      <dc:creator>Kareem Itani</dc:creator>
      <pubDate>Fri, 01 Nov 2024 01:35:44 +0000</pubDate>
      <link>https://dev.to/kareem_itani_e51fee03fb7a/navigating-the-full-stack-path-1i5n</link>
      <guid>https://dev.to/kareem_itani_e51fee03fb7a/navigating-the-full-stack-path-1i5n</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Getting started&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Hello! We're back with another blog. I hope the last one went well! Today, I want to talk about how someone can become a full-stack developer, sharing my own experience, advice, and what worked for me. I'll cover technologies, frameworks, helpful websites, and more.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Starting with the Back End&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;To begin your journey, I recommend focusing on the back end. Start by learning &lt;strong&gt;Java&lt;/strong&gt;, which might feel a bit verbose and challenging at first, but it gives you a strong foundation in programming. Make sure you understand the fundamentals of Java, including concepts like &lt;strong&gt;data structures&lt;/strong&gt;, OOP, before branching into frameworks like &lt;strong&gt;Spring&lt;/strong&gt; and &lt;strong&gt;Spring Boot&lt;/strong&gt;. Once you have a solid grasp of these, it’s time to learn how &lt;strong&gt;APIs&lt;/strong&gt; work.&lt;/p&gt;

&lt;p&gt;A good way to practice is by creating simple projects such as a weather app that utilize APIs.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;One more thing before we move forward&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Now we have a good foundation of Java. Let's try to push the boundaries a bit. APIs will help us do so, question is what is an API. Best way for me to put it is someone that you can reach out to that will give you a bunch of information that you ask for. For example, let's say we want to make an app about the weather, well we don’t have much information about that but if we use the weather API we can ask them and they give us back a bunch of information about the weather like the temperature,wind speed,whether it's raining or not. It can provide us with a lot of useful information for our application.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Moving to the Front End&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Once you're comfortable with the back end and APIs, it’s time to shift focus to the front end. Start with the basics: &lt;strong&gt;HTML&lt;/strong&gt; and &lt;strong&gt;CSS&lt;/strong&gt;. After building a solid understanding of these, move on to &lt;strong&gt;JavaScript&lt;/strong&gt;. Once you’re familiar with all three, it's a good idea to pick up a front-end library like &lt;strong&gt;React&lt;/strong&gt; to add more functionality and scalability to your projects.&lt;/p&gt;

&lt;p&gt;After mastering these, you can try creating a personal website. For added practice, make API calls from the front end, not just the back end—this will help you understand how to link the two more effectively. If you're interested in &lt;strong&gt;state management&lt;/strong&gt;, learning &lt;strong&gt;Redux&lt;/strong&gt; is a great option.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Combining Front and Back End&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Once you understand both the front end and the back end, it’s time to combine them. A great way to start is by building something simple, like a &lt;strong&gt;login page&lt;/strong&gt;. Here’s an example flow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enter a username and password.&lt;/li&gt;
&lt;li&gt;Click “Login” to trigger an API call to your back end.&lt;/li&gt;
&lt;li&gt;Your back end processes the information and sends a response.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This exercise gives you a complete picture of how the front end and back end communicate, which is essential for full-stack development.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Building Larger Projects&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;With the basics in place, you can now move on to more complex projects. A great next step would be building a &lt;strong&gt;social media app&lt;/strong&gt; where the front end and back end communicate, and everything is dynamic and updatable.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Resources to Help You Learn&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;There are plenty of great resources available to help you along the way:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;FreeCodeCamp&lt;/strong&gt;: An excellent platform with free courses and tutorials.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CodePen&lt;/strong&gt;: A site where you can explore front-end projects, read other people's code, and practice your skills.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In addition to these platforms, watching tutorials and following experienced developers online is highly beneficial.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;The Learning Process&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Becoming a full-stack developer is a journey that requires patience and persistence. It’s natural to get stuck, feel frustrated, or doubt your abilities. If you have friends or colleagues who code, don't hesitate to reach out for help. They’ve likely experienced the same struggles, and getting a new perspective can often solve your issue faster.&lt;/p&gt;

&lt;p&gt;Over time, your coding practices will improve. You'll learn how to break down problems, write &lt;strong&gt;pure functions&lt;/strong&gt; (functions with a single purpose and no side effects), and organize your code more efficiently using &lt;strong&gt;classes&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Final Thoughts&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;In summary, here’s the pathway I recommend:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Start with &lt;strong&gt;Java&lt;/strong&gt; to understand coding fundamentals.&lt;/li&gt;
&lt;li&gt;Learn &lt;strong&gt;data structures&lt;/strong&gt; and back-end frameworks like &lt;strong&gt;Spring Boot&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Practice building &lt;strong&gt;APIs&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Shift to the front end with &lt;strong&gt;HTML&lt;/strong&gt;, &lt;strong&gt;CSS&lt;/strong&gt;, and &lt;strong&gt;JavaScript&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Learn a front-end library like &lt;strong&gt;React&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Combine your front-end and back-end knowledge to build small, functional projects.&lt;/li&gt;
&lt;li&gt;Scale up to larger, more complex applications over time.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Be patient with yourself, and remember that failure is a part of the process. Every mistake is an opportunity to learn and improve. Stick with it, and you'll find yourself getting better each day. Good luck!&lt;/p&gt;

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