Web engineering case studies

Over the years, I've helped numerous clients of all shapes and sizes build better software for the web. Below, I've chronicled a few of my favorite experiences, in an effort to help you determine whether I might be able to help you:

For more information about me and how I work, check out my About my services page.

Re-skin your React app

Chatlio is an embeddable platform for chatting with website visitors directly from Slack. I led and implemented a series of design and branding changes to make their product stand out against their competitors.


About Chatlio

Chatlio is the premier embeddable chat platform to offer comprehensive integration with Slack. This unique integration makes their product a favorite among companies who have adopted Slack as their foundational communications platform.

Having been born out of a real need for a Slack-integrated chat solution, Chatlio's visual design was a bit of an afterthought. When it achieved commcercial success, CEO John Eberly wanted to ensure Chatlio's continued success in a growing market of embedded chat solutions by applying a novel visual redesign.

How I helped

When they approached me to integrate a new design into their existing ReactJS-based codebase, I wanted to ensure a smooth transition for both Chatlio users as well as the engineering team. I led the implementation of CSS that implemented the new design with minimal markup changes, ensuring existing users who customized their site's widget styles would suffer minimal pain.

I always leave a codebase in a better place than when I found it. That's why I took the liberty to extract new React components where applicable, scope CSS classes using the BEM convention, and applied additional refactoring as needed.

What they say

Teejay did an amazing job of exceeding our expectations.

I was able to engage with him immediately. And he made a a big impact, fast.

We improved our product experience quickly without many changes to our backend code.

It was well worth the investment we made and we received great feedback from our paying customers on the improvements.

We will definitely hire him again when the need arises!

— John Eberly, Chatlio

Integrate Equifax into your Rails application

Rhino gives renters more options by replacing traditional security deposits with a small monthly fee. They hired me to help them better define their user interface, re-architect their CSS, and integrate with the Equifax credit reporting API.


About Rhino

Rhino is giving renters more options by replacing traditional security deposits with a small monthly fee. Their service cuts down the cost of renting a new apartment signficantly, which gives renters access to better apartments and more money in their pockets.

How I helped

Rhino engaged me in the period before their planned launch. Two main tracks of work stood in their way:

  1. Improving their onboarding user experience.
  2. Integrating with Equifax to provide on-demand credit rating for prospective customers.

Give your users that polished experience

When Rhino came to me asking if I could help them polish their app for launch, they had built a user onboarding workflow that was functional, but had some inconsistencies in its design. These included small but non-trivial issues, like poor background image alignment and mobile display problems.

I helped the team at Rhino understand their problems through both design and engineering lenses. When you're nearing launch, it's critical you consider both the ideal implementation as designed, as well as the tradeoffs that need to be made in order to deliver a reasonable product by your deadline. I sought to help clarify that sweet spot for Rhino so they could launch with a version of the product that gave them confidence in the marketplace but didn't break their budget.

Get on-demand credit score reporting for your customers

Rhino uses both TransUnion and Equifax to obtain basic credit information from their renters. Navigating the myriad API options in the Equifax API documentation can be tricky. I helped Rhino develop a custom API library to submit credit reporting requests to Equifax and retrieve their prospective renters' credit score.

Want to integrate credit reporting into your Rails application? Get in touch and tell me a bit about your product. I'm happy to share what I know.

What they say

Working with an outsourced development team has had some surprising upsides: among them the speed with which we were able to build our initial MVP, but when problems have gotten abstract or needed truly expert-level resources, things have broken down.

Some problems that had been difficult to not only solve but even define with other consultants were defined and solved quickly with Teejay after a brief conversation.

He helped us move our product from something we could launch and live with to something of which we could be proud, and he didn't want to commit to work until he knew he could do it to a high level of satisfaction, and it helped us internally to frame these vague problems in terms of achievable milestones.

Finding full stack experts who can dive into the project and begin to immediately deliver results for problems that are not fully known at the beginning has been a challenge, and Teejay certainly delivered.

— Bryan Woods, CTO, Rhino

Build an online game

Do Your Part, Cincinnati! is an online animated game to help residents of Cincinnati understand who is responsible for a sewer backup. I led the implementation of the game for the web, taking design assets from Epipheo and producing an HTML5-powered interactive, animated game experience.

Do Your Part, Cincinnati!

When Epipheo approached me to help build the Do Your Part, Cincinnati! game experience, "modern" JavaScript was in its infancy. BackboneJS had yet to give way to React and Vue. We were still fighting over which package manager was the best (and, some would argue, we still are). At the time, it was novel to build a game for the web in anything but Flash.

I opted to use CSS3 sprite animations for all the character animations, which were performant and smooth compared to any JavaScript-based options at the time.

Build tools that close more sales

PS Dept was an on-demand luxury shopping club available on the iPhone. I led the automation of their sales pipeline and order processing workflow to reduce cost per sale and increase conversion.

PS Dept

About PS Dept

PS Dept brings the idea of personal shopping into the 21st century. It allows customers to ask questions about availability, price, and purchase merchandise from its partners directly in the app.

Customers interact with PS Dept's team of personal stylists via rich text messaging within the PS Dept iPhone app. They are matched with a stylist who can provide styling recommendations and fulfill their orders.

PS Dept


Because PS Dept relies on human stylists to serve its customers, my product engineering efforts were focused on reducing the time required to process each sale.

To do this, we needed to find a way to identify and prioritize the most valuable customers based on the types of interactions they had with the styling team.

And, because there were several channels through which customers interacted, we needed to assess which channels where most valuable.

How I helped

To do this, we provided stylists with tools to identify and prioritize their most valuable customers.

I also engineered solutions to increase conversion by identifying the channels with the highest conversion rates, and help shift personnel focus to those channels.

Both of these solutions were facilitated through an internal suite of tools tailored specifically to optimize the stylists' workflow.

Automate your social media engagement

Hype Social helps Twitter and Instagram users gain traction and followers with a unique blend of custom-tailored consulting services and an in-house management platform. I led the development of Hype Social's platform to help automate repetitive tasks and help Hype's clients increase their social media engagement.

Hype Social

About Hype Social

Hype Social employs a suite of strategies to help Twitter and Instagram users engage with more followers and provide more value.

Their proprietary internal platform helps Hype to interact directly with its clients social media accounts and automates specialized workflows for helping their clients gain traction with their audiences.


Hype Social manages hundreds of client accounts at a time, so providing them with an administrative tool for managing their client's accounts and gaining visibility into the trends affecting their accounts was paramount.

And because we leveraged the Twitter and Instagram API's to capture real-time data about each client account, scaling the tools proved a challenge.

Social media API's can be a bit cumbersome to work with at scale. Rate limit considerations, network I/O limits, and difficulties in producing automated testing to cover all scenarios all stand in the way of success.

Additionally, Hype's team required a user experience that helped them manage their client base without too much friction. Transparency and visibility were key metrics for success.

How I helped

I built each of the tools in Hype's platform toolbox iteratively and as needs arose. This meant I was able to deliver value to Hype's clients early on in the product development process, instead of specifying a final design and delivering it all at once.

And the experimental nature Hype's services necessitated this kind of approach. As we delivered features, customer inquiry would often guide our development. Before long, Hype had a long list of clients and we were scaling to serve each of them.

Social media at scale

Scaling social media applications can be difficult because it requires capturing data in real-time and responding to it as it is captured. Doing this for a few accounts is easy. At scale, limitations in I/O and API rate limiting start to rear their ugly heads.

I worked with Hype to develop unique strategies for working within the constraints of the social media services. We implemented rate limit throttling to ensure we were well within the bounds of the Twitter and Instagram API Terms of Service. And we employed several database optimization techniques to help manage data at scale.

Heightened visibility

Because social media management relies on metrics to measure success, Hype needed a way to see at-a-glance global and account-level metrics to tune their techniques and ensure clients their strategies are working.

This meant producing both global and account-level dashboards with sophisticated reporting for each account's key performance indicators, as well as automated email alerts in the event something went wrong.

What they say

"Teejay can solve any problem with code. He is personable, smart and fast. Over the course of seven years I have watched him build half a dozen startups by himself.

Beyond being a great developer with a great personality, he truly wants to build the best product possible and is always pushing the envelope for design and experience. Making products that are beautiful, elegant and functional is what he does best.

There is nothing that would stop me from working with Teejay again. In fact, working with him has ruined me for working with other less capable developers.

He’s an amazing talent and a force to be reckoned with."

— E.J. Coughlin, Hype Social