Tech Talk - How I'd Improve My Capstone Project

In February 2020, I returned to my bootcamp to give a tech talk on what I’d do to improve my Capstone project. (I also answer career and other questions from the audience at the end.)

Download the slides here (PDF)

I’m excited to share what I’ve learned so far from working on enterprise software for almost 2 years.

The talk is a deep dive into the codebase that myself and three others worked on as our graduating project (the “Capstone”) with a perspective shift:

What if we had to refactor this project so that it could be worked on for years to come?

About Vocode

Vocode (our Capstone project) is a desktop app that allows you to call up code snippets and navigate to URLs using your voice. Some other features:

  • It has a built-in text editor where you can add or edit a code snippet. It can be typed in or uploaded as a file. Afterward, you’re able to call it up with your voice.
  • You can choose from snippets that are available publicly and add them to your personal collection.
  • You can add your username to some common developer URLs. You could say “Github” for example, and it would pull up your GitHub page in your default web browser.

Vocode is a full-stack Javascript application. We used React, Redux, Postgres, Express, and chose to use Electron, a framework that allows you to create desktop apps with Javascript. Having it be a desktop app allowed us to set a keyboard shortcut for recording while in any text editor.

What I’d change about Vocode

Looking back at this project after a long time was a bit of a shock! Combing through it, these areas stood out to me:

  • Documentation was insufficient
  • Internal code interfaces were lacking or inconsistent
  • The tests did not make definitive enough assertions, coverage was low
  • Code readability was low - domains were mixed in the same files and there was a lot of unnecessary callback nesting
  • Performance wasn’t scrutinized
  • Security beyond input-validation was not on our minds
  • Error-handling did not go beyond console.error
  • There was no “product” perspective that would intelligently guide the project according to user needs.

I go into detail on how I’d improve these things in the talk - with in-depth code examples and explanations.

Interested in having me give a talk?

Please contact me with talk opportunities. Subjects I’d be delighted to speak about:

View the slides and video

Download the slides here (PDF)

View on YouTube

Related Posts

Considering a career in tech? I’ve collected my thoughts and resources here.