Self-taught developers and Bootcamp graduates often have a hard time finding employment, CS fixes this

How to Learn Computer Science Online
How to Learn Computer Science Online
Image by Author on Canva

The post Comprehensive Guide to Learn Computer Science Online first appeared on Qvault.

Self-taught developers and Bootcamp graduates often have a hard time finding employment because they skipped learning computer science fundamentals and jumped right into application code. Taking such a haphazard approach to a programming education would be similar to skipping biology classes and just doing a three-week crash course in surgery. Luckily, it’s possible to get a state-of-the-art computer science education without breaking the bank, and it can be done completely online.

There are several main topics studied by computer science students at Universities across the world. Some…


I recently had a ticket opened on my team’s backlog board requesting the ability to bypass our API’s caching system

flags
flags

The post Check for Standards Before Creating a New One first appeared on Qvault.

I recently had a ticket opened on my team’s backlog board requesting the ability to bypass our API’s caching system. For context, our front-end team uses my team’s API to make fairly heavy requests to ElasticSearch, and one of the features of our API gateway is to cache the results of heavy aggregations for ~30 seconds. It turns out, every once in a while they need to run two of the same query within the ~30-second caching window and want an updated result set.

The request…


We just launched our new partner program to give Dev bloggers everywhere an opportunity to make some cash while promoting an educational project.

smiling man with macbook
smiling man with macbook

The post Earn Money While Promoting Computer Science Education first appeared on Qvault.

We just launched our new affiliate partner program to give Dev bloggers and influencers everywhere an opportunity to make some serious cash while promoting a great educational project. Here are the high-level details:

  • You earn 50% of each purchase made on Qvault by people who use your referral link
  • It takes less than 5 minutes to sign up
  • Payments go directly to your PayPal account
  • You’re provided a dashboard to track your performance of clicks and conversions
  • You’re helping to promote affordable coding and computer science education…


The answer to the age-old question of, “should I commit the vendor dependencies in my Go project to source control?”

Should You Commit Your Vendor Folder in Go
Should You Commit Your Vendor Folder in Go

The post Should You Commit the Vendor Folder in Go? first appeared on Qvault.

The answer to the age-old question of, “should I commit the vendor dependencies in my Go project to source control?” is “almost always“. Let’s take a look at the reasoning behind my claim that committing dependencies is ideal.

If you are coming from Node.js land, Golang’s vendor folder is basically the same as Node’s node_modules. It is a folder found at the root of a module that stores a copy of all the code the module depends on. The code is used to compile the final…


Defer is a keyword that allows developers to delay the execution of a function until the current functions returns

hand signal
hand signal

The post How to Properly Use Defer in Golang first appeared on Qvault.

In the Go programming language, defer is a keyword that allows developers to delay the execution of a function until the current function returns. What throws some people off is that the deferred function’s arguments are evaluated immediately, but the function itself doesn’t fire until the wrapping function exits.

func main() {
defer fmt.Println("world") // deferred until main() exits
fmt.Println("hello")
}

// prints:
// hello
// world

After programming in Go, it’s really hard to remember how I dealt with closing connections or files in other languages…


While no language or package manages time perfectly, I’m of the opinion that Golang does a pretty good job out-of-the-box.

The post Comprehensive Guide to Dates and Times in Go first appeared on Qvault.

Keeping track of time in code has long been a developer’s nightmare. While no language or package manages time perfectly, I’m of the opinion that Golang does a pretty good job out-of-the-box. This full tutorial is designed to answer ~90% of the questions you’ll have about managing time in Go.


Luckily, I’ve met very few engineers in my career who are outright opposed to continuous deployment.

stream running down hill continuous
stream running down hill continuous

The post Continuous Deployments != Continuous Disruptions first appeared on Qvault.

Luckily, I’ve met very few engineers in my career who are outright opposed to continuous deployment. That said, I have met some, and I think their hesitation is usually rooted in the myth that continuous causes more disruptions to end-users than a batched release cycle.

Before we get into the nitty-gritty of why continuous deployment (CD) is almost always better than batched releases, let’s define some terms. Atlassian’s definition of CD is close, but I’m going to modify it a bit for my purposes. …


Perhaps you’ve heard of the fabled 10x developer (or 10x engineer)

meetings on couch
meetings on couch

The post The 10x Meeting — Solving for Too Many Meetings first appeared on Qvault.

Perhaps you’ve heard of the fabled 10x developer (or 10x engineer) — the one on the team that’s 10x as productive as their average colleague. While many, including myself, doubt the existence of such people, I do think there are meetings that are 10x as productive as the average meeting. My goal in this article is to break down their properties so we can have 10x fewer meetings.

Meetings are a communication mechanism. …


Concatenation is just a fancy word for adding strings together to make a larger string.

knot in string unsplash
knot in string unsplash

The post Concatenating with strings.Builder Quickly in Golang first appeared on Qvault.

The Go standard library makes concatenating strings easy. Concatenation is just a fancy word for adding strings together to make a larger string. For example, if we concatenate "hello", " " and "world" we’d get "hello world".

The built-in fmt.Sprintf function takes a format and a variadic list of interfaces as input.

func Sprintf(format string, a ...interface{}) string

The formatting option lets us template out how the final string will look, then we can add inputs that will be interpolated into the string.

s := fmt.Sprintf("%v has been…


Clean code is like clean garbage — it’s only truly clean if it doesn’t exist

desert landscape
desert landscape

The post The Pros and Cons of DRY Code first appeared on Qvault.

Clean code is like clean garbage — it’s only truly clean if it doesn’t exist. In other words, the only clean code is no code. Let’s start with an acknowledgment that a perfectly clean (empty) codebase is useless. With that in mind, our pursuit of clean code will necessarily consist of tradeoffs. We’ll trade usefulness for cleanliness, complexity for speed, ownership for ease of development, and abstractions for reusability. DRY (don’t repeat yourself) code is often held aloft as an ideal in the quest for clean code…

Lane Wagner

I love Go and Rust, and I like JavaScript and Python. I’m indiehacking on http://qvault.io when my daughter isn’t crying.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store