AWS Developer Fundamentals

aws software presentations

My second presentation at Desert Code Camp 2014.2 was on Amazon Web Services.

It was exciting to see standing room only during the talk! My main concern was keeping it interesting. The natural temptation for this kind of presentation is to do a “documentation summary” but that risks afflicting the audience with severe boredom. So I used a lot of visuals and everyday analogies in explaining AWS.

I spoke both about the big picture, and then went into detail on two of the most popular AWS services, EC2 and S3. I also briefly described VPC, IAM, RDS, DynamoDB, Glacier, and SES. I received numerous positive comments on the talk, so I’m pleased post the slides below.

Read More...

Doing Business in The Right Order

lessons learned entrepreneurship

Recently I celebrated my 10th year at Omedix, the company I started when I was 24 years old. At 34, it is a little hard to imagine I’ve done anything for 10 years!

The milestone has made me reflect on some of the early decisions I made when I first got started. There were many really good decisions, but there were plenty of bad ones, too. And of course when you’re in your early 20’s you have that perfect combination of extreme confidence and supreme ignorance. Sometimes that can be a good thing, and sometimes it can be as bad as it sounds.

Read More...

Ally Bank. I Hardly Knew Ye.

software lessons learned

This is my review of my first couple of weeks with Ally Bank, and why I ultimately decided to stay with stodgy, old Chase.

When I was 16 years old, I went with my Mom to a local Bank One branch to open my own personal checking account. Bank One eventually got acquired by Chase, and so I’ve effectively been a Chase customer for more than half my life!

But it’s been a love-hate relationship. On the positive side, it seems that no matter where in the United States I am, I’m always less than 3 miles from a Chase branch, so it’s definitely convenient. I also don’t worry about Chase failing so it seems like a safe place to keep my family’s money. Their iPhone app is actually pretty good, especially the ability to remotely deposit checks.

But on the downside, I often get a “big bank” feel from them, mostly owing to the fact that I don’t really have a personal relationship with anyone there. I find I’m usually just engaging the “Chase Infrastructure” rather than contacting a specific person I know.

Read More...

The User Interface of the Violin

zen general software

Earlier today, I met a friend for breakfast who’s an outstanding professional UX designer. I was curious about something:

“How do you balance the need to give people a user interface they’re familiar with and can do something with right away, against the opportunity to innovate and do new things that may take more time to learn?”

He gave a beautiful analogy in response.

“Consider the violin. It has one of the most difficult user interfaces in the world to use. But if you’re willing to put in the thousands of hours of practice, you can make such beautiful music with it. There has to be that trade off. If we demand of our users a steep learning curve, they had better be able to produce some beautiful music.”

I like that idea because I’ve met many designers who get so mesmerized by the idea of doing something new and amazing that they lose sight of the fact that “the tradeoff” has to make sense.

My Desert Code Camp Presentation on Server Configuration Management with Chef

presentations software

I gave this talk at Desert Code Camp earlier today as part of the DevOps track. It gives an introduction to Chef with a special emphasis on getting you to Hello World and beyond.

They say Chef has a steep learning curve, but I think that’s only because there are a lot of concepts you need to know before you can do the most basic things. I tried to cover most of those concepts here. I also included some best practices I discovered such as how to handle secrets like passwords and certificates using Chef.

Read More...

Checks and Balances in Agile Development

general software lessons learned

Recently, I worked on a sprint as part of our company’s scrum process. This sprint was somewhat unusual in that I was the sole developer. Not only that but I knew most of the specs in my head, so our product manager and I agreed it wasn’t necessary to write acceptance criteria for the user stories I would be working on. Since I wrote the acceptance criteria, it made sense that I would be the one who ultimately signed off on the user stories.

I hate bureaucracy so I was excited about how “lightweight” this process for the sprint was. But I found something kind of interesting.

When I was wearing my developer hat, I realized how much I enjoyed taking time to learn about other technologies. I had made a commitment to my teammates to get a certain amount of work done by a certain date, and we came up with estimates to make sure that the work was achievable.

But once I was doing it, my human nature started subconsciously looking for ways to “cheat”. I still wanted to get the work done, and done well. I wanted to be acknowledged by my colleagues for having delivered what was expected with high quality. But I also wanted to sneak in extra time so I could do more tech learning on the side.

Read More...

Paying a Medical Bill Should Not Be This Hard

general

When it comes to paying a medical bill, I’ve had a backwards experience. As the founder of Omedix, I built software that’s collected tens of millions of dollars in healthcare bill payments, but I hardly ever paid any healthcare bills of my own. I was under 30 and hardly went to the doctor!

Next month I turn 34 and I am fortunate that neither my wife nor I has any chronic medical issues, but now we go to the doctor for the usual annual checkups. In 2013, our health visits amounted to:

  • Annual well-checks with our primary care physician (PCP)
  • The lab tests our PCP’s requested
  • In her case, annual visit with an OB/GYN
  • In my case, annual check up at the dermatologist (skin doctor)
  • In my case, annual check up at the ophthalmologist (eye doctor)

Today, I’m about 4 hours in and almost done paying all the healthcare bills. The experience has been…traumatizing. First, multiple bills are sent for the same service, but with slight differences. Second, our doctor tried to bill insurance, had the wrong info, sent us a bill for the full amount, was later informed the insurance was wrong, adjusted the bill, and sent an updated one.

Read More...

Paying a Medical Bill Should Not Be This Hard

general

When it comes to paying a medical bill, I’ve had a backwards experience. As the founder of Omedix, I built software that’s collected tens of millions of dollars in healthcare bill payments, but I hardly ever paid any healthcare bills of my own. I was under 30 and hardly went to the doctor!

Next month I turn 34 and I am fortunate that neither my wife nor I has any chronic medical issues, but now we go to the doctor for the usual annual checkups. In 2013, our health visits amounted to:

  • Annual well-checks with our primary care physician (PCP)
  • The lab tests our PCP’s requested
  • In her case, annual visit with an OB/GYN
  • In my case, annual check up at the dermatologist (skin doctor)
  • In my case, annual check up at the ophthalmologist (eye doctor)

Today, I’m about 4 hours in and almost done paying all the healthcare bills. The experience has been…traumatizing. First, multiple bills are sent for the same service, but with slight differences. Second, our doctor tried to bill insurance, had the wrong info, sent us a bill for the full amount, was later informed the insurance was wrong, adjusted the bill, and sent an updated one.

Read More...

Basic Introduction to Play Framework

presentations software

I recently gave a talk at Desert Code Camp 2013.2 on an introduction to Play Framework. I’m just getting started with it, but there are several concepts that got me interested:

  • Non-blocking / Evented vs. Threaded
  • Command-line interface to compile, test, and more
  • Clearly inspired by the productivity Ruby on Rails, but written for Java
  • Written using a Functional Programming paradigm
  • Super-easy for creating RESTful web services

Read More...