An ikigai is where your passion, career path, talents, and ability to provide value meet.
Programming is my ikigai. That's why I always seek to learned and grow to better provide value with code.
I'm Charles Pustejovsky.
Some things you're good at. Some things are good for you. For me, programming is both.
That's why I love programming and why I always seek to provide value with it.
It's why I love Go, Test-Driven Development, and SDLC methodologies (Agile/Scrum/Kanban).
They are all tools that help me provide value to my team and help the software we write provide value to users.
- Functional Programming
- Hacking Productivity
- Classics (Greco-Roman)
- Science Fiction and Fantasy
Here is a growing list of projects I'm working on or have worked on in the past (click to close)
React/TypeScript, Go, PostgreSQL
During Thanksgiving weekend 2019, I started reading Getting Things Done by David Allen and had the idea to turn Estuary into a MERN app that could facilitate the GTD process.
That would have the dual benefit of cementing these practices for me and also building a robust app that I can proudly show off in my portfolio.
I'm currently rebuilding the client in TypeScript, the server in Go, and the database in PostgreSQL.
Life Together Calculator
I then made it interactive so anyone with a significant other can calculate their life together.
Most recently, I've rebuilt the app in React and allowed it to calculate any kind of frienship or personal relationship.
BitPay Headless CMS
Nuxt.js / Vue.js
I used Ghost's Content API to turn BitPay's blog into a headless CMS and add the blog to BitPay's Nuxt.js site.
This created design consistency and allowed non-developers to make basic copy edits to BitPay's site without a full development process.
Love it or hate it, GDPR is a reality for businesses so I created a jQuery script to dynamically display an opt-in option for countries where that option was required (I used this AJAX script to determine the country by IP address). This was my first real taste of working with jQuery. The scripts would need customization for the countries and for the specific assets that are being displayed or hidden.
BitPay Blog Redesign
I forked Ghost's Casper theme and modified it with the help of an amazing marketing designer to give it a modern look.
Concurrency in Go
Go is my favorite language for many reasons, but chief is how it handles concurrency. Given that, I thought it wise to dive deeper into that.
Katherine Cox-Buday has written an amazing introduction into Go's concurrency primitives (goroutines and channels), libraries (
context), and best practices.
I'll have it finished this month (February 2021) and will likely reread it before the end of the year.
The Go Programming Language
I'm going through this book and will be finishing it around the end of Hacktoberfest.
Brian Kernighan has already written [one classic programming book](https://www.amazon.com/Programming-Language-2nd-Brian-Kernighan/dp/0131103628), so I believe I'm in good hands
The Pragmatic Programmer
It feels providential that I procrastinated on buying this book until the 20th anniversary update came out. Currently, I'm reading a little bit each day, letting their wisdom slowly take root in my practices as a developer.
Books I've Read
Learn Go with tests
I've never been at company that used Agile/Scrum and, as a result, have been able to see first-hand the issues that can arise from not following a system like this.
Jeff Sutherland does not only an amazing job of explaining the "what" and "how" of Scrum, but also the "why". Through anecdotes and philosophical asides, he lays a foundation for why Scrum can and will help any team be more effective.
It's very easy to read and is almost certainly worth reading multiple times. There are short summaries at the end of each chapter and an appendix for someone looking to implement Scrum for their team. It's an excellent book that anyone, but especially those working as developers, product managers, and project managers, should read.
I love learning about computer science both because it's fun and to fill in the gaps that I likely have from not getting a computer science degree. Grokking Algorithms by Aditya Y. Bhargava was a great place to start that journey.