On Friday of last week, a new post I wrote for my employer (Nasuni) went up - "Encryption Keys, User Data and Subpoenas". In that post, I got to outline, in clear "non slippery" language how my employer manages encryption keys, what data they have access to, etc. One of my favorite quotes:
If a customer has provided their own encryption key(s) - Nasuni, or the cloud provider, do not have those keys, and can not provide them as part of a subpoena or other legal process. We can not decrypt or access your data. We can not supply a key which we do not have. This is not policy or trust level protection: It’s impossible.
We offer auto-generated and escrowed keys as a convenience to the user - the benefits of having this feature outweigh the cost. A user or company who knows nothing about encryption keys and key escrow can still have strong data security and instantaneous disaster recovery, they can install a Filer in minutes and immediately be up and running.
Not only was I able to work with the team to get this post up - for those of you wondering how many layers of approval, legal cleansing or other "typical filtering" it went through - the answer is "none" (or close to it). We value honesty and being forthright above just about everything else, and so posts like this - or ones in the past on "5 Weaknesses of Cloud Storage Gateways", "Cloud Storage Isn’t Cheap: How the Price of Cloud Storage Compares to Traditional Storage", "What’s the Cost of a GB in the Cloud?" which are brutally honest and frankly, would probably never see the light of day in larger companies are actually encouraged, not discouraged. Does that mean that every little thing that could be controversial goes up? Obviously not, but we, as a team, have no problems being honest with ourselves, our users and doing what we feel is the Right Thing.
It's one of those posts that makes me exceedingly proud to be part of a team that continually surprises me. Hence the actual subject of this post. I'm one of those lucky people who get to do something I really do love - actually, multiple things - with a team that surprises me on a daily basis. Of course we're a VC backed startup which means we're smaller and more intimate then most companies many people work for, and in turn means our interpersonal relationships are that much more amplified and intensified. You don't get into bed with a startup unless you know and trust the people (or at least a few of them people) involved - trust is an fundamentally critical component - it's akin to getting married.
I know - you've probably heard stuff like this before echoing from the west coast / silicon valley area - about how startups are magical lands of unicorns and fairies and how you're going to get a bajillion dollars data mining the social relationships of some poor floor waxing guy in south dakota - but these "families" - these startups where you can have these solid relationships with those you work with, and do multiple things exist well outside the silicon valley echo chamber (for example, we're Massachusetts based). You just have to look.
Sure, there's a lot of hype in tech about startups and getting rich quick - but having worked through the dot-com bubble, I've found that I value the team (the family) and the project much more than chasing down the latest IPO. The fact is, despite being at a startup that could fail at any moment (and many do) I feel more secure in my role, and with my paycheck than I would filed away in a cube at MegaCorp. I feel more secure in that I am not just another cog in a machine, and that it is within my power to change the face and direction of the company every single day.
Considering I've worked mainly for startups since I was 18 (some of which got acquired into much bigger companies) I have a bit of confirmation bias, admittedly. Sure, I could also find potentially even more freedom and go freelance, and build relationships that way, and sure - there's tons of people very happy working for massive companies, but right now, despite having one kid, and another on the way - I'm just not that type of person. I thrive on being able to go into work and find a new challenge every day, I thrive on trying on different roles, branching out into new things. Startups - especially ones where you trust those you work with, and those people support you and work with you are an excellent place to do these things.
For example - for some time now I've been leading the User Interface project for the product - we have an embedded web-based UI that allows for the management and administration of the device we sell (a data protection/storage device). Over two years ago, I was primarily focused on concurrency and parallel programming (fast is better) on a different team (this is when I was most active on multiprocessing) - now I'm writing a web application and a lot of middleware/management stuff on a device that has a much smaller amount of RAM and cores in most deployments. Before that, I was working on what is now called the HCP (Hitachi Content Platform) which is a ultra-large, highly scalable and distributed storage system (object store) which could be construed as a parent of the current cloud storage systems (it was originally built by Archivas).
Before that? I was doing work for Allaire/Macromedia on the ColdFusion and Flex teams.
You see, these startups, each in turn, has allowed me an amount of freedom to go places and learn things I don't think I would have otherwise had the opportunity to do. Sure, it's not all roses - there are hard times, layoffs, and sometimes outright failures. You know this (or you better know this) going into it.
I mention all this because as I was sitting here sipping my morning cup of coffee (only allowed one a day) - I was reading yet another visual design site and updating my list of books on my Amazon wish list and in looking at it, it struck me how much I, as a person and I, as an employee have changed due to the opportunities and challenges given to me. I get, on one hand, to learn UI/UX (and drool at the skills of someone like Idan Gazit). I get to think about distributed storage systems, CAP theorem, blocks versus files/objects, and the "cloud" every day - but then I get to sit down and work on images, CSS, user interface, experience and think about what analogies and abstractions work best for our users.
In less than two years, I went from "oh hai concurrency" to debating shades of blue and typography with Greg Newman. How awesome is that? That's not to say that the UI I'm leading/building/hacking on is a solo effort - it's not, we're a team, nor is to to say it's perfect (I'm still learning). It's just to show that a lot can change, and when you have a team you trust, management you trust and you work for a small, agile company you really can do just about anything. Our UI has clunky elements, and things we should clean up - but that is part of what's so great - I have the opportunity to do that. I can walk into my boss' office tomorrow and simply ask him "do you mind if I change X to Y, and here's why", and if it's a sound technical argument, about two minutes later I'll be doing it.
And that change will show up on every one of our customer and trial users boxes in pretty rapid succession. Did I mention I've also gotten to learn I enjoy writing a lot more than I thought I did before, and also - marketing is actually pretty damned interesting, and not such a filthy word as most hackers and programmers think (The joke is that I'm some sort of weird programming/marketing hybrid - not sure if it's an insult or not)? Yeah, I've gotten to do writing, UI/UX, learn web programming, and help out in marketing (and even sales and market strategy to a much lesser extent). It's a rocket sled flying through a forest of cool things to do and be a part of.
Interestingly, as an aside - this change of roles/changing of focus has also changed my focus and contributions in the Python Community - being part of the PSF Board, spinning up sprints/outreach, working on explaining what the PSF is, mentorship - taking on PyCon management - all of these things reflect a change in what my life is focused on, and it's pretty awesome.
Choose a job you love, and you will never have to work a day in your life. - Confucius
Find the right team - the team you trust, that knows what they're doing and where they're going (and that trusts you). Accept that you will probably fail - meaning, you will run out of money, or not get traction (and run out of money) but build that family, that team and have blast trying your best and just accepting all the new challenges and opportunities that come up. Find people who won't not challenge you - who won't ask you to adapt to new times and technology. Accept that you're no safer at MegaCorp because they literally only view you as a human resource and not as an individual.
Most of all - Find something you love doing, and do it with awesome people.
FWIW, here are some good design reads since I'm on the topic (feel free to mention ones you love):