Writer for Level Up Coding, The Ascent & The Startup. BS in Computer Science & Applied Math. Writing about software and what I find interesting!

Because Medium’s bio is only 160 characters.

Image for post
Image for post

Hello, my name is Israel Miles — but I also go by Izzy! I started writing during college as an editor for The Colorado Engineer. I am currently a back-end software engineer, although I have a broad background in music, martial arts and math.

I’ve played classical piano since the age of six years old, and began training Brazilian Jiu-Jitsu over four years ago. …


Five reasons showing it’s not just speculation anymore, and that recent price explosions are going to continue.

Image for post
Image for post
AFPA physical imitation of a Bitcoin in Dortmund, western Germany, on January 27, 2020.

Everyone knows if you buy bitcoin, you’re going to lose money. In January of 2011, it was worth 50 cents before reaching $30 in June of the same year before it crashed down to seven dollars. Then in October of 2013, it went from $147 up to almost $1,200 in November of 2013 before it crashed back down to $480. Then another time it went from $1,100 in April of 2017 up to over $19,000 before it crashed back down to $6,300.

Can’t you see? With Bitcoin you’re always going to lose money…

NOT.

In fact, billionaire Mike Novogratz states that it is “almost irresponsible” to not invest at least some money into Bitcoin given its history and projected future. …


From powerful test flags to code coverage and benchmarking!

Image for post
Image for post
From Danielle

Every software engineer needs to know how to test in their language of choice. Even a simple layer of unit tests can greatly improve a program’s resilience and ensure it runs as the engineer expects. Go has a fantastic built-in testing support system with comprehensive flag options to help an engineer create tested programs efficiently.

In this article we will detail the following:

  • Running basic tests in Go
  • Using test flags
  • Benchmarking & performance
  • Generating code coverage

Let’s learn some Go!

A Basic Test Suite

Let’s start from scratch. In order to run our tests, we will need to move to our Go source folder. From there we can create a new folder that we will use as a sandbox for our tests. Let’s also create two directories parent with a sub-directory child. Finally, we will add two test files parent_test.go and child_test.go. Adding “_test” at the end of a Go file signals to the compiler that we want to run unit tests from this source. …


Deploy different types of satellites with the same rocket!

Image for post
Image for post
From Spacenews

The Adapter pattern is a flexible structural design pattern that allows you to connect two objects that have different interfaces. A simple example is an adapter for a three-prong wall outlet to a two-prong wall outlet. This pattern is simple in its design, yet powerful in its application since it allows once incompatible objects to now interact with each other.

This article will be composed of three main sections — we will first examine real world use cases of the Mediator pattern. Then we will understand its UML diagram, and finally apply our knowledge with an implementation in Go where we launch different types of satellites with the same rocket by leveraging — a satellite adapter. …


Upgrade your logging framework with automated metrics and powerful analytics!

Image for post
Image for post
From Microsoft Docs

Application Insights is part of the Microsoft Azure Monitoring suite. It can be used to monitor live applications to automatically detect performance anomalies along with powerful analytics tools. Not only can you use it to diagnose issues in your application, you can use it to gain deeper understanding into how users interact with your app.

Insights works for a variety of apps and platforms such as .NET, JavaScript (Node+React), Java and Python on any form of environment. …


Play traffic control for a busy airport!

Image for post
Image for post

The Mediator pattern is here to help when you have a collection of entities that cannot or should not communicate with each other directly. It allows you to have a central point of information flow so that your other objects or methods can focus on their own business logic. When used proactively, the Mediator pattern prevents tight coupling, separates responsibilities and gives your code a flexible foundation to expand upon.

This article will be broken up into three main sections — we are going to explore the real world use cases of the Mediator pattern, its UML and Sequence diagrams, and finish with its implementation in Go. …


Level up your GoLang concurrency skills by using channels to communicate and pass information between Go routines!

Image for post
Image for post
From Centro Cultural Provincial

Go has risen to fame in large part due to its clean and efficient take on concurrency. We can use Go routines to run multiple threads in the background of our main program for a huge boost in efficiency. But how can we communicate between our go routines or share resources between them? Well prepare to be amazed by the simple yet powerful nature of channels in Go.

There’s no history lessons here, let’s dive straight into the code!

A simple example on channels:

While channels have greatly simplified concurrent programming, we still need to be careful with how we build our understanding of them. In the program below, we perform only four operations that we will step through. …


One order of magnitude later, and how you can do the same.

Image for post
Image for post
From Siouxsie

Wow, what a ride it has been so far! I first started writing on Medium back in July of 2020. After several months of occasional articles, I decided that I wanted to take my passion for writing more seriously and dedicate daily time to writing.

The results have absolutely paid off, I published 14 times in November resulting in my first 10,000 views on December 1st. …


Get background knowledge and applied skills on concurrency in Go!

Image for post
Image for post
From Quan Chi, isn’t this cool?!

Go has claimed much of its rise to fame from its clean take on concurrency. Instead of processes or threads, Go uses its own type known as go routines to increase a program’s execution efficiency. This takes a great deal of work off of the developer and allows for a more secure handling of concurrent programming when using Go.

This article will detail the following:

  • Background on concurrency vs parallelism
  • Examples in Go
  • What you need to learn next

Let’s get started!

A brief background on concurrency

To recall, concurrency involves breaking up data or information into separate chunks to be processed all at once. For example, say you were web scraping 1000 websites and wanted some sort of information from their body to be processed. You could just do the websites one at a time, OR you could spin up 10 go routines and have them each take care of 100 websites each. This has the potential to improve your program by an order of magnitude, at least in theory. …


Established evidence and countless stories — yet the statistics remain startling.

Image for post
Image for post

Women played a monumental role in the growth of technology since the inception of the very first computers. Ada Lovelace was suspected to be the first individual to develop an algorithm intended to be executed by a computer. Grace Hopper was the first to design a compiler for a computer programming language. Throughout the 19th and 20th centuries, women dominated the computing landscape.

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