Charles Max_Wood:
Hey everybody and welcome back to another adventure in Angular. This week I'm your host Charles Max Wood and we are talking to Wycliffe Mina. Now do you want to introduce yourself, let people know who you are and why you're famous?
Maina_Wycliffe:
I would not say I'm exactly famous.
Charles Max_Wood:
Infamous, huh?
Maina_Wycliffe:
Unless, not that definitely. I hope I will probably be, no? I don't even think there's anything like what do they call, publicity. So probably take that. So anyway, my name is Myna Wickliffe. I'm a software engineer from Kenya. An Angular GD. few months ago, actually a few weeks, not months, from August, and
Charles Max_Wood:
Oh cool.
Maina_Wycliffe:
I love teaching TypeScript. I don't want to call myself an expert, but I know one or two things about TypeScript. And I love teaching TypeScript and other, the all things TypeScript newsletter, where I said weekly lessons for developers to learn TypeScript, and so that they can get the most out of it.
Charles Max_Wood:
Very cool. So this is, like I've seen different newsletters, right? I've seen newsletters where basically it's like, here are all the links from this week, right?
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
And then I've seen others where, yeah, it's, hey, let's walk through and explain, you know, how the technology
Maina_Wycliffe:
You know,
Charles Max_Wood:
works, and we're gonna teach
Maina_Wycliffe:
you
Charles Max_Wood:
you
Maina_Wycliffe:
walk
Charles Max_Wood:
something new
Maina_Wycliffe:
some.
Charles Max_Wood:
every week.
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
So yeah, I'm kind of curious, you know, What's your approach here? Because I have to admit, I just barely subscribed like two seconds ago.
Maina_Wycliffe:
Yeah, this is an interesting thing because it has been available for 6 months. So initially it was an accumulation of links from the previous week,
Charles Max_Wood:
Mm-hmm.
Maina_Wycliffe:
but I mostly focused on things that I came across myself rather than focusing on new content from the last week. And then at the time I started asking myself, how do I add more value? Or do I provide values to my readers? As when you get to 100 subscribers, you have now to ask, am I doing justice to these people who have subscribed? And I'm sending something to their inbox once a week. How do I make sure they are getting value for their subscription? So I started adding what we call concepts or explain new concept in TypeScript.
Charles Max_Wood:
Mm-hmm.
Maina_Wycliffe:
And I used to have both of them in the same newsletter. So you get every Monday morning, you get this huge newsletter which had lessons, a sort of like concept, which is what I call concept. I also tried the idea of having a challenge in there, but the logistical out that is a little bit difficult to accomplish. So I might come back with it a little bit later, but not at the moment. And then you'd have another section below that for articles. which are mostly from the last six things that I have read myself, and then some tweets from a few famous people on Twitter, and also interesting things. But with time, I have started to give up the newsletter, and doing away with the curated section, and then focusing more on delivering concepts. So at the moment, I'm trying to move into twice a week. And so I have one on Monday, which is a larger section. That is, so in this case, I go deep dive into a larger topic. And then I have like a midweek, or what I am calling midweek scoop, which is basically a small topic, which is mostly to elicit discussion. So I'm asking a question, giving my opinion, and everyone is free to sort of like share their opinion. And hopefully with time, more people will engage. and then we can all learn together because like I said, I know one or two things, but a lot of things I don't know. So I'm trying to learn, I want people to learn with me and then I'll share what I know. And if you have something that you think you know better than I am, I'm willing to hear from you. And I'm willing to share, I want you to share with my audience.
Charles Max_Wood:
Cool. So, yeah, you know, I kind of looked through the list as well and it looks like, yeah, you've kind of got that mix going.
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
So yeah, so what's kind of the overall focus then? Is it to help people level up with TypeScript and more the teaching or is it more kind of letting people know what's happening out there in the TypeScript community?
Maina_Wycliffe:
For me, my most focus is when I think about TypeScript. I usually think about it in two parts. First, there is the typing system,
Charles Max_Wood:
Mm-hmm.
Maina_Wycliffe:
which a lot of people usually don't understand very well. And then there is the relationship between TypeScript and JavaScript. So my goal is to try to explore these two things separately so that I'm able to help you design better types. I'm able to help you...
Charles Max_Wood:
Mm-hmm.
Maina_Wycliffe:
precise to your intention they are, the better your code is going to work, both during the compilation process and during the building process. On the other side, we have the JavaScript relationship part. So because you need to understand that types don't exist at runtime once the transpiration process is done. So you need to understand what behavior to expect during compilation and what behavior to expect when JavaScript takes over your code. Ndiyo kwa mwafu, kwa mwafu kwa mwafu mwafu mwafu mwafu kwa mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwafu mwaf
Charles Max_Wood:
Yeah, it does make sense. So I'm a little curious then where do people's understanding fall apart with these different two things?
Maina_Wycliffe:
One mistake I see a lot of people make, especially those who are new to TypeScript, is thinking my types exist in runtime. Or
Charles Max_Wood:
Uh-huh.
Maina_Wycliffe:
thinking the behavior I expect from TypeScript is the same behavior I expect on runtime. So for instance, if you have data from an external source, maybe a HTTP request, and then it comes in, you don't do any validation. and maybe use an assertion to inform types report that data is. And then if that data is strong in the runtime, types is not going to help you here. So if you're able to link those two together so that you're able to know, yeah, in this case, I'm on my own. So I need to figure out how to make sure that the data I'm working with is the correct data. If my model is strong, if the data model or the data shape I have, the idea of the shape I have is strong. then you're going obviously to have bugs in the runtime. And once you start to understand that JavaScript and TypeScript are the same, but also separate a little bit, then you're able to link this relationship much better so that you're able to make it work for you.
Charles Max_Wood:
That makes sense. So I guess the other thing that I'm curious about is we kind of dive into some of this content is how do you find stuff to post about every week? I get asked this one about the podcasts and I have my own secrets and my own tricks, I guess they're not secrets. You know, and I may share some ideas too, but I'm curious, you know, how do you find stuff to post about every week or twice a week or, you know, however often you're doing it?
Maina_Wycliffe:
To be honest, I'm surprised I have been able to sustain this for as long as I have. Like I think a few days ago I was just saying, I'm surprised I've been able to post consistently every week for the last six months.
Charles Max_Wood:
Mm-hmm.
Maina_Wycliffe:
And one thing I wish I loved doing is that I have this list, which is a list of topics which I would really like to explore.
Charles Max_Wood:
Mm-hmm.
Maina_Wycliffe:
and then I push it in there. Sometimes you read to some interesting things like this week. So the issue for next week on Monday, this will be published by then, so probably it should be out, was supposed to be this week's midweek scoop. And once I started writing down, I realized, no, if I do it the way I initially thought I would do it, I will not do it justice, I will not do justice at all. So I started writing before I don't have like this issue, which is almost a thousand words, which was for here I was saving for 300 because the more I look at it is the more I need to explain this concept, I need to explain that concept. And in that you find yourself like with this content that is linking to each other in a way, but also explaining different concepts from different approaches. So for instance, in this case, I was looking at, I was thinking about how do you work with external data? when you're working with TypeScript data, that TypeScript has no idea what it is. So how do you convert that? Or how do you inform that TypeScript, this data is of this type? And then once I started going down into it, initially I was like, that's going to be 300 words that I'm done. and now I have an unfinished issue that's going
Charles Max_Wood:
Hahaha!
Maina_Wycliffe:
to go on next week on Monday, which is
Charles Max_Wood:
Right.
Maina_Wycliffe:
way larger. So it seems like most of the time that's what I do and sometimes people ask questions. Sometimes I'm writing some code on something and I see someone has done something and that fits my interest and I'm like I have to explore this one and then write about it because the biggest challenge I what you know is not worth telling to someone else. So you end up restricting the amount of content you have, like thinking what you know is obvious, while in most cases it's not. So it's all about finding those things that you implicitly know or you learned from someone else or someplace else, and then explaining and exploring them. And sometimes this leads you into a path whereby you learn a lot even by yourself while on something that you thought you knew.
Charles Max_Wood:
Makes sense.
Maina_Wycliffe:
Thanks for watching!
Charles Max_Wood:
It looks like you do do the top articles of the week thing too, or at least I just clicked the
Maina_Wycliffe:
I
Charles Max_Wood:
collection. There's only one that I'm seeing and that's from
Maina_Wycliffe:
used
Charles Max_Wood:
last
Maina_Wycliffe:
to
Charles Max_Wood:
week.
Maina_Wycliffe:
do. Yeah. Yeah,
Charles Max_Wood:
So
Maina_Wycliffe:
so at the moment
Charles Max_Wood:
how do you find those?
Maina_Wycliffe:
I'm good old fashioned RSS. Ha ha ha. Ha ha ha.
Charles Max_Wood:
All right, all right. So should I give away one of my tricks?
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
Cause I do this, right? And it's kind of a mix. Like I do pull stuff from... How do I put it? So I do do stuff in the sense that, yeah, newsletters like yours, right? Because a lot of times, if you've already curated good stuff,
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
I have a better chance of selecting it. And then what's funny is, is by the time the podcast comes out, it's been three or four weeks. And so
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
people may say, oh, I saw that in JavaScript Weekly or all things TypeScript. But...
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
The flip side is that most people, they don't make the connection even if they're subscribed to the email list. And so that works out for me, right? Cause I get credit for finding good stuff and you gave it to me, right?
Maina_Wycliffe:
Hahaha
Charles Max_Wood:
But the other thing that's also interesting is, Yeah, I use RSS and I've been trying to find a good new RSS aggregator, right? Where you can just say, hey, these blogs tend to put out good stuff, you know? So, and we follow, what is it? It's Angular. I can't remember. There's, there's a blog that they get people to write on that does
Maina_Wycliffe:
the
Charles Max_Wood:
a bunch
Maina_Wycliffe:
one on
Charles Max_Wood:
of Angular stuff.
Maina_Wycliffe:
on devtop.com
Charles Max_Wood:
Yeah, not dev.to though you
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
can subscribe to some of their channels. Um,
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
it's. I'm gonna think of it in like 10 minutes and we're gonna be talking about something else. Anyway, but yeah, so, you know, I'll subscribe to those. I've been looking at Feed Bin lately to use that, but it's a good way to kind of see what's popping up on the radar, right? Another great place that I find stuff is just conferences, right? And that also
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
gives you a good idea of what other people who curate content are, you know. looking at and they're usually people who are doing dev day in and day out, right? Or run a
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
company that has to stay on top of it. And so they generally, not always, but generally have a pretty good idea of what people want to hear. And if people submit talks along those lines, they're it's, it's usually pretty easy to pick out the good ones. Um, and we
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
run conferences too, right? So, um, our, ours are all online, which is a whole lot less, uh, involved. But yeah, that's one of the tricks that I use. So yeah, I just put that out there, but RSS is definitely the way to go because you can usually pull blogs, you can pull podcasts, you can pull, I think there's a
Maina_Wycliffe:
Videos
Charles Max_Wood:
trick to get YouTube channels.
Maina_Wycliffe:
yeah
Charles Max_Wood:
Feedbin,
Maina_Wycliffe:
YouTube channels
Charles Max_Wood:
I think will also let you do Twitter accounts.
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
And so you'll see stuff float past and then you can kind of go, oh, that looks interesting. So then you go look at it and decide if that makes sense. But yeah, RSS is definitely the way to go because you find a new resource and you just go RSS it.
Maina_Wycliffe:
Altsasitten...
Charles Max_Wood:
I'm trying to figure out, I think Reddit might have RSSs. I can't remember. One of them does.
Maina_Wycliffe:
Ndi ya,
Charles Max_Wood:
One of the sharing
Maina_Wycliffe:
ya,
Charles Max_Wood:
platforms out there does. Anyway.
Maina_Wycliffe:
ya, ya, ya, ya,
Charles Max_Wood:
Yes.
Maina_Wycliffe:
ya, ya, ya, ya, ya, ya,
Charles Max_Wood:
Yeah. Yeah, you
Maina_Wycliffe:
And
Charles Max_Wood:
have to
Maina_Wycliffe:
sometimes,
Charles Max_Wood:
go look at it and make sure it's good.
Maina_Wycliffe:
if I don't look at my feed tree, I use feed tree instead of feed bin. And if I don't look at my feed tree for a day, I should open up and I'm overwhelmed with hard dates of articles. And most of the time, those usually goes to waste because I don't really have the time to read individual
Charles Max_Wood:
Yeah.
Maina_Wycliffe:
articles to determine if they are OK. And apart from those specific sources I know, this person posts a cigarette once a week so I have to pay attention to them if they have anything on them.
Charles Max_Wood:
Right.
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
Yep, absolutely.
Maina_Wycliffe:
Yeah, so mostly leading through RSS. I'm not subscribed to a lot of aggregating newsletters. So I usually occasionally find a good one that comes my way through the email, but not a lot by that. But most of the other content I consume via feedree benefits are content from ng-conf and so
Charles Max_Wood:
Mm-hmm.
Maina_Wycliffe:
on. All that comes through feedree. And then I know like, our new content has been posted. It makes it easier for me to track everything in a single place.
Charles Max_Wood:
Yep, absolutely.
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
Yeah. One other thing that I'm, uh, Um... I just lost my train of thought.
Maina_Wycliffe:
Yeah, that
Charles Max_Wood:
But
Maina_Wycliffe:
happens
Charles Max_Wood:
yeah,
Maina_Wycliffe:
a lot to me.
Charles Max_Wood:
Medium was built on blogging and a long time ago, you're probably old enough to remember this. I definitely am. But the way that you found content from blogs was RSS.
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
Anymore, I don't see people doing it as much. I tend to see people, like they'll just do a Google search if they wanna find a blog post on a thing, or they'll click through it. some kind of curated content medium like yours.
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
But yeah, the medium definitely does put up. an RSS
Maina_Wycliffe:
Yes.
Charles Max_Wood:
feed.
Maina_Wycliffe:
Yeah, the one thing, the other one source which I haven't thought of much about or haven't used before, but I'm considering is, it's data.dev. Seems to have some nice content in there, sort of like QLation content.
Charles Max_Wood:
data.dev
Maina_Wycliffe:
Ja, daydream.de, vi får ha någon misstänkning. Daydream.
Charles Max_Wood:
Yeah, I'd love to get kind of a list of where you look, but because
Maina_Wycliffe:
I think I got it.
Charles Max_Wood:
it's one thing to have you curate the list, but it's another thing just to kind of be able to go through and pick and choose.
Maina_Wycliffe:
which I think I can set a screenshot for off days.
Charles Max_Wood:
Yeah.
Maina_Wycliffe:
About 16 sources at the moment. I have been trying to reduce the number because it got to a point where I was getting so much noise and it was a lot of work to cut through that noise, especially once you go spread the day on a conference and then come back home in the evening and you're like Oh, my God, this is way too much for me to go through. And despite having categorized my contents from various sources so that it's easier for me to keep track of, it's still, you still get over-homed once in a while.
Charles Max_Wood:
Yep. Yeah.
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
One other trick you mentioned RSS. And if I remember right, GitHub provides RSS feeds. So like if you're watching a repo
Maina_Wycliffe:
Ah.
Charles Max_Wood:
and you want to see the releases or commits or whatever, I think they provide RSS so you can keep track of things. So I'm still working on my resource list, but one of the things that I thought about adding in is the ECMA
Maina_Wycliffe:
Ja, ja.
Charles Max_Wood:
where they discuss the new standards.
Maina_Wycliffe:
Ja, ja, ja.
Charles Max_Wood:
That's all in a GitHub repo. So just follow that and see if I can find commits or comments or whatever.
Maina_Wycliffe:
Yeah, that would be nice. I haven't thought of using it with GitHub. Now that's
Charles Max_Wood:
Yeah.
Maina_Wycliffe:
been added to the list of things I might want to explore.
Charles Max_Wood:
Hahaha, right?
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
Yep. But yeah, that's interesting though. So you just have a set of RSS feeds that you're subscribed to
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
and then you.
Maina_Wycliffe:
Yeah. So what I should do is that every morning when I wake up, I should open my RSS feed and look at anything that jumps out as interesting. And then throughout the day I'll do that. But when I usually like start clearing or everything is in the evening, this is when I like go through it, that I'm marking everything as red if I don't find anything as interesting. So.
Charles Max_Wood:
Right.
Maina_Wycliffe:
I am usually more keen at that time. So for instance, in the morning, what I'll do is, there are a few publications I know that have very good quality. So those I'll pay more attention to in the morning, but in the evening I try to like start from the top to the bottom without worrying about the order in which they are, trying to
Charles Max_Wood:
Mm-hmm.
Maina_Wycliffe:
see if there is something interesting and then I'll probably open up, skim through it and if it's interesting, then I will add it to pocket so that I'll read it later.
Charles Max_Wood:
So, yeah, you've talked about length a couple of times. You said,
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
oh, I started working on this and then it was a thousand words, which is longer than I wanted it to be. How long is kind of the ideal newsletter that you send?
Maina_Wycliffe:
I don't like being too large. That is, I don't want it to be over 2,000 words.
Charles Max_Wood:
Mm-hmm. That makes sense.
Maina_Wycliffe:
I know because people, especially I should take myself as an example. I don't want to read things that are too long. So I assume someone else is probably thinking that way. So what I try to do is make it sort of get to the point as fast as possible. So I'll probably start with a newsletter and add all these extra things, or colorful language to make a point. And once I'm done, I'll go back and move all that and try to make it as compact as possible so that it's around 1,000 words. Maybe 700 to over, I don't really want it going over 1,500. And that's an exemption when it's on the upper side. So mostly between 700 and 1000, that's where I usually target that to be. Because I believe like, I don't really want to be explaining four concepts in a single issue. That's when you start losing people. I want to explain one concept very well, and then leave that concept to the next. And if someone is interested on the previous concept, I can link them back if they are related. Yeah, that's usually my approach. So, and I try to do it within a single day. I don't really want to be editing the whole newsletter for the whole of the
Charles Max_Wood:
Right.
Maina_Wycliffe:
week. I try to say, it's going to be going out tomorrow on Monday. I want by Saturday evening, I'm done with everything and it's scheduled to go out. Yeah.
Charles Max_Wood:
Makes sense. So how many people are subscribed? Can I ask that?
Maina_Wycliffe:
Just I think we passed 300 this week
Charles Max_Wood:
How long have you been doing this?
Maina_Wycliffe:
About six months
Charles Max_Wood:
Oh wow, 300 is pretty good.
Maina_Wycliffe:
I was surprised. I didn't expect it to get to 100 initially, then got to 100, then 200, then 300.
Charles Max_Wood:
Right.
Maina_Wycliffe:
Yeah, so I would really like it to grow much faster, to be honest, but
Charles Max_Wood:
Mm-hmm.
Maina_Wycliffe:
I'm very happy with the current growth I have because every day I'm getting three, four, five subscribers without doing much promotions on it.
Charles Max_Wood:
Right, makes sense. So what platform are you using? I think I saw a substack somewhere, but I'm not sure if that's.
Maina_Wycliffe:
Yeah, yeah, the moment I'm using a sub stack, uh, and this is an, uh, I have a series of tweets somewhere within my profile about moving from level. I don't know if you have heard it, which is owned by Twitter, uh, towards sub stack. Uh, a few
Charles Max_Wood:
Where
Maina_Wycliffe:
about,
Charles Max_Wood:
did you move
Maina_Wycliffe:
about
Charles Max_Wood:
from?
Maina_Wycliffe:
Amanda.
Charles Max_Wood:
What was that?
Maina_Wycliffe:
It's called Revu or get Revu. I think it's called Revu, but because they
Charles Max_Wood:
Oh,
Maina_Wycliffe:
could not
Charles Max_Wood:
R-E-V-U-E.
Maina_Wycliffe:
get the, yeah, I'll be, I'll UV. It's owned by Twitter. It's very good when you're doing curated content. The one thing I really loved about it is that you could connect it to Pocket. You could connect it to Twitter. You could connect it to Medium. And all you have to do is drag and drop content into your newsletter. And it's very easy. On the other hand, it's a lot of work to do that with Substack, because you have to copy the title, copy
Charles Max_Wood:
Mm-hmm.
Maina_Wycliffe:
the excerpt.
Charles Max_Wood:
So why'd you switch?
Maina_Wycliffe:
The free form writing which I was trying to do is what forced me to switch because I tried it on Nevo.
Charles Max_Wood:
Ah.
Maina_Wycliffe:
The editor is not that good for that kind of content or a sub stack is good, but I was hoping to take off sub stack ability to discover a discovery ability whereby sub stack has like this feed for or you get all your newsletters at the same place. so you can go, it's sort of like a home feed or an inbox.
Charles Max_Wood:
Mm-hmm.
Maina_Wycliffe:
I think it's called Substack Inbox, and I can go and see all the newsletters that I've subscribed to that have been published and then the accommodation for others. And I was kind of hoping I might take advantage of that. If I'm posting quality content and people want types of content, it's easier to get discovered on Substack instead of Levo.
Charles Max_Wood:
Yep, makes sense.
Maina_Wycliffe:
Yeah, it's a lot of work to do that on the I tried.
Charles Max_Wood:
Yeah, that makes a lot of sense.
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
Yeah, by the way, the blog I was trying to remember was Angular in depth, which is now in depth.dev
Maina_Wycliffe:
Ah,
Charles Max_Wood:
slash
Maina_Wycliffe:
in depth
Charles Max_Wood:
angular.
Maina_Wycliffe:
that was...
Charles Max_Wood:
Yeah,
Maina_Wycliffe:
Yeah...
Charles Max_Wood:
they've, they've been around for a long, long, long time. And I, they, they get people from all over the world, which is kind of fun too, because I get to talk to, you know.
Maina_Wycliffe:
ya, mwafua ya ya, mwafua ya kwa mwafua ya kwa mwafua ya 2020
Charles Max_Wood:
Mm-hmm.
Maina_Wycliffe:
2020 2020 2020
Charles Max_Wood:
Cool. So. Yeah, I'm really digging this. I've been wanting to do a newsletter kind of like what you're doing for a while for each of our communities. Of course, I don't have time to write them all. So I'm also looking for people to write them. So if you wanna be involved in the Angular one, I will find a way to make it worth your while. I promise, right?
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
You know, you or somebody listening to this, but...
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
Yeah, I mean, that's the kind of thing that I want to do, except on a larger scale, right? Where it's, you know, we're curating content for Angular. So we curate some of it into the podcast and some of it into blog posts and some of it into a newsletter and some of it into a conference. So if you're looking for that consistent drip of content, which is, I feel like what you're doing with TypeScript, then I want you
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
to be able to come here and say, Oh, I can go to the online meetup or I can go to this workshop or I can go, you know, I don't have time to do any of that. So I'm going to go read some blog posts and listen to podcasts in my car. So anyway.
Maina_Wycliffe:
Yeah, yeah, sort of like a centralized hub for resources.
Charles Max_Wood:
Yeah, absolutely.
Maina_Wycliffe:
Yeah, sounds awesome.
Charles Max_Wood:
Yeah, I also want to just point out, because we talked a little bit about how you stay up on all the stuff. I
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
am doing a presale for a course on how to stay current. And
Maina_Wycliffe:
Uh...
Charles Max_Wood:
it's not focused on any given technology. It's just the way that I do it. And I'll just walk you through my process. The presale is $47. The regular pricing is going to be $97. And
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
when I set it up, we're actually going to do... um, weekly coaching, basically Q and A and coaching calls. So I'll, I'll provide one of the lessons for the, the course and I'll email
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
you when it's up and then yeah, you can show up and you'd say, Hey, I watched the video. Um, what about this? Right. And then we can tackle
Maina_Wycliffe:
Bye.
Charles Max_Wood:
that, whatever it is. And you know, it helps me refine the course, but it also gives folks a chance to get in and, and you know, know a little bit more. So anyway, that was kind of a shameless plug, but it's relevant to what we're talking about. Yeah.
Maina_Wycliffe:
I find it important to be able to keep on learning or be able to find new resources
Charles Max_Wood:
Yeah.
Maina_Wycliffe:
because there are a lot of awesome people creating content out there and those people are probably going to be teaching you a lot more than you're able to go.
Charles Max_Wood:
Mm-hmm.
Maina_Wycliffe:
In order to Google for something, you know how to find something either through the search engine, you have to have the exact idea on what you are searching for.
Charles Max_Wood:
Yep. So one other question I have is why TypeScript? You know,
Maina_Wycliffe:
Uh,
Charles Max_Wood:
why not do a news, you're GDE and Angular, so why not do Angular or, you know.
Maina_Wycliffe:
that's probably that. If you ask me that question, if I had started this, let's say four years ago, it would probably be all things Angular.
Charles Max_Wood:
Uh huh.
Maina_Wycliffe:
Yeah. So one thing is that I have worked with Angular for a very long time, about five years now.
Charles Max_Wood:
Uh huh.
Maina_Wycliffe:
TypeScript at the same time because you learn both. because when I switched from AngularJS to Angular, that's when I started TypeScript. And over the last, after two years of using TypeScript, learning the basics, I realized I'm struggling with some concepts. I started asking them, say, how do you do validation? How do you do this? How do you ensure? How do you narrow types? And whenever I used to ask people, they are like, no, sometimes we just have to assert things. And I was like, no, I'm not really comfortable doing that because...
Charles Max_Wood:
Mm-hmm.
Maina_Wycliffe:
Sometimes I go two months before I publish something. Sometimes I publish three weeks in a row. And this is the consistency which I decided, no, this is not acceptable. I need to do this week in, week out. And the only way I will be able to do this is have a newsletter and have an obligation. Every Monday I have to set something out. And that's how I started out. And the last six months, apart from a few odd Mondays here and there, I've been able to consistently deliver at least four articles every month. for the last up to August. Now I'm treating around six, seven, eight articles every month or issues every month. And that's the part I surprised myself about. I never thought, I thought maybe within three weeks I'll be tired. I'll be like, ah, no, that's
Charles Max_Wood:
Mm-hmm.
Maina_Wycliffe:
why it's something else to play with. And now I'm thinking about maybe I need to be doing this, to be growing this platform and making it bigger and
Charles Max_Wood:
Make sense?
Maina_Wycliffe:
and
Charles Max_Wood:
So one other question that I have is regarding Substack. So Substack, and I went and looked at review and they do the same thing where you can do a paid subscription to newsletters. Is
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
that something you're looking at doing or is it gonna remain free
Maina_Wycliffe:
At
Charles Max_Wood:
or?
Maina_Wycliffe:
the moment, I think it's going to remain free for the first five years. I have to figure out a way to monetize it. So if you think you want to sponsor my content, feel free to reach out. We'll work out a deal on that. But my goal at the moment is to keep it as free as possible and then figure out how to that and then the newsletter sort of like works like an advertisement board for the actions but still working on that along that way. There's also challenges with sort of like monetizing with Substack and Nebu in that in like in Kenya I can't be able to monetize it even if I wanted to so a lot of like paid subscription.
Charles Max_Wood:
Make sense? Yeah, makes sense.
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
Yeah, I don't know. Is there anything else that, uh...
Maina_Wycliffe:
Mm-hmm.
Charles Max_Wood:
that you're working on that people should be aware of.
Maina_Wycliffe:
The only thing I would like to mention is I have a VS Code extension which I created last month.
Charles Max_Wood:
Uh-huh.
Maina_Wycliffe:
And the essence of it is that you see whenever you go to let's say an open source project, and you want to you see an imported NPM package and you're like, how do I find this? So most of the time you should copy it, go to Google, paste it. and then go to the npm package on npm. So this one sort of like provides you with the links directed to npm if they have a website list, they'll say open initio and also github or github repository or whichever repository they are using. So it's something I'm working on. It's a problem I usually have a lot because whenever I say especially when you're onboarding employees when you're working in the legacy code you always come up with this do this and you have never used that package before, that package before, and you want to go directly to the documentation or go directly to the repository and read what it's all about and then decide how to proceed from there. So this sort of like helps you skip that initial step and go directly to where I think it matters to go directly to the resources themselves. instead of having to jump through a few hoops, like going through Google, or maybe even sort of like creating the NPM link yourself. So that's the basic idea. Mostly I created for me, but I know another person who finds this very useful.
Charles Max_Wood:
Good deal.
Maina_Wycliffe:
Yeah. Yeah.
Charles Max_Wood:
So how do
Maina_Wycliffe:
So
Charles Max_Wood:
people
Maina_Wycliffe:
it's
Charles Max_Wood:
find
Maina_Wycliffe:
a
Charles Max_Wood:
it?
Maina_Wycliffe:
fun.
Charles Max_Wood:
Do they just look up the extension?
Maina_Wycliffe:
It's called it's on VS code. I'm trying to sort of like at the moment. It's on the VS code marketplace, which is hosted by Microsoft But at the moment I'm trying to sort of like the one that the one by X clips so that it's on both so that it works on in a VS code in the What is it called? In a editor or code editor that is compatible with VS code VS code extensions. So there's one for equips. I don't know what it's called. Let me see just To be honest, I have no idea. It's by Eclipse,
Charles Max_Wood:
Uh-huh.
Maina_Wycliffe:
the code editor. And it's more like if you are supposed to publish on both so that it's... Because the marketplace by VS code, you cannot access it if you are not VS code. Something like VS code. Yes, assuming I didn't butcher the explanation for them. So the package is called an npm imported package rings, which is confusing a little bit because
Charles Max_Wood:
Mm-hmm.
Maina_Wycliffe:
it also works with the package.json. So if you're on the package.json and go to a dependency, you'll be able to get those links as well, not just inside the TSA and JavaScript files. At the moment, I'm looking to expand it to work with require. At the moment, it just works with the emascript modules. so a few features that I'm trying to work on so that it's more useful especially with the old legacy code that uses I require a lot yeah yeah in a lot of ways if you say this was a fun project that I never thought I would ever be able to pull it off yeah but yeah
Charles Max_Wood:
Yeah, that's cool. Yeah, I think it'd be fun to write a VS code extension.
Maina_Wycliffe:
The documentation is a little bit, what is it called?
Charles Max_Wood:
out of date.
Maina_Wycliffe:
Not out of date, but whenever I looked at the documentation, it was like, no, I'll never be able to do this, sort of like not very clear. I'm not sure why, especially if you're,
Charles Max_Wood:
Uh huh.
Maina_Wycliffe:
I'm a lazy leader. So every time I would look at this, I'm like, no, I have no idea. Despite them being detailed, I would be like, no, I have no idea how to do this.
Charles Max_Wood:
Awesome. Well,
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
yeah, we'll encourage people to go check that out. Sounds pretty handy.
Maina_Wycliffe:
yaa,
Charles Max_Wood:
So have you had any people reach out to you about any of this work or?
Maina_Wycliffe:
Just one, Holbecker, I think that was last week. So for the most part, I think I don't really do a very good job of promoting it, which is something I'm working on. But yeah, I have come a few, I won one company from last week because at the moment I'm still interviewing, I don't really have a job. So in the interview process, so our company was like. I saw this look at us like, no, I saw your articles, your issues, they were very impressive. And then I saw you're looking for work. So we contacted you. So it works like that. So just one for the time being, but I'm hoping for more in the future. More opportunities around the more podcast opportunities, more speaking engagements and other
Charles Max_Wood:
Cool. All right, well, um... I don't know if I have anything else to bring up. I mean, this is cool. This is definitely, you know, an angle that I wanna tackle. I'm trying to decide if yeah, I wanna use something like Substack or if I wanna just build it all into ActiveCampaign, which is what I'm using to manage my email list these days. Right, just say, hey, you're on the Angular list or the Ruby list or the whatever. And the reason that I would do that is because I would be setting up multiple streams.
Maina_Wycliffe:
Almost to the strings here.
Charles Max_Wood:
But yeah, I
Maina_Wycliffe:
It
Charles Max_Wood:
like
Maina_Wycliffe:
might
Charles Max_Wood:
the
Maina_Wycliffe:
not
Charles Max_Wood:
approach.
Maina_Wycliffe:
make sense.
Charles Max_Wood:
Yeah.
Maina_Wycliffe:
Yeah, might not make sense to work with substrack because I'm not sure if it can do exactly what you want.
Charles Max_Wood:
Yeah.
Maina_Wycliffe:
Yeah, maybe something else I have seen a lot of people say might be good at all that I haven't explored but I got for it yet is ghost.
Charles Max_Wood:
Mm-hmm.
Maina_Wycliffe:
It's more of a micro, okay, honestly, it's a headless CMS, but it's
Charles Max_Wood:
Yeah.
Maina_Wycliffe:
definitely moving away from that. But it's newsletter features are getting much, much better at the moment. And might be easier to sort of like have different lists within the same content platform. And you're able to say, sell this to that and sell this to that. Yeah.
Charles Max_Wood:
Cool. Alright, well, um... I think I'm gonna push this over into the next segment of the show, which is picks. And since you've been around the block before, I'm just gonna go ahead and throw
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
out some picks. So when I do picks, I usually pick a board game first. And I've picked it enough times that I can remember which one I'm gonna pick this time.
Maina_Wycliffe:
Thanks for watching.
Charles Max_Wood:
It's
Maina_Wycliffe:
Bye.
Charles Max_Wood:
a board game. So some friends of mine and I got together and played some games. last Wednesday, I think. And so it's entirely possible I picked this last week and don't remember. But the game I'm gonna pick is called Irish Gauge. And it's a relatively simple game on board game geek. It has a weight of 2.36 out of five. So, you know, it's kind of casual gamer plus a little. And effectively, if you've played, it's really funny. It's like Ticket to Ride meets Acquire meets Settlers of Catan. So if you've played all of those games, Acquire is probably the only one that you all haven't played and it's super fun. So Acquire is stocks. You build a company on the board and you buy stocks and you collect dividends. which is something you do in Irish Gauge. So the difference is, is it's not, there's supposed to be hotel chains in a choir, is train lines in Irish Gauge, and it's in Ireland, right? So it just spans the whole island of Ireland. So the way that it works is the trains all start in specific places and they, you know, they're major cities and then they're kind of countryside, and then they're kind of harder terrain to build through. And so you can build multiple train lines on the same space, unless it's a harder terrain space. And so you're building these train lines, you're trying to connect cities. And at any point you can build train lines, you can auction off stock, but in order to auction stock, except for the very beginning of the game, you have to be able to make the bid, the starting bid. So if you want to auction off a red train line stock, then you have to pay whatever the face value is on it. And then somebody may bid you up, right? And then you collect dividends, and you can call for dividends at any point too. And that's when you get paid out, and it's based on the number of trains in the line, the number of cities it goes through, and the type of cities it goes through. And there's a way of determining which ones pay out and which ones don't. which cities pay out. Every train line usually pays out every time. So anyway, so that's kind of the way that that goes. And then, you know, you're building trains. You can build trains and you can build it through that train. So anyway, so it's kind of fun because you're trying to get the train lines to connect to stuff. You kind of want to strategically call for dividends, right? Because you don't want to make somebody else richer than you that may then go and buy stocks that you want. kind of thing, right? Sometimes you wind up working together. Like when I played, I think I came in second place and it was because there was another guy that was working with me. We owned two of the same, you know, we had equal shares in two of the same train lines. And so it was advantageous for us to build those two train lines up because we could get them where we wanted them. And then to... diversify into the other interests we had, right? So I owned another stock in another train line. So anyway, so it was fun. There were five of us playing. Board Game Geek says it's best experience with four. It says it takes about an hour to play and that pretty much squares with what we went through. And the, I think my 11 year old could play this game. So, you know, my six year old couldn't, my 11 year old could. So yeah, so it's pretty fun. I mean, sometimes you have to think for a minute before you decide what the best course of action is or how you want to build that train line out, but. Yeah, it was fun, super fun. So I'm gonna pick it. They do have two other games that are kind of follow on games for Irish Gage. I don't remember what they're called and I'm not gonna look them up right now, but just be aware that there are, they get more complex as they go. So, you know, I think one of them was Iberian Gage and so it was like Spain and Portugal. I can't remember for sure. And then the other one was, yeah, it was another train, but they add elements to the gameplay. Now, the games, my friend that had them all, he opened them all up and all of the instructions for all three games come one sheet front and back for each game. So it really isn't that complicated as far as the rules go. The complication comes when you're trying to just figure out which thing to do. Right? Is this the best time to get dividends? Do I want to try and connect to that city first? You know, stuff like that. So anyway, Irish Gauge, fun game. Really, really enjoyed it. So, yeah, I dig it. I'm gonna pick that. And then the other things that I'm gonna shout out about. So I did mention the how to stay current course. I'll put a link to that in the show notes It's going to be awesome. Um, and I think it's a killer deal, like a ridiculous killer deal for 50 bucks to basically get like 10 weeks of weekly calls with me, where I show you how to stay current on stuff and how to, um, evaluate and then learn what you need to learn. So anyway, um, I'm also revamping the coursing structure for, or coursing the coaching structure. So you can go check that out at topendevice.com slash coaching. And then finally, I do want to shout out about Angular Dev Summit or Angular Remote Conf. I own both domains, and I've called it both things. It's going to be Angular Remote Conf. It looks like it's probably going to be in January or February. But if you want to speak, the CFP is open. If you want to be involved in other ways, you are welcome to do that. And yeah. Beyond that, I don't think I have any other picks. So I've just kind of been heads down, hammering out top end devs. One thing that I am looking to do next though, that you may want to be aware of, so just keep an ear open. I'll let you know when I do it is I'm pulling together, I'm going to be doing weekly video series and so it's going to be, it's kind of like what you're doing with all about TypeScript, except it's going to be videos. And
Maina_Wycliffe:
videos here.
Charles Max_Wood:
I'm gonna put out two a week and one of them will be a paid subscription. So, you know, if you wanna just
Maina_Wycliffe:
Oh.
Charles Max_Wood:
subscribe to the free, that's fine, feelings not hurt. But
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
if you wanna double it up, then you can. So, anyway, those are my picks. Mina, what are your picks?
Maina_Wycliffe:
Yeah, yeah, I was listening to you talking to about the game and sort of like became a little bit not nostalgic because it reminded me of a game I think it was called DeroTruck we used to play a long time ago and it was all about delivery so on these loads where you come get you have this truck come get this container delivery to point B and so on. And one thing we used to love to do when we are doing that is go into the game, delete all the music that came with the game, then add your own game. And in this case, it means adding lega into the game. And then you could have like this rollie blasting down a hill with the lega blasting into your headphones. And it was much, much fun whereby you are completing any money, a sort of like a brick upgrading the track, sort of like making this fun when you're playing with friends. So. I think I'm going to be big that it's also really came with, but sort of like I had what you said and I was like, no, I remember something I used to have to do a few years back or more like not a few years, but almost a decade, I think by now. So there's that. So the second thing is, I think there's this book I just got started by, I think it's called Josh. So learning TypeScript. of the season, that is Google DevFest. So next week I'm headed to Rwanda for a GTE summit for Sub-Saharan Africa. And then looking forward to going to DevFest Kigali where I will get to meet these amazing people. That will be from the 21st all the way to 24th. And then... I'm also looking to get into video streaming once in a week or once in a while. And most of that content is going to be around Anguira and also me doing, or more like not doing, more like struggling to do stuff like I haven't planned to do. And then you can sort of like come and especially for the new ones, when you see someone else struggling to do some of the basic stuff, it's inspiring. Or you can keep calling me an idiot in the process. Charles Max_Wood:
Awesome.
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
All right, well, if people want to connect with you or subscribe to the
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
newsletter, where do they go?
Maina_Wycliffe:
So allthingstypescript.dev is the domain for the allthingstypescript. You can connect with me on Twitter at mwycliffe.scodev. My nawycliffe is already taken. I don't know by who. But everywhere else is my nawycliffe on GitHub. And everything else is always my nawycliffe.
Charles Max_Wood:
Alright,
Maina_Wycliffe:
Apart
Charles Max_Wood:
good deal.
Maina_Wycliffe:
from Twitter.
Charles Max_Wood:
Yup.
Maina_Wycliffe:
You probably pay that guy and buy him out.
Charles Max_Wood:
Yeah.
Maina_Wycliffe:
Yeah.
Charles Max_Wood:
All right, good deal. We'll go ahead and wrap up here. Thanks for coming, this was fun.
Maina_Wycliffe:
Yeah, I really enjoyed that today. I enjoyed talking about all things TypeScript. I haven't talked about it before. So sort of like exciting. I also loved running or looking to doing something similar. And I hope we get to work together at some point on a few other things and
Charles Max_Wood:
Oh
Maina_Wycliffe:
probably
Charles Max_Wood:
yeah?
Maina_Wycliffe:
be back at some point in the future on adventures in Angular.
Charles Max_Wood:
All right, sounds good.
Maina_Wycliffe:
Yeah.