Friday, July 19, 2013

if [ BikeRiding -gt BikeTalking ]; then BikeFixed=true; fi

Back in April, a friend of mine talked me into signing up for the Nike Women's Half Marathon in October, so I started training. After realizing that running is actually DEATH in disguise, I decided to take up cycling to help me cross-train (and supposedly hauling my fat ass up and down the hills of Berkeley will also help me come ski season). 

In a typical display of Cherie-ness (not having any sense of moderation), I went out and bought my first road bike at the beginning of May and I managed to get a pretty good deal on it ($850 for the bike, plus shoes, cleats and pedals). Sadly, while I was adjusting the front derailleur, I ran across a rather common problem with my Shimano 105 5600 shifters from the 2007-2009 era...the left/front one broke. I had some luck finding $140 Shimano Ultegra 6700 shifters on Craigslist (though at the time I didn't check the stamped part number and relied on the "triple" name plate...that lying piece of plastic!), but soon discovered the error of my ways and was faced with a dilemma: either find new triple shifters or upgrade early to a compact (50/34t). Again, lack of moderation and the following calculations led me to upgrade a whole lot of stuff on my bike:

New Shifters ($250)
ST-5703 $250

Upgrade ($244)*
FD-5700 $29
FC-5750 $143
SM-BB5700 $21
CN-5701 $21
Tape & Bar Phat $30

So now that I've totally blown through my bike budget for the next 6 months, I need to make good use of my bike, hopefully reversing the "I talk about my bike more than I ride it" trend.

Strava ride

If stalking me via blog is not enough for you, you can follow my adventures on Strava. Alternatively, you could also join me!

* I got lucky and found some pretty decent prices from the UK outfit Wiggle. Check them out! (I don't make any referral money off the link)

(3+5)/2 Makes Job Hunting Easier

I've been stressing out about the whole job hunt thing lately, and admittedly, I've gotten less focused in my approach and my decision-making has become less reliable. Looking for a job is still one of the more uncomfortable situations I think you go through in life: 1) you're constantly faced with the reminder that you're failing (sometimes quite epically) or not good enough, 2) in most cases, there's some degree of urgency due to finances, and 3) if you tend to over-think things like me, it really becomes a challenge to try and optimize your life/career path with only the information available to you in your 20's.

Anyway, when I first set out to find my next job (the one that's going to miraculously set me back on track since I've managed to veer away from a lot of the things that got me into engineering in the first place), I found a handful of about 10 places that I wanted to apply to. Each of these places had their own set of prerequisites to applying/interviewing (a presence in the dev world, good command of algorithms, contributions to open source, etc), so I set out to get as many of these checkboxes ticked as I could before applying. The problems I ran into were: 1) you can't build yourself an online presence in the dev world overnight or even over the course of a few months, 2) it's hard to prioritize reading/reviewing CLRS/CtCI when you still have to pay the bills, and 3) it takes time to write a full-featured application that demonstrates your years of web dev experience that is otherwise hard to show because most contracts are work-for-hire and clients generally don't look too keenly on you distributing their code as open source. As a result, self-imposed deadlines started to slip, and as more companies were added to the list, the problem compounded itself. Enter my proposed (and executed) solution:

I decided to make a list of the top 5 things I wanted in my next job. For me, they are (in no particular order):
  • the opportunity & ability to make a difference
    • existing problems/dysfunction
    • organizational support/empowerment
  • work on something meaningful that I would use
  • flexibility or variation in responsibilities
    • job rotation or internal transfers
    • growth within company
  • learn new skills
    • technical chops (does anyone else worry that they're not technical all the time?)
    • product management/startup
  • environment that supports hobbies/projects/travel/interests
    • schedule flexibility & culture
    • like-minded colleagues

I then also made a quick list of auxiliary things I would want, but aren't the primary concerns when evaluating jobs:
  • pay off debt quickly
  • form relationships within startup community
  • visibility
  • travel & unique experiences
  • hacker cred

Taking this list, I generated a spreadsheet with all of the companies I'm interested in, have connections to, or have been contacted by. I created a column for each of the 5 primary things listed above, along with a column for application/interview prerequisites, and a column for outstanding tasks necessary to meet the prerequisites. In the columns under each of the 5 wants, I rated each company (it's not a perfect science, I'll admit) on a scale of 1 to 5 (5 being highest) on how I thought the company would meet these criteria. I then averaged the numbers and came up with a score for each company. After a quick "sort" operation, I had a prioritized list of companies that I was interested in, along with a prioritized list (with some groupings/overlap) of tasks I needed to complete in the near future.

It's probably worth mentioning that some columns were skipped in the initial calculation of scores because I didn't feel I had enough information to put together an accurate assessment of the company on certain criteria. This happened most often with the "environment/culture that supports interests" category, so if you're interviewing/looking to hire me, there are still easy points to be had! ;-)

For those of you over-thinking job hunters out there, what tricks have you used to improve your process?

Tuesday, July 9, 2013

ACH Payments & Property Management for the Little Guys

As part of my recent job hunt, I've been working on rewriting an old property management site I created back in 2005. The code is Rails 2.x, the plugins/gems are mostly outdated, there are a ton of questionable defaults and security vulnerabilities that have been discovered and addressed recently by the Rails community and let's be honest, I wasn't that good at putting out production-quality code back then, so it could do with a good revision/refactor.

That being said, some of the features I always wanted to add to the existing site were:
(a) Secure online tenant application submission and screening
(b) Secure online lease signing and document retrieval
(c) Secure online rent payments via ACH

I realize services like Rentobo, PayYourRent, etc. exist that provide some of the functionality described above, but my goal is to make something that is a standalone Rails engine that can be deployed by smaller organizations needing white label property management but that don't have the software development budgets of larger real estate corporations (something along the lines of Spree for property management)

For the most part, (a) and (b) seem like they would be fairly well served by something like DocuSign, but I've been struggling over the last few weeks to find an elegant way to get (c) working. Stripe, Balanced and PayPal are all options with API's that I looked into, but sadly, none of them are really a good white label solution for ACH payments. Stripe can make payments to 3rd parties via ACH from a Stripe account, but this means it needs to be funded initially by credit card payments. Balanced supports ACH payments, but it's a push operation, so you can't setup a scenario like collecting monthly rent payments from tenants (a pull). PayPal does support ACH payments through it's Payflow service, but there's an entire application process and there are other hoops you need to jump through to get setup, which is not very ideal for your average landlord who would just like to offer automatic online rent payments for tenants. It seemed like my only option was to implement something homegrown like airbnb.

HN to the rescue! This morning, I was pleasantly surprised to find out ACH payments via API are on their way:
YC-Backed Standard Treasury Aims To Make Software That Eats Commercial Banking

I'm not sure when this will become available to the developer masses, but I'm excited to see where this goes! Stay tuned, I'll post more updates when I'm further along on my project!