Jeff Shek is a seasoned lead engineer with exceptional experience in building distributed, reliable and maintainable code for web and enterprise systems. He has personally built, grown or mentored software engineering teams. At his last startup, HistoWiz, Jeff’s primary focus was engineering an online platform for annotation, collaboration, machine learning algorithms and processing of digital histology.
Prior to HistoWiz, Jeff has served as either a technical lead, senior engineer, and/or product manager of NYC’s well-known and fastest startups (Capsule Pharmacy, Artivest, YCharts). His open-source projects have been used by thousands of people.
Contact Info:
senrigan.io/blog
jeffshek@gmail.com
@shekkery
What we talked about:
- Spaced Repetition
- Anki
- How to Create Anki Cards
- The Power of Flow
- Cognitive Science
- Productivity Hacks
- Effect of Exposure to Multiple Codebases
- What is a Senior Dev?
Transcript:
Interview with Jeff Shek
welcome to junior to senior dev I’m Tyler Lemke. I’m Douglas Hirsch. And today we’re here with Jeff Scheck. Now Jeff is a seasoned lead engineer with experience and building distributed, reliable and maintainable code for web and enterprise systems. Uh, he served a technical lead senior engineer and product manager for, uh, some New York city’s well known and fastest startups, such as capsule pharmacy.
[00:00:25] Artivest and why charts is open. Source projects have been used by thousands of people. And one of the main reasons we have him on today’s cause he has a super power using something called space repetition. So we’re going to find out a little bit more about Jeff. Jeff. Thanks for coming on. We’re really excited to talk to you.
[00:00:43] I’m really excited to be here.
Um, so can you tell us a little bit about your background? It sounded like,
um, I was going through your blog to try to.
Um, that’s how I actually found out about you originally. And I was trying to go through those articles again. I noticed that you, you started coding, like you started learning code on the job.
[00:01:01] Can you tell me how, what was your background and how did you get into the field? For sure. So I graduated college, this like actually a finance and economics degree, so I didn’t have a coding background.
Um, and I started working at like a tech company, like at a school.
Um, I wasn’t doing any coding there.
[00:01:18] And then at some point I just kind of like, kind of hit that quarter-life life when I was like, Hey, this isn’t really what I want to be doing. I got really sick of finance, at least just the, my role in finance.
Um, so I joined another startup in a clear the city in Chicago.
Um, and there, it was basically learned on the fly.
[00:01:33]
Um, so they gave me a book. It was,
um, Like learn Python the hard way, but is that Shaw, which is a really good book.
Um, and just essentially, it was like the responsibility to throw in a like, Hey, we want you to deliver this code. And like, they were pretty hard on pull requests. Like they would always do you everything.
[00:01:47] So you learned a lot there.
Um, and that’s essentially where I kind of like got most of my knowledge the first three years. It was just really a blur, but I learned Python there. And then after that, essentially, you just kind of grow in knowledge as you have a basic foundation of software engineering.
Um, I’ve been coding for about eight ish years now.
[00:02:05] So it’s, again, it’s a, it’s a long journey. I’ll probably coding for many more years and there’s just still so much to learn.
[00:02:14] Awesome. So,
um, So you, it’s good to know some of that background, why you went into it. So you found yourself w if you go and read the blogs, we’re going to give some people linked to the blogs. They can read it for themselves, but,
um, you found yourself, like, what was it? It seems like it was like, what four, was it four or five years ago?
[00:02:32] Or was it three or four years ago? Yeah, it was six years ago. So how long have you been doing,
uh, uh, space repetition for it’s about five to six years, but five or six years. Okay. Right. Okay. Cause I got kind of my timeline mixed on the, on the blog articles. So six years ago. So you’re about three years in to your.
[00:02:55] To your career. Can you kind of tell us where, where you were at and kind of paint a picture for us,
um, where you were mentally kind of like you did. And so the blog, so I was, I was coding. I was learning on the fly and like at some point you kind of hit this wall and it happens to everyone where. You’re learning a lot, but you’re also, you’re, you’re basically having a lot of trouble keeping up with all this knowledge.
[00:03:18]
Um, I think it’s like the first couple years, there’s just so much fun and you’re like, first you’re learning Python and you have to want to do database work it’s to learn how servers work and each obstructions at different level.
Um, and the difficulty that I had was. The startup was very hard. There was just so much work to do.
[00:03:32] And I was kind of comparing myself. There was a few of us that are all start at the same time, kind of similar backgrounds, where we were just learning on the job.
Um, one of my colleagues and he’s just the certain people are just genetically gifted and he had just basically a photographic memory. I think we were all watching him as, as his progression was just so much faster than ours.
[00:03:50] And there’s always the hang of jealousy. Cause you, we all know we start at the same time and it’s just, his name is Ryan. It was just, just like watching Ryan grow leaps and bounds. And we were like still struggling with like command line stuff. And Ryan’s just had a photographic memory where he would like read some documentation and just do it fully like, and it’s just an amazing gift to have if you can do that.
[00:04:11]
Uh, so. I recognize that memory for me was a huge issue of like, I couldn’t recall stuff as fast as he could. And I was always just Googling back, like, how do I do this and get up, or how do I do this? And,
um, so we started using space repetition. So what space repetition is, is to describe it as,
um, it’s basically like this way of this algorithm that kind of prevents,
uh, sorry, that keeps on giving you certain types of.
[00:04:34] Flashcards that quiz you it’s these spaced intervals. So for instance, if it does, it gives quizzes you on like day one day, three day, five day 13, the 26 50, at that point, you actually remember the knowledge much better without having to kind of redo all the flashcards every day.
Um, so I started using that and it was just super helpful for my career.
[00:04:55]
Um, at some point I finally felt like I was. I was like moving up the mountain of like how much I was learning and the same time, like I wasn’t forgetting essentially like everything I learned 30 days ago.
Um, so yeah, I think that’s my experience with space repetition. It did like break me out of the slump that I was in, where I kind of felt stuck where I felt like I was just stuck at this mid level software share.
[00:05:17] Like I was just forgetting 30 facts a day and learning 30 facts day.
Um, and so it’s been super helpful. It is. It isn’t free though, I guess. So the best way to describe is it isn’t like timeframe. Like I do have to spend time at it every day. Like it’s like 15 to 30 minutes of like reviewing cards.
Um, but then like the payoff to my career has been tremendous because it’s just, I can build stuff so much faster.
[00:05:39] Now I can stay in like a good rhythm and a flow. So I like to speak highly of it to everyone, but I know it’s a hard commitment to do, like just saying like, Hey, you got to do flashcards now. Right? Yeah, you mentioned, you mentioned a lot of stuff in there. So it’s funny. Cause like one of our previous episodes I talked about how memorizing syntax is actually a good thing.
[00:05:58] And part of that was from what your article said. And part of it was cause I learned that,
um, This term, like cognitive overload, where you’re staring, you’re looking at a screen and it’s like, there’s so much, like if you’re looking at a code base and you don’t understand all the API APIs, like your brain kind of just shuts down and that’s what happens to me quite frequently.
[00:06:16] So,
um, I thought of this interesting that had, did you notice that that helped you as well with as far as cognitively? Or was it just memorizing the API facts? Yeah. Right, because back to your point, right? Like if your brain gets tired of starts, it wants to go to some distracting, something easier.
Um, that helped me a lot.
[00:06:33] We use a lot of,
um, pandas Python library that we use. And there’s a lot of unique syntax with that.
Um, and just like knowing that firsthand is much better, it’s like, well, we memorize it. It’s not like you’re not embracing chore API calls, but you are memorizing like the parameters that kind of go into it.
[00:06:49] And like some of the commonly used ones it’s,
um, I don’t use occupant to memorize like esoteric,
um, API, but it is like, Hey, if you’re constantly using this,
um, it will ingrain in your mind much faster,
um, versus slowly just using. So some people like will just slowly index over time, but if you’re going to aggressively figure it all out and like a month or so, it’s just so much faster to do stuff.
[00:07:10] Yeah, and I want to, I want to highlight how much, how much your productivity went up in a bit, but something you didn’t mention was that you mentioned in your article was that you spent about 70 hours a week coding. So you weren’t slacking off. Like you were like, you were like trying, at least at your they’re trying to code 70 hours a week.
[00:07:31] I had my
ass in seat. I think that it’s terrible. It’s like, I was like sitting down frustratingly, trying to, and just like your brain is like giving up.
Um, yeah, it was like a super hard experience where you’re just like trying to learn something and you just don’t feel like you’re making fast enough progress.
[00:07:45]
Um, yeah. I mean, like I’ve worked at starved so many years and it’s, they’re always like real time commitments.
Um, we were talking about earlier, but it’s just like the startups kind of trade your youth, but you do get a lot of experience out of it and it all becomes one big blur.
Uh, but as a result, you do actually.
[00:08:00] Good startups. You can learn so much quicker than regular corporate roles. Interesting.
Um, yeah, that, that does make sense. And I guess that’s a trade off. We were talking about cultures between startups and,
uh, non startups as well before, and the, the differences there, but,
uh, Go ahead. Oh, well I was going to say that I did have a question.
[00:08:22] And so we we’ve said, you know, it’d be good to put stuff in inky cards and, and whatnot, but maybe give us an example of one of your anchor cards. Cause some people may be sitting here going, well, what do I put in those cards? Okay. Yeah. So I think like some of the stuff I might put in is like,
Um, how do you do a specific SQL query?
[00:08:41] Or like, if, like, if you’re just a beginner, it’s like, how do you commit a good message? And so over time, like you can learn that or you can just kind of put it on as like, Oh, you’re going to type in, get commit dash M and then you put in your message there and then you hit send. Or like, and you say that as an AKI card, the gold card isn’t supposed to be, it shouldn’t be super hard to do.
[00:09:01]
Um, but it is something where if you need some members, some type of syntax, it’s super helpful. Lisa, when you’re beginning something to kind of put all that knowledge that you might Google,
um, back into an AKI card.
Um, and then, so I’ll put in like specific type of like pythons index of like, how do you do a turnkey operation or in JavaScript?
[00:09:18] Like, how do you, how does like slice work?
Um, so these types of things where. You might reasonably remember it if you were working on JavaScript full time or like one of the languages full time. But if you’re working on like five or six different languages, you’d have to learn something it’s like, It’s just nice to kind of put that in there and to be able to like refer there without having to constantly expected to using one specific type of language.
[00:09:39]
Um, so there’s like stuff in there that I had from like C-sharp,
um, that, and I haven’t used C sharp from like years.
Um, and then you’re like, okay, cool. Like it’s still kind of comes back as a refresher.
Um, but I also kind of put that as a caveat of like, I will delete AKI cards a lot there too, when I’m like, okay.
[00:09:51] I’m not going to be using PHV. And so I don’t really care if I forget this type of knowledge or assume that I won’t be using pastry in years to come.
Um, all right.
Uh, so that’s what I kind of think of when I use, like on key. I also do a lot of like new types of knowledge. So I might do something like,
um, these are the broader topics of like, Hey, what is,
um, what does active record, or how does flash this, do something behind the scenes?
[00:10:15]
Um, or how’s like, Password hash and done in Django.
Um, these are the types of things that you might look up once or twice, but you won’t like you won’t, it won’t really stick, right? Like the amount of times that you Google something you like, Oh yeah, cool. And then you forgot about it. For me, that was quite prevalent.
[00:10:30]
Um, and so if like putting into Anchia and then AKI reminds me of this knowledge, essentially like one, three, five, seven months or something like that, like it’s a great way for my brain to kind of come back to and just remember that knowledge,
um, And then I do have a lot of like auntie cards now that kind of refresh in like three years.
[00:10:45] So it’s been really interesting. It’s like, honestly, remind you of something you’re like, Oh, I definitely know that. I’ll be like, okay, the next reminder that we’ll give you about this is like three to five years. So that’s crazy. Well, I was going to,
uh, I was going to ask then, so, so in these, these,
uh, honky cards,
um, the way that you answer the questions, is there a way that you type the question out?
[00:11:05] Do you,
um, Oh yeah. It is like a, when you answer it as basically, you’ve kind of answered it in your head and then you will give this interval of like,
um, zero is like, Oh, I got it wrong. Or like one, two, three is like one, it was like kind of hard to was. Medium and three, it was like easy.
Um, well I took zero one, two, three, but you can kind of change that also.
[00:11:24]
Um, and so it basically, it’s asking you, was this, did you get it wrong or was it easy? Was it hard or super easy for you to remember? And then it will cut. The algorithm will shift from there. If you think it was super easy, then the algorithm lasts you much further along the road. If you thought it was kind of hard, you had to think about it.
[00:11:39] And the little kind of like, come back and ask that question again and like maybe one or two months,
uh, Yeah, answering it’s like pretty easy. It’s the hard part is actually just putting in the flashcards and the commitment to doing so, like I knew about space repetition. For a while before I did spacer.
[00:11:57] Cause he’s like, Oh, I don’t want to flashcards. Right. Like,
um, but then like when you’re kind of stuck in your career, you’re like, you’re like, feel like you’re spinning your wheels and you’re like, I have to change something. Like, then you kind of decide to make more of that commitment. But even then, like when I was doing it, it was still really hard in the beginning.
[00:12:11] Like sometimes just cause you add to honky doesn’t mean you’ll obviously understand all that knowledge. Like you kind of brought this up in one of your books. It was like the gang of four and you kind of like learn all the patterns from there. Just cause you put it in there doesn’t mean. It’s always immediately walkable.
[00:12:26] So like, even then it’s kind of, it’s not like an immediate, it doesn’t like control everything. I think that’s it. Sorry. It, it, it brings me to one of the thoughts that, you know, there’s two different types of knowledge, right? There’s declarative knowledge. And then there’s procedural knowledge. The declarative is where we could talk about it.
[00:12:43] Right. That’s what auntie is really testing for. Is this, is this. How do you commit a message? You’re like get commit to a sham of quote, you know, and that’s, that’s one thing, but to be at the keyboard when I type it out on the keyboard and commit it in and, and handle handle, get that’s procedural. I don’t also much like that example as much as I do, like,
um, working with.
[00:13:07] Working with code, you know, where you’re actually really trying to like active record what is active record? Well, it’s good to be able to declare do you use the declarative explanation of it, but then to use active record, to know how to really, really use it? Is that, that part? And that’s where I always get a little.
[00:13:25] And in using space repetition. I want something that’s going to let me use it at a space repetition mode instead of, instead of just ask if I were a member and that’s kind of been where, where my brain, my brain sits,
uh, there’s, there’s some prototype. There’s some stuff I prototyping of some I’ve shown Tyler.
[00:13:44]
Um, kind of,
uh, some stuff I’m working on to, to actually scan abstract, abstract syntax, trees of code to see how people are implementing things. If we, so it’s a whole different concept, but I love space you’re right. No, it doesn’t, it doesn’t help there that one’s just like straight practice, like AKI does doesn’t help with that at all.
[00:14:03] It’s basically going, Hey, if you had a really good memory, like how much faster could you do stuff?
Um, but sometimes you might just do. The wrong thing faster. Right? So like, that’s like, but that’s like being honest about it. Like, you might just commit a bunch of crappy messages really quickly now.
Um, so honky does not help there, but it does help with just generally it just lets you code faster and depending on where the direction you’re facing, like either that can help you or you can kind of like, just make you do more of the bad habits over and over.
[00:14:33] Right. Yeah. So I agree with you on that, but no, it’s just, it’s one of those things where I always,
um, I always, you, if you’ve listened, like, I don’t know, you sound like you, you may have listened to some of the stuff we’ve talked about before. I’m always talking about, about getting the practice. And that’s what we tell my students when, when I have students, is that get your hands on the keyboard.
[00:14:54] Don’t worry so much. And that’s where being Tyler sometimes get into LA, you know, kind of lock horns together sometimes where I’m like. Well, just how much of the API do you have to remember? I think it’s like, remember enough where you’re not stuck, where you’re constantly having to like all tab, go to sack overflow and then get distracted by something else.
[00:15:14] Like I find that the internet is just hyper distracting now where you go on stack overflow and then the right hand column is like a community questions. And then the, like, down below that it’s like asking. What superhero would win in, blah, blah, blah. And it’s a completely the Twitter, right? Yeah. It was just like, you’re like, okay.
[00:15:30] I started with this question of like, how do I do something in API? And then you find yourself like reading some like Metta overflow of like some controversy. And it was like an hour later. You’re like, Oh
shit. Like I haven’t done anything. And so having a lot of this knowledge is just, it just saves you a little bit from that.
[00:15:45] And just a little bit goes a long way. Cause your brain is also like when it keeps on having to Google stuff, it kind of gets a little lazy, gets a little tired.
Um, I find that my flow States are so much better now. I was like, Hey, if I’m working on something that I don’t, I just don’t all tab a circle.
[00:16:00] And I think that I’ve seen other people, like if you have a good memory to begin with, then perhaps like auntie and space repetition, isn’t that useful?
Um, like seeing someone with really amazing memory, it’s just like, okay, like, it wouldn’t make sense to recommend that. But I feel like for me, like I have like average or below average memory, so.
[00:16:19] Space repetition becomes super useful there.
Um, and then like, I’m like easily distracted by the internet. I feel like everyone is, but like, I just, like, I’m super frustrated that like go on stack overflow and like, and I’m reading about some type of like superhero comic, right? Like on stack overflow.
[00:16:38] Yeah, no, man. I, I totally,
uh, the distraction of going to the internet for things can, can torpedo a state of flow. Definitely cause that it turns into, and I think I really like it was that. No, no, no, go ahead, Jose. I love working on a train for that reason. Like you take an Amtrak train and it’s just like, the wifi is so bad.
[00:16:57]
Um, but if you have a gig. If you don’t really need to use the internet, like you’re just like coding, you can get so much stuff. I’ve gotten so much work done on like airplanes and trains and it’s like weird. Right? Cause you’re like you imagine like with no internet, that would be harder, but. It’s weird.
[00:17:14] How much more productive I am there without the distracting internet. Yeah. So, so the thing is, and I want to tie it all together because you said something really important. And I think we kind of jumped on this a little bit. The example, I believe the example I gave in one of my other.
Um, one of our other episodes is the idea of, I had students who, who,
um, we took them on a field trip and they were asked, you know, they asked the people that we, that we went on the field trip with, or to the office we went to, Hey, what do I need to be a backend engineer here?
[00:17:43] And the, these guys that had eight weeks of experience in software development, and they’re like, you need to know solid. Right. And I’m like, And that’s the thing, right. We could put solid and inky carts. We could put all of it and they could go in and recite solid to the,
uh, to the letter. But, but when it comes down right.
[00:18:03] But they don’t understand the, the, what all those words mean. And that’s, that’s where,
um, I had this conversation with my dad a long time ago when I was young. And I said, man, I wish I had a photographic memory. I wish I could just flip through the book and have it all in my head. And he said that that would be absolutely useless to you.
[00:18:22] And I was like, what do you mean? I would love to have like, like he said, no, you have to actually,
um, it, you wouldn’t know what that information meant. And part of that, knowing what it means is connecting it. But I really liked the fact that you brought out, it’s not just achy, it’s, it’s doing the things.
[00:18:40] And then also the Yankee is to help reduce the friction. That’s actually what I really like about what you, what you’re saying. I think there was like a lot of controversy there too.
Uh, when I publish this, I kind of like, it went semi viral on hacker news and it was like, there’s a lot of visits there and people are talking about it.
[00:18:55] And like a lot of people were like, no, like memory doesn’t help, anything at all. It’s assumption, like no memory is super useful. And the answers like someone in the middle, like if you’re not actually applying it, like just cause you’ve memorized all of good syntax like that won’t help you anyway. But if you’re like, if you’re actively learning on the job and you’re just like looking for a way to go, how do I remember more than I forget?
[00:19:15]
Um, and you think of it that way and how do I use it as a tool to make me a better engineer that’s super helpful, or like your, your IDE won’t make you a good programmer.
Um, but it can be a tool to help you program faster and more program more effectively. But if you don’t put in that work, there’s, there’s no real answer there.
[00:19:32]
Um, and like sometimes people want it, Oh, if I had to photograph memory, I could do anything. It’s like, that’s not true either. Yeah. Yeah. So that’s how I view on key and like space repetition.
Um, So I think it’s interesting cause I,
um, we’re both,
uh, um, and you might be interested in this too, but,
uh, Douglas and I are interested in cognitive science a lot.
[00:19:49] So we would like to talk a lot about learning and, and the science behind it. And they talk a lot about,
um, the closer that you can get something when you do this space repetition or rather space practice, the closer that you can have be to the actual thing that you’re trying to,
um, No. So like actually coding the better.
[00:20:07] So have you ever, have you ever done the, the opposite where,
um, I noticed in wa
um, on one of your blog posts, you actually have, like, how do you,
um, how do you get like a use, like a re prototype slice or something and JavaScript, right. And you’re like, how do you, and I forgot the exact question, but have you ever actually typed out things.
[00:20:28] To your cards because you could do the procedural stuff and am by yourself view. Yeah. There’s like a few of, like, I do have like cards that are like recursion based. Cause it’s like they come up randomly in interviews, but not really in real life.
Um, and it’s like, how do you like implement this type of algorithm?
[00:20:47] I’ve done that. But the tradeoff is like, when it becomes hard, when you have to like, think through really Hardy these cards, it kind of ends up being something that your brain starts to try to avoid.
Um, so he’s on key is like, kind of like my brain is not at peak and I can just kind of go through these really quickly.
[00:21:04]
Um, I also find that like, in regards to the memorization of it, there’s such a strong, like modality effect where like how you’re studying it, like kind of. Impacts it pretty hard where like, if I’m never using some type of like, how does a certain program work?
Um, it’s not easy, easily applicable towards something else.
[00:21:21] So I, I feel like when you learn a different context, your brain like blends in much faster, right? Like if you have to input a program in go Python and Java script, like you’re going to learn that concept much better than if you only memorize, like, how do I implement it? Only in Python that’s like straight off and like have like really difficult cards within funky.
[00:21:37] Like I’m going to only memorize like that specific context and it won’t. He as procedural is kind of like Douglas pointed out. I’ve definitely tried though.
Um, and I just found that it wasn’t sticking as well. And I was just like dread that specific card and I would kind of like,
um, keep on like kind of getting it slightly off wrong.
[00:21:53] And at some point I was like, this is not. This is not how I really should be using honky. And I think like,
um, there’s another one that love the developer, like another space infrastructure software. He kind of talks about that. Even one’s against that too, where like sometimes when people start arguing things like, Oh, this can give me like a super memory base and that doesn’t quite apply as well as people want, like an auction card should be built or specific shoes should be fast, easy for you to do, or you should be able to quickly go, Oh no, I don’t know it versus like having to spend like 15 minutes, trying to think through an algorithm.
[00:22:22]
Um, Yeah. Interesting because there are, when they talk about space repetition and stuff,
um, they actually say how,
um, like make,
uh, make it stick the book, make it stick. It talks about if,
uh, if something’s the difficulty actually is counterintuitive when you do use space repetition, so people don’t do it.
[00:22:40] So it sounds like that’s exactly. And I think that’s exact thing I’ve fallen into. I’ve written hundreds of inky cards, but I’m really, really bad at. Following up on them. Like it’s, every card is a hard card. It’s like really hard to keep it up. That’s how I feel. A lot of the times I was kind of like, what?
[00:22:57] And I get, I also overanalyze I’m like, am I writing the right card? Right. Am I, am I doing this correctly? Am I do I even understand the concept correctly? And then I’m like, Analysis paralysis and just don’t make the cards or don’t reveal them
[00:23:14] though. I was going to say, I was going to add in there that, that this concept that we’re talking about is, is well known in psychology, which is that in also just in, in,
um, evolutionary biology, which is things that cause us pain. We want to get away from. And so the more pain that it causes us, the, the, the, the more that we try to avoid it.
[00:23:35] And the thing that I was going to also point out is that all the research I’ve read is actually the harder it is to pull it back out and you successfully pull it out, the more ingrained it’s going to be going to the next test. So it’s actually the stuff I’ve read on space repetition. Is is that you want to get to that moment right before you forgotten it.
[00:24:00] And it you’re what you said is, right. Right. I think, I think that you don’t want it to be like,
um, right. Ward piece in the box forest, please, to be sure that you’ve memorized it. Right. But it needs to be,
um, it needs to be right at that point where you do kind of have to go and then it comes out where instead of it’s like, Yeah, easy.
[00:24:21] Right? I agree with you there. I think what I’m thinking is more or less how when your brain is lazy and like doesn’t want to do on key. And it remembers AKI is like this torturous task where you’re like, if every single card is like something where you have to think through and pull it out, there’s an argument that your brain is just going to like, not want to do it anymore.
[00:24:38] If you can believe that I’ll keep. So Derek Sivers kind of goes through this where he goes through his cards really quickly. And,
um, his car, he feels like his cards are like reasonably. Good. Like they’re not too, too hard that way on keys, like more or less like a fun process. But if it feels like every day, you’re kind of going through a new textbook and it’s like, you have to pull these concepts out.
[00:24:58] Your brain just starts at four weeding doing Anchia don’t just go, go on Twitter, go on Facebook. And that’s what I’m avoiding of. Like, you’re white that if, if I had unlimited willpower, then that is the perfect scenario of like, just pull these like medium level onto cards and keep on like thinking through these concepts.
[00:25:16]
Um, I also say this and that. I like, if you look at the medical students using on key, they are absolutely that context. Like medical students using honky is like a freak show where they all have like 4,000 cards. They all do AKI overload. They all spend like eight hours a day studying on keys. It’s like, how is that possible?
[00:25:32] Right. Like,
um, so it’s like kind of crazy. I didn’t realize how crazy it was until like medical students started like emailing me from the blog posts. Cause they’re, they’re like, they’re like the real AKI space, repetition users. Those guys are heavy. Edit. And I didn’t even know as possible study eight off, stay on flashcards, but they do all the time.
[00:25:49] So it’s crazy kind of scary. Actually, they do, like you’re not supposed to do. And that like, basically everyone records don’t import other people’s decks,
um, and like brute force it, but they will do that because that’s how hard medical school is.
Um, so yeah. Yeah, I was, I was wondering about that as well.
[00:26:09] Cause I’ve, I’ve read that they’re not importing other people’s stacks. I don’t know if you mentioned it. I think I’ve read,
um, I forgot the other guy’s name.
Uh, Derek Sivers has an article and then there’s another guy, a British guy. I think, you know the YC guy. No, I don’t know if it’s bursting out.
[00:26:23] There’s there’s a few, there’s like a few prom programmers that also said like space repetition has like changed my life through actual famous burger, but not me, but like, they’re like, Hey, like they’re like space repetition is amazing. Wow. I think it’s like Michael something I’m trying to look up right now.
[00:26:46] Michael Nielson. Was it him or no, it was a, it was another guy, but that being said, going back to the principal cause,
um, it’s cool to know that there’s other ones I’ve only ran across a few.
Um, but I think people are going to go onto inky web. I think it’s as an inky web.net or something like that, it’s the website we’ll put, we’ll put a link to it in the show notes, but,
um, they’re going to go on there and then try to pick up the JavaScript stuff.
[00:27:09] Cause I remember picking up some on Ruby before and I was like, you don’t have the con the problem is, so it’s interesting in your, in your article, I don’t disagree with you. You said inky is a learning program. And I was like, what is learning? Right. What’s the definition it’s like so large. It’s like, Oh my goodness.
[00:27:25] I don’t think. I know that you do this, but I don’t think like trying to understand programming concepts and inky is not a very good idea. You do not understand them before, like, and play with them and then write them down. It is harder that way. Right? Because otherwise that’s what you’re doing. If you’re, if you’re picking up other people’s decks, now you’re trying to parse the understanding behind.
[00:27:45] The remembering, which makes, which goes exactly to your point from before. Now this is a horrible process. Like I need to run you a textbook and like memorize this, right. So this is great. This is great. Cause this is exactly why I actually, I picked up hanky, cause someone said, Oh, go get inky. And I’m like, Oh, here’s all these decks.
[00:28:02] Can I, am I going to plug into the matrix and suddenly know Kung Fu? And then it’s like, I don’t understand it. You know, it, it doesn’t really help, but the, this, this discussion that we’re having around. No don’t use other people’s decks and make your own deck, because if you’re making your own deck, you’re trying to process that information yourself right then, and have built up the scaffolding around the information at the desk.
[00:28:27] So like when I have a lot of my action cards, it’s like, I remember why. I remember the issue that I was having and why didn’t know this answer. And then it’s much easier to kind of learn from that, the true context behind the scenes of just because you asked, like, fill like a fill in the blank type of question, won’t be helpful.
[00:28:44]
Um, so like machine learning that’s happens a lot where like machine learning is so abstract and if you just fill it with abstract information occupies so hard to do, and I’ve done that like in the last couple of months where machine learning is just so much more knowledge there to now to learn,
um, And when you just give it a really quick abstract, like if you just copy and paste on Wikipedia, I dread those cards so much.
[00:29:05] I keep them in there just because it is like my way of like also kind of thinking of someone throws me in a textbook and now I’m just like sitting and studying with it.
Um, so I will put in concepts in there that I don’t fully understand. However, that’s not a recommended practice unless you’re like fully committed to like, Hey, I’m going to study multiple hours within on key and use textbooks.
[00:29:27] Just to learn a specific topic. So I use it like back then, so I don’t use it just as a note card system. I use it actually as like a like textbook plus no card system.
Um, it’s not recommended. It’s really, it’s more like how medical students learn.
Um, so that requires just an absurd time commitment at times.
[00:29:43] All right. Cause that’s sorry. Good. That’s that, that was just say that’s so interesting because what that would mean is that you’re trying to use again, that’s that’s back to what, like, if I had a photographic memory, then I could remember everything that I saw, but then that information coming into my head wouldn’t mean anything because I don’t have context around it.
[00:30:02] But the idea is, I think what you’re doing is adverting the idea of having, of having that, that knowledge come at you and then record what you want to remember later, as opposed to having concepts that you haven’t quite gotten down and you’re going to try to rope memorize it. Yeah. On the hope that later context is going to come in by the time that you kind of get there to the rope part with like memorization, you, you do reasonably learn the concept much better.
[00:30:33] Cause it’s like, you’ll just,
um, like I, I won’t try to memorize something word for word I’ll like, I will kind of break down into like, Oh, foundationally, what does this mean? Right. Like what does back publication? You know what I mean? Was it trying to do,
um, but those cards will take me like a few minutes and those are much harder by nature.
[00:30:48]
Um, but the first time I put what is back propagation, I definitely didn’t understand that concept at all. And every single time I go back to these cars actually do learn a little bit more, especially if you’re like your day to day jobs, like working in a specific sector.
Um, so like whenever you view visit a concept, if you’re visited after a few months, you do find that there’s like this other type of knowledge that you kind of connect with it.
[00:31:08]
Um, so back to your intelligence basket, it’s like, how do your neurons kind of like tie in these different concepts together?
Um, and it’s just a great way to kind of also remind you, like, Hey, think about the overall concept of like, what is that population? Should I like, I guess, like it’s programming.
[00:31:21] It’s like, what does encapsulation mean? Like, why is it useful?
Um, and like, no one really asks you that more like dividends, like, Oh, I guess maybe for you less, but like, Because you were like a teacher, but like, for me, it’s like, yeah. Yeah. Knock interviews today where I was asking that specific question.
[00:31:38] Tell me about encapsulation of what it means to you. That’s like in interviews or like when you’re teaching someone the first time, but like some of that’s like been programming for like five to 10 years. You haven’t really asked them that you’re expected to like grow up. Then when that question kind of comes back, you’re like, Oh, like, what do I think about a calculation?
[00:31:54] Like, what are my expenses? It is like a great way to like tie into context of what you’ve learned. Well, you already thought you understood the concept, but now it’s like a different shade of it. Like when you revisit stuff, it’s just interesting how your brain will kind of bring in new concepts. Like whenever you visit a topic after six months later, there’s just a separate type of insight where you still remember the original point, but now there’s a separate insight for you to learn that concept even better.
[00:32:16] He does that for me too. That’s so interesting. You said that. Cause I just read something very similar to that. I have this book called understanding how we learn a visual guide and it’s basically a compendium of all the cognitive science.
Um, that’s got like hundreds of references to all the. Articles out there, but they said the same thing they said,
um, do using space repetition actually helps you to learn something more deeply.
[00:32:38] So that those that do space repetition versus just wrote, wrote repetition of, of facts. Actually, they’re actually able to apply the concepts in different scenarios versus just repeating the concept back. So it’s like, I just thought that was interesting. Cause I was like, at that backs it up with like, Cognitive science.
[00:32:57] So I thought that’s cool. I do agree. I think like people have this huge frustration against I’m keen because they think it’s only rope memorization, and it’s somehow believes that if you’re doing hockey, you will turn off your brain. You’re thinking part of your brain altogether. And you just like roll back and give these answers.
[00:33:11] And I think some of that comes from like, you can argue like,
um, low lot of like, I guess like Chinese people were really known for like memorizing wrote mathematical formulas and it wasn’t helpful for them to think about the overall. Concept of it, but if you’re like in your twenties or thirties now doing it, like you’re smart enough to like, think about things, right?
[00:33:31] Like you’re not rope memorizing anymore. Like you were in high school. And so a lot of people have like frustrations against like when they think, Oh, I’ll keep just a memory trick. It’s like, no, it will make you relook at a concept. And like re think through it and like, it will help you there.
Um, so yeah.
[00:33:50] Like they say neurons that,
uh, neurons that fire together wire together. Right. So you’re right. If, if,
um, if, if a car does kind of like start kicking off other things that’s attached to, then those, those connections become stronger as it happens. That’s really, that’s actually a really great, and one of my fears of inky myself, so you’ve actually come in here and, and,
um, you know, that’s actually one of my, my arguments that, that.
[00:34:15] Not argument cause I’d never get, I’ve never gotten into a debate. I don’t use achy,
[00:34:22] but. The thing was, is that, is that it’s always about like rope memorization. Is it going to help me in programming?
Um, but maybe, maybe I’m kind of wrong about that. And maybe there would be connections put together. So I’m kind of my brain’s changing a little bit right now as we’re going through this, why would I memorize something when I can Google it in two seconds?
[00:34:44] That’s a very fair point.
Um, but now it’s like, okay, how often do you use, how often do you, when you Google something, if you don’t have all that off. So like, so when you think of like, when you’re first starting to program a new language and you don’t know all the syntax, you’re kind of Googling left and right.
[00:34:58] And,
um, Versus if you put that somewhere in the back of your brain, like, what is the speed advantage you get from that? For me, it’s minimizing distractions.
Um, when I’m in flow, it’s pretty, pretty strong now,
um, where I can, like, I can reasonably program out something completely without having to like.
[00:35:14] Google that much, that much.
Um, they’re not saying that I was like bragging. It’s just like, it was just many years of brute forcing and memorizing a lot of AKI
shit. Right. Like,
um, but it is like super helpful. I can get stuff done much. Like it is multiple times faster. Now when I don’t, I can’t actually understand why or like, just cause you’re you’re radically.
[00:35:33] Okay. Let’s say you Google 50 dates. So like before we can get a reasonable flush program out and now you only have to Google five. Reasonably like, okay, fine. That’s 45 queries for saving 45 multiplied by five seconds maximum. They should be saving less than 250 seconds. Well, that’s not true when you’re actually programming.
[00:35:52] Like I get some done in like hours less time than it should take. It’s a weird, it’s like something like there’s like this more fund programming. I don’t it’s like when you’re in that flow stage keeps you there.
Um, Yeah, it’s sort of like if you program something by yourself, versus if you inherited a program that someone else wrote.
[00:36:12] And if you structurally know all the limitations of your, your own code, cause you wrote it versus like inheriting someone else’s, even if you memorize the other person’s limitations of that code or wherever they wrote, you’re never as fast with it. It’s just, it’s just impossible. I have Paul Graham talks about this too.
[00:36:25] He’s like if you had to pick between like two programmers or just one program that knows the tar, Kobe’s always pick that one program. Right. Like you, you get the speed advantage of having it all in your head.
Um, and that is like just how received when you’re working on something complex.
Um, yeah, assuming that I know I’m speaking very true.
[00:36:42] Right, right. Cause it’s spaghetti all over the place. What you just, yeah. What just popped in my head when you were saying that is the concept of the difference between a fast, hard drive. So maybe a fast SSD and Ram. You know, so in our head, without having to reach out to some external resource, maybe, maybe you think of the analogy of like, we’re, we’re kind of doing some access to Ram.
[00:37:08] And I want to say that I think the kind of the way our memory works, it kind of is close to that because you don’t use it. It’s kind of like shut the computer down. It goes away eventually. So that’s what achy comes at. It does with space repetition. It keeps it in your, it keeps it hot, you know, I’m ready to go.
[00:37:23] And,
um, Google is, Oh yeah, go ahead. Yeah. Barbara locally is like, she has this Coursera classical learning how to learn. She kind of talks about that. It’s like you can reasonably fit, fit like four to eight things in your prefrontal cortex before. At some point it’s kind of sort of slipping and the more concepts you can kind of keep in there, like.
[00:37:41] The faster, you can do things and yeah, granted, you can always search and query from one things, but just slows you down in a weird way.
Um, and she kind of talks about that, how to learn a concept. And like, if you understand, like, Hey, you can only keep this funny things in Ram essentially before to actually learn it, then.
[00:37:59] Then you understand that limitation? I don’t think I’m doing justice describing, I think Barbara Oakley’s class. Yeah, I know. So you’re talking about the ch the concept of chunking where, because I’ve taken the course as well,
uh, several years ago, but this concept of chunking is you can only hold so many bits of information in your, in your,
uh, in your Ram at once, right?
[00:38:21] If like, and your active memory at once, and what you have to do is take complex. Concepts and basically,
um, compressed it’s basically it actually compresses, I think it actually literally compresses in your brain. It takes up less neurons. I think that’s how it works inside your brain. But chunking is literally you’re, you’re saying you’re taking this complex thing, like solid, for example, and.
[00:38:43] Eventually solid just becomes a thing that you instantly know because it’s compressed. Now. You don’t have to think about all the, all these little details. It’s kind of like if you learn,
um, I don’t know if this is a great analogy, but if you learn a new language, right, like you have to think about the,
um, if you know, another language do you have to think about, do you know when you first learned that the language you have to translate into it and you don’t have to do that anymore?
[00:39:05] Once you become fluent because,
um, Because you actually have now integrated language in the same way.
Um, this chunking just allows you to, to know, to, to not have to it, like I was talking about before it reduces cognitive load. Right? Yeah. And I was,
uh, so the, the, the term for that is consolidation, right?
[00:39:24] Our brains are really good at that consolidation. Step in learning. That’s where we’ve got all this information. It gets consolidated or chunking is another, is another.
Uh, where you can call it, but maybe no migraine is to be honest. So you say that you say that, and this is what I, I have to prove it to my students all the time, which is that there’s so many things that you’ll just do.
[00:39:49] You’re not going through every, every step and a really good analogy or a really good, like, just look at something that’s common to everybody. Not just programming is driving a car. This is where I explained consolidation really well. Remember the first time you ever gotten to a car? You watched people drive cars for over a decade?
[00:40:09] Probably very conscious of the fact that people were driving a car for over a decade. You get in the car and it’s the scariest thing ever. When you first get in a car and you start hitting the gas pedal and, and all this stuff. But what happens is, is that over time, As you do this, you’re consolidating down the, the thought processes of driving to the point where now you can almost drive.
[00:40:35] Actually you do. Unfortunately, most people do drive without thinking about it and they think, Oh, I’m not even thinking about it. Let’s get this,
uh, All right. I’m going to do some texting while I’m, while I’m driving.
Uh, you know, so, so that is, that’s actually a real way to look at consolidation. Is that go, like everyone goes through this when they get the cart, every single thing.
[00:40:54] Like I remember when I was driving around with my grandfather, I would, I would say everything I was getting ready to do almost for approval. Like, like, like tell me if I’m picking something wrong here. Yeah, I’m about to hit the left turn signal and I’m going to get over into the lane to the left and I’m checking my mirror.
[00:41:11] You know, I would actually say this stuff. And now that process has just, you know, it’s already done before I think about it. So all of that was consolidated into almost one step, one thought of get over to the left lane. And we didn’t even think through the steps anymore of doing that. That’s that skill consolidation.
[00:41:29] And you have lots of it. So that’s what that’s, what I’m saying is that, that you, you, even with the achy skill, the achy cards that you’ve got, there’s a lot of context. When you look at that achy card, there’s a lot of fakes consolidate it. That you’re. But you’ve got to be able to answer those cards. Yeah.
[00:41:47] I think it’s handled similarly,
uh, Dave Ruby on rails, David Hameister is like, he kind of talks about like when you were driving, like, he basically is an interesting career, but he was, he started professional racing cars for a little bit. And it’s like, you kind of think of that knowledge. Like the first couple of times you’re driving in like.
[00:42:03] Something that goes like 150 miles per hour. Like that’s scary. Right? Like, you’re just like, what am I doing? And then, but when it gets set to instinctive moment, would you know how to like, Drive a fast car really quickly.
Um, that was really fun. Like he talks about the flow state. It’s like once he gets in that car, it’s like an instant flow state.
[00:42:20] You forget about all, everything else. You forget about all your other problems or stresses and just driving, essentially a missile track.
Um, yeah, so we talked a lot about flow,
um, and flow flow is basically,
um, Yeah, well, there’s a, I can’t even say the guy’s name.
Um, yeah. Yeah. The guy who wrote, wrote checks, Messiah, I can’t remember what his name is.
[00:42:48] Yeah.
Uh, anyway, he, he explains that flow is basically the state where you are. You are Joe going just beyond your, your capacity for understanding or doing something like maybe 5% you’re in this like perfect ideal area where it’s not too hard and it’s not too easy. And you kind of get lost in what you stated before, where you’re like,
um, you know, do you, do you lose track of time?
[00:43:12] Right. And that’s what every, every developer. Who’s coded for a while has been there at some point. Hopefully if you haven’t, I’m sorry for you, but,
um, did you notice that those flow States went up for you? Like yeah. They’re, they’re much more pronounced now. I don’t, but I also don’t know how much of that is on key versus how much of that all to his Douglas point is like procedural.
[00:43:31] Like it is in my head somewhat of like, okay, I’m gonna do this. Like now do X, Y, and Z.
Mmm. I like they’re correlated, but I don’t know how much. One is doing the causation.
Um, so like it’s also much more pronounced as I’ve been programmed before. Like it’s really hard when you’re first beginning and you have to like, stop Google everything, and then go back and like,
um, versus if you can kind of program something from scratch without having to like Google much.
[00:43:59]
Um, so yes, flow is much more pronounced now. They also have much better habits notes here.
Um, so they’re quarterly, but I don’t know what. If it’s how much I can actually attribute a honky. I think it is a lot, but I do know fats. They’re like, there’s not, it’s interesting. It’s not academic programmers that I know they’re using on kids.
[00:44:16] It’s such a hard commitment to do. It’s like people that go to the gym every day, you’re like, everyone seems to talk about it, but then like, Yeah, look at it. It’s like, yeah, that’s not really true. It’s like Instagram, like people at the gym. That’s how I am. I’m like, Oh, I love honky, but I don’t really do it during the day.
[00:44:30] So I’m trying to change that. Right.
[00:44:39] so, so that’s one of the benefits. Another one that I,
um, I would like to get to is to your productivity. So you mentioned something really interesting. You said. Let me see if I have it here. You said that you went from a roughly 1700 commits to 40 to 4,800 commits over a three year period.
Um, it’s kind of intense.
[00:45:03] Yeah. Was that because of more time or is that because you were, do you, what do you mean. Having like the lower bound of that. It’s like my ass isn’t net Cedars. Right.
Uh, I also feel like I, my particular personality is just easily distracted. Like I, you know, I’m like not really joking when I was like, I want to stack overflow and like, I’m like, why am I reading something on like some other metal overflow right now?
[00:45:30]
Um, so I think that was a huge deal behind it though.
Um, like just not having to glue everything in and get distracted by internet. So I think like the insurance. It’s really made to distract. Like, everything we’re talking about is like, you know, I’ve worked on this too. It’s like, how do you get engagement?
[00:45:43] Like, what is the right amount of like clicks or controversy that you can get piped into something. And then that loser user will just kinda like be on your cipher. Longer page times a minute. You’re going to rallies that like every website seeing the same thing of like, how do they distract you longer?
[00:45:59]
Um, so that was like having specifics and helps you there. I also got a loaded moment. Sure. There too. Like, as you get older, you’re kind of like, okay. I don’t have unlimited time. Like when you’re, when you’re like 23 years and I’m like segment years and we’re like 25. Okay.
Shit. I gotta get my act together.
[00:46:15] And then like,
Um, well, as you’re getting closer to 30, you’re like, okay, I’m not going to make like Forbes 30 under 30. Like, what do I do now? Like how do I mature more?
Um, so I think that’s like additional context to it too. Like maturity does help,
um, for you to be more productive.
Um, that’s do have like way more hacks.
[00:46:30] Like I think we’re like, we kind of definitely do read a lot of the similar. Like learning intelligence and that kind of stuff. And like a lot of it is like how to be more productive as how do you minimize distractions? Like how do you hide your phone? What are Pomodoro timers?
Um, I do a lot of that stuff now.
[00:46:45] I care a lot about that actually. It’s like you segment your day.
Um, I wrote a lot about also like how.
Um, it was like kind of those maturing point of like, if you kind of think of yourself as like, Hey, like how do creatives work? How do like writers and song writers and musicians work? And you find that they have this like very separate team.
[00:47:01] And if you can kind of mimic that for program, you can actually get into a rhythm much faster.
Um, I can’t remember the author right now, but he kind of talks a lot about like, Hey, like we’ve,
um, a sentence half written. So the next day you kind of like get into that finished next day, you finish that sentence and then you were like in a good rhythm.
[00:47:18]
Um, other writers just are even more. So I think there’s a lot to be said of like noticing how other writers write.
Um, and that way you can kind of like use that for programming to like get better, faster, but other writers are like notorious for like those lock themselves in a hotel room. I would just keep on writing until I class,
uh, the prolific ones, at least.
[00:47:34]
Um, so I think there’s like something to be said that, so do you, you, do you do, do you consider this one? This one hack or super power,
uh, doing space repetition, your, the, the Mo the one that’s contributed the most to suit your success, or , I think that’s probably one a of like, on like the top, like next to, for me, it was like a lot of coworking spaces, like, just like growing up and like, so like when you work from home, I just find that working home is just.
[00:48:06] For me, at least it’s like, I’m easily distracted. So like paying for a coworking space, which is not cheap. I mean, like that’s like $400 a month we’re paying for that. Just like help my career out there too.
Um, whereas when I found that, like if I was going home and then trying to work from home, It just doesn’t have that same seriousness to it.
[00:48:24]
Uh, and I also think there’s like another, I can’t remember his name right now.
Um, there’s a book called daily rituals and she talks a lot about how creatives work is. Like, there’s this one writer who like notorious notoriously would like wake up, put on like business pads. You just hit the elevator button.
[00:48:36] And he’s like, rented out like a basement at that building. And then he just worked there. It was just like that process of like, Hey, I’m going to grow up, put on big boy pants, go to the basement and then work from there, like, like meet him productive.
Um, and so for me, I guess like perhaps on Keaton space or tissue, but one D is probably like a coworking space, like have a serious place to actually just work on the side if you’re not actually at work.
[00:49:00] So, yeah. That’s great. Yeah. I definitely agree with that. That’s awesome. Jeff. I had a question that is. You know that you may, may or not have a answer to, but
[00:49:14] that’s okay. That’s okay. So we’ve talked about inky is really good at, at this idea of, of declarative knowledge, but sometimes it can help you remember some of the procedural stuff that you do. It can actually, you know, I, I realize this more now, but do you have anything that you do.
Uh, is there anything intentional that you do to practice procedural knowledge?
[00:49:38] You know, so is there, do you, do you take that, do you write code for that, that, that, you know, around kind of like, I want to remember things I’m going to write some code, it’d be cure. I just curious to know. So I could a lot though, so that, like, it’s just almost the enforcement of that, but I don’t do it.
[00:50:04]
Uh, I don’t think I have a good answer there outside of like, just pure coding. So like kind of hammering something procedural.
Um, I don’t have anything outside of that, that isn’t just like straight up coding where like coding on a piece of paper, you know, like I’ll do that, but like not, but their whole like coding related, it’s not, nothing is like, Oh,
um, Like an alternative way to practice coding without coding I’ve yet to find something like that.
[00:50:29] Well, like, like code katas, right. People actually do code katas is just to kind of like go through a procedure of maybe like a lot of code katas I’ve seen her for like the concept of TDD or something like that, where AGCO basis. That’s that’s my Kolkatta like, like, if you like, so I’ve joined a lot of startups and like every single startup has like some type of like, This is the code that will not be touched.
[00:50:52] Like this is the worst code in, like, it runs in like, leave the
fuck alone. I will jump you. That guy. That’ll be like, I’m going to refactor this. I’m gonna like, put all the tests in and then like we’ll rip out piece by piece. Or if I’m feeling outrageous, I’ll just try to rip it off all at once. Depends on how tangled it is, which is always a bad idea, but I’ve done.
[00:51:08] So I think that’s like my example, like I don’t do Kolkatta is because like, Day to day. It feels like when you work in a bed, Kobe’s everything has a coat cut up by itself. Like you can generally tell, like, it’s pretty a bad Kobe’s versus like something that’s reasonably well-written. I’m not saying like, I’m a great programmer.
[00:51:25] I’d like to be, but it’s like, you can quickly tell if you eliminate 1500 lines of code and like other people can actually read the poor question, like, okay, this is probably better.
Um, So, yeah, I joined a lot of, I think I learned a lot from like just separate code bases. It’s just really interesting because startups, I work with, it’s like, Oh, this code is really good.
[00:51:42] And then you see, and then you see other code bases and the Kobe’s so bad. You’re like, Oh, this is great. I just didn’t even know it.
Um, I have experienced some really bad code bases and like that’s where, that’s where you learn. Unfortunately a lot from like, if you see someone put 50 hacks in, it’s just really interesting to see, like, and it makes you really think of the foundations of like, okay, what was this person trying to do?
[00:52:04] Like, what was the intention of this before you had the and there,
um, that stuff is like, I guess that’s, I don’t do coconuts, but like, that’s why I feel, that’s why I don’t do Cokato because. I was like your code a lot every day. That’s, that’s kind of the,
uh, the thought behind that. I guess I could, I could definitely, I could definitely see now talking about, I do want to bring attention to something you just said.
[00:52:28] So this is, this is to all of our listeners. You said something pretty profound in that, in that,
um, You’ve looked at a lot of code bases and that has taught you a lot about code. And I know this isn’t, this isn’t particularly what our, what our show’s about, but I just kind of an aside that you said something that, that, that all the code basis I’ve seen, I’ve read a lot of code.
[00:52:49] And I even had like this great code. I didn’t realize it was great code until I went to this other code. So one of the things that I encourage people to do is. Look at code and try to figure out what it’s doing. Like you can go into any open source project or, you know, there’s a ton of source code sitting out there that you don’t have to,
um, you don’t have to a B you know, you can just bring up the code.
[00:53:09] How does this thing work and try to follow it? Reading code is one of the things like when I’ve, when I’ve tutored not tutored,
um, I’m thinking education here when I’ve mentored juniors. It’s one of the things I see that they struggle the most at when they first come out is this idea of, of reading existing code, it kind of, and figuring out the entire code base and building that tree in their head.
[00:53:33] You said something, I’m sorry. You said something that, that kind of triggered that whole. I want, I want people to hear that you said that, that, that, that you, you know, like, About, I’ve seen all these code bases and that has taught me so much is what is basically what, what I caught from what you said.
[00:53:51] Cause you have these patterns.
Um, so the first code base I learned from it was like very well done. And you have these patterns of how something is done.
Um, and you’ve recently hold in high regard there too, because it’s like learning from like the first textbook you ever had. And you’d always think that first textbook is probably amazing.
[00:54:06]
Um, and then you’ll see how someone else has kind of thought of similar patterns. Cause most of the web what’s most important. What you’re doing is probably web-related.
Um, most of it’s probably in breast.
Um, and then you can kind of see like how one is structured one way and how another person kind of a tackle this similar problem.
[00:54:21] Like most of the problems in web engineering are card related. They’re not like rocket science.
Um, but even within that, like even within those constraints, there’s a lot of creativity.
Um, and you can see how different people approach it and you can see what people are well. So there’s definitely stuff that I thought like, When I first made it, I was like very proud of it.
[00:54:38] Right? Like it’s almost like every coach two years ago, it was like, Oh, I was proud of it when I made it. And I looked back in two years, I’m just horrified.
Um, but that same thing applies to code basis. When you, as you progress, you learn how there’s separate ways of tackling the same problem. And then you can kind of figure out a more elegant solution.
[00:54:53]
Uh, and yeah, I think it’s just the reading open source stuff is like interesting. It’s harder to apply for me, it was almost like every time I switched jobs, I learned so much more because of the separate code base and the responsibility that comes with maintaining that,
um, reading separate code bases, you do get like glimpses here and there of like, Oh, this is how they tackle certain problems, but you also need that seriousness to like really read it through because it’s really easy to like the easiest person to fool is yourself.
[00:55:18] You can read it, you’ll read some coding, like, Oh, I know what’s going on.
Um, and then. It’s in practice and you’re like, wait, dysfunction is like maintaining States somewhere else. Completely horrified.
Um, which has happened to me too.
Uh, yeah, but different languages. Yeah. Oh God.
Um, I didn’t know, like, people actually did that until I found a certain code base and I was like, wait, like, you know, like, it’s like almost like the de facto rule of never do this.
[00:55:39] And you just see all the things that people say never do. And it’s like all in like, A hundred lives like Jesus.
Uh, but you do a lot of debug there, there too. So every single type of Kobe’s like, there’s just so much learning that you can learn from luck, just like unraveling it and like the attributing stuff there too.
[00:55:56]
Um, yeah, I do a lot of tests now for that reason, it’s just when you were factored those types of like, spaghetti’s, you just need tests, test cases like through and through a reason.
Um, so do you write, do you write test? Are you running the manually or what are you doing? Yeah, I read a lot of tests and I do have like some reasonable automation, but it keeps on running them repeatedly.
[00:56:15]
Um, and like we do, I like we’ll set up like full circle CIS and like,
um, just automatic deployments, just because I think like, everything you try to do is like minimize. I’m trying to minimize my lazy days. So like I’m a lazy day. I’m like, yo, this is too hard to deploy. I don’t want to do this. Right. So if you can automate all those on like reasonably good days, then on your lazy day, you’re still like, okay, you’re willing to do like some productive out of it.
[00:56:41] So I do think a lot about that. It’s like, okay, how do I automate this? So when I am lazy, which is inevitable, it won’t be too hard for me to like cross that catalyst to actually get something done.
Um, Yeah. There’s like so many amazing vendors now there too. Like I remember like when I first started programming, like,
um, automated testing, wasn’t that big yet and web programs, right?
[00:57:00] Like if we’re totally Google level, yet they, they were doing that years ago, but like most web startups, like. The testing was the customers. Right. Customers complain like, there we go. That’s broken. I mean, honestly, that’s probably still like most of the startups now, but,
um, but now like you have like really good, like SAS providers that do this for you.
[00:57:16] Like, you can like set up in a config file and they’ll just like start running tests.
Um, and it just. Then they’ll alert you when your test fails. And I think that’s super helpful.
Um, that’s not something like when you’re a software engineer you really think about, but that’s something that’s super useful for the team productivity, but like, cause it’s not, everything’s in the context of just yourself.
[00:57:34] Like how do you accelerate the team from like dealing with the same problems? Cause we had a problem where a lot of engineers were like break tests and they would just never run tests and you never know they failed, but then it’s just like, well, what is the point of doing all of this stuff? It’s you’re failing.
[00:57:46]
Um, and yeah, so I think, like I just talked about like infrastructure that’s like always super helpful there too. I don’t know. Even know if I answered your question there, to be honest. No. Yeah, you did. I think,
uh, I don’t know if you answered the,
um, I guess I was kind of more, are you doing an integration test or unit test or it’s like you didn’t and integration ones are harder, like full to full integration.
[00:58:10] Wants to just, if, especially if you’re doing a lot of like, like if you have to get the front end testing in there, most of my tests are probably more unit based.
Um, we will do like some certain ones where it’s just like more unit testing, the whole thing, but like, those always like fail when you just like.
[00:58:24] Somehow for one way or the front end, doesn’t talk to the backend correctly.
Um, so it’s like trying to maintain that. It’s like building out these silos where you’re like, okay, where are the areas where it’s going to break?
Um, but because most of the stuff we do is like, well, most of the stuff I do is like via an API.
[00:58:37] Now it does minimize,
um, it does help that your unit test is much more comprehensive as result. Like when everything’s in API, you don’t have to worry about the front end as much.
Um, and the front end stuff. Is easy to break because people changing stuff all the time, front end front has just like a little bit more fickle by nature.
[00:58:53] At least from my experience.
Um, I’m trying to not piss off any front engineers here. Like I know like pythons with a little bit more like, okay, like everyone uses these types of testing methods and that’s it. Whereas like front end frameworks still kind of changing a bit. It’s not as rapid as like three years ago, but still.
[00:59:11] Changing quite frequently. And so like, you’ll spend all this time integrating some test suite and then you’re like, okay, we’re, everyone’s using something else now. Right. You’re like, Jesus. And if you’ve changed the framework, then like all those things are worthless again.
Um, I have no good answer as to how do you maintain strong front end testing?
[00:59:28] Yeah.
Um, I’ve tried Cyprus. That, that seems pretty cool, but there’s always nothing. There’s no silver bullets out there, so yeah. Yeah. Well, it just breaks through recent recently it might work today and then tomorrow MPM changes something and just the test fail and you’re like, is it MPM? Is it some packaged dependency?
[00:59:45] It’s so much harder for on the front end side. Yeah. I don’t really write as many tests on the front end. I mean, I go shamed in that, but it also. Like I don’t, I don’t, I should, but every single time I try to block something. It’s always been like independency health JavaScript again. I’m just like, ah,
fuck.
[01:00:06] Yeah. So, yeah. Right. So one question we’d like to ask everyone is what’s a question we should have asked you that we, we haven’t so far, I thought you guys are gonna ask, like what makes someone a senior dev. I was like, kind of worried about that question. Cause I was like, I don’t really know. Like I think the podcast is like junior to senior and I was like, I was like, okay.
[01:00:33] It’s like hard because if someone says they’re senior at like programming, it’s like, I’m like, are they really like, cause I feel like I’m good, but I don’t know what senior actually means. Right. Like, okay. Cause the sport, the title is thrown around so quickly. It’s like if you’ve worked X amount of years, like people just give you that title, but.
[01:00:53] Like, I mean, like when I think of senior, it’s like, it’s like, the person is pretty good, but I still can’t actually definitively say like, what is the benchmark of like, Oh, you can do this. And now you’re quote, quote unquote senior.
Mmm. Yeah. So, okay. I was thinking about it. I was like the best answer I could think of.
[01:01:09] It was like someone that manages technical resources the most effectively. Or it’s just really effective. Cause like I was like, do you call CTO a senior senior engineer because they don’t code anymore, but they are technically managing technical resources. I think it was like just also hard to decide between.
[01:01:34] When does someone go from like mid level to like, quote unquote senior? And that’s not like three years at a startup jelly, the criteria it’s like three years of startup, boom. You’re given a title, right. Engineers. Like you just like, eh, I don’t feel like that person knows whatever they’re talking about.
[01:01:51] It’s also like the realm of what they’re talking about. They don’t feel like that person knows that concept that well, like I’ve met a lot of senior Python engineers and I’m just like, Not really certain that I would describe that I’m so comfortable that person implementing some type of program from scratch.
[01:02:06]
Um, and it’s also hard because like, I’m like, I feel like I’m reasonably good at certain programming things, but I’m like, I would never call myself a senior front end engineer. Like, I’m just like, I’m not right. So,
uh, I think that was like what I was like, kind of thinking through my head. I had no good answer there either.
[01:02:21] Like, I guess what do you guys, what do you guys call it? Like senior engineer? Like how do you differentiate someone from. Essentially mid-level to senior. So I can, I can,
uh, start and, and kind of, we can throw this around a little bit, but the, the idea of a senior developer. So the idea of a senior, like, I like to think of the journey, right?
[01:02:42] The journeymen,
uh, You know, you start off as an apprentice and then you get a little bit better and suddenly at some point you become really good because you’ve done this thing over and over and over again, and you’re really good at it.
Um, or you just like doing it. And, and so there are things that we know.
[01:02:58] Right. And I, I still think even, like you said, eight years, you’ve been, you’ve been ready to code for eight years now that I, that I. Okay, good. I’m I remembered had it. It’s like my Nike card.
Uh, um, so, so eight years, I firmly believe that you have a lot of things you don’t realize you have, like, you might respond to something.
[01:03:19] And this is what I found out with myself too. Someone will come to you and they’ll say three words about we’re going to do this thing and you’re going to go.
Um, okay. Yes. We’re going to do this thing, but have you thought about this, this, this, this, this, and this and this other thing too, because these are the other things you have to think of because I’ve been through this so many times that if you don’t know, right.
[01:03:41] Well don’t Oh man, I just,
uh, I have a story about that, but I will stories about microservices. Yes. So. We’ll call it the 146 repo company. So I took over a company and they had 146 get repose in there. The organization, it was 10 customers, right? When you have more reposting customers, generally a bad sign.
[01:04:09] That’s great. I love that as a measure measure, but, but that’s, that’s the thing though, is that we could sit here as, as people that have done this. And for me, it’s actually really scary sometimes when someone says. They have the one sentence of, I want to do this thing and they say it in one sentence and I can look at them and go, okay, I’ve already designed the tables I’ve already, you know, and it’s all in my head.
[01:04:32] But have you thought about this, this and this, this yet? No, what are you gonna do about these things? And I’m like, I don’t know. And then sometimes I can get people to stop telling me about their idea because of the fact that I’m like, have you thought about all these things about your idea yet? And would you do come back to me and let’s talk, you know, that’s, that’s, that’s senior, that’s coming in and going, there’s all these, I been kicked in the teeth so many times through my career over, over wrong decisions.
[01:04:57] They’re all in there. So it says something in all those wrong paths. I went down all come out at once and you start asking questions based on that. That’s that to me is, is the senior developer. When you could kind of,
um, when the project itself kind of Cubs comes out in your head, when someone says something and I’ve had.
[01:05:17] So very light times where that has happened to me, where I sit there and someone gives me the one sentence and I’m like, Oh, I just thought about the 15 systems that you’re going to have to connect to, to make that work. And are you sure you want, you know, I’m happy, you know, I like money, so I will take your money and do all this.
[01:05:35] But have you thought about all these things before we go down the path and,
uh, uh, That to me is when you start becoming more senior, but of course I have held that CTO position that you’re talking about. So that’s, I do have a little bit more, I’ve looked at things that way and, but I really like coding, right.
[01:05:58] Like seniors held our high regard, but I would never compare myself against like, it’s my thing is actually really good. If I was coming up with solutions like John Carmack, I’d be like, I’m a junior developer at him. Cause it’s like, seniors, just like this broad term that like, what does that mean?
Um, I guess that applies in almost every area of expertise though, right?
[01:06:16] Like, because there’s plenty of people that like, Oh, you’re a senior financial analyst. It’s like, what does that mean? Like, it’s just like the title that the job is given to you.
Um, or the corporate company gives you. Right. I feel like junior is hard. I feel like junior is always such a mean term though.
[01:06:31] Like junior in my head. It’s like, no, I was like, Oh, you’re you suck? Right. Like intern. And it’s like, well, I feel like that titles sort of tarnish to it.
Um, I dunno. I mean, like maybe we’ll call them the apprentice, the apprentice developer. I mean, I really liked, I actually really liked that system. Right.
[01:06:46] So you, you come in under your mentor and you’re the apprentice. And then, and then, you know, I kinda, I kinda liked that a little bit,
um, instead of calling them a junior or, you know,
um, I guess at other level, you, what, what you could call, call someone who was a junior entry level. Like, they just came into the field that says what they are without using the term junior.
[01:07:08] Hey junior, you know, I actually, my, I am a junior. I also might feel like that’s like a way that corporate just underpays them. Well under pasty, relative, but I guess like underpaid some relative to other developers. Cause if you give the junior title, it’s like, Oh, here’s your title. Now we can like, keep you there for two years.
[01:07:27] There’s like, if you join another place, they’ll just call you.
[01:07:32] I’ve been, I’ve been a developer too before all of us, right? Yeah. I think it’s great. What were you thinking, Tyler? I think it’s hard because I’m like, I’ve heard it said before. You could be a, you could be like. Some, I feel like some jobs, you could be just a developer and an, and those, the roles you’re expected to keep it at that job might be an architect, like an architect, the implements at another job.
[01:08:06] Right. So it’s like,
um, But I think it’s a really good question. I think it depends on, I think it goes back to what you were saying. Like a lot of, a lot of enterprise companies might look at as a seniority thing. Like you’ve been here so long, so it’s like you move through senior and then, you know, you eventually move up to, you know, principal or whatever, if you’re a big enough company like Microsoft, but I tend to agree with the, like, you can implement most things.
[01:08:32] I think. In my mind developers full stack developer. Cause that’s what I am. Right. So that’s what I consider myself to be. But that’s a loaded term in and of itself. I don’t feel like, yeah. I feel like full threes. I don’t feel like full stack is true. Mostly it’s too hard. It’s like now it’s like the stuff is levels of distractions to know all of it.
[01:08:50] It’s like. Right, but, but you can, you can, you can implement an entire system, right? If you can implement entire website, I think you’re a full stack developer. You’re not an expert at everything, but it’s more of a Jack of all trades. You might be heavier on the back end. You might get over on the front end.
[01:09:07] Is it really kind of, you have like. Like I’m ashamed of my front end. I can implement it, but like, I’m shame full-stack ever, it’s like, Oh, well I can do it. But I’m just like, Oh, I made that. It’s like an embarrassment just imposter sin. Because you said that once before, you’re like, Hey, don’t compare yourself to other people.
[01:09:29] Right, because you have to really just keep on improving. I think that’s kind of what imposter syndrome can be, is like, you’re comparing yourself to the people who are a lot better than you, but when you’re not, and it’s funny, cause we do this,
um, we’ll, we’ll compare ourselves, our weaknesses to other people’s strengths and then we’ll do vice versa sometimes as well.
[01:09:47] Our shrinks, other regions, other people’s weaknesses when we want to try not to, but it’s still hard because you have this idea of like what it should look like. You have this idea of like. How fast the API should respond. And inevitably it’s like expectations, like almost too high. And you’re like kind of strive for tardy until it gets here.
[01:10:06] It’s like always feels like an embarrassment.
Um, and then in two years you hit the code, no matter what. So yeah, I think so. I mean, I think like software engineer is like, great. If you, if you do enjoy it, but if you don’t enjoy it, it can definitely be hell. Cause there’s just like the learning really doesn’t stop.
[01:10:25] There’s always stuff changing.
Um, like when you look at front end style, like thankfully friends, like kind of stabilized a couple of years ago, there was just like, you gotta pick between 16 frameworks. They’re all kind of going for it. Now it’s down probably between two. So it’s like easier to make a decision.
[01:10:39] But like, I remember like when I was trying to decide what to use rap react and something else, it was just like, there’s so many of the options.
[01:10:48] It just never ends now. Thankfully everything’s like, Closer to react and view like between most people make new decisions, but it’s like weird because most of the web is actually still angular. Like most enterprise like went on angular one and like, they’re not gonna do it for you right. At that point.
[01:11:03] And so it was like, it really interesting if like, when I think of all the technology, I think of everything I’m reading on hacker news, but like, that’s like a small pigeon of like what most the web is doing. Most of the web is not doing this like complex stuff. Right.
Um, and like when they picked it, they picked on that, that Kobe’s, it’s gone to
shit and that’s what it, yeah.
[01:11:23] So I was, I was just thinking that, like, it was interesting about our, our, you know, the, the comparison, right. I don’t compare myself to John Carmack because he does have projects. He did that, that make him really good at the projects that John Carmack does. But, you know, I don’t know how I can do anything.
[01:11:44] Doris does it, he doesn’t write code code, writes him. It’s. I mean, I kind of put John Carmack in that circle, right? Like, like if you read his bio, it’s just insane. How productive,
um, it’s like, he’s working with like 50 engineers and he still wrote to do some of that code base by himself. It’s like, Holy
shit.
[01:12:02] Like, I think sometimes it’s like, there’s this huge controversy, if will say like there’s 10 X engineers exist and people go, no, I’m like, I’m like John Carmack is a living example of like that a hundred percent exist. Like he’s probably one of like single digits, but like. There’s this mythical unicorn and it is him.
[01:12:19]
Um, so no man, that’s good stuff. And so the way I was gonna say is that I like what you said, don’t compare yourself to others. And, and so, you know, the interesting thing about that, that, you know, we talking about senior level developers here. Right. I really think it does come down to,
um, Being able to look at projects.
[01:12:37] I mean, to me, it does right. Being able to look at projects, have you seen projects like this? Have you implemented projects like this? Have you, do you know what could go wrong before you get started on those projects so that you can not go down those same, same paths that when I I’ve had, I’ve had so many times where I have this friend that he basically calls me Douglas, I’ve done that before Hirsch.
[01:13:00] Because almost everything he’s come to me. I’m like, I did something like that. Well, this is, these are things you need to think about, right? That, that piece of that, like, I’m not telling him what to do. I’m just saying like, Like I’ve seen what you’re trying to do in concept. I’ve tried to do these things.
[01:13:15] Here are the things that you need to think about. Let me know how it goes, you know, but usually he’ll come back and go, man. You know, that was, that was really cool that you, you know, so it’s, it’s kinda stuff like that. I think that you start getting that, that when you can start telling the future. On on projects because you’ve seen so many of them, but here’s, here’s the thing I don’t want to, I don’t want to take up too much more of your time.
[01:13:39] I realize it’s getting, it’s getting late. So this is great. I love this conversation. I could do it for another two hours, but my wife might actually start kicking might actually bring the kids in here to start yelling in the background while we’re. Yeah. Yeah. Well, you’re the first person who’s ever told me that.
[01:13:55] So I’m wondering if everyone else is. I just heard it, right. That was the first time that glassware serendipitous. But if,
um, uh, how else? So, so basically,
uh, tell us how people who listened to the show. If you can get, could get to your content where you find you at. Yeah, I do have a blog.
Um, I haven’t written anything for the last six months, but that’s just because I’ve been working on like, I’m doing these really large blog posts,
um, which I’m about to publish, but my site is centered in,
um, dot IO.
[01:14:26] And then you can just X the blog by,
um, sounded good, not.io, backslash blog.
Um, uh, aside from that, you can find me on Twitter. My Twitter handles at chicory S H E K K U R Y. And then I’m also available via email by Jeff shack@gmail.com.
Um, but yeah, this has been great. Thanks guys. Really appreciate this.
[01:14:43] Thank you so much for coming on here and,
uh, maybe some point in the future. We’ll talk again. Thank you so much, Jeff. Thanks, Jeff. That was great. Thanks guys. Bye.