HN user

jonathanoliver

354 karma

Jonathan enjoys building large-scale, distributed systems that crash and burn when being deployed into production. He prefers NoSQL over relational databases and can refactor like a mad banshee.

He loves programming, so much so that he dreams in C# and has nightmares about legacy code. He wears Transformers pajamas.

A few years ago, he staged a full-scale coup d'état and burned down the ivory tower where the software architects lived. Then, he sang and frolicked and danced about with the rest of the lowly software developers.

When he’s angry, he mumbles to himself and types more loudly on his keyboard. When he’s happy he mumbles to himself and types loudly on his keyboard as well.

You can read more about his blathering and rants on his blog: http://blog.jonathanoliver.com/

[ my public key: https://keybase.io/joliver; my proof: https://keybase.io/joliver/sigs/mg2KjhltwbuIV56Bt8iNzXVJjv1l_Q-N0K3F4o3efeY ]

Posts2
Comments169
View on HN

Founder of Smarty here, so there's some obvious bias.

We've been in the geocoding space for over 12+ years. A geocoding API should be easy to set up, deliver rooftop-accurate geocodes, be transparent about accuracy, persist in perpetuity, have a clear pricing structure, and be lightning fast.

Smarty has geocodes for 210 million US addresses, including 20 million non-USPS addresses. Our US Rooftop Geocoding product is 97% accurate to the rooftop or parcel of the property. Perpetual use of our geocoding data is also available, and Smarty does have licensing available for re-syndicating lat/long points in your APIs. Our entry-level plans for US Rooftop Geocoding have rate limits of 25,000 addresses/second. (Most customers won't reach this speed, but you're welcome to try.)

The best way to determine a company's geocoding accuracy is to test their products directly.

We use Nomad where I work and we LOVE it. Previous to Nomad we used K8s for several years which, at that point, allowed us to become cloud agnostic. With the move to Nomad about 3+ years ago, we were able to transition away from cloud and back to leased, bare metal machines. During our time with K8s, it didn't have a good bare-metal strategy with their ingress mechanism. In contrast, as we investigated Nomad, it was easy to deploy on pure metal without a hypervisor. The result of our migration to Nomad was having so many capable and far-less-expensive hosting options. Lastly, as part of our Nomad control plane, we also adopted Vault and Consul with great success.

I know there are horror stories around this acquisition and lots of predictions about what will happen, but only time will tell. On a minimum, it has been a delight to use the Hashicorp software stack along with the approach they brought to our engineering workflow (remember Vagrant?). These innovations and approaches aren't going away.

Send your address to support@smarty.com and link to this HN thread. I’ll keep an eye watching out for it. I’d love to see what our system does with your address.

We have non-postal addresses and a lot of other mechanisms to help here. We also have contacts at the USPS and others to help fix addresses.

Thanks for the shout-out. Founder of Smarty here.

Regarding article, it really depends on the use case of whether to use ZIP Code (TM), postal code, Canada Post Forward Sortation Area, lat/lon, Census Bureau block and tract, etc.

As has been noted, the ZIP Code is often good enough for aggregating data together and can be a good first step if you don’t know where to start.

I only had Notepad (the default Windows text editor). I longed for Microsoft Frontpage and HoTMetaL and Dreamweaver. Looking back, I'm glad gained experience on the native experience rather than through the editor abstractions because it forced me to learn.

I've been running Arch Linux for about 2 years two high-powered desktop machines (home and work). I run `sudo pacman -Syu` every day and I've only had one video driver update (nvidia) that broke me. I had to login from the CLI (which I'm using all the time anyway) to rollback and pin the version.

It's been an incredibly smooth experience.

That said, the one thing that I still haven't migrated over to fully is Linux on a laptop. I'm macOS on an Apple MacBook Pro 14" (powered by Apple's M1 Pro).

An Apple II Tale 4 years ago

Whenever these tales arise, I can't help but read them. I know that they're not particularly relevant to anything I do or even have done. Even so, it's like watching an archeological dig.

My favorite quote from the article:

Watching non-programmers trying to run software companies is like watching someone who doesn’t know how to surf trying to surf.

I have a co-worker who was in charge of the build system at WordPerfect back in the early 90's. He worked on the the UNIX edition and he managed the whole workflow using a series of Makefiles linked across various shared drives.

I'm pretty good at shell scripts but this guy is a master at his craft. Give him any problem and within a few minute he's got a series of piped statements through awk and a few other well-known tools.

One other area that can be complicated surrounding dependencies is licensing. Specifically, you use a library imported from PIP/NPM/Maven/NuGet/etc. and maybe, if you are a diligent dev, you review the license. If you're lucky it's MIT or some other compatible version for your use case. But did you review the dependencies of this new dependency? What about their licenses?

Okay, now fast forward a few years: is the open source dependency still [original license flavor] or is the license now more restrictive? What about the the updated dependencies of this single, imported dependency?

Now suppose you have an executable that's made available: do you properly have the accompanying license files that (on a minimum) give attribution?

Generally speaking, we import dependencies to help make things better and to get back to get focusing on the main portion of our application. At the same time, each imported dependency has an ongoing management factor.

...and don't get me started on the diamond dependency problem which still exists despite any given package manager's best efforts and is one of the reasons we have SemVer which we hope is followed by the developers of that dependency.

We stumbled upon UpCloud last year and have been using them for a few production workloads in their Seattle, WA facility. They have the simplest offering of all the various "second-tier" cloud providers--which is something we appreciate because sometimes all you want is a compute resource. For what we pay, the CPUs feel much faster than Linode and Digital Ocean which are often faster than AWS and GCP for similar price points. The evidence is anecdotal but we have noticed that all the jobs we run on UpCloud finish noticeably faster than the other cloud providers.

Your mileage may vary.

+100 for Aiven on managed databases. We moved from AWS Aurora (MySQL) to Aiven years ago because wanted to be on MySQL 8.x (unavailable on AWS at the time). We've been running a 3-node HA cluster using Aiven's control plane with peering int our VPC and it's been solid since 2019--including with auto-failover for MySQL patches that are applied from time to time during the scheduled maintenance window.