Avery Wagar is just your average 16-year-old. He’s a Running Start student and a Ballard High School junior; his favorite video games of the moment are Mount and Blade II: Bannerlord; and he’s got his eye on college after graduation.
He’s also a programming whiz who’s built multiple apps, has participated in dozens of Hackathons, and as Zipwhip’s part-time software developer intern, he’s engineered a robot to take coffee orders with a single text — all in the three short years since he took his first programming course.
OK, “average” isn’t a fitting descriptor for Avery. He’s a hungry, young developer with a future in creating innovative, immersive technologies. Which is why he was the perfect person to revive Zipwhip’s Textspresso, the world’s first text-enabled espresso machine. Under my mentorship, Avery created the latest version of our coffee bot, the Textspresso IV.
It’s a project that caffeine-obsessed Zipwhip employees are particularly fond of. Ordering coffee via text, then picking it up a few minutes later while zipping between meetings has been a lifesaver.
I recently interviewed Avery to learn more about the coffee bot and his other interests as a budding software engineer.
John Lauer: Tell me about Textspresso IV coffee bot. What different pieces of hardware and software did you use to create it?
Avery Wagar: My first project at Zipwhip was to build the Textspresso IV, which is the fourth iteration of Zipwhip’s text-enabled espresso machine.
The Textspresso IV is a combination of an industrial-grade robot arm, a commercial-grade espresso machine and a Raspberry Pi 4. The robot is programmed in a waypoint paradigm.
You can freely move the robot and save locations while programming. The Pi 4 acts as a bridge between the Zipwhip API and the robot. It queues orders, handles the responses and exposes commands to control the robot.
When someone texts the Textspresso, it’ll queue the order and expose it to the robot, the robot then grabs a cup, places it under the espresso machine and makes the coffee. When it finishes an order, it places it on the counter and alerts the Pi 4, which alerts the user via text message that their order is complete.
What I love about this, as a developer, is that you built an app for mobile users, but you didn’t actually have to create a mobile app and your users don’t have to install anything. They’re able to interact with your app through their text messaging client. Everyone has a text messaging app on their phone and that’s all that’s required. Just send a text message for a “double espresso” and that’s it!
What other projects are you working on?
Right now, in addition to making sure the Textspresso IV continues to churn out coffee and doesn’t hit anyone or become sentient, I’m starting to work on projects where I can contribute individually since it’s difficult to be on an agile team part time.
Most recently, I wrote a chatbot that translates incoming and outgoing text messages in 62 languages. It’s exciting to think about the impact this could have.
I got my start on a low-powered laptop and free tier cloud services. So, for anything to work for me, it had to be very compact and efficient. I try to stick to these same principles today. I’m super curious and in software, there is always something new to learn or try out. It’s also one of very few fields where you can start doing at 16 what you think you’ll want to be doing when you’re 22. I’m incredibly thankful that I’ve had the experiences and support that have made this possible.
How did you get started with programming?
I took a Unity3D class.
What programming languages do you use?
My favorite language is Rust because it lets me do more in a resource-constrained environment. Which, for a long time, was my only access to programming. It also has a really great community that’s super friendly and engaging.
I’m considering learning Go because of its high level of use in the network applications and infrastructure space. However, Rust has been making some strides in this space as well, so I guess we’ll wait and see.
Mac or Windows?
Neither, I use Linux for almost everything. Linux for work. Windows for gaming.
What code editor/development environment?
I’ve moved my development environment into a VM running on my Proxmox host in the basement. I primarily use Neovim over SSH. I have another VM running as a Docker registry/host and a virtualized k8s cluster for testing my deployments, which I’ve automated using Terraform.
For production deployments, I’ve been using AWS pretty heavily for larger deployments, however, if the project is small enough, I usually just spin up a k8s cluster on DigitalOcean.
Do you use version control or CICD?
Git and GitHub for Hosted VCS, Github Actions as CI/CD and Docker, k8s and Terraform for deployments.
What are your plans after high school?
I’m currently pursuing an Associate of Science at North Seattle College, and I hope to transfer to the University of Washington.
Thank you, Avery, for building Textspresso IV and sharing your story with us! We’re really lucky to have you as an intern. We can’t wait to see what the future holds for you, and please remember to shoot us a text when you’re ready for a full-time job.
Editor’s note: Since the publish date of this blog post, Avery has accepted an IT Systems Programmer role at Zipwhip. He’s now the youngest full-time Zipwhip employee in our history. Way to go, Avery!