About · @soleo

Hey, I'm Xinjiang Shao.

A Principal Software Engineer at The Aspen Group in Chicago who builds platforms from zero to one, then from one to scale — healthcare and commerce platforms at work, and GroceryTrack, dev tools and a yellow pager on my own.

Xinjiang Shao
Photo by Fluent Conference 2018 Hosted by O'Reilly
01

The short introduction

This is Xinjiang, a.k.a @soleo on social media. I'm a Principal Engineer at The Aspen Group, a $4B healthcare organization with five brands and 1,400+ locations across 48 states: Aspen Dental, ClearChoice Dental Implants, WellNow Urgent Care, Lovet Pet Health Care, and Chapter Aesthetic Studio. I lead front-end and platform architecture across those brands and a 30+ engineer team as lead of all technical leaders — the shared-package re-platforming, an Auth0 + MFA identity platform, MCP work in the web space, and one observability standard across the group. The full story is in the Digital Commerce case study.

Previously, I was a Principal Software Engineer at Peapod Digital Labs (now Ahold Delhaize USA) and a Senior Software Engineer at Peapod, where I architected the GraphQL middleware for PRISM — the white-label grocery platform serving 20M+ weekly shoppers across Stop and Shop, Food Lion, Giant, GIANT, and Martins — while the front-end org grew from 10 to 40+ engineers.

Earlier in my career, I worked as a Full Stack Software Engineer at EXACT Sports, where I built PrepHero from scratch—a comprehensive platform for camp registration and athletic recruiting.

Most recently, I designed, built, and shipped GroceryTrack as a solo indie product—an AI-powered grocery receipt scanner with a web MVP built in a single day and an iOS app in the App Store about 1.5 months later, followed by the Android app on Google Play. Snap a receipt photo and a multimodal LLM extracts every item, price, and category—no manual entry, no per-store templates. The full story is in the GroceryTrack case study.

How to say my name

It's pronounced "Sh-ow" — rhymes with "cow." "Shao" is my family name; "Xinjiang" is my first name (in Chinese, the family name comes first). Online I usually go by soleo — a made-up word from nowhere, but a pretty cool name.

03

Beyond the code

Reading

At home or a nearby coffee shop — my default way to keep learning.

Writing

Documenting experiences and lessons here on the blog.

Creative cooking

Experimenting in the kitchen — a different kind of build.

Running

Regular miles to keep body and mind in shape.

Swimming

Added in 2024 — there's something meditative about learning a new skill.

Running stats: Race results · Strava

04

Technologies I love & use

Languages
TypeScriptPythonJavaScriptC#KotlinGroovyJavaSwift
Cloud & Services
Google CloudAWSAzureFirebase
Frameworks
Next.jsVue.jsTailwind CSSSpring.NET
Monitoring & Alerts
SentryGrafanaPrometheusSplunkDatadogPagerDuty
Databases
PostgreSQLMySQLMongoDBRedis
CI / CD
GitHub ActionsGitLab CISpinnakerJenkins
Testing
JestVitestCypressPlaywright
Containers
DockerKubernetes
APIs & more
RESTGraphQLgRPCOAuth2Web Accessibility
Methodologies
AgileTrunk-basedGitFlow
05

The much longer story

This is a long read. You have been warned.

As a kid

My name is Xinjiang Shao. Xinjiang comes directly from the Chinese Pinyin of name. Most people have some degree of difficulty pronouncing my name. My previous manager Ed Grosvenor wasn't able to pronounce it, and my colleagues at various companies still try to figure it out. In the digital world, I usually go by soleo. It's a made-up word that comes from nowhere, but it's a pretty cool name.

As a kid growing up in China, I still feel a bit strange living in Chicago after all these years. I'm pretty sure I wasn't the smartest kid among my peers. China is usually very competitive, and I certainly didn't go to the top schools or end up working for big corporations initially. However, I do feel like I chose a very unique career path compared to my peers, and I think I made the best choice for myself.

Whenever someone asks me where I come from, I tell them I come from a small town. They assume a small town would be a place with no skyscrapers where everyone knows everyone. But my hometown is packed with people and huge buildings. I'm not kidding! Times Square does exist in my town, and it might be larger than the real one in New York. I've had the dream of becoming a software engineer since I got my first desktop computer in elementary school. Just like any other kid, it was video games that made me curious about how computers work in the beginning. Then one day, my school teacher told me I could stay longer after school, and she would teach me how to do website design. That was 1998, and I started learning how to build websites with Microsoft FrontPage and Dreamweaver.

Time flies, and I was about to choose a major in college after the national college entrance exam. I didn't get a good enough score to get into a top university, but I did a full analysis of what schools I could get into and still make the best of it. I chose a math-related major called Information and Computing Science because I knew I wanted to pursue future education in Computer Science no matter what. A math major would be very beneficial for laying a solid foundation for Computer Science naturally. In college, I met my advisor Prof. Zhishen Wang, who is truly an inspiration to me. He's a friend and a mentor. During my time in his telecommunication lab, I learned a ton about telecommunication hardware, how to conduct research on different topics, and how to explore new ideas.

As an Intern

In College: Sagittarius Tech Co., Ltd.

In my last semester in college, I did an internship at Sagittarius Tech Co., Ltd.. I can still vividly recall the interview with Tomasen Shen and Yangming Dai. I was so new to the industry that I barely knew any answers to the written tests, and I was on my way to fly back to start my winter break, so I still had my luggage with me at the time of the interview. But the next day when I got home, I received a call from Amy, our HR representative, saying I could start working after Chinese New Year. During my time at Sagittarius Tech, I started doing research on subtitle matching optimization with acoustic fingerprinting and supporting a hardware supplier to use our subtitle matching service for their hardware player. Tomasen and Yangming were both very important to my personal development in software engineering. That was the start of my journey to becoming a software engineer.

In the last month of my internship, I told Tomasen that I was planning to pursue further education and get my master's degree in Computer Science at the University of Illinois at Chicago. Soon I started my new life in Chicago. I actually felt really calm when I arrived. At UIC, I really liked Prof. Jakob's courses because he was like a hacker with the right mindset. He would record his entire lesson, and his classes were always filled with personal insights and good demonstrations. If you talked with him in person, you might think he was socially awkward, but whenever he talked about things related to Computer Science, his eyes lit up.

In Graduate School: EXACT Sports

When life was getting boring in grad school, I received an email from Barry Tarter, who is the founder of EXACT Sports. He was looking for an intern and asked if I was interested in working at his company. Since school work was lighter than I thought, I said yes. Ed Grosvenor interviewed me. His last words at the end of the interview were "I'm not picky," and then I started working with him, building our camp registration platform and athletic recruiting platform from scratch over the next few years.

As a Software Engineer

EXACT Sports

I stayed with EXACT Sports for almost 5 years, and I became so personally attached to the product that I would check the status over weekends, sometimes in the middle of the night. It felt great that whenever you had a new idea or got an idea from your coworkers, you could start implementing it and see it grow or fail. The thin layer of management made the product deliver faster, but Barry might disagree with that.

We built a ton of things at EXACT Sports, but one thing hit me very hard, and I was eager to find the answer. Since we built a lot of features during that 5-year period, we didn't remove features very often. We ended up with a codebase that contained lots of defects and one-time-use features that were never used again. So I was curious at that time about how we could manage a clean codebase with features that users actually wanted. Then I got an invite to a Hacker Event. The host of the event was Peapod, the online grocery delivery company that was founded in 1989. I started to wonder if Peapod's engineering team had already figured it out.

Peapod

I went to the event early enough to talk with Tim Franklin and Dan McQuillan. I didn't get my answers that night, and it sounded like there was something new going on at Peapod. Peapod was in the process of transforming from legacy architecture to a more modern architecture. The conversation with Dan made me really want to work with him because he was not only knowledgeable but also very young in his career. I wondered what made him an excellent engineer. Like any other meetup event, I didn't think I would meet Dan or Tim again in the future, but Lynn, Peapod's recruiter, contacted me soon after the hacker event, telling me they were interested in interviewing me for their Full Stack Engineer role. The next day I interviewed and got accepted.

Having worked at Peapod for a few years, I really liked the working environment. It was definitely less stressful than working for a startup, and things were designed in a more detailed, thoughtful manner. But it also moved slower. It was during my tenure at Peapod that I learned to make web applications more accessible for everyone. I started to focus more on front-end development, shared my development stories through Medium blogging, and organized hackathon events internally. I was still learning and still looking for ways to deliver good products to end users.

As a Principal Software Engineer

Peapod Digital Labs

In 2020, Peapod Digital Labs was formed to be the technology and digital innovation engine for Ahold Delhaize USA. I was promoted to Principal Software Engineer at PDL, where I led a team of engineers to build the next generation of online grocery shopping experiences. My focus was on building scalable and maintainable systems that could adapt to the ever-changing needs of our customers.

The Aspen Group

In 2023, I joined The Aspen Group as a Lead Software Engineer, then promoted to Principal Software Engineer in 2024. The Aspen Group is a leading provider of technology solutions for the healthcare industry. My role is to lead the development of innovative software solutions that improve patient care and streamline operations for healthcare providers.

When I joined The Aspen Group, we had a small engineering team (fewer than 5 engineers) and six legacy stacks across five brands. As Lead Software Engineer I rebuilt the Commercial Web platform, founded the Digital Commerce Platform — a multi-tenant architecture that launched WellNow as TAG's first multi-tenant application — and grew the team to 20+ engineers by the end of 2024. The platform now supports digital marketing, office directories, online appointment scheduling with fraud detection, patient reviews, and patient management across 1,400+ locations.

Since being promoted to Principal Engineer in December 2024, I've led the architectural modernization across all five brands — sharing packages, not applications — built an Auth0 + MFA identity platform, spearheaded MCP work in the web space, and standardized observability on Sentry, Grafana, and OpenTelemetry. Today I act as lead of all technical leaders across a 30+ engineer organization. The full arc is in the Digital Commerce case study.

As an Indie Builder

GroceryTrack

In March 2026, I got annoyed enough at my grocery receipts to do something about it. On March 13 I started building; on March 14 the first web version of GroceryTrack was live. About a month and a half later, the iOS app was in the App Store, and the Android app followed on Google Play in October 2026. GroceryTrack points a multimodal LLM at a problem that used to take months of OCR pipeline work—snap a receipt photo, and Gemini extracts every line item, price, and category as structured data. Flutter for mobile, Next.js for web, Firebase underneath, and an MCP server so AI assistants can read your grocery data directly.

In its first seven months, it parsed 1,245 receipts and 12,376 items—over $92K of grocery spend—for 270 registered users, including a cluster of Canadian users I never set out to reach. Building it taught me how much the center of gravity has moved: the parser that would once have been a multi-month project became a prompt, and the real work shifted to taste, speed, and listening to the people who actually show up. The full story is in the case study, which now includes iOS and Android demo videos, the build blog post, and the founder update Seven Months of GroceryTrack.

The Future Ahead of Me

Having been in the industry for more than 14 years, I've realized that becoming a good engineer takes a lot of effort, years of learning and practice. Even if you stay curious and learn tons of stuff, there's still new material coming up every day that you cannot keep up with. How do you handle the fear of the unknown? How do you make the right decision when something has to be done on time? There are still tons of questions I haven't fully figured out yet, and I'm looking forward to exploring the answers.

Ready to connect?

Let's chat about technology.

If you're interested in collaborating or just want to swap notes, reach out directly — you can find me at the full spelling of my last name and first name at gmail dot com.