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.

Tuesday, August 21, 2012

Just Say... Yes?

Saying No All the Time is for Chumps

By working on new products and working with people who are building new products you hear a ton problems/ideas a day.  These are wanted, unwanted, good, bad, awful, (say yes to oxford commas) and everything in between.  A lot of thinkers and bloggers and talking heads want you to say 'No' by default and only begrudgingly say 'Yes'.  To hell with all that garbage.  I say 'Okay' should be your modus operandi.

Now, don't get me wrong.  You can't do all the ideas you hear or have all the time.  It's impossible and stupid to try.  Finishing projects (well, at least MVP-ing them) is 100x better than starting them.  Remember our mantra: "Good now is better than perfect later."  However, stop being such a goddam naysayer.  Come up with a solution and a path for ideas rather than simply saying 'no, that's idiotic.'  This is not only for people who come to you with problems and ideas, but for your own problems.

This does a couple of things:

  1. You will start having a more open mind.
  2. People will continue to come to you with ideas and suggestions.
  3. You'll have generally a more positive outlook on things.
  4. You'll get to hear some pretty awesome ideas mixed in with all that nonsense.

Ergo

A CTO has to handle a lot of ideas and suggestions, both from within the team and without.  Especially if you have a non-technical CEO.  That's just the nature of the beast.  Everyone is a critic.  I've decided today that I will never say no again.  Instead of shooting ideas down, I will either give suggestions on how to keep them going, take them into serious consideration, or, if they are truly effing terrible, try to redirect them on a better course.

What's the worst that could happen?

Friday, August 17, 2012

Time To Get Ill

Hey, Johnny...

"What are you going to do after work today? Oh, more work?  Nice.  Well, we're going to the bar."

That's always a great final conversation of the day when leaving work or when a buddy calls.  The excitement of working on startup projects is definitely palpable, but let's face it, it's tempered by what it can do to your personal life.  I hate to say it, but I drink less now than I used to.  It's a problem.

In all seriousness though, coming up with a good balance can be hard, but it's definitely possible.  One thing I do is keep a strict calendar.  Well, as strict as it can be.  I put things on my g-cal as soon as they come up, and I obsessively reference it when planning out my days.  If I know I have something I want to do coming up, I will cram work into the days where nothing awesome is going on.  I do a hell of a lot better job getting work done in advance now than I ever did in school.  Maybe that's why my apps are a hell of a lot better than my grades.

Sunday Funday

One thing that I still try to keep religious - and by religious I mean in no way affiliated with any deity - is my Sundays.  That is my day of rest.  Don't get me wrong, I still go act like a badass commando in the woods on Sundays, but I don't usually do much work.  I'll work Saturday afternoons and sometimes Fridays if nothing of import is going on, but Sundays are my days to myself.  It's a good habit to keep.  I'm not trying to kill myself here, and I want to live long enough to use all this money I'm trying to make.

Oh, yeah, one thing I really like to do on Sundays is go to a matinee movie.  It's great.  I went to the Avengers a couple of weeks ago and the 7 year old next to me shared his popcorn.

The Takeaway

Everyone has a different life and job and expectations and relationships.  It's impossible to read an article and say 'Okay, I'm going to balance my life like this and it will work great!'  No, it never works that way.  You just have to see what fits.  And sometimes you have to look at the hard truths: you may not be able to swing work plus outside work.  That takes a big decision.  Do you quit your job and work for a startup or do you quit your startup and work on your career?  That's a scary proposition for a lot of people, myself included.

I want to be a millionaire just like everyone else, but it's a long hard road to get there, and there's a lot of bumps and detours on the way.  Cliches are fun.

Thursday, August 9, 2012

The Healthy CTO

Why I do it

One of the most important aspects - and I mean actually important - of my life working full time and for  a small company as a CTO is fitness.  It's super important and it can be one of those things that helps you move from being kind of awesome to goddam incredible.  The immediate benefits to having a active workout routine are:

  1. Confidence
  2. Energy
  3. Better sleep schedule
  4. Larger, more defined 'glamour' or 'beach' muscles to impress people.
  5. For whatever reason, and it's probably the sleep, but you'll have a sharper mind and a more extroverted personality.
So, I work out early as all hell in the morning at this thing called ELMNTL Fitness.  The guy, Kevin, has us running around in the woods in the dark carrying rocks and logs and doing a bunch of other crap.  Long story short: while our competition is still asleep in bed I am dragging a log down a gravel trail in the woods.  I'm home, showered, fed and reading the news by 7:30 AM and most other startups aren't even out of bed.  It's a definite advantage.

How I do it

It's not as easy as I'm making it sound, and it certainly takes a little bit of getting used to.  A huge part of it for me is working out with a group of people. I can't stress that enough.  Trying to get up and get on the treadmill in my building just never happens.  I always put it off.  Kevin, however, plans out the days exercises based on how many people and who they are.  If you skip, you screw up not only yourself, but everyone else scheduled.  You never want to be the asshole.

Sleep is another big thing. To wake up at 5am every day you have to start going to bed earlier.  I know a lot of devs and startups think they need to work until 4am, but that shit's out.  I like to work earlier when I'm the most productive, and use my late afternoon and evenings for leisure time and events.  No one ever plans a happy hour at 8am.  So instead of skipping events so that I can workout or do work, I just schedule that stuff earlier.  It's ridiculously simple if you think about it.

Oh yeah, eat well

Every morning I have a smoothie for breakfast.  This contains: a banana, strawberries, blackberries, blueberries, raspberries, peanut butter, protein powder, spinach and soymilk.  Every day.  That is the breakfast of champions.  It's delicious, it's easy, and it's healthier than anything you'll eat all day.  Not to mention the fiber.  I also try to eat one salad per day, either for lunch or for dinner, and I eat a crapload of nuts.  Pistachios, almonds, cashews, whatever.

Do not ever eat fastfood ever.  I'm telling you, don't do it.  Also, don't drink pop (or soda for you weird people).  Drink water and coffee and as much alcohol as you want.  Pizza is okay, because if you're in tech you can't give up pizza.  But never go to McDonald's, Burger King, Chick-fil-a, any of that stuff.  That stuff will kill you.

Do I need to say something about smoking?

TL;DR;

Exercising will make you a better CTO and a better person than your competition. Eating healthy makes you awesome.  Follow these instructions and you'll get rich. Or at least skinny.

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