WEBVTT

1
00:00:06.440 --> 00:00:10.359
<v Speaker 1>Hey, everyone, Welcome to another episode of React Roundup. I

2
00:00:10.400 --> 00:00:13.279
<v Speaker 1>am your host today, Paige Needringhouse, and I am joined

3
00:00:13.279 --> 00:00:14.359
<v Speaker 1>by our panelist TJ.

4
00:00:14.519 --> 00:00:15.000
<v Speaker 2>Vantold.

5
00:00:15.199 --> 00:00:20.000
<v Speaker 1>Hey everybody, and our special guest today is Akash Joshi. Akash,

6
00:00:20.280 --> 00:00:23.120
<v Speaker 1>can you say hi to the audience and tell us

7
00:00:23.120 --> 00:00:25.760
<v Speaker 1>a little bit about yourself why you're famous? But we're

8
00:00:25.760 --> 00:00:26.719
<v Speaker 1>going to talk about today.

9
00:00:27.160 --> 00:00:31.239
<v Speaker 3>Hey guys, So my name is Akash, and I think

10
00:00:31.600 --> 00:00:35.840
<v Speaker 3>the thing that I might be famous for is talking

11
00:00:35.840 --> 00:00:38.759
<v Speaker 3>a lot about myself and the things that I do online.

12
00:00:39.640 --> 00:00:44.079
<v Speaker 3>And primarily I work as a React developer, and I

13
00:00:44.159 --> 00:00:47.880
<v Speaker 3>try to simplify the complex things that I have learned

14
00:00:48.119 --> 00:00:50.920
<v Speaker 3>and try to share that knowledge through my blog and

15
00:00:51.039 --> 00:00:55.200
<v Speaker 3>through posts on places like record camp and YouTube. And

16
00:00:55.520 --> 00:00:57.640
<v Speaker 3>that's primarily what I try to do.

17
00:00:57.960 --> 00:00:58.679
<v Speaker 2>That's awesome.

18
00:00:58.840 --> 00:01:02.280
<v Speaker 1>So what kind of complex things are you learning about

19
00:01:02.280 --> 00:01:05.079
<v Speaker 1>that you're trying to help others get better at?

20
00:01:05.480 --> 00:01:09.959
<v Speaker 3>So I think React itself might be a complex thing

21
00:01:10.200 --> 00:01:13.840
<v Speaker 3>because we have a lot of web developers here in India.

22
00:01:14.359 --> 00:01:18.280
<v Speaker 3>Most of my friends work in web development, but they

23
00:01:18.319 --> 00:01:21.920
<v Speaker 3>never seem to go beyond just htmls yes, his, JavaScript

24
00:01:21.920 --> 00:01:26.640
<v Speaker 3>and bootstraf and never go into the more productive parts

25
00:01:26.640 --> 00:01:31.400
<v Speaker 3>of web development. Like being able to build applications at

26
00:01:31.400 --> 00:01:35.280
<v Speaker 3>a much faster speed and in a much more scalable

27
00:01:35.319 --> 00:01:39.480
<v Speaker 3>way using technologies like React. So that's where I try

28
00:01:39.519 --> 00:01:42.640
<v Speaker 3>to position my content, and that's what I'm trying to do.

29
00:01:42.959 --> 00:01:44.640
<v Speaker 4>So I'm curious before we get into some of the

30
00:01:44.840 --> 00:01:48.840
<v Speaker 4>topics themselves, what got you into the teaching aspect of this.

31
00:01:49.159 --> 00:01:51.760
<v Speaker 4>Was it doing running problems you ran into the work

32
00:01:51.760 --> 00:01:53.719
<v Speaker 4>that wanted to help into others, or what made you

33
00:01:53.760 --> 00:01:56.920
<v Speaker 4>want to actually blog and talk about some of these things.

34
00:01:57.560 --> 00:02:02.000
<v Speaker 3>So, actually, I've been writing about things that I've learned,

35
00:02:02.159 --> 00:02:06.359
<v Speaker 3>and I guess I mean, you could call it teaguing,

36
00:02:06.400 --> 00:02:10.120
<v Speaker 3>but it was a way of noting down the things

37
00:02:10.120 --> 00:02:13.919
<v Speaker 3>that I have learned myself. I started. I mean, am

38
00:02:14.000 --> 00:02:16.599
<v Speaker 3>I allowed to name brands on here like hacker Noon

39
00:02:16.840 --> 00:02:17.840
<v Speaker 3>and publications like that?

40
00:02:18.199 --> 00:02:18.360
<v Speaker 1>Yeah?

41
00:02:19.680 --> 00:02:23.159
<v Speaker 3>Yeah, So I kind of started by reading hacker Noon

42
00:02:23.400 --> 00:02:26.639
<v Speaker 3>and it was kind of it used to be the

43
00:02:26.719 --> 00:02:28.960
<v Speaker 3>highlight of the day for me looking at posts that

44
00:02:29.080 --> 00:02:31.759
<v Speaker 3>people have written, and I saw that a lot of

45
00:02:31.759 --> 00:02:34.280
<v Speaker 3>them were people my age who were just learning new

46
00:02:34.280 --> 00:02:37.560
<v Speaker 3>things and writing about them. And that's how I myself

47
00:02:37.599 --> 00:02:42.639
<v Speaker 3>got started. I started with learning note js and then

48
00:02:42.719 --> 00:02:46.479
<v Speaker 3>contributing to a few open source repositories on GitHub, and

49
00:02:46.840 --> 00:02:52.919
<v Speaker 3>as I learned new things while learning notejs, like, for example,

50
00:02:53.159 --> 00:02:56.919
<v Speaker 3>how to publish your own NPM library for example, then

51
00:02:56.960 --> 00:03:00.639
<v Speaker 3>I used to write articles on those things, and that's

52
00:03:00.680 --> 00:03:05.039
<v Speaker 3>also what ended up. I mean, that's how I also

53
00:03:05.080 --> 00:03:08.560
<v Speaker 3>got my first job, because people found out about me

54
00:03:08.599 --> 00:03:12.240
<v Speaker 3>through my articles, And yeah, that's kind of how it's

55
00:03:12.280 --> 00:03:13.560
<v Speaker 3>been progressing so far.

56
00:03:14.120 --> 00:03:15.199
<v Speaker 2>That's fantastic.

57
00:03:15.560 --> 00:03:19.319
<v Speaker 1>I've I didn't start writing until after i'd actually gotten

58
00:03:19.360 --> 00:03:21.719
<v Speaker 1>my first job, so it was a little bit backwards

59
00:03:21.759 --> 00:03:24.439
<v Speaker 1>to the way that you went about it. But I've

60
00:03:24.599 --> 00:03:27.719
<v Speaker 1>definitely found that learning things at work and then writing

61
00:03:27.759 --> 00:03:31.199
<v Speaker 1>about them really helps me, helps it solidify in my mind.

62
00:03:31.520 --> 00:03:35.520
<v Speaker 1>And it also helps me when I've forgotten something like

63
00:03:36.080 --> 00:03:38.159
<v Speaker 1>an article I wrote two or three years ago, I

64
00:03:38.159 --> 00:03:40.479
<v Speaker 1>can go back and search through and find how I

65
00:03:40.759 --> 00:03:45.840
<v Speaker 1>did something. So definitely multiple benefits for it. But like,

66
00:03:46.039 --> 00:03:49.800
<v Speaker 1>what do you remember which articles it was that made

67
00:03:49.879 --> 00:03:52.479
<v Speaker 1>your current or your employer reach out to you.

68
00:03:53.120 --> 00:03:58.199
<v Speaker 3>Those were actually articles about to react. So I used

69
00:03:58.280 --> 00:04:03.000
<v Speaker 3>to reach out to publications like CSS tricks on zero,

70
00:04:03.680 --> 00:04:08.280
<v Speaker 3>and I think publications were more open back a few

71
00:04:08.360 --> 00:04:12.759
<v Speaker 3>years ago to new writers and letting them write for

72
00:04:12.800 --> 00:04:16.199
<v Speaker 3>them basically, So that's how I got started with it.

73
00:04:16.279 --> 00:04:20.000
<v Speaker 3>Like through note js, I ended up learning React while

74
00:04:20.079 --> 00:04:23.519
<v Speaker 3>contributing to an open source organization, and then I tried

75
00:04:23.519 --> 00:04:26.120
<v Speaker 3>to translate some of those skills to an article and

76
00:04:26.399 --> 00:04:31.160
<v Speaker 3>trying to explain how to learn React hooks, which were

77
00:04:31.240 --> 00:04:34.560
<v Speaker 3>the big thing back in twenty eighteen, like the end

78
00:04:34.600 --> 00:04:38.240
<v Speaker 3>of twenty eighteen. I think, so, yeah, that's how it

79
00:04:38.279 --> 00:04:39.600
<v Speaker 3>got started. Cool.

80
00:04:39.680 --> 00:04:41.959
<v Speaker 4>Well, I know one of the articles you had written

81
00:04:42.040 --> 00:04:45.480
<v Speaker 4>is about structuring React projects, So I'm curious maybe you

82
00:04:45.480 --> 00:04:49.680
<v Speaker 4>could walk people through roughly what you covering that in

83
00:04:49.959 --> 00:04:53.600
<v Speaker 4>any advice you have to people, Because it's stretching React

84
00:04:53.600 --> 00:04:55.560
<v Speaker 4>projects is not a small topic, right, There's lots of

85
00:04:55.639 --> 00:04:59.600
<v Speaker 4>opinions around that. I'm curious what advice you have there.

86
00:05:00.240 --> 00:05:04.560
<v Speaker 3>Right, definitely, So structuring React projects is one of the

87
00:05:04.639 --> 00:05:08.720
<v Speaker 3>more recent articles that I've written, and I think it

88
00:05:08.839 --> 00:05:12.199
<v Speaker 3>got more eyeballs on it, specially especially because it's such

89
00:05:12.199 --> 00:05:15.879
<v Speaker 3>a polarizing topic. Everyone kind of has their own opinion

90
00:05:15.920 --> 00:05:19.920
<v Speaker 3>on it, and they're willing to read about someone else's

91
00:05:20.000 --> 00:05:25.720
<v Speaker 3>opinion and how I So, how I got started it

92
00:05:25.839 --> 00:05:30.639
<v Speaker 3>with it was basically in my first job, the React

93
00:05:30.959 --> 00:05:33.399
<v Speaker 3>the React projects that I was building weren't that complex,

94
00:05:33.920 --> 00:05:37.120
<v Speaker 3>so I didn't really get a chance to get to

95
00:05:37.160 --> 00:05:39.560
<v Speaker 3>the depths of React. But in my second job, I

96
00:05:39.720 --> 00:05:44.000
<v Speaker 3>had to build uish which had to scale between various

97
00:05:44.000 --> 00:05:48.759
<v Speaker 3>teams and so kind of while building upon the fundamentals

98
00:05:48.800 --> 00:05:52.160
<v Speaker 3>that next JS has set in for the how a

99
00:05:52.240 --> 00:05:55.920
<v Speaker 3>React project should be structured, I kind of added my

100
00:05:56.199 --> 00:06:00.079
<v Speaker 3>own sort of small twists on top of that, and

101
00:06:00.079 --> 00:06:03.759
<v Speaker 3>that's how I landed up at the project structure that

102
00:06:03.839 --> 00:06:09.399
<v Speaker 3>I'm currently using. So should I walk through that what

103
00:06:09.480 --> 00:06:10.600
<v Speaker 3>the project structure is?

104
00:06:11.079 --> 00:06:14.720
<v Speaker 1>Yeah, definitely for anybody who hasn't read the article, which

105
00:06:14.800 --> 00:06:17.519
<v Speaker 1>we will link to in the show notes, but yeah,

106
00:06:17.560 --> 00:06:19.920
<v Speaker 1>it'd be great to hear what your what your take.

107
00:06:19.759 --> 00:06:20.319
<v Speaker 2>On it it is.

108
00:06:20.639 --> 00:06:24.720
<v Speaker 3>Yeah. So one of the first things is that to

109
00:06:25.199 --> 00:06:29.480
<v Speaker 3>not clutter the root folder of the project. It's helpful

110
00:06:29.600 --> 00:06:36.759
<v Speaker 3>to have all of your files separated into a specific

111
00:06:36.800 --> 00:06:41.680
<v Speaker 3>source folder. And then I mostly talk about how various

112
00:06:41.759 --> 00:06:44.480
<v Speaker 3>components of the project should be structured inside of the

113
00:06:44.519 --> 00:06:50.639
<v Speaker 3>source folder. So the primary aspect of any web project

114
00:06:50.920 --> 00:06:56.439
<v Speaker 3>is the routing. So next Days has a good way

115
00:06:56.720 --> 00:07:00.680
<v Speaker 3>of maintaining routes through the pages folder, and I talk

116
00:07:00.720 --> 00:07:04.639
<v Speaker 3>about that how you can create top level routes inside

117
00:07:04.639 --> 00:07:09.759
<v Speaker 3>of these pages, but I don't recommend having any UI

118
00:07:09.920 --> 00:07:14.079
<v Speaker 3>components or the code itself stored inside of these pages,

119
00:07:14.120 --> 00:07:19.759
<v Speaker 3>but having separate component having a separate component folder, and

120
00:07:19.800 --> 00:07:25.519
<v Speaker 3>then naming these folders according to the page or the

121
00:07:25.560 --> 00:07:28.920
<v Speaker 3>set of pages where these components will be used, and

122
00:07:28.959 --> 00:07:34.680
<v Speaker 3>then storing these components inside these name folder structures. And

123
00:07:34.759 --> 00:07:39.199
<v Speaker 3>then I talk about other things like data adaptors and

124
00:07:39.720 --> 00:07:45.800
<v Speaker 3>context stores. So data adaptors would be adaptors like in

125
00:07:45.839 --> 00:07:51.879
<v Speaker 3>the adapter project adaptor pattern of writing code, where these

126
00:07:51.920 --> 00:07:54.839
<v Speaker 3>would just be functions which you would call, and then

127
00:07:54.920 --> 00:07:58.680
<v Speaker 3>the adapter in its own back end would then make

128
00:07:58.879 --> 00:08:02.279
<v Speaker 3>any API call or any ware socket call, or any

129
00:08:02.360 --> 00:08:06.120
<v Speaker 3>anything like that, and then return the data in whatever

130
00:08:06.360 --> 00:08:11.360
<v Speaker 3>format that the original Collie expects. So I also recommend

131
00:08:11.439 --> 00:08:17.319
<v Speaker 3>splitting those splitting the adapters folder into various folders and

132
00:08:17.360 --> 00:08:21.560
<v Speaker 3>files according to the structure of the pages, and context

133
00:08:21.600 --> 00:08:26.199
<v Speaker 3>stores would be Generally, context stores wouldn't be applicable to

134
00:08:26.319 --> 00:08:32.559
<v Speaker 3>simple UH projects, but for more complex projects where generally

135
00:08:32.679 --> 00:08:37.759
<v Speaker 3>people end up using data management library like React, UH,

136
00:08:39.080 --> 00:08:45.440
<v Speaker 3>react context or reducts, then generally UH these context folders

137
00:08:45.480 --> 00:08:52.279
<v Speaker 3>can hold the context stores for these for the set

138
00:08:52.320 --> 00:08:57.240
<v Speaker 3>of pages and yeah, that's what I recommend there, and

139
00:08:57.320 --> 00:09:00.159
<v Speaker 3>the rest of the article then just talks about how

140
00:09:00.279 --> 00:09:03.960
<v Speaker 3>you can store your styles and public assets.

141
00:09:04.320 --> 00:09:06.399
<v Speaker 4>So I'm curious, just because I haven't done much with

142
00:09:06.559 --> 00:09:09.840
<v Speaker 4>next GS, how much does next enforce Because you said

143
00:09:09.879 --> 00:09:13.279
<v Speaker 4>the pages folder is like a built in next GS thing.

144
00:09:13.840 --> 00:09:17.039
<v Speaker 4>Are there other like special folders with that framework or

145
00:09:17.080 --> 00:09:19.799
<v Speaker 4>is some of that just stuff that you made up

146
00:09:19.840 --> 00:09:21.399
<v Speaker 4>for your recommendations.

147
00:09:21.919 --> 00:09:26.960
<v Speaker 3>So there are two things which next Days enforces, which

148
00:09:27.000 --> 00:09:30.440
<v Speaker 3>is having a pages folder for storing your routes and

149
00:09:30.600 --> 00:09:34.559
<v Speaker 3>having a public folder to store all of the static

150
00:09:34.600 --> 00:09:38.639
<v Speaker 3>asset files. And the rest of the things or the

151
00:09:38.639 --> 00:09:41.399
<v Speaker 3>rest of the folders were something that I enforced myself,

152
00:09:42.120 --> 00:09:45.039
<v Speaker 3>that I made up myself. I guess, yeah, gotcha.

153
00:09:45.159 --> 00:09:49.039
<v Speaker 4>So it sounds like you're because usually I find that

154
00:09:49.360 --> 00:09:53.960
<v Speaker 4>most folder structure there's almost like two different paths people take.

155
00:09:54.080 --> 00:09:58.320
<v Speaker 4>Either you group your stuff by your files, by their

156
00:09:59.000 --> 00:10:03.320
<v Speaker 4>type of file, their components, their adapters there, whatever the

157
00:10:03.360 --> 00:10:06.919
<v Speaker 4>case is, or you group by feature, like you have

158
00:10:06.960 --> 00:10:10.960
<v Speaker 4>a folder that this is my I don't know my navigation,

159
00:10:11.120 --> 00:10:14.559
<v Speaker 4>or this is my widget, this is my menu, And

160
00:10:14.639 --> 00:10:18.799
<v Speaker 4>it sounds like you prefer just grouping by feature, right,

161
00:10:18.919 --> 00:10:21.159
<v Speaker 4>like components, adapters, that sort of thing.

162
00:10:21.639 --> 00:10:26.360
<v Speaker 3>Right, So if you consider a set of files like

163
00:10:26.720 --> 00:10:30.759
<v Speaker 3>catering to a particular feature, then yeah, I agree that

164
00:10:30.879 --> 00:10:33.879
<v Speaker 3>it's kind of similar to grouping by a feature. But

165
00:10:34.080 --> 00:10:38.919
<v Speaker 3>I've heard more. I mean, I've heard the counterargument that

166
00:10:39.399 --> 00:10:43.519
<v Speaker 3>my full destructive actually goes counter to having your having

167
00:10:43.600 --> 00:10:47.559
<v Speaker 3>story having to store your files in terms of features.

168
00:10:47.919 --> 00:10:51.840
<v Speaker 3>So I guess it depends on how you see, how

169
00:10:51.879 --> 00:10:52.960
<v Speaker 3>you look at your application.

170
00:10:53.240 --> 00:10:55.559
<v Speaker 4>I guess yeah, And I think there's no like right

171
00:10:55.639 --> 00:10:59.559
<v Speaker 4>or wrong way, because angular is very specific, just to

172
00:10:59.559 --> 00:11:04.840
<v Speaker 4>give one example of they recommend not having folders like

173
00:11:04.879 --> 00:11:08.879
<v Speaker 4>that because they'll tell you to do things like just

174
00:11:08.879 --> 00:11:12.519
<v Speaker 4>just no name by features. But that, like, I don't

175
00:11:12.519 --> 00:11:14.559
<v Speaker 4>think there's a right or wrong answer, because I've seen

176
00:11:14.679 --> 00:11:17.960
<v Speaker 4>both get messy when you start to deal at scale,

177
00:11:18.080 --> 00:11:21.639
<v Speaker 4>because then if you're grouping only by features, then in

178
00:11:21.679 --> 00:11:24.080
<v Speaker 4>a complex app, it's like, well, which features are within

179
00:11:24.159 --> 00:11:26.799
<v Speaker 4>what features? And like sometimes you'll have nested features and

180
00:11:26.799 --> 00:11:29.799
<v Speaker 4>then you'll need to refactor them out of it. And

181
00:11:30.000 --> 00:11:32.960
<v Speaker 4>I don't think there's a clean answer to this. But

182
00:11:33.000 --> 00:11:36.120
<v Speaker 4>I always find it interesting what people come up with

183
00:11:36.200 --> 00:11:39.320
<v Speaker 4>for best practices. I don't know, page would you do

184
00:11:39.360 --> 00:11:42.159
<v Speaker 4>at the home depot if you have a folder structure

185
00:11:42.240 --> 00:11:45.879
<v Speaker 4>that you've magically solved solved this problem with it all.

186
00:11:46.480 --> 00:11:48.840
<v Speaker 1>I don't think that we have that at all. But

187
00:11:49.000 --> 00:11:51.840
<v Speaker 1>the way that my team typically approaches it is we

188
00:11:52.080 --> 00:11:55.679
<v Speaker 1>have a folder that is purely for the API calls

189
00:11:55.720 --> 00:11:59.440
<v Speaker 1>that we call our service layer. We have one four components,

190
00:11:59.480 --> 00:12:03.840
<v Speaker 1>which are the smaller pieces of a React application, like buttons, inputs,

191
00:12:05.279 --> 00:12:09.240
<v Speaker 1>maybe even something as large as a table. And then

192
00:12:09.320 --> 00:12:13.240
<v Speaker 1>we have containers which are kind of the I guess

193
00:12:13.279 --> 00:12:16.960
<v Speaker 1>the pages quote unquote that a next day as project

194
00:12:17.080 --> 00:12:21.840
<v Speaker 1>might contain, So it's things like our whole navbar or

195
00:12:22.519 --> 00:12:26.200
<v Speaker 1>the main contents of a page. And then we have

196
00:12:26.600 --> 00:12:29.720
<v Speaker 1>helper functions that are just used throughout the project, which

197
00:12:29.720 --> 00:12:32.919
<v Speaker 1>are usually kind of plain JavaScript functions that might be

198
00:12:33.000 --> 00:12:36.879
<v Speaker 1>used to format particular data or kind of transform it.

199
00:12:37.519 --> 00:12:40.279
<v Speaker 1>We have hooks, which are the custom hooks that we

200
00:12:40.399 --> 00:12:45.000
<v Speaker 1>use throughout different components in the application. But you know,

201
00:12:45.240 --> 00:12:48.919
<v Speaker 1>it follows the Java pattern a little bit because most

202
00:12:48.919 --> 00:12:51.600
<v Speaker 1>of our back end services are built using Java, and

203
00:12:51.799 --> 00:12:54.600
<v Speaker 1>Java is very prescriptive and how it wants things done,

204
00:12:54.960 --> 00:12:58.440
<v Speaker 1>so we lean on that a bit. But React is

205
00:12:58.480 --> 00:13:02.240
<v Speaker 1>so unopinionated about it, really, however it works for you,

206
00:13:02.600 --> 00:13:05.600
<v Speaker 1>is probably a pretty decent way to kind of filter

207
00:13:05.639 --> 00:13:07.039
<v Speaker 1>your application.

208
00:13:06.639 --> 00:13:10.080
<v Speaker 4>I think, Yeah, gotcha. I think that's why your article

209
00:13:10.120 --> 00:13:13.480
<v Speaker 4>gets so much attention is because no one's really solved

210
00:13:13.480 --> 00:13:17.039
<v Speaker 4>this and people like hearing other's opinions on the issue.

211
00:13:17.399 --> 00:13:20.440
<v Speaker 1>Oh yeah, it's a great opportunity to just see how

212
00:13:20.480 --> 00:13:22.840
<v Speaker 1>other people are approaching it, and maybe you can get

213
00:13:22.840 --> 00:13:24.639
<v Speaker 1>something good out of it that you can take back

214
00:13:24.639 --> 00:13:25.440
<v Speaker 1>to your own app.

215
00:13:25.720 --> 00:13:26.120
<v Speaker 2>Totally.

216
00:13:26.519 --> 00:13:29.440
<v Speaker 1>So, Akash, I was looking at your website, which I've

217
00:13:29.480 --> 00:13:32.879
<v Speaker 1>also linked to, and I noticed that you're not only

218
00:13:32.960 --> 00:13:35.399
<v Speaker 1>working full time. It looks like you've also got a

219
00:13:35.440 --> 00:13:38.000
<v Speaker 1>couple of side projects, and I'd love to hear a

220
00:13:38.039 --> 00:13:40.240
<v Speaker 1>little bit more about them, because you have a link

221
00:13:40.320 --> 00:13:44.159
<v Speaker 1>to this thing called cash parser and also a link

222
00:13:44.200 --> 00:13:46.039
<v Speaker 1>to product hunt, So can you tell us a little

223
00:13:46.039 --> 00:13:47.519
<v Speaker 1>bit about what you're doing there.

224
00:13:47.960 --> 00:13:53.360
<v Speaker 3>Yeah. So, gas Sponsor is a kind of fintech micro

225
00:13:53.440 --> 00:13:57.039
<v Speaker 3>startup that I am running with a friend of mine.

226
00:13:57.320 --> 00:14:02.440
<v Speaker 3>So he it's basically his being and I provide all

227
00:14:02.480 --> 00:14:05.279
<v Speaker 3>of the front end help that he needs in going

228
00:14:05.320 --> 00:14:12.080
<v Speaker 3>through that. So cast statements are basically consolidated account statements

229
00:14:12.080 --> 00:14:16.519
<v Speaker 3>that get generated for all of the mutual funds that

230
00:14:16.639 --> 00:14:21.039
<v Speaker 3>a person holds. So mutual funds are basically a set

231
00:14:21.080 --> 00:14:25.159
<v Speaker 3>of stocks that people can buy, and a set of

232
00:14:25.200 --> 00:14:28.799
<v Speaker 3>these mutual funds is stored in that cast statement, and

233
00:14:28.840 --> 00:14:33.320
<v Speaker 3>we allow passing of that statement and generating the data

234
00:14:33.399 --> 00:14:37.919
<v Speaker 3>in whatever format that the user needs. So that's where

235
00:14:38.480 --> 00:14:42.600
<v Speaker 3>that's what cash pars is about. And on product hunt,

236
00:14:42.679 --> 00:14:46.639
<v Speaker 3>I generally try to post about some fun side projects

237
00:14:46.679 --> 00:14:49.759
<v Speaker 3>that I have I might have built. Like for example,

238
00:14:49.799 --> 00:14:53.360
<v Speaker 3>I used to have a telegram bot which used to

239
00:14:54.240 --> 00:14:58.879
<v Speaker 3>give notifications whenever a website changed. So I used to

240
00:14:59.159 --> 00:15:03.639
<v Speaker 3>use this spot to track the results page for my university,

241
00:15:04.559 --> 00:15:07.879
<v Speaker 3>and some other people did some other fun projects with it,

242
00:15:08.039 --> 00:15:12.480
<v Speaker 3>like tracking the careers page of a place ef work

243
00:15:12.559 --> 00:15:14.759
<v Speaker 3>that they wanted to work at or something like that,

244
00:15:15.159 --> 00:15:19.039
<v Speaker 3>and so I had to take that brought down because

245
00:15:19.039 --> 00:15:22.240
<v Speaker 3>it was too resource intensive. But I have made its

246
00:15:22.279 --> 00:15:29.279
<v Speaker 3>API open and basically the other projects small small projects

247
00:15:29.320 --> 00:15:32.320
<v Speaker 3>like this that I have found useful for myself, and

248
00:15:32.360 --> 00:15:34.440
<v Speaker 3>then I try to put them on product and to

249
00:15:35.200 --> 00:15:37.279
<v Speaker 3>try to get some other users for it.

250
00:15:38.360 --> 00:15:41.039
<v Speaker 1>Yeah, that's very nice of you to share that kind

251
00:15:41.080 --> 00:15:43.919
<v Speaker 1>of software because that sounds really useful for different.

252
00:15:43.720 --> 00:15:46.840
<v Speaker 4>Things with sites here, where you would you just paying

253
00:15:47.279 --> 00:15:52.240
<v Speaker 4>like a configurable amount like paying a site store. What

254
00:15:52.440 --> 00:15:55.879
<v Speaker 4>was there and like if if it notices like any changes,

255
00:15:56.000 --> 00:15:57.399
<v Speaker 4>then sends a message.

256
00:15:57.960 --> 00:16:00.919
<v Speaker 3>Yeah, yeah, that's exactly what it used to do.

257
00:16:01.440 --> 00:16:02.080
<v Speaker 2>Very cool.

258
00:16:02.879 --> 00:16:06.559
<v Speaker 1>So are you continuing to work on side projects like

259
00:16:06.600 --> 00:16:10.000
<v Speaker 1>this or is there anything else that you're doing, like

260
00:16:10.200 --> 00:16:14.200
<v Speaker 1>I don't know, writing courses or kind of blogging more.

261
00:16:14.360 --> 00:16:17.639
<v Speaker 1>What are you like, what are you most focused.

262
00:16:17.320 --> 00:16:21.200
<v Speaker 3>On right now? Yeah? I think I'm too young to

263
00:16:21.200 --> 00:16:25.080
<v Speaker 3>write a course or you know, ask payment for someone

264
00:16:25.159 --> 00:16:28.720
<v Speaker 3>to teach them something, while there are like more smarter

265
00:16:28.879 --> 00:16:33.679
<v Speaker 3>people who can who freely provide content for things that

266
00:16:33.720 --> 00:16:37.960
<v Speaker 3>people want to learn about. So that's what I also

267
00:16:38.000 --> 00:16:41.759
<v Speaker 3>tried to do earlier. I used to make side projects

268
00:16:41.799 --> 00:16:45.000
<v Speaker 3>for fun, and later on it became that I wanted

269
00:16:45.080 --> 00:16:47.600
<v Speaker 3>to try to monitor some of the work that I

270
00:16:47.639 --> 00:16:50.919
<v Speaker 3>had done earlier and try to build on that. But then,

271
00:16:51.320 --> 00:16:54.399
<v Speaker 3>I mean, when you're trying to monetize something, things start

272
00:16:54.559 --> 00:16:56.919
<v Speaker 3>to become less fun because you have to worry about

273
00:16:56.960 --> 00:17:01.000
<v Speaker 3>things like marketing. There might be search engine optimize, building

274
00:17:01.080 --> 00:17:05.519
<v Speaker 3>landing pages, stuff like that. So then I kind of

275
00:17:06.279 --> 00:17:10.079
<v Speaker 3>slowed that down a little bit, and now I'm creating content.

276
00:17:10.880 --> 00:17:14.319
<v Speaker 3>Content that is that would be fun for me to make,

277
00:17:14.559 --> 00:17:17.480
<v Speaker 3>if it makes sense. So when I feel like it,

278
00:17:17.559 --> 00:17:19.559
<v Speaker 3>I write a blog. When I feel like it, I

279
00:17:19.599 --> 00:17:22.960
<v Speaker 3>try to record a YouTube video. Now, editing a YouTube

280
00:17:23.079 --> 00:17:27.319
<v Speaker 3>video is not fun. Recording can be fun.

281
00:17:27.400 --> 00:17:30.920
<v Speaker 1>Sometimes I can totally relate to that.

282
00:17:30.920 --> 00:17:32.119
<v Speaker 3>That's what I do.

283
00:17:33.839 --> 00:17:34.119
<v Speaker 2>Nice.

284
00:17:34.200 --> 00:17:37.519
<v Speaker 1>I can definitely relate to that, not the whole monetizing thing.

285
00:17:37.599 --> 00:17:40.240
<v Speaker 1>But the second something goes from being just kind of

286
00:17:40.279 --> 00:17:42.720
<v Speaker 1>like a hobby project too, and I must do this

287
00:17:42.839 --> 00:17:46.039
<v Speaker 1>or get this to work, it's it's usually a lot

288
00:17:46.119 --> 00:17:47.400
<v Speaker 1>less fun that way.

289
00:17:47.880 --> 00:17:51.480
<v Speaker 4>Yeah, having lots of users is like a double edged sword.

290
00:17:52.119 --> 00:17:56.160
<v Speaker 4>It's cool. But at the same time, then people have demands,

291
00:17:56.240 --> 00:17:58.279
<v Speaker 4>especially if they're paying money then they have they have

292
00:17:58.319 --> 00:18:00.319
<v Speaker 4>a lot more demands and.

293
00:18:00.359 --> 00:18:04.920
<v Speaker 1>A lot more sway over what you'll actually do for them. Yeah, yeah,

294
00:18:04.960 --> 00:18:08.440
<v Speaker 1>well that's cool. So what kind of day to day

295
00:18:09.039 --> 00:18:11.119
<v Speaker 1>things do you get to use for your work with

296
00:18:11.200 --> 00:18:14.279
<v Speaker 1>your company that you work for, Like what kind of

297
00:18:14.319 --> 00:18:15.640
<v Speaker 1>tech stack and tools?

298
00:18:16.079 --> 00:18:19.400
<v Speaker 3>So it might sound boring to some people that I

299
00:18:19.480 --> 00:18:22.400
<v Speaker 3>get to work with React a lot, but it's actually

300
00:18:22.599 --> 00:18:27.720
<v Speaker 3>really fun for me because JavaScript is how I got started,

301
00:18:28.559 --> 00:18:32.960
<v Speaker 3>and React for me is the best expression of JavaScript

302
00:18:33.640 --> 00:18:38.440
<v Speaker 3>and especially via typescript, where I can kind of automat

303
00:18:38.480 --> 00:18:42.559
<v Speaker 3>aly most of my workflow. And then it's fun to

304
00:18:42.720 --> 00:18:46.079
<v Speaker 3>think about how I can build something with the minimum

305
00:18:46.119 --> 00:18:50.880
<v Speaker 3>amount of lines of code by trying to create the

306
00:18:50.920 --> 00:18:56.400
<v Speaker 3>optimum function which can be reused everywhere, or basically reduce

307
00:18:56.440 --> 00:18:58.319
<v Speaker 3>the amount of work that I would have to do

308
00:18:58.359 --> 00:19:02.519
<v Speaker 3>to build something. So yeah, mostly I do get to

309
00:19:02.559 --> 00:19:07.599
<v Speaker 3>work with reacting typeescript, and I hope to learn rest soon.

310
00:19:08.279 --> 00:19:10.960
<v Speaker 1>I've heard a lot of people who seem to be

311
00:19:11.079 --> 00:19:16.039
<v Speaker 1>jobs script developers kind of gravitating towards Rust. What's kind

312
00:19:16.039 --> 00:19:17.160
<v Speaker 1>of drawing you towards it?

313
00:19:17.720 --> 00:19:25.440
<v Speaker 3>So I especially like the functional programming paradigms inside of JavaScript,

314
00:19:25.559 --> 00:19:28.240
<v Speaker 3>and I try to use them as much as possible.

315
00:19:29.000 --> 00:19:32.960
<v Speaker 3>So when I look at last, I like most university

316
00:19:33.000 --> 00:19:37.279
<v Speaker 3>students have of course learned CNC plus plus and nobody

317
00:19:38.000 --> 00:19:41.480
<v Speaker 3>like after playing with modern programming languages, going back to

318
00:19:41.519 --> 00:19:46.200
<v Speaker 3>that is not fun. But Rust is something different because it,

319
00:19:46.839 --> 00:19:52.200
<v Speaker 3>even though it has some complex programming paradigms like it

320
00:19:52.799 --> 00:19:58.480
<v Speaker 3>quite strictly defines the life cycles of a variable and

321
00:19:58.640 --> 00:20:02.240
<v Speaker 3>you have to deal with things like borrowing memory values

322
00:20:02.279 --> 00:20:07.359
<v Speaker 3>between variables. It's still fun because the kind of strictness

323
00:20:07.440 --> 00:20:12.200
<v Speaker 3>that it applies is eventually what results in better, better

324
00:20:12.240 --> 00:20:15.480
<v Speaker 3>code being written. But of course I don't speak this

325
00:20:15.519 --> 00:20:18.079
<v Speaker 3>from my experience. This is just from things I've read

326
00:20:18.079 --> 00:20:24.279
<v Speaker 3>on link. But more experienced Trust developer would probably be

327
00:20:24.359 --> 00:20:26.240
<v Speaker 3>able to give this answer better. But yeah, that was

328
00:20:26.279 --> 00:20:27.079
<v Speaker 3>my opinion on this.

329
00:20:27.440 --> 00:20:28.160
<v Speaker 2>It's funny page.

330
00:20:28.200 --> 00:20:30.720
<v Speaker 4>You're right, I feel like Rust is the cool thing

331
00:20:30.799 --> 00:20:34.039
<v Speaker 4>for JavaScript developers to do. I feel like we missed

332
00:20:34.079 --> 00:20:37.039
<v Speaker 4>the memo here at some point because I haven't gotten

333
00:20:37.039 --> 00:20:39.839
<v Speaker 4>into Rust at all. But I also think like it's

334
00:20:39.839 --> 00:20:43.839
<v Speaker 4>funny that a lot of JavaScript tooling is now starting.

335
00:20:43.960 --> 00:20:47.920
<v Speaker 4>There's like some Rust based tools that are supposedly faster

336
00:20:48.200 --> 00:20:50.960
<v Speaker 4>that are starting to become more popular. So it's going

337
00:20:51.000 --> 00:20:53.559
<v Speaker 4>to be interesting to see how that changes over time.

338
00:20:53.759 --> 00:20:54.880
<v Speaker 4>Maybe I'll have to learn it too.

339
00:20:55.599 --> 00:20:59.759
<v Speaker 1>I now I hear this kind of stuff pretty regularly,

340
00:21:00.160 --> 00:21:04.319
<v Speaker 1>like Rust Go. But I guess my problem is a

341
00:21:04.359 --> 00:21:09.079
<v Speaker 1>time management one where I use Java and I use

342
00:21:09.680 --> 00:21:13.680
<v Speaker 1>React mostly for my job, and so that's what most

343
00:21:13.720 --> 00:21:17.400
<v Speaker 1>of my time goes towards, is those two programming languages.

344
00:21:18.480 --> 00:21:21.440
<v Speaker 1>I've used Python a little bit. I'd like to learn Go,

345
00:21:21.559 --> 00:21:23.920
<v Speaker 1>I think, because I've heard really good things about it.

346
00:21:24.000 --> 00:21:25.119
<v Speaker 2>But it's there's just so.

347
00:21:25.079 --> 00:21:28.160
<v Speaker 1>Many languages and so little time to learn them and

348
00:21:28.160 --> 00:21:30.160
<v Speaker 1>then apply them, I guess, is the main thing.

349
00:21:30.759 --> 00:21:32.799
<v Speaker 4>Yeah, And I think like, at least for me, I

350
00:21:32.880 --> 00:21:35.920
<v Speaker 4>have to have a reason to do it, right, like

351
00:21:35.960 --> 00:21:38.680
<v Speaker 4>if I have a project in mind, and Akash, like,

352
00:21:38.720 --> 00:21:42.480
<v Speaker 4>it's interesting hearing some of your stories too, because you're

353
00:21:42.880 --> 00:21:44.599
<v Speaker 4>like a lot of these side projects came out of

354
00:21:44.960 --> 00:21:48.599
<v Speaker 4>actual problems you had or things that you wanted to do,

355
00:21:48.720 --> 00:21:51.759
<v Speaker 4>which is always interesting to see because at least for me,

356
00:21:52.000 --> 00:21:53.480
<v Speaker 4>and I don't know about you too, but I can't

357
00:21:53.519 --> 00:21:55.160
<v Speaker 4>just sit down and say, like, well, I'm going to

358
00:21:55.200 --> 00:21:58.480
<v Speaker 4>learn erlink today, right, Like if I do that, like

359
00:21:58.519 --> 00:22:00.799
<v Speaker 4>there's no amount of focus the world that's going to

360
00:22:00.839 --> 00:22:03.960
<v Speaker 4>get me to learn earlang. But if I had like

361
00:22:04.599 --> 00:22:06.680
<v Speaker 4>some problem that I needed to solve in my life

362
00:22:06.759 --> 00:22:08.640
<v Speaker 4>or for my job, and like, okay, sure, like that

363
00:22:08.720 --> 00:22:10.799
<v Speaker 4>gives my brain a reason to sit down and focus

364
00:22:10.839 --> 00:22:11.279
<v Speaker 4>and do it.

365
00:22:11.799 --> 00:22:12.519
<v Speaker 2>Absolutely.

366
00:22:12.720 --> 00:22:16.200
<v Speaker 1>I tried that with Haskell one time because a programmer

367
00:22:16.480 --> 00:22:19.039
<v Speaker 1>who I work with had a senior developer he had

368
00:22:19.079 --> 00:22:20.880
<v Speaker 1>recommended it as a good way to kind of get

369
00:22:20.880 --> 00:22:24.359
<v Speaker 1>your feet wet with functional programming. And I made it

370
00:22:24.400 --> 00:22:28.119
<v Speaker 1>through I don't know, maybe three two or three chapters

371
00:22:28.200 --> 00:22:31.640
<v Speaker 1>of getting started with Haskell book and then just put

372
00:22:31.680 --> 00:22:33.400
<v Speaker 1>it down and never picked it back up again.

373
00:22:33.599 --> 00:22:35.680
<v Speaker 2>So yeah, you definitely have to have.

374
00:22:35.720 --> 00:22:38.599
<v Speaker 1>Something that you're trying to solve, not just trying to

375
00:22:38.680 --> 00:22:40.559
<v Speaker 1>learn for the fun of I think.

376
00:22:41.039 --> 00:22:44.519
<v Speaker 4>Actually, Akasha, I'm curious because you said that you had

377
00:22:44.599 --> 00:22:47.720
<v Speaker 4>kind of liked the functional style of programming, and I'm curious,

378
00:22:48.200 --> 00:22:51.160
<v Speaker 4>is that come from like work experience or school, because

379
00:22:51.319 --> 00:22:54.880
<v Speaker 4>I say this as someone that functional is never totally

380
00:22:54.880 --> 00:22:57.160
<v Speaker 4>clicked from me, and maybe like because like page, I

381
00:22:57.200 --> 00:23:00.319
<v Speaker 4>came from a Java background, and Java is very much

382
00:23:00.440 --> 00:23:02.839
<v Speaker 4>not I mean, there's you can kind of do some

383
00:23:02.880 --> 00:23:05.799
<v Speaker 4>functional things, but it's very much not a functional language really,

384
00:23:05.880 --> 00:23:08.880
<v Speaker 4>so I struggled to get my brain to work that way.

385
00:23:08.880 --> 00:23:12.079
<v Speaker 4>So I'm curious why, like, what made you interested in

386
00:23:12.079 --> 00:23:12.720
<v Speaker 4>that approach.

387
00:23:13.200 --> 00:23:18.319
<v Speaker 3>Yeah. So I didn't pick up functional programming in university

388
00:23:18.559 --> 00:23:23.519
<v Speaker 3>because most of the university classes are based on objectory interprogramming.

389
00:23:24.160 --> 00:23:29.279
<v Speaker 3>But where I initially started picking up functional programming was

390
00:23:29.640 --> 00:23:34.319
<v Speaker 3>again when I was reading Hacker Moon back then, and

391
00:23:34.440 --> 00:23:38.079
<v Speaker 3>there were a lot of articles written about things like

392
00:23:38.559 --> 00:23:42.359
<v Speaker 3>I guess monads, which nobody really understands. But then there

393
00:23:42.359 --> 00:23:49.279
<v Speaker 3>were things about like topics like composibility of functions and immutability.

394
00:23:49.680 --> 00:23:54.079
<v Speaker 3>So immutability and pure functions. Those are the two things

395
00:23:54.079 --> 00:23:57.519
<v Speaker 3>which really got me into functional programming because then I

396
00:23:57.559 --> 00:24:04.240
<v Speaker 3>could write code, which wasn't surprising kind of so in

397
00:24:04.480 --> 00:24:08.240
<v Speaker 3>seeing you end up writing code which you don't understand

398
00:24:08.400 --> 00:24:11.359
<v Speaker 3>what it does, like at least I used to, because

399
00:24:11.759 --> 00:24:16.880
<v Speaker 3>I couldn't try see well, I guess. But with functional programming,

400
00:24:16.960 --> 00:24:21.160
<v Speaker 3>I could write JavaScript, which even if I come back

401
00:24:21.160 --> 00:24:24.720
<v Speaker 3>to later, I could still understand what it does basically.

402
00:24:25.440 --> 00:24:28.519
<v Speaker 3>And I that's also kind of how I got into

403
00:24:28.559 --> 00:24:33.000
<v Speaker 3>open source, because I see that open source repositories, which

404
00:24:33.359 --> 00:24:36.599
<v Speaker 3>are written in a more functional way, are generally more

405
00:24:36.640 --> 00:24:42.440
<v Speaker 3>readable because everything has its own like, everything is separated

406
00:24:42.480 --> 00:24:45.519
<v Speaker 3>into its own concern kind of yes, And I'm not

407
00:24:45.519 --> 00:24:47.039
<v Speaker 3>sure if the exact terminology here.

408
00:24:47.559 --> 00:24:48.880
<v Speaker 4>Yeah, that makes sense.

409
00:24:49.440 --> 00:24:51.119
<v Speaker 1>Yeah, I think I think we get kind of the

410
00:24:51.160 --> 00:24:56.200
<v Speaker 1>separation of concerns is what you're an encapsulation, I guess.

411
00:24:56.680 --> 00:24:59.240
<v Speaker 3>But I guess. I mean these two terms are generally

412
00:24:59.480 --> 00:25:03.559
<v Speaker 3>used for dictorian in the programming do so yeah.

413
00:25:03.119 --> 00:25:06.039
<v Speaker 4>Yeah, I feel like functional programming is like a cult

414
00:25:06.119 --> 00:25:10.240
<v Speaker 4>that I haven't gotten an invite into because everybody, like

415
00:25:10.319 --> 00:25:13.519
<v Speaker 4>I feel like, once you've drank the functional kool aid,

416
00:25:13.640 --> 00:25:16.960
<v Speaker 4>like you can't stop talking about it and you start

417
00:25:16.960 --> 00:25:20.880
<v Speaker 4>recommending has scale to your co workers and like like

418
00:25:20.960 --> 00:25:24.079
<v Speaker 4>all this stuff, and I still like, I still like, see,

419
00:25:24.359 --> 00:25:28.319
<v Speaker 4>I've heard the term monad literally hundreds of times, right

420
00:25:28.440 --> 00:25:30.960
<v Speaker 4>and if you ask me right now to explain to

421
00:25:31.000 --> 00:25:33.400
<v Speaker 4>you what a monad is, I couldn't even try, Like,

422
00:25:33.440 --> 00:25:38.119
<v Speaker 4>I will not nothing, nothing will come out interesting. So

423
00:25:38.160 --> 00:25:40.359
<v Speaker 4>it's actually I find it quite interesting that, like just

424
00:25:40.400 --> 00:25:43.599
<v Speaker 4>from some articles that you were able to pick up

425
00:25:43.599 --> 00:25:46.319
<v Speaker 4>on that, because it's, at least to me, it's pretty impressive.

426
00:25:46.599 --> 00:25:49.799
<v Speaker 1>Yeah, Like, currying is something that I know is is

427
00:25:49.920 --> 00:25:53.119
<v Speaker 1>very big and functional, and I can understand the general

428
00:25:53.200 --> 00:25:55.480
<v Speaker 1>idea of it, but then actually trying to put that

429
00:25:55.519 --> 00:25:59.599
<v Speaker 1>into practice in my code somewhere is a very large

430
00:25:59.680 --> 00:26:00.440
<v Speaker 1>challenge to me.

431
00:26:00.559 --> 00:26:03.200
<v Speaker 4>Still, yep, exactly.

432
00:26:03.680 --> 00:26:06.920
<v Speaker 1>But it's definitely super powerful when you know what you're doing.

433
00:26:07.160 --> 00:26:11.880
<v Speaker 1>I've seen some really just great, great code written from it.

434
00:26:11.960 --> 00:26:14.160
<v Speaker 1>But man, the people who know how to do that

435
00:26:14.240 --> 00:26:17.200
<v Speaker 1>and can visualize it ahead of time hats off to you.

436
00:26:17.279 --> 00:26:19.279
<v Speaker 1>That's a great skill to have for sure.

437
00:26:19.559 --> 00:26:22.200
<v Speaker 4>So cash another thing you've got you have and your.

438
00:26:22.119 --> 00:26:26.759
<v Speaker 3>Getting I would definitely not put myself into the leagues

439
00:26:26.799 --> 00:26:31.400
<v Speaker 3>of great functional programmers because Monald is something which I

440
00:26:31.440 --> 00:26:37.359
<v Speaker 3>can still not explain. Currying is something I generally don't

441
00:26:37.519 --> 00:26:43.319
<v Speaker 3>use myself. But just with immutability and writing pure functions,

442
00:26:43.599 --> 00:26:46.559
<v Speaker 3>which is like functions which only have one use case

443
00:26:46.599 --> 00:26:50.599
<v Speaker 3>and don't affect any values outside of the function except

444
00:26:50.599 --> 00:26:52.960
<v Speaker 3>for the ones which are provided as input to it,

445
00:26:53.640 --> 00:26:56.599
<v Speaker 3>I mean, just by these two concepts, you can go

446
00:26:56.640 --> 00:27:00.000
<v Speaker 3>pretty far in functional programming, is what I feel very cool.

447
00:27:00.680 --> 00:27:03.160
<v Speaker 4>But there's another project on your GitHub that I wanted

448
00:27:03.200 --> 00:27:06.680
<v Speaker 4>to bring up. Is you have this project called functions

449
00:27:06.720 --> 00:27:09.519
<v Speaker 4>without Borders. Maybe you could tell us a little bit

450
00:27:09.519 --> 00:27:12.839
<v Speaker 4>about what this is in what you're trying to solve

451
00:27:12.839 --> 00:27:14.359
<v Speaker 4>with this this project.

452
00:27:15.039 --> 00:27:20.039
<v Speaker 3>Yeah, so functions without Borders was built to again solve

453
00:27:20.079 --> 00:27:25.880
<v Speaker 3>a problem that I had. I basically hate writing server

454
00:27:26.000 --> 00:27:30.759
<v Speaker 3>side interfaces because a lot of time gets spent in

455
00:27:30.839 --> 00:27:34.079
<v Speaker 3>doing that. Like whenever I have to write something, I

456
00:27:34.119 --> 00:27:38.680
<v Speaker 3>have to write ten httpa API. What is it called?

457
00:27:38.720 --> 00:27:41.359
<v Speaker 3>If I write it on the server side, like an

458
00:27:41.559 --> 00:27:45.200
<v Speaker 3>end points or yeah, I have to write a lot.

459
00:27:45.720 --> 00:27:48.160
<v Speaker 3>I end up having to write a lot of endpoints

460
00:27:48.200 --> 00:27:51.640
<v Speaker 3>and then a lot of getters on the client side.

461
00:27:52.359 --> 00:27:55.720
<v Speaker 3>So what this library does is it kind of abstracts

462
00:27:55.759 --> 00:28:00.720
<v Speaker 3>away everything and it also mixes in a lot of

463
00:28:00.799 --> 00:28:08.359
<v Speaker 3>typescript to basically make a server side ATI calls fail

464
00:28:08.480 --> 00:28:13.079
<v Speaker 3>like a native function call on the client side, So

465
00:28:13.799 --> 00:28:18.720
<v Speaker 3>it allows you to use the same typescript types between

466
00:28:18.759 --> 00:28:22.599
<v Speaker 3>the client and the server. So while defining your server,

467
00:28:22.720 --> 00:28:27.240
<v Speaker 3>if you're using a set of types, then you can

468
00:28:27.640 --> 00:28:30.400
<v Speaker 3>pass the same types to the client side also, and

469
00:28:30.440 --> 00:28:34.119
<v Speaker 3>then basically you can call those functions on the client

470
00:28:34.240 --> 00:28:38.640
<v Speaker 3>as if they were written on the client itself. But

471
00:28:38.839 --> 00:28:43.160
<v Speaker 3>actually the library makes a web socket call and then

472
00:28:43.400 --> 00:28:44.720
<v Speaker 3>gets the data from the server.

473
00:28:45.160 --> 00:28:45.640
<v Speaker 2>Very cool.

474
00:28:45.759 --> 00:28:49.000
<v Speaker 1>So it's like your own version of server side rendering.

475
00:28:49.599 --> 00:28:50.559
<v Speaker 3>Yeah, I guess.

476
00:28:50.640 --> 00:28:56.160
<v Speaker 4>So then where do you deploy the server code too?

477
00:28:56.480 --> 00:28:59.200
<v Speaker 4>Is it just like any like is it like a

478
00:28:59.279 --> 00:29:03.039
<v Speaker 4>Lamba city situation or where would the server code end up?

479
00:29:03.480 --> 00:29:07.480
<v Speaker 3>I don't think. I mean, I haven't tried deploying it

480
00:29:07.559 --> 00:29:13.319
<v Speaker 3>to any server less library yet, but it's mostly about

481
00:29:13.359 --> 00:29:17.400
<v Speaker 3>a server full situation where you might have a server

482
00:29:17.519 --> 00:29:20.839
<v Speaker 3>constantly running and then the client can be anything. It

483
00:29:20.839 --> 00:29:23.359
<v Speaker 3>can be a browser, or it can be another server

484
00:29:23.839 --> 00:29:27.720
<v Speaker 3>or wherever you want to run it on. Basically very cool.

485
00:29:28.200 --> 00:29:31.519
<v Speaker 1>So, Akash, is there anything that we haven't covered yet

486
00:29:31.559 --> 00:29:32.920
<v Speaker 1>that you think that you'd.

487
00:29:32.759 --> 00:29:33.559
<v Speaker 2>Like to talk about?

488
00:29:33.960 --> 00:29:39.200
<v Speaker 3>I don't think so. I've covered mostly everything that I'm

489
00:29:39.240 --> 00:29:44.400
<v Speaker 3>passionate about what I like to learn and talk about.

490
00:29:44.440 --> 00:29:45.920
<v Speaker 3>I guess yeah.

491
00:29:46.079 --> 00:29:46.640
<v Speaker 2>Very cool.

492
00:29:47.319 --> 00:29:49.799
<v Speaker 1>So if people would like to get in touch with you,

493
00:29:50.039 --> 00:29:52.200
<v Speaker 1>what are the best ways.

494
00:29:51.759 --> 00:29:54.880
<v Speaker 3>They can reach out to me? On Twitter? At the

495
00:29:54.920 --> 00:29:58.920
<v Speaker 3>writing dev. They can check out my blog at the

496
00:29:58.960 --> 00:30:03.200
<v Speaker 3>writing dot dev where they can subscribe to my blog,

497
00:30:03.200 --> 00:30:06.599
<v Speaker 3>and if they reply to any of the emails, the

498
00:30:06.799 --> 00:30:08.599
<v Speaker 3>reply actually reaches to me directly.

499
00:30:09.000 --> 00:30:10.599
<v Speaker 2>Very very cool, awesome.

500
00:30:10.960 --> 00:30:12.920
<v Speaker 1>So I think this is the point in the show

501
00:30:12.960 --> 00:30:15.519
<v Speaker 1>where we're going to move into picks and we'll share

502
00:30:15.640 --> 00:30:19.400
<v Speaker 1>things that we've been using that we're fans of things.

503
00:30:19.480 --> 00:30:22.400
<v Speaker 1>It could be a site that you've found, a product

504
00:30:22.440 --> 00:30:27.000
<v Speaker 1>that you like, basically a show you've watched that you've enjoyed. So, TJ,

505
00:30:27.119 --> 00:30:28.880
<v Speaker 1>would you like to start us off this week?

506
00:30:29.440 --> 00:30:31.920
<v Speaker 4>I can start us off yeat. So my pick for

507
00:30:32.079 --> 00:30:35.400
<v Speaker 4>this week is going to be kombucha. There's no page Akasha,

508
00:30:35.519 --> 00:30:38.039
<v Speaker 4>you have you had kimbucha before? Do you get the reference.

509
00:30:38.359 --> 00:30:40.319
<v Speaker 1>I have not tried it, but I've seen it at

510
00:30:40.319 --> 00:30:41.440
<v Speaker 1>the grocery store.

511
00:30:42.119 --> 00:30:44.319
<v Speaker 4>Okay, So I had never tried it in my life.

512
00:30:44.480 --> 00:30:50.519
<v Speaker 4>I didn't know yeah ferm entity, which I couldn't totally

513
00:30:50.559 --> 00:30:54.079
<v Speaker 4>explain exactly what it is. So I'm glad you know

514
00:30:54.160 --> 00:30:58.359
<v Speaker 4>more about it than I do, apparently, but the i'd

515
00:30:58.440 --> 00:31:00.839
<v Speaker 4>heard of it before in a fee shot near me

516
00:31:01.119 --> 00:31:03.680
<v Speaker 4>had it, so I was like, what the heck, let's

517
00:31:03.759 --> 00:31:06.519
<v Speaker 4>let's try it. And it was I think it started

518
00:31:06.519 --> 00:31:09.039
<v Speaker 4>a new obsession of mine because I just went to

519
00:31:09.079 --> 00:31:10.799
<v Speaker 4>the store and bought a whole bunch of it because

520
00:31:10.839 --> 00:31:15.559
<v Speaker 4>it's quite good. It's it's since it's tea based, it's caffeinated,

521
00:31:15.559 --> 00:31:18.279
<v Speaker 4>but it's got just a little bit of caffeine right.

522
00:31:18.359 --> 00:31:21.759
<v Speaker 4>So I've I've had a bit of a coffee problem lately,

523
00:31:21.799 --> 00:31:24.839
<v Speaker 4>where working from home, the coffee consumption was getting a

524
00:31:24.839 --> 00:31:29.079
<v Speaker 4>little out of control, and I've really enjoyed kombucha. The

525
00:31:29.200 --> 00:31:32.039
<v Speaker 4>place near me has it in a lot of different flavors.

526
00:31:32.440 --> 00:31:35.039
<v Speaker 4>So if you haven't tried it before, Paige, you might

527
00:31:35.079 --> 00:31:36.960
<v Speaker 4>want to just get some from the grocery store.

528
00:31:37.039 --> 00:31:37.400
<v Speaker 2>Just to say.

529
00:31:37.400 --> 00:31:38.880
<v Speaker 4>You say you've done it.

530
00:31:39.799 --> 00:31:42.279
<v Speaker 1>I will definitely give that a try now that I

531
00:31:42.839 --> 00:31:45.319
<v Speaker 1>know somebody who is a fan of it. Is there

532
00:31:45.319 --> 00:31:47.519
<v Speaker 1>a particular flavor that you've liked.

533
00:31:48.160 --> 00:31:51.039
<v Speaker 4>I like the fruit based ones Akasha. I don't know

534
00:31:51.079 --> 00:31:52.799
<v Speaker 4>if you have any. Let me see if I can

535
00:31:52.880 --> 00:31:57.039
<v Speaker 4>dig up exactly which one. I've Hadasha's kombucha popular in

536
00:31:57.039 --> 00:31:59.279
<v Speaker 4>India around you Mark Randy.

537
00:31:59.519 --> 00:32:04.279
<v Speaker 3>I had kind of found it in a norveety Japanese book, So,

538
00:32:05.119 --> 00:32:08.599
<v Speaker 3>I mean, it's a bit expensive, but it's really tasty

539
00:32:09.160 --> 00:32:12.039
<v Speaker 3>at least I think the taste is quite different from regularity,

540
00:32:12.279 --> 00:32:13.200
<v Speaker 3>so it's fun to drink.

541
00:32:13.680 --> 00:32:17.599
<v Speaker 4>Yeah, So I've had some that are like cherry based. Interestingly,

542
00:32:18.119 --> 00:32:21.279
<v Speaker 4>it was quite good and like like a cranberry orange

543
00:32:21.279 --> 00:32:23.400
<v Speaker 4>one as well that I like. So that the fruity

544
00:32:23.440 --> 00:32:27.119
<v Speaker 4>ones I thought worked really well. So that's that's my pick.

545
00:32:27.640 --> 00:32:30.200
<v Speaker 2>Nice, I like it. I will go next. TJ.

546
00:32:30.400 --> 00:32:33.599
<v Speaker 1>You've inspired me with your choice of kombucha. I will

547
00:32:33.720 --> 00:32:37.079
<v Speaker 1>choose a loose leaf earl gray tea that I recently

548
00:32:37.119 --> 00:32:41.839
<v Speaker 1>found and I've been drinking just typical tea bags of

549
00:32:41.920 --> 00:32:45.480
<v Speaker 1>Earl Gray probably about the past year or so. My

550
00:32:45.599 --> 00:32:48.559
<v Speaker 1>husband has been doing it since he was a kid,

551
00:32:49.119 --> 00:32:51.519
<v Speaker 1>and since I've been working from home also, and we

552
00:32:51.599 --> 00:32:54.359
<v Speaker 1>work from home together. We will now have tea at

553
00:32:54.400 --> 00:32:56.839
<v Speaker 1>about three o'clock and take a quick break and just

554
00:32:56.920 --> 00:32:59.200
<v Speaker 1>kind of check in and see how the other one's doing.

555
00:32:59.759 --> 00:33:03.359
<v Speaker 1>But recently we've upgraded from the tea bags to this

556
00:33:03.480 --> 00:33:09.079
<v Speaker 1>loose leaf version from Harney and Sons, and wow, what

557
00:33:09.200 --> 00:33:13.640
<v Speaker 1>a difference that day. It's It's definitely got a lot

558
00:33:13.640 --> 00:33:16.279
<v Speaker 1>of extra flavor in it. It's a little bit more

559
00:33:16.640 --> 00:33:19.640
<v Speaker 1>involved because you can't just dunk the bag and you

560
00:33:19.720 --> 00:33:21.559
<v Speaker 1>have to have a little tea strainer that you put

561
00:33:21.559 --> 00:33:25.079
<v Speaker 1>in your cup. But I think it's really worth it.

562
00:33:25.079 --> 00:33:28.759
<v Speaker 1>It's been really, really enjoyable. So that's what I would

563
00:33:29.000 --> 00:33:34.440
<v Speaker 1>recommend today. If we're going along the eating and drinking route.

564
00:33:34.839 --> 00:33:36.039
<v Speaker 2>It's available on Amazon.

565
00:33:36.079 --> 00:33:39.119
<v Speaker 1>It's not too too expensive and you can certainly get

566
00:33:39.279 --> 00:33:42.079
<v Speaker 1>a pretty decent amount of it for the price. So

567
00:33:42.119 --> 00:33:44.640
<v Speaker 1>I'm going to go with Harney and Son's Earl Gray

568
00:33:44.680 --> 00:33:47.640
<v Speaker 1>Tea and Akash. Do you have anything that you'd like

569
00:33:47.720 --> 00:33:48.119
<v Speaker 1>to share?

570
00:33:48.400 --> 00:33:53.000
<v Speaker 3>Yeah, I don't have anything, especially on the eating and

571
00:33:53.079 --> 00:33:58.400
<v Speaker 3>drinking side, since the lockdown has stopped all of the

572
00:33:59.359 --> 00:34:01.839
<v Speaker 3>random things that I used to eat. But what I

573
00:34:01.839 --> 00:34:05.559
<v Speaker 3>would recommend is a label MIC. So I'm using one

574
00:34:05.640 --> 00:34:10.920
<v Speaker 3>right now, and it dramatically improves the audio quality that

575
00:34:10.960 --> 00:34:15.440
<v Speaker 3>I have in zoom calls and video calls or you know,

576
00:34:15.840 --> 00:34:20.360
<v Speaker 3>while just recording audio on for my YouTube channel or

577
00:34:20.400 --> 00:34:24.239
<v Speaker 3>anywhere else. So yeah, I would recommend having a label

578
00:34:24.320 --> 00:34:27.199
<v Speaker 3>MIC as a starter kit for a YouTube channel.

579
00:34:27.239 --> 00:34:30.079
<v Speaker 2>I guess fantastic. That's always good.

580
00:34:30.519 --> 00:34:34.800
<v Speaker 1>I think people are always looking for good microphones, good cameras,

581
00:34:35.000 --> 00:34:38.800
<v Speaker 1>good good, all that stuff, especially since our lives are

582
00:34:38.960 --> 00:34:41.719
<v Speaker 1>very video driven nowadays.

583
00:34:42.400 --> 00:34:42.960
<v Speaker 2>Very cool.

584
00:34:43.199 --> 00:34:45.639
<v Speaker 1>So we'll have a link to that in the show notes,

585
00:34:45.880 --> 00:34:48.760
<v Speaker 1>and we will have all of your links where people

586
00:34:48.800 --> 00:34:51.440
<v Speaker 1>can reach you, see some of your articles, check out

587
00:34:51.440 --> 00:34:54.440
<v Speaker 1>your website as well. So thank you so much for

588
00:34:54.519 --> 00:34:56.719
<v Speaker 1>joining us today. It's been really fun to talk to you.

589
00:34:57.400 --> 00:35:00.920
<v Speaker 3>Thank you, guys, it's been fun talking with you also excellent.

590
00:35:01.199 --> 00:35:04.119
<v Speaker 1>So we will see you next time on the React

591
00:35:04.159 --> 00:35:05.599
<v Speaker 1>Roundup Show By everyone,
