Coder Cowboy, LLC is Jason Baker’s personal software product company based in Round Rock Texas, near Austin. Currently, the company has a few iOS applications available on the Apple App Store.
Jason is a self-driven senior software engineer, blogger, and entrepreneur. He has experience ranging from big brand enterprise infrastructure, web services, and web applications to mobile applications.
Jason is always open to new and exciting employment opportunities in the Austin Texas area. He’s open to contract, contract-to-hire, or full time opportunities.
Jason enjoys creating and working on software products at enterprise scale with well-designed, extensible, and standards-based architecture. He’s enthusiastic, friendly, and sincerely enjoys making things better for customers and peers. He’s a big fan of java, objective-c, anything apache, and bash/unix scripting. He has team leadership and product planning experience, and prefers the technical-track side of engineering over management-track.
He has full software life cycle experience including requirements gathering, design, documentation, implementation, bug fixing, and long term support. He runs two iPhone and iPad application companies in his spare time, and publishes articles, open source code and scripts, and tips for other developers on this website and GitHub.
Pocket Sized Giraffe 2010-Present (Personal Side Project)
Pocket Sized Giraffe, LLC is a small mobile application team consisting of a designer, another developer, and Jason. Pocket Sized Giraffe published and maintains TumbleOn, the #1 paid Tumblr app on iOS for iPhone and iPad. Demo video.
TumbleOn is a streaming photo viewer that allows users to easily discover and browse great photos from the Tumblr service. Advanced features include stream grouping, and content analysis. It is consistently ranked highly in the app store’s social networking category, and has thousands of loyal users. Nearly 1 billion images have been viewed in TumbleOn since it was released in August of 2011.
The PSG team published an ad-supported version of TumbleOn and a free photo-uploading iOS application (Photo Lift) for Tumblr in 2013. These were later retired due to lack of revenue from in-app advertising.
Jason came up with the concept for TumbleOn, and leads development for the app. Together, the team plans and implements new features for several releases per year. TumbleOn is an objective-c iOS app that utilize’s Tumblr’s REST API. Product planning is managed with basecamp.
Coder Cowboy 2010-Present (Personal Side Project)
Coder Cowboy, LLC is Jason’s personal small mobile application company. Coder Cowboy features Jason’s iOS applications, open source code and scripts, and blog.
Coder Cowboy’s third application, A Million Moments, is a photo gallery app with full-screen image viewing. It helps users relax and focus on the people and events that make life worth living. Demo video.
Both rTimer and A Million Moments have several hundred users who use the apps regularly.
Small Mobile Consultancy 2013
Jason joined the firm in December of 2012 as an iOS team lead and account manager. While working there, he led development and implemented many features on five mobile applications for three clients.
Our first client was YooLotto. The YooLotto app is an innovative mobile application that allows users to track their lottery tickets simply. Users snap a photo of their tickets, and an internal OCR process automatically recognizes ticket information. Tickets are then tracked remotely by a custom API web service, which alerts users to wins and losses via push notifications. Hilarious, amazing, promo video.
Jason worked on both the iOS and Android versions of the YooLotto application. He led iOS and Android development for various versions of the product, led integration discussions with the API teams, and helped troubleshoot OCR issues.
Adidas’ R&D department utilized the firm’s services to build an undisclosed prototype product. This product consisted of an iOS iPhone application and a PHP web service. Jason led development and implemented the prototype with another senior engineer. Jason also developed and deployed the PHP web service on Amazon’s AWS stack.
HomeAway’s mobile application has been through a series of redesigns over the past few years. Jason and other engineers helped HomeAway’s mobile team build the 3.0 versions of the iOS and Android HomeAway apps.
Jason led the consultancy’s side of planning and development for the HomeAway iOS and Android products, and implemented a variety of features and utilities. For example, he created a utility to automatically convert localization string bundles from iOS to Android.
Vast is a big-data startup focusing on used automobile and real estate sales. Jason worked on a variety of middleware web services while at Vast.
Jason’s primary project at Vast was creating a java database-wrapper middleware service. The service was available as a REST API or as a jar-based library. Processes such as data pruning and data state management were previously implemented in multiple downstream applications, and this caused the downstream systems to become out-of-synch with each other. The new database wrapping service centralized and simplified such processes.
Jason also spent a fair bit of time refactoring and improving a legacy internal lead fulfillment middleware product. The product was a multitenant web service that served as a callback endpoint for third-party vendors. Refactoring the product was difficult due to previous junior-level copy-paste/hacker development. Jason and his team lead developed a http proxy test framework that simplified recording and replaying black box tests. This test framework ensured a high level of refactoring confidence, and required significantly less time investment than reverse engineering code and hand writing unit-tests.
Jason assisted with several other initiatives while at Vast. He successfully de-sharded a buggy and unstable sharded database implementation; assisted with PHP bug fixes for various front end products; implemented various service-side features for a real-estate management application; and fixed a few bugs in a mobile application. He also modified and implemented a few small hadoop distributed processes for a real-estate sales state management service.
Vast offered Jason a small amount of team leadership experience, and a lot of autonomy. His primary experience gained from Vast was web-services and database focused.
MomentumSI is a cloud engineering consulting firm. Jason worked with and learned from several principal and senior level consultants on a private cloud-in-a-box product offering from Dell.
While working on the cloud product, Jason had his first hands-on experience with enterprise-level data center hardware. Each team working on the product had an entire rack of hardware that consisted of rack computers, blade computers in chasis, networking components, SAN equipment, and power management components. The experience also introduced Jason to asynchronous programming, and ESB concepts.
Jason’s team consisted of three senior engineers and several junior engineers. Jason and his teammates succesfully delivered middleware webservices that asynchronously managed automatic unix and windows provisioning processes. Jason and his teammate, Adam, also delivered several self-driven productivity increasing initiatives consisting of wiki documentation; various tools, and scripts.
Jason joined PayPal as a junior developer. He was the only junior engineer in a group of about 20 who had left Visa to form the PayPal Austin office. The office was founded as a skunkworks of sorts, aiming to improve PayPal’s development processes.
Jason’s first project at PayPal was a rewrite of a proprietary xslt-based web page rendering product. The rewrite had a dual purpose: it improved the product, and provided an example of java as a viable programming language (as opposed to strongly-held internal faith in legacy custom-built c++ cgi-based solutions). The rendering service’s development team was very small, with only 3 engineers and two QA engineers. While on the project, Jason learned distributed service and concurrency fundamentals. He implemented many of the core subsystems and features for the product. The system briefly served 98% of PayPal’s web pages, utilizing an elaborate on-demand dynamic content build system spread across several pools of high-performance hardware.
Jason’s team also supported the legacy c++ product while the java-based version was in development. Jason led requirements discussions with the internal localization and internationalization teams. The localization process for PayPal’s web pages had become unnecessarily complex and poorly documented as the legacy product matured, and single-handedly reimplementing these features in the Java system was non-trivial. This localization feature porting provided Jason with his first true unit-testing experience.
Later, Jason briefly spearheaded a prototype framework for the localization team. The framework automated, simplified, and decoupled error-prone content on-boarding processes from various disparate external systems.
After the web rendering project, Jason was promoted to senior software engineer, and offered a position that implied repeating the web rendering project’s development again for several years. Instead, Jason switched groups, hoping to pick up webservices experience on PayPal’s platform initiative. There he and his teammates successfully delivered a small product that consisted of a few webservice calls and a front-end that managed “PayPal Apps” (embedded applications written by third party developers).
World’s Worst Software 2006-2010 (Personal Side Project)
Jason created the World’s Worst Software website to host some self-published applications he created while learning about Java and Bash scripting. The site featured many of the bash/php/js scripts, and a few articles now hosted here on Coder Cowboy.
Content from the WWS days:
- bash scripts
- web scripts (php, js, etc)
- How to setup Bash on your computer
- Custom OSX log file rotation / archiving
iPlaylist Copier is a java-based multi-platform (OSX/Windows) desktop application that Jason self-published under the WWS label. The application allows users to easily export iTunes playlists using a customizable folder/filename structure. The application is open-source, and can be downloaded from github here.
Jason also packaged and self-published several underlying pieces of iPlaylist Copier as a library called iTunesUtilities. The library consists of utilities such as a hand-written iTunes XML plist-format parser that spits out POJOs such as ItunesPlaylist, ItunesLibrary, and ItunesTrack; and a utility that auto-locates the user’s iTunes XML file on either Windows or OSX. iTunesUtilities is also available on github.
Visa was Jason’s “first real software engineering job” after he graduated from UT Austin. Jason learned software engineering lifecycle fundamentals while at Visa. He learned about requirements gathering, planning, design, implementation, qa, and long-term support.
His first project was a card inventory management web application. For that product, he worked on a small team of four engineers. Jason, and two other engineers focused on the front-end web application work in ASP.NET with C# backing, and another engineer developed the web-services middleware that integrated with other downstream services. Jason learned about MVC and other basic design pattern basics while working on the inventory product.
Later Jason joined a larger team that developed a skinnable web application for bank customers to view and manage card balances. The web application was rewritten from scratch several times, at management’s insistence. The upside of the continuous rewrite experience was that Jason learned pros and cons of various implementation choices very quickly.
After the prepaid projects, Jason started picking up Java for an internal Customer Relationship Manager (CRM, or: call center) application. The legacy version of the application was a heavily-customized siebel-based application that had many years of baked-in/seldom-documented requirements. While on the project, Jason developed spring/hibernate-based web services and database SDLs. The project also gave jason his first exposure to reverse-engineering and detangling legacy requirements from established production systems.
Farmer’s Insurance 2003-2004
Jason worked for a regional manager for Farmer’s Insurance while he was pursuing his computer science degree in college. Jason was the regional manager’s I.T. guy.
A Farmer’s regional manager’s primary goal is to find and recruit local insurance agents. Doing this effectively in 2003 meant farming through resumes posted on Monster.com, printing them out, and manually managing time-based lists of email-addresses for monthly recruiting newsletters sent from a single computer. Jason quickly tired of the manual resume harvesting process, and he suggested writing some software to automate the process for his boss and coworkers.
He spent his first summer at Farmers creating a semi-distributed (network-shared file..) application that automated storing copy/pasted resumes; sending newsletters; and the email-subscriber lifecycle. The application was developed in VBA as a simple form-based application built on top of Microsoft’s Access product.
While at Farmer’s, Jason picked up HTML and CSS fundamentals while creating the branch’s personalized website. The website still exists online to some degree, you can check it out for yourself.
Jason also managed I.T. infrastructure for the branch, which consisted of a windows network in the days when windows networking was terrible – well, more terrible than it is today He also installed and managed a small instance of Microsoft’s Exchange Server, along with desktop installations of Outlook for employees.
Fablesoft 1999-2005 (Personal Side Project)
At the age of 18, Jason developed and self-published a product named Lan Chat. Lan Chat was a shareware tcp-ip peer to peer (p2p) chat application written in VB6 for windows, a few years before p2p became a thing. It supported group chats, logging, file transfer, and sported standard chat features such as password protection and the ability to kick or ban troublesome users.
Later, during his senior year of high school, Jason pivoted on the p2p concept and developed a file-transfer application called File Messenger. File Messenger featured queueing, auto reconnection, and auto transfer resumption; – features that were available in a favorite FTP client of his, BPFTP. File Messenger was developed in VB6.
As a freshman in college, Jason developed another shareware application to help automate high school programming classroom issues. His third product, Class Project Manager was developed as a thank you to his high school programming teacher. The VB6-based windows desktop product allowed students to submit questions and homework to their teacher over the school network. It saved time and resources wasted answering common questions and printing out source code.
Lan Chat, and Jason’s other self-published software applications were published under the label “Fablesoft”, which Jason registered with a DBA as a sole-proprietor while still a teenager. Jason developed all of the applications, and created well-documented help and webpages for each of the applications. Several of the applications were favorably reviewed by sites such as Tucows. Lan Chat was downloaded about 10,000 times from C-Net’s download.com.
While in college, Jason learned about c++ and developed a few more freeware desktop applications under the Fablesoft label. These were developed in Microsoft’s Visual C++. He published a p2p checkers game that also featured chat functionality, and a “terror threat level checker” joke app that displayed the current US terror threat level in the windows tray.
When Jason was a child, his father purchased a Tandy 8086 clone, with a fancy EGA monitor. His father installed many games, and developed a dos batch-file based front-end menu system that made it easy for Jason and his younger brothers to easily launch the games. You could say that front-end custom menu system was the spark of creativity that later inspired Jason to become a software engineer.
As a youngster, Jason purchased and put together his own 386-based computer and used a dial-up modem to frequent several DFW-area BBS’ under the handle ‘slacker’. At the time, he self-taught himself the basics of Dos and how to install Windows 3.1. He often helped family friends fix and install or reinstall Windows or Dos.
Jason learned programming fundamentals (QBasic) in a middle-school class around 1996, and later learned Pascal and C++ during his junior and senior years of high school.
In 1996, his family purchased an internet-capable Windows 95 computer. Jason quickly took over that computer and discovered web browsers, IRC, and FTP. A little while later, one of his IRC friends introduced him to the scripting capabilities in his favorite IRC client.
Jason’s first home-grown program was an IRC script called Quotes 2000. Quotes 2000 stored and echoed funny memorable quotes by monitoring IRC channels for commands such as “!quotes2000 remember
A few months after Quotes 2000, Jason’s IRC buddies introduced him to Visual Basic, which, at the time, was the easiest way to develop windows desktop applications. He was excited about Visual Basic’s potential, as he had recently installed a personal network at home, and he needed a simple peer to peer chat program that was easy enough for a non-techy to use. He looked around and could not find a chat program that satisfied, so he built his own. He immediately began developing his first shareware product for Fablesoft: Lan Chat.
Jason enjoys creating software that enhances peoples lives, be it through entertainment or automation. He has a special affinity for developing productivity-enhancing tools and scripts, and likes working on or leading small teams of engineers. He prides himself on his abilities to quickly and efficiently solve problems with a minimum level of effort. He’s a fast learner and is comfortable working software projects of any length in mid-size or larger companies.
Last updated September 2013.