Building Laracon Online

This will be the third year we’ve been running Laracon Online and I have learned a lot about selling tickets in the process. Based on this tweet I was reminded of how we’ve reworked the order system over these three years and I wanted to share with you the progression.

The first year we used a third party service to sell tickets. For the percentage they would take we assumed it would be a decent deal for us since we wouldn’t have to build out any of the infrastructure. However, I was swamped with support that year. I had hundreds of people entering their email addresses wrong and other weird stuff. It was a nightmare.

From this point we decided we would build our own system for the next year and I tried my best to build the simplest system possible. You hit the /pay route, added all the emails you wanted to buy tickets for, entered your account info, and pay. Behind the scenes we would email all the people and tell them to reset their password to create an account. It was simple and worked great.

Now that we had all this data for this year I was brainstorming on how I could make it even easier for people to purchase and I came up with the idea of just pre-filling the checkout system with all the people you purchased tickets for last year. So if you work at a company buying tickets for 20 people all you have to do is confirm they all are the same and hit buy.

Thinking through all this took some time but the implementation was really straightforward and only took me a night of hacking.

As developers we want to focus on the code and think about how to design apps that are easy for us, but our focus should always be on the end user. Even if it adds complexity or makes our app harder to manage later. The customer is the priority and making their life easy is why we are here.

Everything is always a trade off, just make sure you are prioritizing what is important.

Devops Humor

I came across this video on Twitter today and I haven’t laughed this hard in a long time.

I don’t know Spanish but I’ve seen this video before so I know he isn’t saying what the subtitles are showing and that is what adds to the humor. Whoever created this did a great job on it.


A child thinks they are making wise choices when we as adults know they aren’t. That is why we guide and push them in the right direction.

A teenager thinks they are making wise choices but they only listen to their peers. That is why we guide and push them in the right direction.

A young adult thinks they are making wise choices but they haven’t fully experienced life. That is why we guide and push them in the right direction.

Wisdom is something everyone can gain but we can’t get it through confirmation bias. We must look outside our own bubbles. This means to look across the political isle, look at people who live in other parts of the world, look for insights from other races, religions, and to always remain a student.

Notch’s Work Calendar for Minecraft

I just came across this image and I’m fascinated by it. Here are some of the highlights:

  • September 23rd, 2009 – Notch runs out of money to pay for server while on vacation, servers are down until he gets back.
  • Lots of vacation to play games.
  • Nov 23rd – Notch looses key to office. No one can work.
  • Dec 23rd – Notch takes the day off to write single word reviews for games.

As someone who never got deep into Minecraft and wasn’t aware of the history I love seeing how it all started and how he tried to manage his time.

Related: I’m currently reading Masters of Doom and if you like video games it’s an interesting history lesson. I’m only a few chapters in, but it’s great so far.

Work Journal – №2

This week was a short week for me. Monday was the MLK holiday and then today I had a hand doctor appointment so I took the morning off, and then spent the rest of the afternoon trying to get caught up.

My hand is making good progress and the bones are basically healed now, but it’s still a long process ahead. The doctor told me today that if this was my right hand, she would tell me not to shake anyone’s hand for at least four more months. To me most of my hand is doing great except the little finger. It’s still not bending and I still can’t make a fist so I have a lot more painful physical therapy in my future. The good news is that it has loosened up enough to where I can start typing with two hands. This is the first week since the accident where I could do that and that is a big win.

I’ve also kept with the iPad only. I’ve not been on any other computers in a few weeks now. Out of all my daily activities the only workflow that I struggle with is building the weekly Laravel newsletter. I use Campaign Monitor and apparently their drag/drop editor does not work with touch events. It’s quite annoying.


I finally finished the Affinity Designer online course this week and it was very much worth the money. I feel like now I have a great grasp on how to use the app and how to create my own things pretty quickly.

Now the hard part starts where I need to take ideas and turn them into drawings. For example, today I was feeling pretty salty because my doctor appointment took all morning and then just little things got on my nerves. To help me get my mind off that I made a quick drawing representing “salty”

All my drawings are optimized for speed and I try to bang these out super quick. This one with the margarita took about 10 mins from start to finish and it shows. One day I’ll hopefully put forth the time to make a drawing much better.

I’ve also started going through a book on drawing cartoon faces which is more inline with what I want to create.

Day Job

At my day job I had to adjust our tax calculator and system because we had an employee move to a new state, which means a change in Nexus. It’s a whole crazy system but luckily the change was pretty easy. Always be testing when building an e-commerce system.

After checking out the new Laravel Mailbox package I spent some time looking at a package called mail-mime-parser that it relies on to see if I could integrate it into our app. On the surface it looks promising but I’m worried about the 10 years of edge cases we’ve had to work around and this package not catching them. But I’ll know more once I get a chance to implement it and run our weird eml’s through it.


This weekend I have to write the newsletter and I’m planning on deploying a top secret project I’ve had in the works since the first of the year. I’m hoping to get it all done and let you know more about it next week.

Finally, I leave you with a picture of my iPad. If your company has some extra stickers send them my way, my address is on the about page.

iPad Pro
iPad Pro 11″ stickered up

Support Local?

I’m in the market for a new pair of boots and wanted something that would last me the rest of my life. After finding a brand that came highly recommended I went out to buy them.

At first I decided I’d just get them online like I always do. I got the size I normally wear and placed my order. Two days later they arrived but I didn’t like the color, so I sent them back.

Next, I decided instead of reordering I should try to find a local store that sells them. Then I could get the proper size and the color I wanted. I went to the manufacturer website and found that a store just down the road carries them.

I arrived at the store and wondered around for a few minutes before flagging down someone that worked there. They said they don’t actually carry the style I wanted. I left annoyed.

The manufacturer website also said there was an “official” store in a neighboring town, about 35 minutes away. I didn’t really want to drive that far but figured it would save me some time versus ordering online and waiting. I went to the store and told the salesman, this is the style I want and showed him a picture. He said, we don’t carry those styles. Annoyed I left and went home.

Finally, I reordered a new color online and it arrived today. Now I like the color but the size feels too big. I’m at the point where I just want to throw my hands up and give up.

The moral of my story is always call the business first. Apparently, just because the store is “official” doesn’t mean they carry what you actually want.

I forgot how much I loathed shopping until this experience. Give me a browser and a buy button.

Pull Requests as a Content Management System?

After launching new sites I like to let them sit and then after a few months rethink how I created it to see if maybe I could have done it differently.

  • Could I have simplified things?
  • Could I have improved it?
  • What part of the design failed?

These are all questions I like to think about so the next time I’m tasked with something similar I’ll know which direction I should go in.

A site I launched the middle of last year is Laravel Events and I wrote about my thinking on how I designed here. I purposefully wanted to make the site as a simple as possible. After building it in a very complicated fashion I cam to this decision:

I had authentication, I had different categories of events, I had very specific time selection, and I realized all of those are overkill for this. Why can’t I strip everything down to a single list of upcoming events on the home page, then one form to submit your event. The only auth it needs is for the admin to approve and deny submissions and delete spam. Nothing more.

Now I’m thinking I still overcomplicated it. All the end of users of the site are developers and they are all comfortable with Git so I should have just used a static file system and allowed those that wanted to add their events to just create pull requests. This would have had the bonus of including a full audit log, and much more.

With this in mind I’d like to start today and redo the whole site, but I have a billion other things to work on. So it’ll not happen any time soon, but I think its fun to look back and see what you would have done differently.