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.)
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?
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.
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
- 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:
- Programming: fundamentals, best practices, application design
- The intersection of music and code