Categories
programming

The Most Amazing

The most amazing product I developed was a scan body & detection algorithm for dental implant procedures. The scan body’s design is patented[1] and the algorithm is proprietary.

scan body
Image © Dentsply Sirona

What is a scan body for dental implant procedures? It’s a device attached to a patient’s dental implant and recorded in a dental impression. The implant’s location with respect to the patient’s anatomy can then be determined from the impression. Knowing the location, a prosthetic tooth can be fabricated.

I developed the algorithm in an iterative way using well-known techniques. I also needed to collaborate with other software engineers who had a deeper knowledge of the domain. It was a C++ application built with CMake and deployed as part of a data processing pipeline. It did not have a 100% detection rate, but it served a vital business need.

The algorithm was part of a larger project that involved the design and supply of the device to clinicians. It was a cross-functional and trans-national team. A great challenge but one of the most amazing projects I’ve worked on, too.

This post inspired by the idea of being a “top 3%” developer in C++, thanks to toptal. What was your most amazing product or project? Tell me about it in the comments!

1. US Patent #D787,061S SCAN BODY FOR DENTAL IMPLANT PROCEDURES

Categories
programming

Google Firebase

I am developing a Vue.js application on Google Firebase. Firebase provides hosting, cloud functions, database, file storage, and an authentication module. My source code is on BitBucket and CI/CD is accomplished with BitBucket Pipelines and Bash scripts.

https://firebase.google.com/

I give Google Firebase “5 stars” for documentation and video tutorials. The authentication module makes getting started with users a snap.

The “NoSQL” database, Firestore, is also a breeze to get started with. So far, I’ve been using it directly, but I can see the need for a RESTful layer in between it and the client code. Firestore and it’s ilk (Redis, MongoDB) have their advantages, but providing a structured interface for multiple clients will reduce headaches down the road. It also decouples the client from the actual database technology. This seems to be a common pattern. I’ve used it in C++, Ruby, and JavaScript.

Firebase Cloud Functions gives a way to provide highly scalable endpoints. I haven’t explored Cloud Functions (AWS Lambda) too much. Conceptually, I view them as an Express.js application without the Express.js Firebase does offer triggers to database events, which feels like a stored procedure to me. I’m using them, but cautiously. It certainly helps to move business logic out of the clients.

Firebase provides hosting as well, accessed using their firebase-tools Node package. With my source in BitBucket, I’ve added BitBucket Pipelines. BP is typical of CI/CD services (Travis, Circle, Azure DevOps) with a YAML file to describe each pipeline.

How much will this thing cost? At the moment, $25/month for the Blaze plan on one Firebase project. It appears typical to use one project per stage.

I’d like to end this post with a link to the project, but we are  not ready to launch yet. Stay tuned!