Night Shift Dev
136 subscribers
22 photos
23 links
Daily notes, logs, resources from my journey getting a global dev job. 💻⌨️🖱️

website: mohamadh.xyz
Download Telegram
I've made a plan to learn AI SDKs and AWS in about a month.

Not everything. Just the parts that are actually useful for a full-stack developer. I've been seeing these skills appear in a lot of job postings, so I decided to focus on them first.

So far I've been using a combination of video tutorials, documentation, and AI, and honestly it's been working really well.

My Learning Process:

1️⃣ Start with videos

Whenever I start learning an unfamiliar topic, I first look for solid video material. Most of the time that's on YouTube.

I usually prefer complete playlists instead of random topic-by-topic videos because they follow a proper learning path and show how everything connects.

I don't watch every minute carefully. Instead, I go through the videos fairly quickly and skip parts when I feel comfortable doing so.

At this stage, my goal isn't to memorize everything. I'm mostly trying to understand:

- The overall process.
- How everything fits together.
- The basic syntax.
- The general architecture.
- What problems each concept solves.

2️⃣ Switch to AI

Once I've finished part of the videos, I switch to AI.

Instead of asking it to explain the whole topic from scratch, I tell it what I'm currently learning and ask it to become my tutor for that specific section.

This is how my prompt looks like:

You are my AI engineering mentor.

Your role is NOT to dump complete solutions immediately. Teach me the way a senior engineer mentors a junior developer.

## How you should teach

- Teach step by step (cover all parts of a concept before moving on).
- Explain the "why", not just the "how".
- At the end of each concept, give me small challenges or mini-projects so I learn by doing.
- Encourage me to write code from memory instead of copying.

If I get stuck for a while, then explain.

Do not overcomplicate the architecture. Prefer the smallest working solution first, then evolve it.

---

## Goal

Become an AI Full Stack Engineer by deeply understanding the OpenAI SDK and building projects.
[You write your goal]

---

## Current Progress

[Describe what I already understand.]

---

## Learning Roadmap

[Based on the videos I'm following.]

---

## Current Project

[Describe the project, current code, files, architecture, and where I'm currently stuck.]




I try to use only one chat for each topic/skill.


3️⃣ Read the documentation

After that, I go through the official documentation.

The videos give me the big picture, AI fills the gaps and answers my questions, and the docs help me understand the details and best practices and most importantly stay up-to-date.

I've found this combination much more effective than relying on just one resource.



@itsnightshift
7
Hyper-Speed #WebDesign Customer Service🤪
2🏆2
How Developers Use AI - Part 1

Right now Software Engineers use AI a lot, and I mean a looooot, like writing 80–90% of their code with AI.

And NO, this is not vibe coding. This is AI Assisted Coding.

The difference is that you're not just telling AI "build this" and blindly accepting whatever it gives you.

You still think about the problem, decide how things should be designed, define how the code should be written, and review the output. AI is basically doing a lot of the actual implementation and assembling the pieces for you.


That is one of the reasons companies are preferring more senior engineers.

You need to have a good understanding of fundamentals in order to instruct AI to build exactly what you need, review what it gives you, spot problems, and know how to assemble everything properly.
👌4👍1
Interesting fact: Since I started learning AI engineering, I can spot the hype around AI from reality much easier.

Since this is a very high-demand skill right now, I highly recommend that after learning Backend and Full Stack Development, you take some time to learn how to implement AI features, RAG, embeddings, etc.

It can be a real differentiator right now.

But as more and more developers learn these things, it will eventually become a necessity.
3👌1
Night Shift Dev
Interesting fact: Since I started learning AI engineering, I can spot the hype around AI from reality much easier. Since this is a very high-demand skill right now, I highly recommend that after learning Backend and Full Stack Development, you take some time…
Personally I couldn't find many solid YT tutorials on AI integeration using Node and Ts. I'm really playing with the Idea of creating a YT series on this myself. 🤔

[ Not to monetize a channel or something, just feel like this is something that people could actually use ]
2
How Developers Use AI - Part 2

1/ Never Start Projects With AI

If you start a project with AI (just using prompts) that's when you collect the most technical debt. The best practice is to set up the project and its base structure yourself.

By project structure I mean things like: Overall folder structure, base components, functions, UI and logic standards, husky, etc...

This is so AI has a solid structure and standards to follow when you start using it. The more structure and standards you already have in your codebase, the better the output you'll get from AI.



2/ Where to Use AI

AI is REALLY good at things like refactoring, migrations, porting code to another language or technology, and even writing tests. It's basically a language transformer, so these kinds of tasks are where it shines.

But it's not nearly as good at designing features or deciding how things should be designed. That's still where the engineer needs to spend a lot of time thinking.




3/ ‌Be Careful About The Costs

One of the reasons why AI can't replace engineers is its costs 😂 (And also the fact that it does a lot of shit when left unsupervised).

So in real dev jobs no one lets agents loose on a codebase unsupervised. And that's why we should always go through the whole generated code ourselves.



4/ The Code Quality Depends on Your Thinking Quality

The quality of the output you get from an LLM is proportional to the quality of your thinking.

So during learning, I encourage you NOT to use AI at all.

I mean DON'T use it to GENERATE code. Write the code by your own hands and figure out things by searching and reading the documents the traditional way 😆 So you actually understand the WHY behind the code.

Invest the time to actually learn the fundamentals. Learn how things work. Learn application design. Learn to read and critique code.

Because later, AI is going to make you MUCH faster.

If you write 💩 code, AI makes you faster at writing shit code.


If you write solid code, AI makes you faster at writing solid high quality code.

As we go further ahead in this AI era, thinking, fundamentals, application design, and the ability to judge and improve code are the skills that developers actually need.

@itsnightshift
❤‍🔥5
Night Shift Dev
How Developers Use AI - Part 2 1/ Never Start Projects With AI If you start a project with AI (just using prompts) that's when you collect the most technical debt. The best practice is to set up the project and its base structure yourself. By project structure…
To clarify this part: "figure out things by searching and reading the documents the traditional way"

It is fine to use AI to figure out what the code actually does. Just read through the whole explanation and make sure you actually understand. Still even with AI in place it is always a good Idea to take a look at their documents. They are usually more up-to-date compared to AI.
4
I’ll be sharing this tonight
7
What do Software Developer #Interviews look like?

Overall, there are two major parts to each developer job interview: Soft Skill Assessment and Technical Skill Assessment.

I'd say both are equally important, but right now let's focus on technical interviews because that's what stresses everyone out.

In terms of technical skills, outside FAANG, most interviews aren’t heavy LeetCode-style puzzles.

What you’ll usually see is a combination of:
- Practical coding (build a small feature, fix a bug, write a function, work with an API, etc.)
- System design (at a high level: architecture, databases, services, scaling, tradeoffs)
- Take-home or live coding exercise
- Some basic DSA (arrays, maps, strings, maybe trees), not hardcore graph DP stuff

So I’d focus on:
- Fundamentals
- Fundamentals
- Fundamentals
- Real-world scenarios
- Writing clean, readable code under time pressure
- Understanding how the technologies you work with actually work
- Working with data, APIs, databases, or other core parts of your stack
- Explaining your design choices and tradeoffs
- Light LeetCode (easy/medium) just to stay sharp

You don’t need to grind 300 problems.

Do enough to be comfortable coding live, and spend more time on real-world scenarios related to the role you’re applying for.

Let me know if you found any part of this unclear 🚶🏻‍♂️

@itsnightshift
4🙏1
A useful component library I came across specifically for implementing AI features:

https://elements.ai-sdk.dev

@itsnightshift
🔥51
It's been the busiest week of this year so far, (attending to some personal matters)


I'll chack all the messages by Saturday or Sunday 😬
5
Things are settling down 🙂‍↔️ How about some #Resume talk soon?
🔥7
Night Shift Dev
Projects are the most important part of your #Resume if you are an entery level developer. And putting only the project's repo link is a huge mistake many make. Recruiters are NOT going to download your project. Recruiters are NOT going to install your dependencies.…
Dev #Resume Best Practices

I see sooooo many horrible dev resumes.
So I'm writing this hoping to see more solid ones from now on, and more importantly, more of you getting the interviews you deserve.

Some of the best practices to follow when writing your resume:

1. Keep it to one page
If you're a junior or mid-level developer with less than ~5 years of experience, your resume really shouldn't be more than one page.

If it is, you're probably either filling it with buzzwords hoping it'll make you look more experienced than you are, or you're simply not using the space properly.

Either way, you're stealing the recruiter's attention from what actually matters.

2. Keep the design simple
Please don't make your resume two columns just because you think it looks more "modern."

And don't throw in random graphics, skill bars, icons, progress circles, or other design elements just to stand out.

Keep it simple and professional.

Use a good, consistent font. You don't need a photo either. Apart from taking up valuable space, a photo can introduce unnecessary bias.

Your goal isn't to impress someone with your graphic design skills.

Your goal is to make it ridiculously easy for them to understand who you are, what you've built, and what you're good at.

3. Follow a clear structure
You don't need 17 different sections. Keep things organized, but don't over-engineer the resume either.

A simple structure works really well:

Name + Title + Contact
Put your name and title at the top, along with your relevant contact links, video intro (if you have one), and portfolio.

Summary
3–4 lines max. And please, don't start with:
"I'm a passionate, self-taught developer who loves solving problems..."

Everyone says this. Instead, show your passion by talking about the problems you've actually tackled in your projects or previous experience.

Skills
Don't cram this section with every technology you've ever touched. You don't need:
HTML, CSS, JavaScript, Git, GitHub, VS Code...

Focus on technologies that actually communicate something useful. For example:
Next.js (already tells me you know React), TypeScript, Tailwind, React Query (Says you know how to manage server state), Redux, Node.js, Express, Drizzle, Redis, etc.

And make the important technologies easy to spot.

This section matters because it's often one of the first things a recruiter scans when deciding whether the rest of your resume is worth reading.

Experience
If you have experience, keep it concise. Use bullet points, but don't turn every bullet into a generic list of things you were assigned to do.

For example, instead of:
Used Redis to create a caching layer for our backend.


Try to lead with the impact:
Improved inventory response times from ~600ms to ~100ms by implementing Redis-based caching strategies.

Same technology. Very different story.

Talk about what changed because of the work you did, whenever you can.

If you don't have professional experience yet, replace this section with your projects.

But make sure those projects are actually strong. Ideally, build things that feel close to production-level rather than another basic todo app.

4. Your projects section
I've already talked about this in detail before, so I'm not going to repeat everything here.

Check it out here: https://t.me/itsnightshift/26

5. Put your resume online
Have your resume available through a link.

With an online resume, you can also keep updating it without having to send everyone a new file. Anyone who has the link automatically sees the latest version.

Small thing, but it makes the whole process much easier.


I'll attach my own resume here in case you are looking for a sample: https://mohamadh.xyz/resume.pdf



@itsnightshift
4🔥2👏1
When you need advice from someone, do not make them wait through a conversation just to discover what you wanted to ask.

Do not send:
“Hi.”

Then wait.

Then:
“How are you?”

Then wait.

Then:
“Can I ask you something?”

And only after all that, finally ask the question.

Put your message together from the beginning. Greet them, explain what you need, and ask your question clearly.

This is easier for you, easier for them, and you will receive an answer much sooner.

And when you have many questions, be selective. Do not send ten questions one after another simply because the person answered the first.

Respecting another person’s time is also a form of consideration.

Keep it clear. Keep it concise. And get to the point.

@itsnightshift
8
Success in life (or in getting what you want ) doesn’t just require technical skills.

In fact, more than that, it requires the right mindsets and personality traits.

There are certain traits that literally stop you from achieving what you want. And by fixing each one of those, your actions start to change, and you get closer to achieving your goals.

If you’ve been working hard towards a goal for so long and still haven’t been able to get any closer to achieving it, I would bet that, in many ways, you are still the exact same person you used to be.

Look at the people who are exactly where you want to be.

How are they different?
How are their beliefs different?
How are their actions different?
Where do those actions stem from?
What beliefs or thoughts push them to take those actions?

You need to build those beliefs to the point where you can actually act on them. And the right actions drive the right results.

Success stems from making the right decisions over and over again, while reducing the mistakes along the way.

If you’ve been trying for sooo long to achieve a goal and you still haven’t achieved it, this is a point worth looking into.

@itsnightshift
4
The Evolution of a Jen Z Kid
6😁21❤‍🔥1
The easiest video I've seen to explain the concept of system design.

One reason why junior devs struggle to learn advanced concepts is because they don't understand how those concepts are going to be helpful in a real application.

This video explains how applications actually work and how we scale them.

https://www.youtube.com/watch?v=EaXHfuHRWwg
6
This takes less than an hour to read.

With a story it teaches how to assess the situation all the time and when to know it is time for a change.

How to put our fears aside and adapt to the new situation. Something the dev community really needs these days.
👍4🤝1
🟡 Reminder to self: Write about the best way to self study English and introduce resources.
3