RRU 041: Design Patterns with Soumyajit Pathak


  • Lucas Reis
  • Charles Max Wood
  • Justin Bennett

Special Guest: Soumyajit Pathak

In this episode, the panelists talk with Soumyajit Pathak (India) who is a full-stack developer and cybersecurity enthusiast. The panel and the guest talk about design patterns and designing simpler code for clarity and less confusion. Check out today’s episode!

Show Topics:

0:00 – Kendo UI

0:31 – Chuck: Our panelists are and our guest is Soumyajit! Introduce yourself please! Are you doing React on the side?

1:02 – Guest: I am a master’s student and I am doing freelancing.

1:42 – Panel.

1:49 – Guest.

2:10 – Chuck: I am feeling very up-to-date. Woo! Universities are teaching this and that and they are focused on theory. The flipside is that they are going to write real code for real systems.

3:10 – Panel: I like your well-written blog posts. You talk about design patterns.

3:50 – Guest: The design patterns at the university had to do with real JavaScript applications.

4:09 – Chuck: I am curious you are talking about the design patterns – how can people from React find/use it?

4:45 – Panel: It depends on your definition of design patterns.

5:35 – Lucas: Maybe you are using one or two here and reading through the design patterns is like going through your toolbox. You only need a screwdriver but you bought the whole toolbox. Get familiar with it and from time to time solve problems and thing: what tool can help me here? It’s clear to me with this toolbox analogy. I understand now – that tool I saw 2 months ago could help me.

7:00 – Guest: I have an interesting story with this about design patterns. Let me share!

7:36 – Justin: It was a similar thing but I wasn’t in JavaScript at the time. I’ve used a lot of C++ code. Design patterns became very useful. I saw it the same way Lucas!

9:23 – Justin continues: How and why to use a certain tool. That’s important.

10:28 – Chuck: Okay this is the default pattern and that’s where we can go for the fallback. Here is the fallback if this doesn’t work here or there.

10:49 – Lucas: This is important to remember. It’s not how to use the tool but it’s why am I using this tool here or there?

11:57 – Justin: It’s so much information in general. People get information overload and they have to just start! One of the challenges we do is that we over-engineer things. Do what you need to know. Look it up but play with it.

12:40 – Lucas: It’s interesting by another blog post that you wrote Soumyajit – and you are using a render prop. You showed a problem and showed the solution.

13:30 – Guest: Yeah I’ve written a lot of blog posts about this topic.

13:48 – Panel: Often times – it’s hard for people just to dive-in. People need to see you solving a problem and it really helps with the learning process.

15:03 – Chuck: What patterns do you find most useful?

15:11 – Panel: Functional components have changed my world!

16:23 – Guest: Around these functional components…

17:17 – Panel: I will go with the patterns that are not useful. Don’t make your code pattern-oriented. This is my favorite pattern now and going back to basics.

18:53 – Panelists go back-and-forth.

19:01 – Lucas.

19:41 – Chuck: You talk about over-engineering things and that’s what I found myself doing sometimes with my new project. When I figure out how to make it simpler I get excited and it’s easy to follow.

20:15 – Panel: We celebrate the person who deleted the most lines of code.

20:28 – Panel: I am going to steal that idea.

21:04 – Guest: I have an interesting story of over-engineering something – let me share!

21:53 – FreshBooks!

22:59 – Panel: Building too much is b/c I don’t have a clear understanding of what I am doing. I get excited about problems. What’s the more simple way / most naïve way possible!

24:36 – Lucas: If you are going to change something you will be changing it in several different places.

25:50 – Chuck: When I heard the concept, all the codes that change together should be together.

26:08 – Lucas comments.

26:53 – Panel: Keeping things contained in one place. We have our presentational component and higher-level component, so you can see it all.

28:28 – Lucas: Different people working on different technologies.

29:15 – Panel: Can I break this down to smaller parts, which makes sense to me?

29:48 – Guest: Looking for keywords will cause a distraction. Finding a balance is good.

30:04 – Chuck: If you have a large rile there could be a smaller component that is there own concern. That feels like the real answer to me. It has a lot less than the length of the file versus…

Chuck: If I cannot follow it then I need to keep the concept simple.

30:51 – Lucas: The quantity of lines and the line count – I think it’s better how many indentations you have.

32:43 – Guest.

32:48 – Lucas: Yes, so in the horizontal scrolling you have to keep things in your mind.

33:41 – Panel: There are so many different metrics that you can use and the different line count or different characters. There are more scientific terms that we could plugin here. If you have a lot of these abstract relations that can…write it 

34:23 – Chuck: So true.

34:52 – Chuck: I want to move onto a different problem so it’s an attention thing for me too.

35:06 – Panel: We have to get okay with not always writing the best code in that it just needs to do what it needs to do.

35:30 – Chuck.

35:57 – Panel: We write it once – then it falls apart and then we write it again and learn from the process. Learning is the key here – you see where it works and where it doesn’t work well.

36:31 – Panel.

36:47 – Chuck mentions service-side rendering.

Chuck: Should we schedule another episode?

37:11 – Panel: I think it’s own episode b/c it’s a complex problem overall.

39:33 – Lucas: Try to find memory leaks in the file components and server-side rendering. Where we have lost a lot of sleep and a higher level of complication. Sometimes it’s necessary.

41:42 – Chuck: Yeah let’s do another episode on this topic. Sounds like there is a lot to dive into this topic. Soumyajit, how do people find you?

42:10 – Guest: Twitter and GitHub!

42:28 – Picks!

42:30 – Advertisement – Get A Coder Job!

End – Cache Fly