Portfolio

If only we could play video games all night without getting caught..

Jason picked up the programming habit in his junior year of high school. He started simple, with a script for a popular windows IRC client. His script listened for two simple commands. One command would store a quote in a file, and another command would make the program echo a random quote from the file. He and his chat buddies had great fun with “Quotes 2000″ for a number of years. That was where it all began. Making something from nothing, and enriching people’s lives with a few lines of code. That was Jason’s destiny.

That summer, Jason noticed another problem he could solve. He had recently installed a low-cost LAN between two home computers and was having a blast playing Duke Nukem 3D and Quake with his brothers. A problem occurred when he wanted to chat with his brothers outside of the games. The boys tended to shout down the hall at each other to setup the next game, and that’d lead to trouble when later hours wore on and Jason’s parents were trying to sleep. So, Jason searched for a simple peer to peer TCP/IP based chat program that could be used on a home LAN. He couldn’t find anything that worked to his satisfaction, so he made something on his own.

Jason went down to the book store, bought a reference book about Visual Basic 6, and had a coworker get him a cheap student-licensed copy of Microsoft’s Visual Studio suite. A few months later, Jason’s first software product, LAN Chat, was born. LAN Chat allowed a simple peer to peer chat session, or a more complex multi-peer group chat with a centralized host. At the time, popular IM programs such as ICQ and AOL’s AIM were just starting to pop up, but they required a constant internet connection to work, and none of them offered the great group chat ability Jason was used to from IRC. LAN Chat solved those problems, and made Jason’s life easier.

Jason published LAN Chat on the web as shareware software for anyone to download and try. Sales were not astounding, but tens of thousands of people downloaded and used the program. The application was rated highly on various shareware review websites, including Tucows.com (a big site back then..). Not bad for a 17 year old.

Why is this so stupidly complicated?

The next problem for Jason was easy-to-use file transfer. Jason and his friends collected music videos recorded from MTV, and the files would often take hours to transfer. Jason and his peers understood concepts such as FTP servers and clients, but he couldn’t get other friends who barely understood instant messaging to deal with such complicated processes. To make matters worse, the IM programs at the time were very beta when it came to file transfer. You’d be in luck if even the smallest file transferred, and forget anything fancy like resumption for a large file that’s already partially transferred. So began File Messenger, a simple file transfer product built on top of the LAN Chat engine, with features such as a file transfer queue with drag-drop support, reliable auto-reconnect and auto-resume functionality.



When the time came to release File Messenger, Jason was nearing the end of high school, and the self-limiting company name of “LAN Chat Technologies” was no longer appropriate for his vast portfolio of (two) applications, so Jason changed the website’s name to Fablesoft and continued to publish software under that name throughout his college years.

Even in the beginning, Jason understood something that would take a long time for him to put into words. That was this: user experience is premium, and great software is invisible to the user, it just works. Years later Jason would learn about Steve Jobs and his famous simplicity-is-everything philosophy, but Jason already knew simplicity was right, even before his career officially began.

Never settle for being bored.

In his senior year of high school, Jason had the great opportunity to learn from one of the greatest software development teachers out there, Mrs. Susan Sevier. Susan taught Jason C++ and the fundamentals of what makes great software great. She had worked in big defense on flight simulation software and she knew a thing or two about the difference between text book programming and real life programming.

Early on, Jason asked Susan why she’d dropped out of good-money defense programming in favor of teaching, and Susan replied that she’d rather do something she loves than do something she’s bored of. Jason learned a really big lesson about career and life in general from Susan, life’s too short to spend your days doing something that you’re not in love with.

After high school, Jason went to the University of Texas at Austin for a bachelors degree in computer science. There he learned about C++, Java, computer hardware, assembly, ethics, software libraries, and a bunch of great fundamental theory that not all universities offer.

A little thank you.

While at UT, Jason reflected back on his time in high school in Susan’s class, and he wanted to make something that’d make her job easier, as thanks for her inspiration and investment in his life. Jason developed Class Project Manager, a product that simplified student project submissions and questions.

Before Class Project Manager, teachers like Susan would have students hand in diskettes with copies of their programs, or worse, have the students print the programs out on paper. Jason’s product made it easy for students to submit their work to the teacher. The product stored files in an easy-to-understand folder structure on the teacher’s computer and eliminated the need for diskettes or reams of paper.

Class Project Manager also addressed a common high school teacher’s dilemma: there was only one teacher, but there were usually half a dozen hands in the air waiting for personal assistance on one troubling concept or another. Class Project Manager had an easy “submit your question” feature that would submit questions to the teacher’s computer over the LAN, making it possible for the teacher to quickly see a big list of problems the students were having. Instead of discovering a problem on the third or fourth repeat student question, the teacher would know immediately what the general trend of problems was every time they checked back at the computer.

Class Project Manager hit right at the time when public schools in america seemed to start to “get it”, and windows started incorporating simplified file share functionality and the like. Previously, Susan’s school network was something based on Novell’s Netware stack, which was hopelessly complex for student use, but simple file sharing made Class Project Manager something of a niche product that never really went anywhere. However, a few teachers here and there did e-mail Jason to thank him for the product. To a 19 or 20 year old, receiving a legitimate thank you note from a grown up teacher was like receiving an Oscar. To Jason, those notes made the entire concept and time invested a worthwhile and positive experience.

Real careers start in the deep end.

Later on in his college years, Jason picked up the most amazing programming book ever: Programming Windows 5th Ed by Charles Petzold. Petzold’s book lays out Microsoft’s c++ win32 library and making windows programs from start to finish. With Petzold’s book in hand, Jason cranked out a few freeware applications including a partially buggy peer to peer checkers game, and another few utility applications.



Jason’s Fablesoft efforts and entrepreneurial spirit helped land him a job with Visa in Austin. There he learned about MVC patterns and what-its-really-like to program in a big company. He cut his teeth on Visa’s popular prepaid products, a major project that was run out of Denver with some of the team working in Austin at the time. Jason learned all about web applications, and Microsoft’s .NET framework while on that project. He was a part of a few very small teams who knocked out inventory and customer facing products for the prepaid card industry. To this day, big banks and vendors take some variant of that product, rebrand it as their own software, and sell and maintain prepaid cards with it.

Jason’s experience on that first project was priceless. There is no better way to come up to speed quickly on full-software life cycle topics than to throw the college grad in the deep end along with a team of two other developers who are ten years senior to the grad. Jason learned enterprise application fundamentals during his two years on that product, and he learned those fundamentals faster than an average career in programming allows.

Something more for the community

While working at Visa, Jason closed Fablesoft down and started something new in its place. He started World’s Worst Software, an amazingly named side-project website that featured two great things: some bash scripts, and some names of Jason’s peers. Calling out some of his peers as great developers by name on a website entitled “World’s Worst Software” had some unintended SEO consequences for a few of his peers when their names were typed into google, as the second or third result for their name would say in big letters “WORLDS WORST SOFTWARE – JOHN SMITH”. Good times.

Jason had a short-lived position at VISA, after the prepaid project, working on something in Java rather than .NET, so he used his spare time and his World’s Worst Software name to relearn Java, and create/publish iPlaylist Copier. iPlaylist Copier makes it easy for iTunes users to copy their playlists into folders with configurable file names that are friendlier for non-apple-branded mp3 players than iTunes’ drag/drop copy feature is.

Later, Jason started getting into the wonderful (at times..) world of Bash scripting, making himself a few useful core utility scripts that help him to automate cross-platform backups with integrity checking and the like. Those scripts are also featured on World’s Worst Software. One of his scripts there, md5tool.sh, went on to be used in some embedded device out there running some embedded variant of linux. That was another pretty cool e-mail of thanks from a fellow developer that Jason will never forget.

Cowboys on the frontier of the 21st century, 7+ years too late.

After VISA, Jason followed a few all-star developers over to PayPal. PayPal was hurting in 2007 and needed some infrastructural repiping here and there. The Austin PayPal office started off as a skunkworks think tank to make things better. There’s a photo on PayPal’s wall of the initial 20 developers who started that PayPal office. There are 19 or 20 senior and principal level developers, and Jason, the all-star-to-be kid with 2 years of professional experience under his belt.

At PayPal Jason worked on one of the most exciting products of his professional career. He worked on a small three man team that ported, enhanced, cleaned up, and productized an internal legacy product that was slowing the company down. For three years Jason and his senior level peers ran wild like cowboys, showing PayPal that Java wasn’t slow, and that great architecture really can be simple. Today that product powers nearly 100% of PayPal’s web pages. It helps PayPal developers debug and improve pages with various internal tools that Jason and his peers built into the product, and it set the standard for how internal tools should be built and supported.

Jason’s PayPal experience, like that at Visa, was incredibly lucky. Working again on a small team, with time given to do things right, Jason had an immensely fortunate and important opportunity to learn about not only making a product, but making the right product in an agile manner, learning and adjusting along the way. Jason learned about senior level concepts of design patterns, scalability, concurrency, tool creation, cross-organization collaboration, leadership, and compromise. He contributed more than half of the product’s great core and peripheral features that made the product an amazing success that lives on and makes PayPal a slightly better place to work to this day.

Something slightly different.

After PayPal, Jason jumped into Cloud infrastructure products as a consultant with MomentumSI working with a Fortune 100 big-name company in Austin. Jason worked on and improved a services based modular product that simplified private cloud management. The product made complicated and time consuming data center problems such as server management and OS deployment pain-free and simple, almost as simple as Amazon’s S3 product. Jason picked up quite a few unix and services related skills while working on that project in 2011, but more importantly, Jason had the opportunity to see how some big companies differ from others, and how some things are always the same.

While on the cloud project, Jason learned a bit about himself and his inherent enthusiastic go-getter attitude. His attitude was the norm at the PayPal think tank, but it isn’t the norm elsewhere. Jason learned that making products truly happen often depends on software engineers with courage delivering above and beyond expectations, and helping their peers to deliver as well. Jason was in a bit of a bubble of excellence back at PayPal, but his experience on the cloud product really helped him to find his voice and set a shining example for how software engineers ought to work, communicate, and inspire one another. Jason learned that teamwork makes any challenge surmountable.

“I just want an Interval Timer that works!”

While working on the next-big cloud product, Jason also spent a bit of time in 2011 making a few iPhone and iPad products on his own and with friends of his. His first product, Runner’s Interval Timer, came from a bit of inspiration that was reminiscent of his very first program, LAN Chat. That is, there was a problem his wife needed software for, and good software didn’t exist. There were a dozen interval timer applications available on the iPhone, but none of them were user friendly and easy enough for Jason (a mildly intelligent software engineer) or his Wife to figure out or call satisfactory. So, Jason went off and made the iPhone Interval Timer app that everyone’s looking for.

His second personal app, released under the Coder Cowboy label, was Music Roulette. A simple solution to Jason’s frustration at always defaulting to a top ten all-time-greatest album list that he carries in his head. Jason loves great music, and has a lot of it on his iPod Touch, but he can never remember an album he bought a year or more ago. He remembers Siamese Dream (the greatest album ever, period.), but there’s a lot of other great music that he just always glosses over without looking. Add to this problem the fact that the on-board iPod player doesn’t really have a fun or easy way to pick a random album, and Music Roulette was born. Music Roulette lets a user pick a random album from their iPod collection with a fun and easy interface. The app makes it easy for the user to play the chosen album, just a song, or every song by the given artist. It’s quick, easy, and like all great software: it’s almost invisible in terms of learning curve. It just works.

Jason’s latest accomplishment is an iPad app, TumbleOn. Jason bought an iPad in early 2011 and noticed a lack of truly great Tumblr photo blog iPad apps, so he set out to make one with two of his good friends. TumbleOn lets a user see great photos fast, and find new tumblr photo blogs easily. TumbleOn is a beautiful application that runs smoothly and sets the bar for streaming photo applications on tablets. Jason can’t be credited for the amazing look of the app, that was done by his amazing peer who’s a graphic designer, and he can’t be credited for all of the fancy algorithmic awesome-sauce in the app that he and his developer partner-in-crime put together, and he likes it that way. TumbleOn is Jason’s first great team-built software adventure outside of corporate culture, and Jason and his friends are having a blast making TumbleOn into something you and your friends love to use.



Lessons learned..

Jason’s brief professional career and slightly longer entrepreneurial career has taught him a few great things that he considers defining principles in his career and path through life.

First, software is easy, it’s just writing and reading files of one type or another and doing something based on file contents.

Second, software done right is simple, elegant, easy to understand for the user, as well as for the current and future developers behind the product.

Third, a team is better than one person, always. Very few truly great products are the product of one person’s work. Sure, John Lennon is awesome, but he was much better as a Beatle.

Fourth, the web is amazing, and someone out there has already encountered your problem and made a library or algorithm to help you solve it. That is, you can make amazing things thanks to the greater software development community out there. Developing software in the age of open source utopia is not unlike standing on the shoulders of giants. Jason can make some really great software easily, but what makes his software great is the great products and technologies those who came before Jason put together.

And finally, fifth, as Susan taught Jason early on, life is too short to be bored or unhappy with yourself or your career. When you’re bored, move on to that next great opportunity that’ll not only challenge you, but also inspire you to be great again.

Sold?

If you’d like to work with Jason on something corporate, or on the side, shoot him an e-mail, or get his resume into the right hands. Jason’s always happy to hear about great new software engineering opportunities, and he’d love to create something amazing with you and your talented team.