under the water, carry the water

I’ve been trying to draft a “Things I Learned From Working At Drip” post that is useful, interesting and not fodder for Our Incredible Journey – which is tricky.  I did learn many things, despite the company failing, and I am grateful for Sam & Miguel for trusting me to run their system … even though those are both peak tech company cliches.

Let’s say that you should add or remove as much start-up verbiage to or from the below statements as you need to be happy, and leave it at that.

  • HTML and CSS have changed since I looked at them in a serious way.  Out to Daniel for helping me with the new world of modular CSS, implicit grids, and so on.
  • Michael Hobbs is a saint for answering my dozens of questions about AWS.  Also thanks to Mike Perham of SideKiq for his speed in replying to questions.
  • New Relic is great.  So is HoneyBadger.
  • I learned a lot about memory in Ruby, as written up here.
  • Scaling is a thing, even with small systems.  Drip never had a huge userbase, but we ran into problems that I did not expect as we went from very, very small to very small.  (We dealt with those problems by either improving the Rails code or adding AWS machines, depending on the problem.)
  • Tests are great.  I remain a bit skeptical of tests in principle (for example, is it because of Rails’ insane magic  that testing is required?), but in practice, tests saved my bacon countless times.
  • More generally, thinking about what a system should do and how I’d ensure that my changes to that system were working was very, very helpful.
  • This was the first time that I’ve been the most senior technical person at a company.  When it is just you and Stack Overflow against the world, you get a lot better at solving problems.
  • With that said, no problems get solved after 1700.  Go home and relax – you’ll have it figured out by 0915 the next day.
  • And yet, I’ve had a lot of self-debate around if I should have worked harder or faster, and what that might have done for the company.
  • I did not finish some features that should have been finished, due to time constraints.  This was bad, as those half-finished features ended up popping up in unexpected places.
  • Lauren taught me many excellent things about community and users and distilling meaning out of data.
  • I struggled, and always have struggled, and I think always will struggle, with where to be on the line between now and perfect – but I also got better at deciding where to be on said line.
  • Hannah kicked my ass about usability and quality basically every week.  She’s great.
  • Hiring other engineers is impossible.  There’s probably a whole ‘nother post about what I think about hiring technical people.
  • Don’t be a dick.  This is harder than I thought.