Category Archives: Uncategorized

Giving Back with Tech: My Experience at GiveCamp Memphis

As the president of Seattle GiveCamp, I’ve seen firsthand how technology can transform nonprofits. GiveCamp is a weekend-long event where developers, designers, and project managers donate their time to build technology solutions for nonprofits. I’ve volunteered for roughly 20 GiveCamps across America.

But this GiveCamp was personal for me to volunteer in. GiveCamp Memphis picked up Center Point Cemetery which is where generations of my family, dating back to my great-great-great-grandparents, are buried dating back to the 1800s. When I had the chance to volunteer at GiveCamp Memphis, I knew this project would be more than just another website build. It was an opportunity to create something meaningful for families like mine.

Building a Digital Future for Center Point Cemetery

The main project was building CenterPointCemetery.org, a website with two primary features:

  1. Plot Finder – A tool that allows visitors to search for burial locations, view headstone images, and access obituaries. If you check it out, search for Charlene. You can see her plot, headstone, and obituary. Then do a search for Holmes. (Yes, those are all my relatives…)  
  2. Donation Page – A PayPal-integrated page that enables secure and seamless donations to support the cemetery’s upkeep.

Cleaning Up the Data

Before GiveCamp even started, I spent time cleaning the cemetery’s burial records—an effort I documented in this blog post. This data cleansing was crucial in ensuring that the Plot Finder worked correctly and provided accurate search results.

The data was spread across 65 different spreadsheets, each formatted differently and containing inconsistencies, duplicates, and missing information. I leveraged AI to develop a Node.js application to automate the process, standardizing the records and integrating them into a unified database. 

This preparatory work ensured that by the time GiveCamp started, we had a reliable dataset ready for development, allowing the team to focus on building the features rather than fixing data issues on the fly.

The GiveCamp Team

I wasn’t alone in this effort. I had an incredible team of volunteers, including my Seattle GiveCamp technical lead, Ben Lobaugh, who participated remotely. Ben is a seasoned developer with deep expertise in WordPress, cloud solutions, and software architecture. His contributions were invaluable as he helped guide architectural decisions and troubleshoot technical challenges from afar, ensuring that our solutions were both scalable and sustainable. Having his mentorship available remotely provided an extra layer of support for our on-site team.

Ben also played a key role in developing the Plot Finder’s search capabilities, helping to optimize queries and ensure the search function performed efficiently on a large dataset. His insights into structuring the data and improving search performance significantly enhanced the user experience, making it easy for visitors to find burial records quickly and accurately.

On-site, we had four full-time developers and a designer:

Three of them—Isaiah, Arlina, and Michael—were either students or graduates of Memphis’s CodeCrew program, and Jack, who graduated four years ago with a Computer Science degree from the University of Memphis, has been working as a manager at Chick-fil-A. Charise, a talented designer, brought her creativity to the project by designing a brand-new logo that gave the site a professional and polished look. All five of them are highly skilled and absolutely hireable—I’d hire any of them in a heartbeat.

Task Distribution & Contributions

We split the work based on expertise and interest:

  • Michael tackled PayPal integration, initially using a plugin, but pivoted to direct PayPal embedding when the plugin couldn’t handle recurring payments.
  • Arlina worked on the History and About Us pages.
  • Isaiah took on the WordPress theming, learning from scratch and implementing the new branding.
  • Jack embedded interactive maps on the Plot Finder results pages and leaned in on how we navigate the website.
  • Charise designed the new logo and branding elements for the cemetery’s website.

All four of my developers leaned in and helped each other. They also taught Donnie and Carla Nichols, our nonprofit organization representatives, how to edit the website. Donnie works at a company that does piping around large commercial projects, where he estimates bids. Carla is a personal banker. Neither of them is highly literate in computers; however, both of them learned a bunch from all of the volunteers and are now capable of maintaining their website. Watching that was amazing. It was a powerful reminder of how technology can empower people, even those without a technical background, to take ownership of their own digital tools.

A Brake Pad Lesson with Isaiah

On Saturday, Isaiah told me he might not be able to make it on Sunday because his brakes had started screeching, and he probably shouldn’t drive on them. I wasn’t about to let that stop him from finishing an awesome weekend of work, so I volunteered to buy him new brake pads and teach him how to change them. Thanks to Trey Albertson, a long-time GiveCamp Memphis volunteer, who had tools in his car that I could borrow, we got the job done. It’s not every GiveCamp where you teach someone WordPress theming and how to change brake pads in the same weekend!

Challenges and Lessons Learned

Like any project, we encountered challenges along the way. One of the biggest hurdles was ensuring the Plot Finder search function was both fast and accurate, given the large dataset we were working with. Thanks to Ben’s expertise, we optimized the queries and structured the data efficiently. Additionally, navigating PayPal’s restrictions on recurring payments required Michael to pivot and implement a direct integration.

Another challenge was time—GiveCamp is an intense weekend sprint, and balancing speed with quality was crucial. At this rate, next year we might need to add a session on changing tires alongside the coding workshops! The entire team leaned in to support each other, learning on the fly and adapting to roadblocks quickly.

Beyond the technical aspects, one of my biggest takeaways was the impact of mentorship and teamwork. Watching the volunteers not only build the website but also teach Donnie and Carla how to maintain it was inspiring.

Impact and Takeaways

By the end of the weekend, we had a fully functioning website that will help families find their loved ones and allow the cemetery to receive much-needed donations. This project was a testament to the power of community-driven development and the immense talent within the GiveCamp network.

This project reminded me just how much impact a small but dedicated team can have in a short amount of time. It’s not just about building technology—it’s about empowering people with tools they can actually use. And that’s what GiveCamp is all about. GiveCamp Memphis was an amazing experience, and I look forward to continuing to support this incredible event—though I’ll never let them forget their unfortunate naming choice!

If you’re looking for talented developers, consider reaching out to Isaiah, Arlina, Michael, Jack, or Charise. And if you want to get involved in making a difference through tech, consider joining the next GiveCamp near you! You can find more information at GiveCamp.org.

Going to production with chipsets.

IoT is hotter than ever and there are a ton of folks getting jazzed about the Raspberry PI 2, the Arduino, Intel Edison and other awesome and cheap devices that are incredibly powerful. The issue is that these are maker boards designed for hobbyists, not production boards that you could actually leverage in a real production product. This is deliberate on their part as they are going after a specific audience and they do an outstanding job of it. There are a ton of folks prototyping on these boards, as they should, and getting their proof of concept running. But then, there needs to be a path to production. The great news here is that there are a lot of great paths depending on what you’re trying to accomplish and what features you need in your board.

It’s a good idea to start with your path to production in mind when you pick your maker board. Reason being, if you have a similar chipset and capabilities to what you’re going to go to production with, it’ll minimize churn when you get to that point. If you’re going to be going to production with a minimal real time operating system, it’s probably a bad idea to start with an x86 board with gigs of ram and processing power.

Embedded OS Options

Since it affects your chipset choice, the first thing is to talk about the different embedded OS options and their capabilities. The options range from real time operating systems (RTOS) to embedded Linux to many different flavors of Windows.

The first question is what are you trying to accomplish? What’s your device going to be doing?

Power systems make a huge part of this choice for you. Is it going to be battery operated? Rechargeable? Constant wall power?

Is it going to be doing communications? With what? Over what type of radio?

How are you doing security?

Are you doing processing on the device? Or is it simply a remote sensor or actuator of some sort?

How complicated is the processing that it needs to do?

Obviously cost is also a factor. What’s your target “BOM” or Bill of Materials?

How large is the space you’re going to put it in? Does your device have ventilation? Some processors require more robust cooling systems or have more sensitive temperature ranges. It matters if you’re putting a device in the arctic circle or in the middle of death valley.

What’s your development language? Realize that I put this fairly far down the list of considerations because it’s possible you are going to have a language forced on you. But if you can choose, would you prefer C, C++, Python, JavaScript, .NET or what.

That’s a lot of questions but it really drives down to four basic options that are chosen most of the time, Windows, Linux, an RTOS (real time operating system) or a microcontroller where you are writing firmware.

Windows 10 IoT Core is the current build of Windows for smaller devices. Your options for development are the languages that run on Windows 10. That’s quite a few including C, C++, .NET or any other type of runtime that runs on Windows so you can get Python, Javascript/node.js and the like to run on it. This makes it an extremely versatile option. It’s also a very robust option when you’re talking about security, communications and the like. If you want to get started on this option, check out http://ms-iot.github.io/content/GetStarted.htm. The downside on Windows 10 IoT Core is that it’s limited to the x86/x64, Atom and ARM chips.

Linux is another great choice. On many devices you can run something as big as Ubuntu however there are a number of variants of Linux that are specifically built for embedded devices. The one that I’m most familiar with is OpenWRT. It was originally built for firmware on routers but it’s a tough little operating system that works well on a lot of little devices. It’s more limited on languages in that it doesn’t run .NET but you can run C, C++, Python, node.js, Java and the like. It’s also able to do communications and security just fine. And it runs on a very wide set of processors.

The downsides of both of these options is that while they have more capabilities, they have latency compared to an RTOS. If you really need real time, you’ll need to look at something a little deeper but to be honest, it’s been years since I’ve done anything with real time. I’m usually close enough that the user doesn’t notice vs the exact number of milliseconds matter.

The other option is some type of firmware where you’re skipping the operating system completely and programming the device to do exactly one thing and do that thing well (theoretically). In these cases, typically security and long range communications are offloaded to a gateway device that is running one of the above options.

Chipset Options

The second thing to do is talk about the types of chipsets and their capabilities. I’m not going to go through every possible chipset in the world but there’s a few that are specifically focused on the IoT.

Of course you can run an x84/x64 if you are going to be on constant power or at least near power. The Intel Galileo is maker board based on this chipset. It runs Linux and Windows Embedded (that’s prior to Windows 10 IoT Core)

Intel’s Atom processor is the next on the list. This is a great little chipset built for lower power consumption and longer battery life than the x86/x64 chipsets. These can still run many flavors of Windows as well as Linux. A great prototyping/maker board for this is the Raspberry PI 2. It’s running a 900 MHz quad core Atom processor.

The Intel Edison runs a Quark processor, comes with BLE and WiFi on board and the whole system can fit inside an SD card if you need the space. It runs Linux. I’m not wild about Intel’s toolchain for development but it’s a good chip.

Atheros is another great chose if you are looking at Linux as your host. A great board for this is the Arduino Yun. It has both an Amtel chip for more real time/micro controller options as well as the Atheros chip for running linux. Their default distros are running OpenWRT.

The Amtel chipset is the first microcontroller that we’re going to talk about. These are even lower power consumption than the Atom but they also have less capabilities. The huge advantage that these bring to the table is that there is very little that can go wrong with them. Since you are basically writing firmware, you can just plug them in and let them run. The Arduino is an example of a maker board that you can use with the Amtel chipset.

There are lots of other chipsets that are pretty awesome but I’m going to skip those for now

Manufacturer Options

There are a ton of manufacturers that are out there. Before you pick your manufacturer, you should pick your chipset and then start shipping around.

Dog Hunter is the manufacturer behind the linux system on a chip that’s on the Arduino Yun. They’ve got a great little chip called the Chiwawa. In quantities of 5000 or more, you can get these down to sub $10.

Intel is obviously the manufacturer of the Edison. They are a known quantity and know how to produce in quantity. They also make a Quark SOC that’s a well-established chipset.

The reality is though that you might need to go to China and meet with some of the manufacturers yourself. But to meet these folks, you have to know where to go. The great news is that there’s a ton of great resources to help you locate a partner and start conversations. GlobalSources.com, ThomasNet and Alibaba.com are a great starting point for components. It’s like the Yellow Pages for manufacturing. If you start looking through, you’ll find folks that do production for all the major players such as Nokia but also for little guys. But don’t trust what’s on their web site as your end all be all. First of all, manufacturer’s websites are A: marketing and B: notoriously out of date and poorly designed. Research the companies looking in your favorite search engine for the manufacturer’s name and the words “scam” or “fraud” or “fail”.

Quantity Options

In physical manufacturing, quantity matters. It takes time and effort to set up the manufacturing of a given item. There is also the possibility that there’s specialty equipment and the like that either needs to be purchased or tuned to make your device. Both of these, time and equipment, cost a lot of money. That price needs to be amortized across a large number of units in order to really drive the cost down. If you want 10-20 of a small device, expect to be paying hundreds to thousands each just for the setup and manufacturing before you get to your “BOM” or Bill of Materials. Reality is that if you are only ordering a couple hundred devices, that’s a “small run”. In fact, some manufacturers look at anything less than 10k as a small run. This means that either they are not interested or the price goes up fairly dramatically. That said, don’t go do a run of 10k of something without verifying that it works and that customers like it.

Summary

There’s a lot of questions that you have to answer before you get started building. Most people start with the board that they get cheap at Radio Shack but don’t think down the line for when they are going to try to go to production. Before you make that mistake, think through the choices that you’re going to need to make and then pick a board that’s a good fit for you.

BTW – I talked about some of this on the .NET Rocks Episode 1144 – Getting Practical with IoT

Passion in a Startup – A Double Edged Sword

The Wall Street Journal is one of the few newspapers that I still give the time of day but I still stay mostly in their business and tech sections. Yesterday they posted an article that really nailed it about how an entrepreneur’s passion can destroy a startup. The title is a little click baity for my tastes but passion and startups are definitely hot buttons of mine.

Key points out of the article:
Passion is what drives most startups but it can blind you to the gaping issues.

Issues that you need to pay attention include (but not exclusive to) the following areas in no particular order:

  • sales experience
  • marketing experience
  • technical experience
  • business experience
  • industry knowledge
  • network of folks
  • family life
  • and much much more

Reality is that we get excited about an idea and want to run with it but without a full team that keeps their eye on all of the various issues, you’re doomed to fail.

If, on the other hand, you’ve got a diverse team with a range of skill sets who are working on the project together and helping cover each other’s weaknesses, you’ve got a much better chance.

One of the big things that a lot of startups forget though is family life. There’s the old adage, “An entrepreneur is someone who works 16 hours a day for himself to avoid working for someone else.” This means that family can easily fall off the side when you are deep into it. Long after you’re startup has been gone (success or failure), your family is going to be there for you. Make sure that you spend some time with them and are sensitive to their needs as well.

The two things that really stood out to me as far as data points in the article:

  • 52% of founders are replaced by their third round of funding.
  • 78% of experienced founders would either wait longer to get funding or bootstrap themselves the whole way.

Both of these data points hit me as a lot of times my advice to startups is to wait on taking investment and these two give me a little ammo as to why that’s sound advice. I always ask startups two questions when it comes to investment:

  1. do you have a clear plan as to how you’ll spend every penny?
  2. Are you 100% sure that the potential investor is on board with your vision and bought in for the long haul?

If you’re just taking money from anyone with a checkbook, that’s a recipe for failure.

In short, make sure that your passion, while an amazing thing and the driving force behind any successful startup, is not blinding you to the potential train wrecks.

I built a Cigar Box Guitar…

When I build the next one, I’ll do a fuller write-up but I wanted to get these pictures and video up.
Cigar Box Guitar
I built a Cigar Box Guitar. My friend Joe Rames had built one and I thought it was cool and then I saw some while in London that just looked amazing. I loved the idea and decided to build my own.

WP_20140407_20_23_12_Pro
I started with a 1×2 piece of poplar wood and started trimming it down. The head needed to be back far enough to make some tension on the nut (the piece at the top that the wires run over).

WP_20140407_20_23_19_Pro
And then I needed to carve out the bottom of the neck because I wanted to make a through neck and that required carving it down to let the cigar box close. This was a little tough as I didn’t have power tools and did it by hand with a saw and a chisel.

WP_20140407_21_10_00_Pro
Then I pieced glued on the bits for inside the box so that it was nice and sturdy. I probably need to redo this at some point because it’s about an 1/8 of an inch short of the bottom of the box and so is not quite touching and stable. But it works for now.

WP_20140407_22_20_23_Pro
The tuning pegs were the first “guitar” part that I bought. Almost everything else was from home depot, radio shack and my local cigar shop. Figuring out where to mount these was harder than it should be. My next one is likely going to be headless with the pegs inside the box so that it’s a much more compact design.

WP_20140407_21_09_55_Pro
Then I carved out the cigar box for the neck to fit in. Next time the neck will likely go all the way through the cigar box and out the other side but for this first one, the neck goes through and stops just inside the other wall.

WP_20140407_22_56_09_Pro
Then I installed the 1/4 inch jack for the pickup and built my own pickup out of a piezo buzzer. That was fun and it works great (watch the video)… The next step was building the amp itself.

WP_20140407_22_56_38_Pro
Yeah – the guitar looks good. 🙂 but I actually had a lot of work left to do at this point. I don’t have good pictures of putting the frets in. However, that wasn’t as hard as I was afraid it would be. I found an online template maker where you enter in the measurements of your guitar and it’ll print a template for where your frets should be.

WP_20140422_07_33_32_Pro
I decided at this point to build my own amp as well. I have an amp but it’s big, heavy and doesn’t travel well. Oh, and it’s not in a cigar box… 🙂

 

WP_20140422_07_33_45_Pro
It’s a slightly different shape than the other cigar box but I think it looks class. I’ll likely switch out the green light for a red one in the near future but at the moment I like the green as well.

WP_20140422_07_33_58_Pro
This was actually the first circuit I’ve ever soldered so that was a learning curve as well. Reality is that now that I’ve done it, I’m not sure what I was so scared of all those years. I started with design for a Cracker Box amp and modified it to have an on/off, the little LED and a few other little bits and bobs.

WP_20140422_07_39_28_Pro
And there you have it – finished product. I’m pretty proud of it. Now to learn to play it…

New job for Josh

I’m very excited to announce that I’m on the brand new Enterprise Architect team in the Developer Experiences (DX)team (rebranded from DPE).

This means that I’m no longer the go to guy for Internet Explorer dev relations stuff, for that make sure that you reach out to @IEDevChat for anything you need related to Internet Explorer. There’s a great team in place that are based directly on the engineering team that are taking over the work that I was doing there.

So the new team is a deeply technical and and focused on delivering solution that customers will use. We’ll be finding issues in the wild that really need some help and solutions and working on helping our customers develop open source solutions in those spaces. It’s going to let me go really deep into technology and still work with customers.

This is really an exciting new position and a growing space. I’m employee number 3 on a team that’s growing quickly and could be 50 people by the end of next year. If you’re interested in talking about the team more, feel free to reach out to me either through the comments or on twitter

Good day at Build

This was a good day. I’m at the //BUILD conference in San Francisco. Handful of really good things happened today.

One, I got to catch most of the keynote today and there were some really good surprises even for me in there.

  • Windows/Windows Phone is free for devices with screen smaller than 9”. I’m loving this. It greatly enhances our reach and all of the sudden it doesn’t matter that we’re buying Nokia to other device makers because they are getting the same price we’re giving Nokia…
  • Great new enhancements to Windows Phone. I’m not blown away by Cortana but it’s interesting. I’m LOVING the new notification center and all the little fit and finish with WP 8.1 and with IE11 on WP.
  • Great story around the “universal runtime” stuff unifying all the platforms development story. I think this is awesome and makes live much better for anyone trying to develop on any of our platforms.
  • Awesome store enhancements such as the being able to buy on WP and it just works on Windows as well and the like…
  • and a couple more things that are escaping me now. What was your favorite?

Two, I now have a CEO who stood on stage and fielded architecture questions about how to build a cloud solution. YES!!! This was awesome.

Three, I got to meet a ton of great folks and catch up with even more. Too many to name because I know I’d forget some. Leave a comment if we connected. 🙂

Four, I got to speak this year. This is actually the first tier one MS event I’ve ever spoken at. It went really well. I’ll link the video when it gets posted to Channel9.

I got to help launch the beta of http://status.modern.ie. This is a great site that will keep you up to date on Internet Explorer’s roadmap of features.

Perception verses Reality

One of my first mentors, Denny Williford, told me a story. Over the years, I’ve retold this story dozens of times and I’m sure that some of the details have changed over time but here’s my current version. 🙂

The management for an expensive high rise apartment complex had an issue. Their tenants who lived in the upper and most expensive floors were complaining that the elevator was “just too slow”.

Continue reading