Howdy!

I'm Charles Pustejovsky.

I'm a software engineer who is passionate about providing value with programming.

I use Go, Test-Driven Development and SDLC methodologies to do this.

I focus on empathy, continuing education, and skills improvement.

About Me

Skills

  • Go
  • gRPC
  • Protobuf
  • Kafka
  • DynamoDB
  • Docker
  • Kubernetes
  • MongoDB
  • SQL

Interests

  • Distributed Systems
  • Functional Programming
  • Classics (Greco-Roman)
  • Theology
  • Philosophy
  • Dungeons and Dragons

Projects

Here is a growing list of projects I'm working on or have worked on in the past. (click to close)

Franz (Kafka Wrapper)

Go

I've spent a lot of time with Kafka or at least enough to know how difficult it can be to use.

My ultimate goal with this project is to provide code wrappers for Kafka producers and consumers that can be easily configured and extended to different applications.

This repo will also have extensive integration testing with various configurations and patterns.

Code


Giles (file watcher)

Go

My previous experience working a NodeJS monolith made me appreciate nodemon.

Locally developing multiple services for an event-driven distributed system motivated me to create a similar solution.

The code currently needs more work to be truly use-able. An ultimate goal will likely to have it as a CLI that takes in a configuration file.

Code


CS:GO (Custom Sort: Go)

Go

Frustrated with some whiteboard interviews I encountered, I decided to start making a repo to collect code that sorts data.

This allowed me to learn how to set up benchmark tests to compare algorithm speeds.

This repo is also where I first appreciated a need for generics and began including them in my code.

I'm open to PRs and Issues with ideas and other recipes for different kinds of sorting

Code


Twitter Bot

Go

My first Go application, this Twitter bot gives me less reasons to check Twitter by sending me updates from people I want to keep up with.

Since then, with the help of the amazing people on the Gophers Slack Channel, I was able to refactor it to better use Go's concurrency primitives (goroutines and channels).

Code


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.


Life Together Calculator

React/TypeScript

The first application I created which calculated how long my wife and I had known each other and showed what percentage of our lives that was. It gave me hands on experience with working with the DOM and JavaScript's Date Object.

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 friendship or personal relationship.

Calculator

Code


BitPay Blog Redesign

CSS/SASS

I forked Ghost's Casper theme and modified it with the help of an amazing marketing designer to give it a modern look.

Original

CSS Redesign



Reading / Courses List

Current Reading

Kafka: The Definitive Guide

Kafka is a powerful tool with a host of challenges in store for the team that decides to use it.

Having now worked with Kafka for a little less than a year, I realize the need to have a deeper understanding of the technology.

Even if you're using something like Confluent to manage Kafka for you, this book provides a great foundation for how to build and maintain high performance and reliable Kafka producers and consumers.

Check it out on O'Reilly Media


Designing Distributed Systems

Helping build an event driven distributed systems showed me many of the gaps I have and infrastructure context I lacked. I decided to go through this book to remedy that.

So far, it has been a wonderful and practical survey of various ways to use containers and orchestration to build a variety of systems.

Check it out on O'Reilly Media


Recurring Reading

The Alphabetical Sayings of the Desert Fathers

The Desert Fathers of Christianity hold a special place in my heart. Their lessons of self-discipline, humility, perserverance, and not judging others help me not only as a developer, but as a human being. It is why I read some of their sayings at the beginning of each day, to center and focus me for the day ahead, with all the challenges it may bring.

Buy on Amazon


Books I've Read / Courses I've Completed

Ardan Labs Ultimate Service 3.0

A friend recommended this course to me and I enjoyed learn package driven design and idiomatic Go patterns for microservice architecture

Check out Ardan Labs


Learn Go with tests

I believe both Golang and TDD are excelent tools for writing scalable, maintainable code so it made sense to improve my Golang skills while also getting into the habit of doing test-driven development.

Full Review on DEV.to

Read on GitBook


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 (sync and context), and best practices.

This is definitely a book I'll be rereading in the future.

Check it out on O'Reilly Media


The Pragmatic Programmer

This book is filled with wisdom and best practices that any programmer can use to improve their craft and better provide value with the software they help create. Now that I've finished reading it, I'm slowly going back throught it to really grok its lessons.

Buy on the Pragmatic Bookshelf


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.

Buy on Amazon


Let's Go

This book is absolutely wonderful for any newcomer to Go wanting to dive into web development.

Alex Edwards shows you how to build scalable, composable, maintainable backends with Go.

Full Review on DEV.to

Buy on Alex Edward's Website


Grokking Algorithms

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.

Buy on Amazon


cpustejovsky | 2022