Sign in

Ndeye Fatou Diop

@ndeyefatoudiop.bsky.social
198 followers 370 following 910 posts

Senior Frontend Engineer | 5+ years of experience I share tips to help overwhelmed junior frontend developers 🎉 . Join for free 👉 www.frontendjoy.com/subscribe

PostsRepliesMedia
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 25/07/2025
You’re not “behind.” You’re exactly where someone who’s trying should be.
000
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 23/07/2025
Writing bad code is part of writing better code. It’s the only way you learn.
010
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 22/07/2025
Writing code that runs is one level. Writing code that’s easy to read is the next.
020
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 21/07/2025
Dear junior dev, One year of relentless practice will put you ahead of people who dabbled for five.
010
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 20/07/2025
What is wrong with this #react code?
const expensiveValue = useMemo(   () => compute(a, b),    [a] );
020
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 20/07/2025
If your CSS doesn’t work, add a bright border. Debug visually. Old trick, still gold.
010
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 19/07/2025
JavaScript Tip 💡 Use 𝙳𝚊𝚝𝚎.𝚙𝚊𝚛𝚜𝚎() to convert a date string to a timestamp
const timestamp = Date.parse('2025-07-06'); console.log(timestamp); // e.g. 1751760000000
010
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 19/07/2025
Dear junior dev, It’s better to write simple code you understand than clever code you don’t.
000
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 18/07/2025
What is wrong with this #react code?
useEffect(() => {   const interval = setInterval(doStuff, 1000);   return clearInterval(interval); }, []);
020
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 18/07/2025
You can’t compare your progress to someone who’s been at it twice as long. Stay in your lane.
000
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 17/07/2025
JavaScript Tip 💡 Use 𝚕𝚘𝚌𝚊𝚝𝚒𝚘𝚗.𝚛𝚎𝚕𝚘𝚊𝚍() to force reload the current page
// Reloads the browser tab location.reload();
010
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 17/07/2025
Dear junior dev, Stop trying to learn everything at once. • Pick one thing. • Go deep. That’s how you grow.
000
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 16/07/2025
What is wrong with this #react code?
const MyComponent = () => {   <div>Hello</div>; };
010
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 16/07/2025
Most of software development is just figuring out why something doesn’t work.
010
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 15/07/2025
JavaScript Tip 💡 Use 𝚍𝚘𝚌𝚞𝚖𝚎𝚗𝚝.𝚍𝚎𝚜𝚒𝚐𝚗𝙼𝚘𝚍𝚎 = "𝚘𝚗" to 𝗺𝗮𝗸𝗲 𝗮𝗻𝘆 𝘄𝗲𝗯𝗽𝗮𝗴𝗲 𝗲𝗱𝗶𝘁𝗮𝗯𝗹𝗲 (great for quick mockups or demos)
document.designMode = "on";
110
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 15/07/2025
Dear junior dev, Googling/using AI tools isn’t cheating. It’s part of the job.
010
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 14/07/2025
What is wrong with this #react code?
useEffect(() => {   fetch('/api/user');   setLoaded(true); }, []);
020
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 13/07/2025
JavaScript Tip 💡 Use 𝙿𝚛𝚘𝚖𝚒𝚜𝚎.𝚛𝚎𝚜𝚘𝚕𝚟𝚎(𝚟𝚊𝚕𝚞𝚎) and 𝙿𝚛𝚘𝚖𝚒𝚜𝚎.𝚛𝚎𝚓𝚎𝚌𝚝(𝚎𝚛𝚛𝚘𝚛) to quickly create resolved or rejected promises.
Promise.resolve(42).then(console.log); // 42
010
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 13/07/2025
Dear junior dev, You’ll look back one day and be shocked at how far you’ve come. Keep going 💪.
010
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 12/07/2025
What is wrong with this #react code?
const MyComponent = () => {   const inputRef = useRef(null);    // ... some logic that uses inputRef      return <input ref={inputRef.current} />; };
010
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 12/07/2025
Debugging is 80% of coding. Once you accept that, everything gets easier.
2313
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 11/07/2025
JavaScript Tip 💡 Use 𝚂𝚝𝚛𝚒𝚗𝚐.𝚛𝚊𝚠 with template literals to output raw strings, ignoring escapes.
console.log(String.raw`Line1\nLine2`);  // => "Line1\nLine2" (no actual newline)
000
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 11/07/2025
Dear junior dev, You don’t need more fancy tools. You need more reps.
000
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 10/07/2025
What is wrong with this #react code?
const handleSubmit = () => {   setIsSubmitting(true);   if (isSubmitting) {     return;   }   sendData(); };
000
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 10/07/2025
Most devs are stuck because they wait for a manager’s roadmap. It rarely comes. Yesterday, 3,128 devs learned how to steer their careers. Miss it? Catch up here ↓ www.frontendjoy.com/p/devs-own-...
frontendjoy.com
FrontendJoy
Learn how to become a Senior Frontend Engineer without a CS Degree or natural talent.
000
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 09/07/2025
JavaScript Tip 💡 Use 𝙾𝚋𝚓𝚎𝚌𝚝.𝚎𝚗𝚝𝚛𝚒𝚎𝚜() + 𝙰𝚛𝚛𝚊𝚢.𝚏𝚒𝚕𝚝𝚎𝚛() to filter object properties
020
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 09/07/2025
Dear junior dev, The seniors you admire once panicked over a merge conflict too.
000
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 08/07/2025
What is wrong with this #react code?
const MyComponent = () => {   if (someCondition) {     const [state, setState] = useState(false);   } };
000
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 08/07/2025
Devs: Own your growth — or regret it later. Most drift without a plan. Here’s how to avoid it: • Set goals (or anti-goals) • Build a simple plan • Share & refine it • Show up daily Tomorrow, I’ll show 3,128 devs how to take control. Join us: frontendjoy.com/subscribe
frontendjoy.com
FrontendJoy
Learn how to become a Senior Frontend Engineer without a CS Degree or natural talent.
000
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 07/07/2025
JavaScript Tip 💡 Use 𝚍𝚘𝚌𝚞𝚖𝚎𝚗𝚝.𝚑𝚊𝚜𝙵𝚘𝚌𝚞𝚜() to check if the tab is active.
if (!document.hasFocus()) {   console.log("Tab is not active"); }
000
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 07/07/2025
Dear junior dev, If you feel like you’re learning slowly, remember: • Slow learning sticks. • Fast learning fades.
021
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 02/07/2025
JavaScript Tip 💡 Use 𝙰𝚛𝚛𝚊𝚢.𝚙𝚛𝚘𝚝𝚘𝚝𝚢𝚙𝚎.𝚛𝚎𝚍𝚞𝚌𝚎𝚁𝚒𝚐𝚑𝚝() to process arrays from right to left.
const nums = [1, 2, 3, 4]; const result = nums.reduceRight(     (acc, n) => acc - n ); console.log(result);  // => ((4 - 3) - 2) - 1 = -2
020
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 02/07/2025
Dear junior dev, Even on the days when nothing works—you’re still learning.
000
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 01/07/2025
Dear junior dev, Reading other people’s code can feel like reading a foreign language. That’s normal. You’ll get better at it.
010
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 30/06/2025
JavaScript Tip 💡 Use 𝙳𝚊𝚝𝚎.𝚙𝚛𝚘𝚝𝚘𝚝𝚢𝚙𝚎.𝚝𝚘𝙸𝚂𝙾𝚂𝚝𝚛𝚒𝚗𝚐() for easy, standardized timestamps.
const now = new Date(); console.log(now.toISOString());  // => "2025-06-16T08:45:00.000Z"
000
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 30/06/2025
The secret to confidence as a developer? Build. Break. Fix. Repeat.
020
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 29/06/2025
What is wrong with this #react code?
function MyComponent() {   const getLabel = () => "Hello!";    return <p>{getLabel}</p>; }
000
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 29/06/2025
Dear junior dev, You’re not slow. The tutorials just skipped 10 steps.
000
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 28/06/2025
JavaScript Tip 💡 Use 𝚗𝚊𝚟𝚒𝚐𝚊𝚝𝚘𝚛.𝚖𝚊𝚡𝚃𝚘𝚞𝚌𝚑𝙿𝚘𝚒𝚗𝚝𝚜 to detect if the device supports touch.
const isTouch = navigator.maxTouchPoints > 0; console.log(   isTouch ? "Touch device" : "Non-touch device" );
010
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 28/06/2025
Your code doesn’t need to be clever. It needs to be clear.
010
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 27/06/2025
What is wrong with this #react code?
function greeting() {   return <h1>Hello</h1>; }  export default function App() {   return <greeting />; }
000
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 27/06/2025
Getting better at debugging will level up your dev career faster than learning another framework.
000
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 26/06/2025
JavaScript Tip 💡 Use 𝙾𝚋𝚓𝚎𝚌𝚝.𝚐𝚎𝚝𝙾𝚠𝚗𝙿𝚛𝚘𝚙𝚎𝚛𝚝𝚢𝙽𝚊𝚖𝚎𝚜() to get all property names, even non-enumerable ones.
const obj = { name: "Fatou" }; Object.defineProperty(   obj,    'hidden',    { value: 42, enumerable: false } ); console.log(   Object.getOwnPropertyNames(obj) ); // ["name", "hidden"]
000
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 26/06/2025
Dear junior dev, If you think you’re the only one confused— You’re not. You’re just the only one saying it out loud.
000
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 25/06/2025
What is wrong with this #react code?
const [user, setUser] = useState(     {          name: "Fatou",          age: 31      } );  // ... // Inside callback function setUser({      website: "frontendjoy.com"  });
000
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 25/06/2025
The most underrated skill as a frontend dev? 👉 Knowing when to stop tweaking the UI.
000
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 24/06/2025
JavaScript Tip 💡 Use 𝚝𝚢𝚙𝚎𝚘𝚏 𝚟𝚊𝚕𝚞𝚎 === '𝚏𝚞𝚗𝚌𝚝𝚒𝚘𝚗' to safely check if something is callable.
function runIfFunction(fn) {   if (typeof fn === "function") fn(); }
000
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 24/06/2025
Don’t aim to “memorize” #react. Aim to understand the problem it’s solving.
020
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 23/06/2025
Is React still worth learning in 2025? I shared 7 reasons why the answer is yes — from simplicity to scale. Yesterday, 3,053 devs got the full breakdown. Missed it? Read it here ↓ www.frontendjoy.com/p/is-react-...
frontendjoy.com
✨ Is React really that great?
7 reasons why React is still a top choice for frontend developers in 2025
020
Ndeye Fatou Diop @ndeyefatoudiop.bsky.social · 23/06/2025
The real skill isn’t avoiding bugs. It’s staying calm when they show up.
000