Heroes of Tech: Vaidehi Joshi

Curt Corginia
6 min readAug 30, 2021
View the whole video here

On her way to work as a teacher in Mumbai, Vaidehi Joshi was stabbed by a man she did not recognize — she was able to block the blade with her left hand, but in another motion the assailant sliced her palm in half. It was a crowded area, and she noticed people pausing to look at her while she screamed, but no one helped. She tried to kick him. He slammed her body to the ground, partially on the sidewalk and partially on the street. Though for a moment she feared what was going to happen next, the assailant then disappeared onto the back of someone else’s motorcycle, and the two fled. Whatever this was, it was premeditated.

Vaidehi’s mission was to teach in Mumbai so that she could tell the stories of her students, but after the trauma of this experience she returned home. She had dreams in which she was stabbed again and again, with no one helping her. She was diagnosed with PTSD. In her own words, she felt like a failure. She lost her classroom. She lost her kids. She failed to do what she had originally set out to do.

Her father was a software engineer. She had never given coding serious thought before, but at this point it was a welcome distraction. It was really difficult, but thinking about it was better than thinking about her life teaching and writing before that.

She joined the Flatiron School, she gravitated toward writing more technical content, she returned to teaching…and the rest is history.

BaseCS

One of the best resources for interview preparation is Yangshun Tay’s “The 30-Minute Guide to Rocking Your Next Coding Interview,” which is a free blog post. This is a great resource, but it is more like a collection of resources — it references interview topics, features a curated list of recommended Leetcode problems per topic, links to Yangshun Tay’s own Github pages, which share explanations of HTML, CSS, and JavaScript in incredible detail…and, lastly, refers to BaseCS. BaseCS is, in a word, light-hearted (oh wait, that was two).

Many blog posts on BaseCS have a few thousand claps; Vaidehi probably could have made an impressive profit on the blog alone, had she not apparently decided to publish each of her posts outside of a paywall (meaning you can read all of them without a paid Medium account or a free trial). When I first found out about BaseCS, I linked the page to people at work, I shared the page to my previous college’s computer science page on Facebook, and I emailed a local AP Computer Science the link, along with some personal notes on which pages would be most useful to his students. He did not respond, apparently did not care, and also likely did not know who I was…but that is a story for another time (or never). The college page was more positive. It occurred to me later that maybe BaseCS is more appropriate for college students and people in the field, not high school students.

Somewhat like the book Cracking The Coding Interview, Vaidehi’s posts are very readable. Most of the posts are 10–15 minute reads, meaning they are comprehensive enough to learn or review computer science fundamentals, but not so comprehensive that you feel like you are attempting to work through some online textbook. Though I do not know what the original purpose of BaseCS was, nor if the title is a pun on both “Base Computer Science” and the word “basics,” it doubles as a great interview tool.

I personally prefer the blog to the YouTube channel and podcast, but she now considers the blog finished and has branched out.

What Makes BaseCS So Good?

Photo by Christopher Gower on Unsplash. As a blogger who has now received traffic with a single lucky post, I am obligated to follow the rules of good formatting. Look, a picture of a computer with coding editors. Aren’t you glad this post has such eye-catching layout?

Because hash tables are so popular that they have more or less become their own meme, let’s try to point out some things BaseCS does effectively

If this post is your first foray into BaseCS, you may notice the following:

  • She includes her own custom drawings, which fall somewhere between cartoons and college lecture doodles
  • She likes to make her own analogies, and she likes to reference previous posts. Here, she highlights the advantages a hash table has over linked lists and arrays, then uses the analogy of a bookshelf
  • She has a thing for puns

A good learning technique is association. Occasionally, she also ties in computer science history, or tells another personal anecdote. Not everyone likes this style of writing, but I think she never does it in a way that takes away from her key points.

A better example may be her linked lists posts, which come in two parts:

Had you been cramming for an interview with some dream company, you may have just glanced over some resource that had a checklist. Linked lists, unlike other data structures, have non-contiguous memory…all right. Insertion and deletion are fast, but searching is slow; there are tradeoffs between a linked list and an array. These kinds of knowledge fragments are certainly useful in an interview, but reading through a whole BaseCS post will quickly deliver you with the whole picture. You will remember why these things are true. You will remember what they mean, and what the implications are. If you have no idea what to do during a coding interview, you will look more qualified if you can explain trade-offs and brainstorm alternative plans than if you just keep going down a strategy that does not seem to be working and insist on doing so in silence while a baffled interviewer looks on.

She also includes resources at the bottom of every page, because she realizes that you may have to go deeper. You can read her post about hash tables, but you can also write a book about hash tables —if you look it up on Amazon, apparently someone has. She covers her own instructional example of a hash function, but there is a lot of detail in a hash function that she glosses over.

And this is okay. BaseCS is not a textbook, nor was it meant to be.

Why it Matters

Only today did I learn the tragic story of why Vaidehi became a software engineer. I was planning to post about her regardless, namely with respect to BaseCS, but the story explains a few things about her.

She was a writer and teacher first, then a coder. The skills is teaching that she brings to the table are what make her unique. I recently read a Medium comment on my page about how we should make the field more inclusive, but that we should not lose sight of how difficult it is.

Obvious as it sounds, most of what we know in this field was created by people. You can call this statement an over-generalization, and you can also point out how software breaks down and how it was designed to match the inner-workings of hardware, but our field was defined by people. People named and invented our programming languages. People designed APIs, wrote out error messages, and published books on what to do and not do in various situations as developers. Now we, as people, have the freedom to scale things out in a way we see fit. Need an endpoint for the frontend? Add the feature to the server side, then update documentation so that the frontend developer knows what call to make. Think Git is unintuitive? Fine, make a better version of Git that does not lead you to a Stackoverflow post with more than a thousand likes every time you want to do something basic.

Um…good luck inventing something better than Git, though. Some have tried. You can find their failed attempts on Github.

Vaidehi Joshi is one of many people who makes this field more open and more friendly for newcomers. That she did so as the result of trauma only adds depth to her amazing story.

--

--

Curt Corginia

Founder, CEO, CTO, COO, and janitor at a company I made up called CORGICorporation