You can read my original AMA here. TL;DR: At my first real job out of college doing econometrics for a minor league hockey team, I had an idea for an app but didn’t know how to code and couldn’t afford to pay someone to program it for me. I bought four books off Amazon and spent the next few months learning how to program. Within 10 months, I got a prototype off the ground and sold it to a few big colleges. It was a synchronized smartphone light show. It was adopted by fans quickly and soon started to spread throughout into the NBA, NHL, concerts, and even corporate events for companies like Berkshire Hathaway and Nissan.
What makes the app unique or special is that that it doesn't use WiFi, Bluetooth, or Cell Service; instead, I designed a mechanism for network-free data transfer using inaudible, ultrasonic sound waves. This ultrasonic transmission protocol ended up expanding to power more than just cool light shows and now is starting to change the ways hundreds of thousands of devices communicate with each other on a daily basis.
A lot has happened since posting my first AMA two years ago. For example, I bought my cat a new, heated bed and had my first experience with investors.
I’ve been extremely lucky with how everything has turned out so far and can only hope for good things to come. My iPhone logs that I'm on Reddit 7+ hours per week... so I thought I'd use that time today in the hopes that I can help others who are just starting to code, wanting to code, or looking to start a business. Or, perhaps more importantly, I just want to re-share this photo of my cat.
What was the ultrasonic transmission used for initially?
My original goal starting out was to make a synchronized smartphone light show with a beta use case for the minor league hockey team where I officed. The tricky part was that the crowds were so dense that the phones couldn’t be synced with a traditional WiFI/Cell Service/Push signal. So I decided to use inaudible audio embedded into the track. This was the “secret sauce” that suddenly made everything work.
The first iterations of the protocol were very crude, since I was not a classically trained Digital Signal Processing engineer. Now, however, we have over 12 incredible engineers contributing to the project and finally have a world-class, top of the line ultrasonic engine.
Can you foresee other possible uses for ultrasonic transmission, which I know nothing about but sounds very useful and ubiquitous?
Great question! The project's GitHub has been used for all kinds of things, from synching smartphones to television broadcasts (kinda like Shazam but without needing to archive the audio in advance) to an alternative to iBeacons for proximity awareness. The light show use case is pretty neat IMO, but is far from the only (or even the best) application.
Do you feel that being well versed in math and economics helped prepare your brain to learn to code?
More than anything, I think what is important is the desire to learn. Regardless of whether you're learning to program or learning math, I feel it's the same muscles being exercised (citation needed). So when it comes to whether I felt a background in math/economics helped -- yes, I'm sure it did. But being able to learn those things without, say, a professor teaching you them is what I found to be most critical.
So what did you find most helpful learning how to code and progress productively?
The four books I purchased were (1) on Swift, (2) Big Nerd Ranch on making Swift apps, (3) A book on Java, (4) a Big Nerd Ranch book for making apps in Java.
My advice for anyone starting would be the same: learn the language first, then jump right in and start making dummy applications. Finally, when you can, say, make an app that tracks your path as you go on a jog, then start on the project that made you want to start programming in the first place.
Is your app based off of this idea? Or is it the other way around. Either way how do you feel about ultrasonic communication being used this way?
It's the other way around and it's incredibly frustrating. I cannot stand these nefarious use cases of inaudible audio and it's one of the major hurdles in getting widespread adoption. For any use case where our software is involved in, the user is always informed of exactly why we request microphone access and what the ultrasonic audio is used for. For example, in our sporting events, the crowds are so dense that WiFi/Cell Service become unusable, which is why data over audio has performed so well in those environments. It's a strict opt-in only policy. That being said, the tricky thing about data transfer -- whether it's WiFi, Bluetooth, or high-frequency audio -- it's always invisible, so there will be bad actors.
How long did it take you to learn the language? What were the biggest obstacles you had to overcome? As far as getting apps from prototype to App Store what’s the process like? I have ideas for apps but like you don’t want to invest the money to pay someone else to make something.
To learn the fundamentals of my first language (Obj-C) took the longest. A solid 4-6 months before you could even do anything like make a calculator app with a GUI.
Do you still have a desire to code, or would you prefer to focus on idea development while others hammer out the lines at this point? If coding is still interesting, what are you learning now that you think is really cool or useful?
I honestly really like to code because at the end of the day you have tangible "proof" of what you've accomplished. With more nebulous work, progress comes in epiphanies -- and while that's great, you don't just get those every day. You might work a whole day and have nothing to show for it, which isn't as true when it comes to straight up coding.
How’d you get so many people to download your app?
Honestly, it's just something people want to be a part of. When you first see data over ultrasonic audio in action, it's a pretty incredible experience. If you want to try data over ultrasonic audio yourself, we actually have a live demo on our site. You do need to download one of our apps, but you can delete it right after, doesn't really matter to me. Just click on the blue icons spread throughout our site with the app open (and your computer volume on).
Do you have plans for any apps related to your shirt-wearing cat?
“It’s the Tinder of...”
Hey, did you sell this app to Clemson? I remember going to a couple games in the fall (I'm a student) and we used an app like this
Lol yeah that was us!
As someone who is about to graduate with a computer science degree and goes back and forth between hating and loving coding, I can't seem to ever stick with it. How do you manage to stay invested and get over the bumps in the road when confronted with a challange?
I think you need to look at "coding" as the means to an end. Pick something you're passionate about and focus on that.
I designed a mechanism for network-free data transfer using inaudible, ultrasonic sound waves.
That sounds very interesting.
Can you explain this in more detail please?
Specifically what does it do, how does it do it and how did you come up with the idea?
So we operate in the narrow band that is too high-pitched for most human hearing but low-pitched enough to be detected by commonplace electronics. It’s a pretty narrow region, so you have to be pretty efficient.
I mentioned this elsewhere, but actually demoing it is a pretty neat experience. We have a live demo on our site. You do need to download one of our apps, but you can delete it right after, doesn't really matter to me. Just click on the blue icons spread throughout our site with the app open (and your computer volume on). Your computer will send audio to your phone, which your phone will cue your phone to display images, perform a light show, take a “synchronized selfie,” etc.
Kudos. I came here expecting some BS app but instead got something truly unique.
As a tech guy, I would have given you dozens of strongly-worded reasons why this is a stupid idea and why it wouldn't work (and I'm generally a pie-in-the-sky optimist).
What helped keep you on your path, especially when you ran into difficulties and had friends saying "I told you it wouldn't work"?
And as a followup, how did you get critical mass of users, enough to where it looks cool in an arena?
For getting critical mass, it really comes from the team or university promoting it. You really do need buy-in from the venue or the fans just won't know about it.
No background in engineering or physics, although I had a degree in economics. The idea came to me because I officed in the basement of an arena so saw crowds of people gather twice a week and thought it would be cool to synchronize all their devices to the music for a light show. Regarding how to do that, I first tried all the traditional approaches, but service was too unreliable, so I settled on ultrasonic audio.
Finally, I chose Java/Swift because I wanted to make native mobile apps for smartphones.
I am very happy for your cat. What else can you tell me about your cat? Breed, fluffiness?
Seriously, good shit dude.
He's a bengal named Krum, and he's 6 years old -- almost ready for kindergarten.
In those ten months you learned, how many hours did you spend daily or weekly learning? Can a guy learn this with a fulltime regular gig?
I love learning and as a kid didn’t have a math teacher, so was self-taught from Algebra to Calculus, so learning to program was a somewhat similar process. I’d say I spent at least 4h/day studying up on it during that period.
Reddit 7 hours a week? You gotta pump those numbers. Those are rookie numbers.
I knew I’d see this 😉
What is your current net worth?
It always annoys me in AMAs when people avoid this question, so I'll answer it. You'd be surprised. We've spent way more money developing this technology than we've earned from it. That's pretty typical with new technologies though and often what it takes to make something you believe in.
Edit: To be specific, I worked the first two years literally for no salary since it was my personal hobby project I was trying to get off the ground. Now that we raised some capital (working for free or off unpredictable sales numbers is hard to sustain), I actually do have a pretty average engineering salary. There is also the value of the equity, but that is extremely difficult to determine (I literally don't have an answer for that) so I'll leave it up to you guys.
I hope I'm not too late. Given that this is used for concerts and stuff, how "loud" is this compared to the stuff we still hear? Could this have the potential to induce hearing loss without someone noticing? Thanks
Good question! The smartphone mics are very sensitive, so you can actually play the signals at a very very quiet volume.
Are you preparing for future advancements of technology? Anyway you can "Save" mankind, since it seems that you like to be a game changer.
That's one of the nicest things anyone has said to me on the internet! Not to mention we left my mom completely out of it!
In all seriousness though, the technological landscape changes so quickly and to have any contribution to it whatsoever would be more than I can ever hope to achieve. Data over ultrasonic audio really does offer incredible features that couldn't be accomplished using the current "electromagnetic monopoly" mediums of transmission. It really makes me excited for the future to see other developers incorporate our GitHub projects into their own work.
You mention the iBeacon use and I saw it on the GitHub as well, how does CUE work for longevity as far as reliable and sustainability? Can CUE be run reliably as a background app on your phone constantly with minimal to no battery drain as well as still working in your pocket?
You bring up good points. Although we have really good power consumption, we don't listen in the background for privacy reasons. For that reason, data over ultrasonic audio is not a perfect substitute for BLE beacons.
When did you find time to practice coding and still live a healthy lifestyle? I'm trying to get into better shape and it seems I have to pick fitness or practice coding as both are so time consuming.
I try to work at least 60h week, which does take a toll on your physical and mental health for sure. Going on over three years now, it's definitely not easy... But I've found going to the gym 4-5 times per week for even just half an hour gives me significantly more energy throughout the week. I've realized the hard way that it's definitely worth it.
How old is too old for learning to code?
I'm a 26 year old washed up computer engineer who ended up being underemployed to a job that barely pays and is totally unrelated to my degree because I really need money during those days. My coding experience has totally rusted up down the drain. I can barely call myself a computer engineer anymore.
Am I too late to learn? Seeing, rather reading posts from persons like you makes me want to change my path for a better one.
What do you think? Do I still have a chance?
I started at 21, so I don’t think there is ever a time that’s too late. And learning now is easier than ever. Best of luck, man!
Who do you have winning the Stanley cup between the final 4? Also, what books did you read to learn more about app design, would you recommend any other resources?
Being from Vegas, I can only be disappointed... For learning, I stayed mostly with print rather than any popular sites. I would recommend Big Nerd Ranch.
What's the biggest hurdle you overcame before you saw how everything worked in coding?
Actually getting it stable was the hardest part. There is so much noise in these venues that getting a signal through was a very hard puzzle to solve.
To be honest, I don't think you need to be more clever. I would say success is a combination of hard work, smart work, and luck.
Are you the person who posted to the Core Audio mailing list a few months ago about ultrasonic data transmission and some form of an unbypassable hardware limiter that you were having to deal with? (I always thought that poster must have been affiliated with some sort of national security organization!) Cool that you managed to get this working well.
If you are this person, do you have any tips on what are the best resources for learning Core Audio programming?
Oh god that's so funny... I think it might be one of my team-members. Do you have the link??
I've been coding for over 20 years and have taught myself numerous languages over the years. I've always said that anyone can code. The harder thing is to teach someone how to think logically. Until that point it's difficult to move from basic to more advanced coding.
What is your opinion on native apps vs hybrid apps? I've had this argument 1000times at work and we can never come to a full agreement on which is better.
That’s such a great question. I only do native, but boy would it be so nice to code once and deploy twice.
What's similar and what's different from your ultrasonic protocol and google's Nearby Messages?
You mentioned patents somewhere. Any conflict between your stuff and google's?
They are pretty similar in concept. I suppose the difference is that we have a faster bitrate as well as additional features and more supported use cases.
Wait you went from not know how to code to designing a revolutionary data transfer protocol? That sounds fishy. How on earth did you even manage that.
The AMA is a summary, glossing over 3 years of history. In short, it went from sending 1-2 bytes over ultrasound to synchronize phones to perform a light show, then the "ah-ha" moment of realizing I could send any data through ultrasound. At that point, through raising capital, we were able to hire PhDs to actually do the heavy lifting. I am certainly not a qualified Digital Signal Processing engineer.
I'm hoping you presented this to certain agencies, yes? That would really bring in the flow of money, yes?
We’ve worked with only one, but it’s something we need to pursue more rigorously for sure. It is a very nice fit.
you went to Purdue, right?
Purdue was one of our first big clients. I went to Northwestern though.
How do you get a degree in econometrics and not know how to write code?
This post smells like bullshit.
Of course I had experience with Stata and R, but creating linear regression models was the peak of my "programming" experience. My degree was a BA in Economics from Northwestern University.