I’ve really enjoyed using gRPC-Gateway to build gRPC/JSON-over-HTTP (RESTful) APIs in Go for quite a few years now. However, at first glance, it appears to be incompatible with one of my favorite ways to deploy small serverless apps - using AWS API Gateway and AWS Lambda . According to the documentation , gRPC-Gateway is architected as follows: This means generally that gRPC-Gateway apps usually…
If you say Go supports “duck typing” online, you’ll probably get some pushback. The Go community often points out that Go doesn’t support duck typing because it’s statically typed, and duck typing is a feature of dynamically typed languages. Rather, Go has “structural typing” where interfaces are still implicitly implemented, but still checked at compile time. Here’s an example of structural…
I started learning to play the piano on Christmas of 2022 and thus I am coming up on my one-year anniversary of starting to play. It’s been a very rewarding experience and I plan on continuing for the foreseeable future! Occasionally I upload videos of my playing to a YouTube playlist . Check it out if you are interested :).
I recently created a simple example on how to enable remote debugging using Delve for a Go application running in an Alpine Linux Docker container. This may be common knowledge in the Go community, and your IDE and Delve’s own documentation will show you how to enable remote debugging for Go programs. However, I figured it would be nice to see it packaged in a concise example, specifically using…
The ongoing COVID-19 pandemic is unlike anything I’ve ever experienced before. While I’ve been self-isolating for the past ten days or so, I put together this simple, auto-updated website, with a few data visualizations: https://covid19.ccampo.me …or alternatively https://www.ccampo.me/covid19-visualizations While not as robust or feature-packed as some of the excellent dashboards out there (e.g.…
Containers have changed the face of the software industry in just a few short years. Perhaps you’ve gotten to the point where you’re now running Java in a container. That’s great! Unfortunately, there are still some things to be aware of when it comes to CPU and memory utilization for containerized Java applications, which I’ll outline below. This article assumes some familiarity with Java and…
I was given this questionnaire a few years ago as I began my journey into software engineering management, and answered it for my own sake. I don’t think I ever shared my answers with anybody. Recently, I dug it up and found it cathartic, albeit somewhat naive as well. Below are my original answers, with minimal editing (aside from spelling, etc.), intended for both self-reflection and posterity.…
NBodyJS is a simple project I’ve had around for the past few years in various forms. It is a JavaScript n-body simulation . It is currently written in Kotlin. Initially I wrote it in plain JavaScript, then re-wrote in Scala, and finally, re-wrote in Kotlin. Both the Scala and Kotlin versions transpile to readable JavaScript, using ScalaJS for Scala and Kotlin’s built-in JavaScript support. The…
I love AWS Lambda . Removing the concept of a “server” from your application is huge. I won’t go into all the benefits of Lambda, but I can say from first hand experience, it not only eliminates countless hours of worrying about servers and infrastructure, but also makes backend application development a breeze. Oh, and for most small stuff, it’s pretty much free . Lambda currently supports three…