Rails dev for the past 14 years.
On the backend, I've been programming Rails since October 2004 before Rails was even 1.0, I consider myself an expert in both Rails and Ruby by virtue of having written and read code on so many projects in different domains. I would add that I've also been humbled by how many geniuses I come across in the Ruby community so while I consider myself an expert, I can point to a lot of people much smarter than me.
On the devops side I love doing server stuff I also think I might be quite good with Chef configuration management and I'm thinking of getting certified in it.
I spent the last year working on my own app called WingTask and now I'm returing to looking for full time work because quite frankly I'm not convinced my app will generate any revenue.
I'm American and Thai, I grew up in Southern California and now I work remotely from Bangkok, Thailand. I match my hours to US time so there's no issues regarding hours overlap. I have a girlfriend who owns a bar and so if I don't work nights then we don't see each other. It's unusual but it works for us.
I work during US hours.
I'm generally contract with the company's I work for as a 1099 contractor.
Confident and competent, this skill is practiced over many years and is kept up to date with the latest developments.
Comfortable yet there is still some aspect of this skill that can be further explored and learned.
This is a skill that is currently being learned and used. Mastery has not yet been achieved.
This skill was once learned and maybe even at level of mastery but it hasn't been used in a long time and now is outdated.
No previous experience with this skill beyond perhaps reading an article or dabbling with it.
Born at USAF Kadena Air Base, Okinawa Japan to Thai mother and American father.
1974 - 1979
As a toddler, lived in Okinawa, Thailand, Phillipines, and Guam
1979 - 1992
At the age of 5 Moved to Anaheim California, and grew up there.
My family are all engineers so computers were often around. Tandy, Texas Instruments TI-99/4a, Apple II. Hacked a text based zork-like game written in Basic to figure out the exact text input needed to win the game.
Got a PC clone and Beat King's Quest II, Space Quest, and Leisure Suit Larry.
Dialed into Bulletin Board Systems with a modem to play multiplayer online text games.
Attended the University of California at Santa Barbara, graduating with a degree in Business/Economics emphasis in Accounting.
Passed half the of CPA exam and decided I didn't want to be a public accountant.
Worked as a staff accountant for various companies.
After automating the generation of an Excel spreadsheet using Visual Basic I was pulled out of my accounting position and rehired as a programmer at the same firm with double the salary. At this point I started my career as a programmer leaving accounting forever.
1999 - 2002
Piaggio & C. SpA is an Italian motor vehicle manufacturer, which produces a range of two-wheeled motor vehicles and compact commercial vehicles under seven brands: Piaggio, Vespa, Gilera, Aprilia, Moto Guzzi, Derbi, and Scarabeo.
Created their warranty claim system as a windows app. Dealers submitted claims for work performed on scooters as part of their warranty obligations. I wrote a dotnet app that helped with the tracking of the claims, pulled in information from the Great Plains database, and allowed for the support of a workflow for staff who needed to approve the claims and send payment to dealers. The app was highly successful and was showcased when the President of Piaggio visited from Italy, as no other Piaggio subsidiary had a similar system.
2002 - 2004
Global investment bank RSM EquiCo Capital Markets LLC, was one of the US's most successful merger and acquisition advisory firm. They eventually became the mergers and acquisitions subsidiary of H & R Block.
Worked with the in-house development staff to build new features for software package that managed the workflow of the entire company. A deal comprised taking a new prospective company and doing the groudwork and research necessary for that company to receive a valuation and be sold to a buyer. Deals were tracked through various stages by large number of staff in various departments.
Stop-loss insurance is insurance that protects insurers against large claims. Stop Loss Insurance was a brokerage that specialized in selling stop loss insurance to Hospitals where the hospital would take insurance for rare high cost cases such as extremely premature babies or people with rare diseases that required very expensive treatment.
As vice president of technology at an insurance company, I wrote SQL scripts to process hundreds of thousands of health claims to allow a brokerage to arbitrage better rates for hospitals based on proving insurance providers with more accurate health data that I calculated. This was a small 7 person insurance brokerage and everyone there was a vice president of something.
Discovered RubyonRails and quit .NET forever. A friend sold his startup to Microsoft and he wanted me to architect the next start up he was build after his acquisition obligations were finished. I started building an app stack for .NET using the best frameworks and tools available at the time. One afternoon I tried Rails and saw in an instant that it was better than anything else that existed. I knew I saw the future. Ruby at that time was unknown and my friend asked with incredulity that if I was switch to a dynamic scripting language then, "Why not Perl? They have Cpan." My story of switching from .NET to Rails was picked up as one of the first conversions soon to come.
2005 - 2015
Moved to Florianopolis Brazil, it was a goal in my life to learn a foreign langauge fluently and I chose portuguese. I spent 10 year in Brazil which allowed me to realize my goal of learning a language and also it gave me very special experiences.
Wrote a Rails app that interfaced with a java backend and allowed for the purchasing on ringtones and other content for mobile phones. This mobile app was before the iphone so the app was very rudimentary and the actual transaction to place across SMS. Later developed a 3rd party ringtone app for selling Ringtones at Skype.
Moved to Seattle for approximately a year where I worked with a friend on his startup that never panned out.
2007 - 2008
Vulcan Inc. is a privately held company founded by philanthropist, investor, and Microsoft co-founder Paul Allen. Established in 1986, Vulcan oversees Allen's diverse business activities and philanthropic efforts—from sports teams, which include the Seattle Seahawks and the Portland Trail Blazers to conservation projects such as the Great Elephant Census and business ventures like the Seattle Cinerama. Vulcan Labs LLC was the experimental startup arm of Vulcan where experimental startup ideas where incubated.
Gist integrated with Microsoft Outlook and Gmail to aggregate emails and related material (links, attachments, news articles) by people and company. It also brings together feeds and information across social networks.
I worked on the core features of the app, which in the initial stage was the importing of emails from both IMAP and Gmail. A rudimentary parser was built to extract email addresses and urls from emails. Attachments were analyzed and recorded for their size, type, and title. Next the data was packaged for the UI which would present the user a dashboard that included a list of all attachments or things like a 3-D cloud / graph of the user's email social network.
I learned two important lessons that still inform my decisions to the current day. The first was that my job as a developer is to deliver business value and not as I had previously thought to build well-written software that was bug free. Instead with Gist we were trying to shotgun ideas fast enough and with just enough visibility of features to allow decison makers to decide whether to move further with the project. This meant that the app itself was either not functioning or riddled with bugs most of the time in the initial stage and that was fine with the stakeholders.
The second lesson occurred after Paul Allen gave his personal greenlight to go further which was then we had to shift focus and take the half built features and make them perform as expected without bugs. An effort towards that end was to have the developer who knew the most about writing unit tests (me), write the unit tests for the entire app at 100% code coverage. Though I achieved the end goal, I realized that a lot of the tests I constructed were meaningless shells of a test designed to fool the code coverage tool rather than providing what I believe to be the constructive value of unit tests. The reason this happened is because part of unit test is expressing the intent of the code that it's testing, this goal is lost when the developer writing the tests is not the one also writing the code. Although I lost faith in this activity I would further down the road repeat the same action of writing unit tests retroactively despite my protests.
Socrata develops and operates a government domain-specific, cloud-based data as a service platform that breaks down government data silos.
Analyzed slow performing pages and changed both Ruby code and SQL Queries to make the pages run faster. First indexes and compound indexes were added where possible. Expensive Ruby Array operations were analyzed to see if they could be better pushed to PostgreSQL particularly when it came to filtering and sorting operations.
2008 - 2009
City Winery in New York City is a fully functioning winery with intimate concerts, food & wine classes, private events in a variety of configurations, and elevated dining.
I built an online store capable of handling both sales for their live events as well as shipped to customer merchandise such as wine and t-shirts. The store had a hard calendar deadline of the last week of the year because the winery opened on New Year's Eve with a Joan Osbourne concert. A Spree store was created and modified so that rather than just entering products a different type of product was also supported which was an event. Events held at City Winery of course occurred at particular times and so they needed to support cut off dates where after a particular time passed the site no longer listed the event and sales were closed. Additionally patrons were allowed to pick their seat in the 500 seat venue with different seats being provided at different price levels. A CMS was also fused into Spree to allow more content to be displayed about the artist and event. This store was extremely complex, and although the job itself was very stressful, I singlehandedly delivered the project to the satisfaction of City Winery after the company who hired me as a contractor broke both obligations to both City Winery and me.
Pernod Ricard USA is the premium spirits and wine company in the U.S., and the largest subsidiary of Paris, France-based Pernod Ricard SA, which employs a workforce of approximately 18,000 people worldwide.
I was hired by a design firm who had built the site previously as a Rails CMS. They hired me to periodically update the site. Even though the site had a CMS admin section they preferred to just send new content for me to post up to the site. Additionally, when needed I would code new features to the CMS to support some new requirement such as the addition of a modal that greeted visitors of the first visit and verify that they were over the age of 21.
Rise is one of the fastest growing and most innovative sports fitness brands in North America.
I created their first store using Spree. Most notable was that they were clothing store where the each article of clothing came in a variety of colors and sizes called variants. The variants inventory was pulled from a 3rd party inventory management that exposed a REST api.
Thoughtful.co helps consumers quickly and easily give the right gift, at the right time. Available as a web and mobile application, the service recommends unique and thoughtful gifts and helps users manage important dates for the most important people in their lives.
I built features for their app that helped with the display of products.
Novawhite is a Singapore company offering a range of teeth whitening products.
Novawhite was a Singapore company with a Spree store and they were having problems processing credit cards particularly with US customers. They decided to switch to a different payment gateway that was uncomon and specific to Singapore. I hooked up the payment gateway after figuring out how to inteface with it's clunky API.
RecruitMilitary is a wholly-owned subsidiary of Bradley-Morris, Inc. (BMI), the largest military-focused recruiting company in the U.S. Together, BMI and RecruitMilitary offer employers access to more than 1,200,000 military job seekers via services that include contingency recruiting, military job fairs, a job board, employer branding, a military base publication and more.
This was a pretty bog standard creation of their ecommerce store using Spree.
Currix was a destination for teachers to discover just these sorts of resources. It's also a marketplace for this content: teachers will be able to monetize the lessons, activities, logos and more that they upload there.
This Spree store was customized to first have a seller's admin type page where seller's of content could upload their content and then place it in the store for sale. Content could be pdf files, videos, or audio so each file type was customized for display in the store based on file type. For pdfs the first page of the PDF was displayed in the store, for videos a clip was generated from the first 15 seconds of the video and displayed, finally for audio another 15 second clip was automatically generated. Additionally, the seller could also upload their sample to be shown in the store.
2010 - 2011
Cosas de Regalo is an ecommerce site in Barcelona, Spain they carry gifts for him and her, gifts for children and home decorations.
Rails 3 was almost complete rewrite of Rails introducing completely new internals and often a completely new interface for every aspect of Rails. Upgrading from 2 to 3 was not a small undertaking. Compounding things further Spree also introduced its own version of a dramatic rewrite between versions that also mirrored the Rails upgrade. The net effect was that upgrading a Spree store was no small undertaking. Cosas de Regalos contracted me to upgrade their Spree store which had been customized to both handle their type of ecommerce as well as handling different tax and shipping requirements to support their business in Barcelona.
As one of the largest sources for condoms and personal lubricants in the industry, Paradise Marketing is one of the largest sources for condoms and personal lubricants in the USA. As a wholesaler they source from condom manufacturers and sell to retailers.
This store was another standard Spree store, with the only thing unique about it was that they had a large product base that I had to write custom scripts to import.
The Soletron platform was designed to facilitate the interaction between designer sneaker consumers and independent brands. Soletron has a structure similar to Etsy as it does not hold any inventory. Sellers sign up through the website to post their inventory online. Soletron brings a social element to retail as users can create profiles to follow brands or other members. They can also favorite products and share them with the online community. Soletron features a lifestyle blog meant to keep their visitors up to date on sneakerhead trends.
Soletron wanted to add faceted search to their Spree store. I custom implemented faceted search for them by replacing Spree's search functionality to instead use Solr. Solr did the heavy lifting of faceted search and so I created a user inteface to support the facets that Soletron specified (color, size, price, type of shoe, etc.)
Morlen Sinoway is Chicago's premiere Retailer of over 60 Brands of contemporary furniture, contract lighting, unique home accessories, and custom area rugs.
This was another standard launch of a greenfield Spree store.
2011 - 2014
End Point was founded in New York City in 1995 as a full-service software consultancy specializing in ecommerce, custom applications, enterprise security, and managed infrastructure.
Harvard Law commissioned End Point to build an app called H2O which is a platform for creating, sharing and adapting open course materials. While this app was adapted for many other institutions initially it allowed Harvard Law Professors to upload PDF copies of US court cases that would be part of the curriculum for Harvard Law students. I worked on an annotations feature which allowed a professor to share annotations of a document to their class as well as allowing a student to add their own annotations. There was a versioning component to this that also allowed viewing annotations at different points in time.
Econify is a development shop in New York City, they specialize in Web Development, Mobile / Smart TV, and Devops.
Econify created an app for selling parts in an Ebay like market for the large machine industries. For instance, it allowed people who had spare parts for locomotive trains to sell parts to one another. I worked generally on fixing bugs and adding features to this marketplace app.
2015 - Current
Moved to Thailand. After 10 years in Brazil I decided that it was a time for a long-term change and moved to Thailand at the suggestion of my parents. Being in Thailand allows me to take care of my parents as they get older, and it's also a fantastic place to live.
2014 - 2015
TaxJar makes sales tax filing easier for online sellers and merchants located in the US. See local jurisdictional tax reports, and get payment reminders.
I created the initial version of the Taxjar Ruby API wrapper.
2015 - 2017
Bidsketch proposal software lets you create, electronically sign, and track professional looking client proposals in 50% less time.
Worked on an unreleased app called Docsketch which is an electronic signature signing app similar to HelloSign or RightSignature. Using React I created the ability for a person to drag and drop signing elements onto an uploaded document in order to specify what needs to be executed for the signing. For example dragging a date from the sidebar onto the document would specify a date needed to be added by one or both parties. The drag and drop was provided React's DnD library and all of the advanced features both of it and HTML 5 drag and drop api were utilized so that the user interface was intuitive and worked as expected.
2017 - Current
WingTask is a mobile UI for the popular opensource command line task manager, Taskwarrior. WingTask is an app wholly created by me and represents my desire to build and launch my own app as well as trying to provide a useful addition to a CLI app that I use daily.
I did everything for WingTask from the graphic design of the Logo to the provisioning of the servers and everything in between. For the look and feel I designed the app in Sketch and then coded the front end using a combination of Elm's Material Design Components for Web library along with Zurb's Foundation 6 for responsive layout. Elm was chosen as the frontend framework because I feel it's a lot more productive for developer than other frameworks, particularly React. A Rails api only backend provides access to the data for the separate Elm frontend app. The Rails app makes use of a custom ruby gem I wrote to execute taskwarrior commands. Taskwarrior is a CLI app written in C and is the only part of the WingTask stack that I didn't build. Finally both the front end and back end are hosted on as single Linode server which I keep provisioned using Chef configuration management.
WingTask is a UI GUI for Taskwarrior, an opensource command line app for Task/Todo Management that I did not create.
It's a progressive web app so on first visit a mobile user can opt to add the app to their home screen, and then when launched is indistiguishable from a native app.
Its'a app with responsive design so it's actually three different interfaces for mobile, tablet, and desktop.
Data refresh model is pull to refresh/sync or click to refresh/sync.
It's built as a single page application so navigating through the app is fast with no pauses for data requests.
Material design was used as the UI framework and makes the app more Android focused but the app works just fine on IOS
I wanted to build an app that I would use myself.
I wanted to take a shot on building a one man startup.
I found taskwarrior and decided to build a UI for it because I thought it handled the domain of Task/TODO better than anything I'd seen and felt it was also better than what I could build on my own. People cite the only drawback that prevented it from being adopted by a wider audience was the lack of support on mobile and that's what I decided to try to fix.
I thought the scope of the app was focused enough that I could finish it in the time frame that I had, and that launching it to a small group of advanced tech people was my best chance of getting some traction with a new app by an unknown developer.
I felt the next step for my career was to create an app all on my own, complete, end-to-end. I wanted to see how big of a job it was in terms of what I expected vs reality. I felt I needed to learn the things that could only be learned by trying to take a project from start to finish. I also wanted to prove to myself that I could do it.
WingTask was built end-to-end by myself. I did the graphic design for the look and feel and the provisioning of the servers to host it and everything in between
1 Year. I started the full-time dedicated work on the project in September 2017 and finished it September 2018, so it was a little more than a year.
I'd love to speak with you. Send me an email and we can set up a time to speak. Thanks