Hello, I'm David. I build websites, databases, and the tricky things in between.

About
I'm a software engineer with 10 years experience. I typically call myself a full stack developer because my experience spans database design, back end development, front end UI, enterprise, and continuous integration and deployment. In my free time you'll find me hiking, reading sci-fi, snowboarding, or working on a new code project.

Skills

C# Logo
Angular Logo
.NET Logo
HTML 5 Logo
Jekyll Logo
MySQL Logo
JQuery Logo
SQL Server Logo
Azure Dev Ops Logo
Github Logo
Flutter Logo
Postgres Logo
NextJS Logo
Firebase Logo
Tailwind CSS Logo

Work Experience

As the only developer I built the “Pathway” project for HFRI reps to process denied claims for hospitals. Pathway analyzes denial data and guides the reps in a “Turbo-Tax” style to work accounts correctly, resolve the denial, and dynamically generate EHR notes.

  • Built the claims based authentication mechanism using JWT Bearer tokens, Refresh Tokens, and ASP Net Identity.
  • Designed and built the database schema, DAL, Business Logic, and API using Entity Framework and .NET Core.
  • Extensive use of LINQ, IQueryables, and EF Migrations.
  • Designed and built the UI using Material Design and Angular 8.
  • Set up build environments and automatic deployment Pipelines with Azure DevOps for CI/CD.

Member of a 3 person development team that designed and built a platform for telehealth visits between providers and patients on their browsers and mobile devices. The app integrates with a variety of different EHR APIs including NextGen, Athena, Greenway, and DrChrono. We used a SQL Server, .NET Core, Entity Framework, and Angular 7 stack.

  • Responsible for the Database design, email / sms automation, business logic, API, User Interface, and integration with TokBox as our WebRTC provider.
  • OTTO sold to NextGen Healthcare for $22 million in Dec 2019.

  • Heavily involved in a years-long database migration from a Legacy ERP system to Epicor 10.
  • Responsible for enterprise development within Epicor to automate business processes.
  • Responsible for software licensing and activation coding.
  • Built and maintained Web Apps integrating with Jira, Confluence, Excel, Google APIs, and Active Directory.
  • Part of the team that built a program that utilized the AutoCAD API to automatically create drawings from customer orders.

  • Wrote Unit and Regression tests for a new product
  • Integrated regression tests with Google Spreadsheets using the Google APIs
  • Wrote database queries that could be called by the ANSYS product for command line automation

Portfolio

Personal Programming Projects

Portfolio Website

I wanted to build a portfolio website for myself that also doubled as a blog. In order to host it for free on Github Pages I wanted to avoid using Wordpress or needing a database. To do so I used ruby and the static-site generator Jekyll which allows me to easily create blog posts as markup files and drop them in.

david website img

Code Used

Jekyll
Bootstrap
Github Pages
yasmeen website

Code Used

Jekyll
Bootstrap
Github Pages

Architect Website

Learned Bootstrap and assisted in the development of the professional portfolio website for architect / designer Yasmeen Almuhanna.

Biased News Aggregator

My contribution to the misinformation pandemic plaguing the country is a news aggregator that shows news headlines by the selected political bias. The goal was to let people search by topic then discover how news sources might spin the topic to their point of view.

david website img

Code Used

MySQL
.NET 5
Entity Framework
Angular
Azure
yasmeen website

Code Used

Firebase
Next.js
React
Recoil
Tailwind CSS
Vercel

Instagram Clone

An excercise in learning a whole new stack, specifically Firebase, Next.js and Recoil state management. Fully functioning with authentication and live updates.

Latest Blog Posts

Code, books, and other thoughts.
Click here for the full blog.

Breaking News Bot Development Part 3

This is the 3rd and final post on my series about my Breaking News Bot App, a news app with a bias slider to observe how political spin changes the narrative of certain topics. This post could also be titled “How Not to Release an App” or “Don’t be Lazy”. In my original post I mentioned how I used the Bing News API because I was trying to avoid the work of becoming my own news aggregator for this purpose. Both the idea and the code was simple and I didn’t want to over complicate it. The pricing of the Bing API at $6 for 1000 api calls is something I knew wouldn’t scale well but if this didn’t generate interest or traffic then it wouldn’t matter much anyway. In fact, I had the app up a few months (with minimal traffic) and received Azure bills for .17 cents / month and .30 cents per month. In order to reduce that potential bill even further I added client-side caching, so any topic/bias combination searched by a client n number of times would only burn 1 api call. In order to determine if I could be done with this app or have to re-engineer it, I posted it on reddit to gauge interest.

... read more

.NET Core App on Linux Server Does Not Read Environment Variables

If you’re reading this you might’ve already tried setting your Environment Variables in /etc/profile or /etc/environment or possibly ~/.bashrc and it’s still not being picked up in c# by Environment.GetEnvironmentVariable("API_KEY") (for example).

... read more

Deploy a .NET 6 Webapi and Angular UI to Ubuntu Server

This is part 2 of my Breaking News Bot project. This post is mostly on the infrastructure I used to host it. I will walk you through how to set up a .NET 6 Web Api backend and Angular Front end application on a $5/month DigitalOcean droplet running Ubuntu 20.04. More realistically this is going to serve as my own reference when I forget how I configured my server and need to do it again.

... read more