Showing posts with label python. Show all posts
Showing posts with label python. Show all posts

Wednesday, March 6, 2013

Open Letter to Rockfish


Dear Rockfish,

You have given me more in the last 18 months than I have given you.  You have been a kind and loving companion.  I will never forget that.  You picked me up when I was down, you carried me on your shoulders when I was drunk, and you overall lifted me up to the level I am today. I hope in some small way I left you in a better place than you have left me. I love you.

The day I started at Rockfish, I knew I was in over my head.  I was a little fish in a big pond surrounded by scary other fish who seemed to know what the hell they were doing.  I had no idea what I was doing.  I think I was the living, breathing incarnation of ‘fake it ’til you make it’.  But I faked it, and I buckled down, and I copied smarter people’s work, and I become a 10x better developer because of it.

I would not be the greatest developer in the world were it not for you.

Actually, there’s a 14 year old kid in South Korea who is a little bit better than me, but I’m a damn close second.  And it’s because of you.

We have shared a hell of a lot of laughs, tears, and everything in between.  We’ve been thrilled together, sad together, and utterly furious together.  We’ve seen friends, clients, and people we don’t really know very well come and go.  Alison has scolded each and every one of us at some point, and it hurt us all the same.

I really, truly, and plainly will miss you, Rockfishers.  All of you.  Every last person in the office is special to me in some way, big and small, and it really does break my heart to think I won’t be around to shout unnecessarily at some of you from the length of the office, or to accost you for eating meat (which is gross, by the way).  And who is going to sneeze without covering their mouth, abruptly and as loudly as possible? I feel like I’m actually on good terms with everyone in the entire office.  Yes, even you.  Now that I think about it, I think I’m generally on good terms with everyone in the company. Now that’s a hell of a track record!

If there are any take aways that I want to keep for myself, they’d be along the lines of ‘always strive for perfection’ or ‘good enough is never good enough’ or some such thing.  In a company this highly regarded there is always someone better than you.  And by you I mean me.  You can’t be a joker at Rockfish.  If you strive to become the best possible at what you do at a company like Rockfish, you will be in an elite group if you ever make it there, trust me. There are people who don’t even have my same job who are better than me at it.

If there is anything I wish I could leave for my coworkers, it would be (appropriately) “Never be afraid to be silly”.  Work is serious business, I know that, but you always have to take the time to laugh at yourself and laugh at everyone else. You get one shot on this big blue rock, and you should laugh about it every day. Work will be there in the morning when you wake up, I promise you that.  If you’re not having fun, you’re doing it wrong.

Last thing: Someone call me, goddammit.  Invite me up for happy hour. Now that I can’t be fired for drinking too much, let’s see what the keg is up to.  I’ll finally let my hair down and be my real self.


Yours forever.

John David Back

Friday, August 31, 2012

Make the Work Awesome

Or just be good at kicking ass

Working full time and working as a part time CTO has drawbacks, which I've covered. That's played out.  A lot of blogs talk about how hard it is to work all these hours and how you give up this and that.  Those people are chumps.  There's a hell of a lot of exciting stuff that goes on, too.  For example: Dinner meetings (read: get drunk and scribble notes on napkins).  Yeah, you still go out to dinner and yes, you probably wouldn't be taking any notes, but it feels like I'm getting paid to have my CEO buy me dinner and drown me in beer.  It could be worse.

Get autographs

Second, and this one is important, you meet all kinds of seriously interesting and awesome people.  A lot of people on the scene are jokers, but there are some seriously insanely smart, driven, attractive (less important), successful people.  Cincinnati alone is crammed with the varsity squad of the midwest.  Just being able to brush shoulders with people who are not only smarter, but a hell of a lot more accomplished than me (and sometimes younger), is humbling and exhilarating.  Side note: one day people are going to say that about me.

John the Builder

Thirdly, I create some ridiculous shit.  When I'm working crazy hours and just fall into that weird zone of productivity, I impress myself.  I've spent a few thousand hours developing in Python/Django and it definitely gets easier, trust me.  I plan on open sourcing a lot of cool functionality once everything is launched and cleaned up.  I think being a lead developer on any large-scale project takes just as much creativity as designing it.  Plus more logic!  Less women though, sadly.

In closing

Working on any side project, especially a startup with a raging deadline and a crazy CEO, will lead you down avenues you never imagined to meet people you never thought you'd know and to create things you never thought you would.  It's just awesome.  I grow every day.  I think expanding your skills, building strong ideas and opinions, and forging new relationships are what it's all about.  Oh, and the hope that one day you'll get a big fat check doesn't hurt either.

Thursday, August 2, 2012

Preparing for Liftoff

Site launches.  They are whole other kind of thing.  There's a popular saying that goes something like '80% of the work happens in the last 20% of the project'.  I would say that's being kind, that sometimes the last 5% of the project feels like most of the work.  Add on being wholly responsible for all aspects of tech - because you have no team other than yourself - and you're suddenly responsible for hosting, DNS, the code itself, all media assets, caching, the database, and a litany of other things.  It's mayhem.

So, I am thinking now that I need some kind of plan for launching a site.

  1. Do we have hosting figured out for production?
  2. Do we have any cron jobs sorted out and tested?
  3. Is the database indexed and stable?
  4. Is the cache server running smoothly (and for chrissakes, is it actually caching?)?
  5. Since I'm still better than you and using Python/Django, is Debug == False and does the site work without it? Do you have your 404.html and 500.html?
  6. Oh yeah, what about the fav icon? That's an obnoxious thing to forget.
  7. Since you're obviously not using any sort of proper release technique with git, is your repo at least cleaned up with all extraneous files removed?
  8. HAVE YOU COMMENTED ANYTHING?
  9. Is the DNS sorted out?
  10. Did you forget the www. subdomain?
  11. Is email sending from the server?
  12. Is email being marked as spam?
  13. God, did you validate a single one of your pages? Your HTML looks like shit (this is not the FE devs fault, you're the one that hooked it up). W3C hates your guts.
  14. Have you load tested with more than yourself in two different browsers at the same time? No? Good.
This is just where my mind takes me off the top of my head.  It's mayhem.  Part of being a developer CTO is trying to step away from the nuts and bolts of the service to how it's going to fit into the world at large.  Your website is not an island.  In fact, you want it to be landlocked as all hell and getting as much throughput as possible.  You want tourists and locals and random bums to stop by and poke around.  Have you given SEO any consideration? Have you remembered robots.txt?  If you're using SSL, are you conscious of duplicate content and how Google will spank your ass like a bad child for that?

For these kinds of situations, I highly recommend setting up a Trello board with your checklist of things to do prior to launch.  It keeps you stable.  You can see, 'yes I still have 5 things to do'.  When your list on the left is empty and your list on the right is full, you can go get wasted.  Just keep your phone on Ring so when your CEO calls you screaming their head off that the site is caught in an infinite redirect because you jacked up the SSL middleware, you can drunkenly slur that you'll fix it.  And then go fix it.

Such is the life of an accidental CTO.

Monday, July 30, 2012

First Post. Ever.

First Post. Ever.

Ahh, feels good to do something other than development.  The life of a startup CTO with a regular full-time job is not quite as glamorous as Hollywood and Conan make it out to be.  It's a lot of laptops on the couch and unwatched Battlestar Galactica running in the background.  I actually need to rewatch a few of the episodes.  Boomer's a cylon?

This blog is how I'm going to share my experience joining a pre-capital startup on the site, and what it was like and how I kicked way too much ass at it. It's not really meant to be self-help or inspirational, though. You either work your ass off or you sit around reading people who do's articles about how they did it.  I will say this, though: I never really thought I could do it until I just jumped into it.

I'm a 27 year old developer in sunny Cincinnati, Ohio.  I write primarily Python/Django, and that makes me better than you.  I call this blog The Accidental CTO because I never intended on being a CTO.  I was happy with freelance gigs and doing client work at the agency where I'm employed.  The whole CTO thing kind of fell into my lap.  I'll get into that in a later post.

Right now, I just want to leave you with one sentiment: great things are not always built by great builders. Being the CTO and not the CEO means I report to someone and I have a team.  The team is everything.  I just happen to be the one who kicks ass at web development and gets to boss the dev contractors around.  That's definitely a perk.

I promise I'll have a post worth reading up soon.  This is kind of an ice breaker.

jdb