Unicorn Jobs
pgbovine.net
pgbovine.net
There are an abundance of tech jobs at large non-tech companies here. WalMart, for example, is headquarted here. So you get a lot of programmers who don't do much, if any, hobby code and programming is just a job. They get their 4 year degree, sign on with Walmart, work, get married, have a family, etc. Not a very eventful place at all as far as tech goes. I was once on a flight from Texas to Arkansas and sat next to a rails dev from the bay. I was so excited to sit next to a techie and have a chat, and then it occurred to me what a lack of tech community we have around here. This was a big deal for me to meet another dev but to him it was just an average flight.
Plus mountains.
That is, if I tried to work at 80% utilization I'd always be arguing with people to get them to pick up the pace.
Once I decided to work at 40% utilization I found I got along better with people. My boss bitched me out once for "not being fully committed" but he quit the next month, so things went on for another year when my new (absentee) boss told me that we ought to let the guy who has temper tantrums all the time get his way because I'm more flexible than him... A recruiter called me the next business day and I was outa there..
Phase 1: Get angry at people being slow.
Phase 2: Write tool to make slow people incapable of being slow.
Phase 3: Profit.
Phase 2 keeps you busy in while the slow people are slow, so you don't get as angry. Then in phase 3, the slow people become irrelevant so they don't frustrate you anymore. Plus you get recognition for improving the efficiency of the office.Given the nature of the work, I don't see how I could turn that into a business. Also the software was completely amateur; I went to study software when I found out I liked better coding than being an infantryman, as a consequence of this.
If you have spiky workload and work on fun projects or just learn, I believe that to be fine.
i've used the "variable workload," justification before (at the suggestion of a manager, in fact), but i think an even better justification is that i've taken a major salary cut compared to my previous cubical-oriented, corporate job. also, i try to spend the extra time developing skills that, while not necessary this week or month, might be useful later.
there was a post a day or two ago about "money is freedom," and while i guess that's true, freedom from money can also be freedom.. or something. i dunno, my reasoning is probably flawed, but i feel like i'm learning a lot, eating well, and pretty alright with my job at the moment. a lot of the original post seems like post-PhD(tum) angst to me.
The logo would be a circle of vultures above some roadkill.
https://sites.google.com/site/forgottenemployee/
Warning, this story is long and will drain your time if you start reading it because you'll want to know exactly what happens.
Once I had built up enough savings, I jumped out and tried (and failed) to start my own company before joining up with a TechStars team. Worked out pretty well in the end: if I'd been in a "good enough" tech job, I probably wouldn't have taken that leap and wound up in an awesome job with a great team.
Of course, nothing is black and white, and rationalization is just as strong an intoxicant as overreaching corporate policies are.
While I'm the project lead for one of the more popular Erlang web frameworks (http://nitrogenproject.com), my main focus is on my sports league management system[1] (http://bracketpal.com), which runs on Nitrogen.
As a result, I can justify spending "free" time working on open source because at the end of the day, it improves my main products.
It's an interesting way to piggyback the so-called "unicorn" project onto a product (the design of which I get to control). Granted, it'd be nice to just get paid to work on Nitrogen all the time, since that work is generally more mentally stimulating, but I can't complain.
[1] I know the landing page is a total dog. It's the current project to fix that up to something not terrible.
I work at an agency, and we crank through a lot of smaller sites very quickly. My role at this point is to spend most of my time working on the tools that we use to build on top of, researching and evaluating other tools, and generally improving workflow and making it more efficient. I'll take a couple months to put in work on tools and workflow, then come back and lead a client project with the new/updated flow. When the project is wrapped up, I take what I learned from working on the project and use it to make further improvements to the tools/workflow I spend most of my time on, and that's generally the cycle.
Topics that I have sunk a significant amount of time into recently include using git/github more efficiently, researching and working with a variety of client-side MVCs, static site build tools, deployment tools, new project templating tools, sysops monitoring and provisioning (docker), requirejs and browserify comparsion and benchmarking in various situations, focusing on svgs and perfecting illustrator svg workflow, etc. It seems to me like there is an endless supply of cool things to work on at the moment, and I enjoy my work and do the same stuff whether I'm on or off the clock, which is nice for my company because I probably work a lot more hours than anyone else (although voluntarily, because I enjoy it).
I tend to span across the stack pretty widely, from design to ops and everything in between, which I like, and am also involved in a few new business accounts that are more dev-heavy. I absolutely love my job and would never give it up. Not sure if this is interesting to anyone or if anyone has perspectives on it, but I definitely am in a unique position and am curious to hear whatever it is that people think about all this!
The key is that you have to be doing something your employer feels provides value, and ultimately you want to tailor the work towards something you're enthusiastic about. For me, I try to determine which up-and-coming technologies are worth including in future products. This means I get to play with lots of cool (and sometimes not so cool) technologies - and when my employer asks how something should be done, they "redeem" that knowledge with a list of concrete pros and cons.
Even the author's examples were projects that he was passionate about before he started the unicorn job. One point I definitely agree with is that you have to be a good communicator to first convince your boss you can provide value, and again to deliver that value.
I'll also agree that it might be easier to find a unicorn job in a university setting where things aren't quite so structured. In July of 2012 I landed a job at Penn State as an enterprise software architect/developer ... and it was music to my ears when I found out that my bosses' bosses' boss felt the university need to be more engaged with the open-source community and contribute to more projects.
This depends on being passionate about a how (e.g. a technology, a language, a development methodology) instead of a what. An employer will not frequently let you turn the project of building their food-reviews website into an automatic musical-accompaniment AI.
I worked in a place where the reward for having "good communication skills" was that they did everything the way the guy who had temper tantrums bad enough we had to call the ambulance once wanted.
Some places go from crisis to crisis; yeah, hypothetically you can take a vacation if the project is on track but it was two years late when you joined.
There are places where it makes sense to improve your current job, but it's not realistic. Remember that things like the Obamacare screwup and the Target data breach aren't exceptions, they're business as usual, and if you're part of that kind of culture you are doomed no matter what you do.
Starting your own business is a much easier path to that and even then you will be pulled in all kinds of directions.
The only case of a unicorn job that did actually spring to mind was the CouchDB founder. This is a very motivational talk by him - http://www.infoq.com/presentations/katz-couchdb-and-me
Why daily reports, as opposed to any other interval?
You note that you feel you are slowing your team down - if it's because you are relied on to be building core tasks, try building mock-ups first so they can work. Another good tool is apiary.io if you work with APIs for example: it combines fleshing out your API with actually providing a functional framework so the front-end guys can get to work.
If it's documentation slowing you down, give everyone some days off or get them on another task and catch up. Use paper and pen or whiteboarding or a design tool like Flairbuilder if you need to really understand your ideas before trying to explain them to someone else.
The kind of delegation you use sounds a lot like micro managing, which scales to teams of 20 at most.
I think a better question for most people might be: how do I get a job where work on the job is itself interesting, rather than a job that allows me to do my own interesting stuff in my spare time.
So, don't leave out 'start a business!'. Surprised to not see that possibility mentioned in the article... This is HN, after all. You don't need an employer to have a job.
> One trite suggestion is, Why don't you just start your own company? From talking with friends who have done so, I can confidently say that entrepreneurship is not a unicorn job. You spend the majority of your work days on logistics, errands, coordination, and other overhead that's not at all related to furthering your core dream – but those steps are ultimately necessary for launching your product and succeeding in the marketplace. It's a great gig for some people, but definitely not a unicorn job.
Also, whether one feels a position/endeavor meets unicorn status depends on personal tastes. For me, working for myself is just as important as what I'm doing and compensation. I also value being in charge of and learning the full stack, from sysadmin work to database and server side work to client side programming. It would be very rare to find such diverse work and responsibilities working for the sort of employer author considers his ideal.
1. Everyone in the company can work on R&D projects. 2. There's budget set aside for this work. 3. Everyone can pitch new ideas for new projects/products. 4. If something get green-lit you can join that project if you desire and have value to bring to it.
It's really challenging to assign dedicated "20% time" or some other formal allocation. We've tried serval times and failed. Instead, now, we just setup hackdays/internal innovation days where the entire company can work on whatever they want. It's great for morale and produces new things we can pitch to our customers.
How did you fail if you don't mind me asking?
Also why people work part time and spend their off time painting or playing music. Be poor but have time to work on what you care about.
Edit: Grammar
Some of my college classmates went down this route, and while the numbers can theoretically work out (these are uber-smart math/science/engineering folks), I've never seen a single person exit successfully from this game and then unicorn it. The main reason seems to be that they can't fight off the inevitable lifestyle inflation that comes with being in such a social circle. The last I heard from one guy, he was paying almost $10,000 a month to maintain two apartments in Manhattan ...
Speaking of what I've done myself, I've found a combination of the two seem more likely to succeed. By limiting my resource requirements(cheap rent etc), which I may have focused on too much on the past, and increasing my skills(and pay rate), which I spend more energy on these days, I can spend a continually reducing portion of my time on the things I don't want to do.
Thanks for the interesting article btw.
In fact quite some people who I see getting into finance jobs with the "getting-enough-money" mentality often end up miserably. Without any love for their jobs, then no wonder.
In a more serious note, while it's a well written article, it has a very narrow scope, since you can really say the same stuff about almost every aspect in life.
Not only there are no unicorn jobs, there no unicorn hobby projects either. You can every easily feel "trapped" and tired from your own hobby project.
Oh wait! There are no unicorn relationships either! And there are no... well you get the idea.
The reason is simple of course; everything "unicorn" assumes that a certain something (you, your projects goals, the market, etc) stays the same, while the whole world around you is constantly changing and evolving.
Maybe I should join a VC firm?
Two things have helped me. First, the stuff that the company makes is close enough to my personal interests, that I don't have to fight too hard to justify my unicorn work. Second, I make damn sure that my hacks end up in products and patents once in a while.
Most of the jobs I see advertised are one dimensional - they want a GUI person OR a computer vision person OR an embedded person, rarely more than one thing.
I've had a lot of great jobs and the thing they shared in common is they were small or tiny companies.
This is the outline of working on your own stuff and just charging clients for high-margin projects, all the while building your technology.
I'm paid 40 hours a week, most weeks to warm the couch. I get time to work on my own projects.
But, alas, I'm a contractor and some point in the not too far future this ride will end. knocks on wood Hopefully its not soon however.
Also, is Python necessarily his unicorn now? It's certainly not the same as a project that he conceives and creates - it was a long time ago, but success changes that.
"He was employed by Google from 2005 until December 7th 2012, where he spent half his time developing the Python language."
One of the reasons why Clojure is great is because Rich Hickey actually goes out there into the enterprise and has put a lot of thought into making it an extremely practical language in a wide variety of business settings, without compromising on the things that actually matter.
Now there are sinecures, but I certainly would not admit to having one, now or in the past...
I've worked in enough companies and done enough consulting and advising to have some thoughts about this.
First, stop obsessing over binary distinctions that don't exist like "unicorn job". It's like "being rich". You won't get there by obsessing about it. There are shades of gray on this one.
Second, it's better to ask for forgiveness than permission. If Guido only spends 50% of his time on Python, that's probably because he doesn't want to spend more than 50% of his time on Python. (I doubt he explicitly asked for permission to spend 50 vs. 75 or 25 percent of his time on it.) As with the creative arts, you'll make better stuff if you're part of the world, rather than completely isolated. Work for other people-- and, except when its interests contradict your own, for the benefit of your firm-- but on your own terms.
Third, "political forces" always exist but are not always irresistible. Yes, sometimes you have to work on things that wouldn't be your first pick if you were unconstrained, but that build your credibility or advance your career. Accept that. Everyone has to do some selling and alliance-building. Do that work, do it well, and make allies. It's important to stop hating that aspect of work; it's part of the game, too. It's actually fun once you're halfway good at it, and if someone like me can develop those skills then anyone can.
Fourth, make sure to find people, companies, and managers whose passions match your own. Don't try to sell a Java shop on Python. Find a company that uses Python, if that's what you want. It's much easier in the long run to keep looking until you find a company that agrees with your ideology, than it is to try to change everything.
Fifth, never work on stuff that isn't interesting to you or good for your career. If you get assigned work that hurts your career and bores you, work quickly to find someone powerful who can use you for something else. (You might get fired in this process; accept that risk. It's better than being taken advantage of for 5+ years.)
Sixth, don't use the words "personal project". It may be something you initiated, but it's probably useful to someone. Find some way (possibly an abstract one) that your project is useful to someone else, and preferably your company as a whole. Again, make allies. Ask others for advice (this is a big one!) and let them have input into your work (but don't compromise on the vision in a major way). Treat people you work with as first customers, not as obstacles. Don't make it obvious that you're trying to take control of the show. People will ask you to join them long before they'll be ready to be led by you.
There's a lot more that I can say, but I hope I've made my points clear. You don't get this "unicorn" job or environment by becoming a brand-name engineer (it works in reverse; the great engineers get the autonomy and use it to become really good at something). Rather, you get creative at selling the work you want to do, make allies, and find companies and managers who are going in the same direction. I don't want to make it sound easy, but you don't have to be a celebrity to pull it off. You need to know what you want and work hard to get it. You also need to learn the difference between asking for permission (never do it) and consulting others (often do it). Don't ask "Can I do this?" (Counterintuitive fact: most bosses dislike being explicitly asked for permission. You're not doing him a favor, but asking him to take on risk-- for mostly your benefit.) Say, "This is what I want to do; how would you recommend that I go about it and make it maximally useful to those around me?"
>you'll make better stuff if you're part of the world
>companies whose passions match your own
>that your project is useful to someone else
Exactly. OP shouldn't treat his own dull internship experiences as the whole picture about companies. His way of thinking is not productive/conducive at all IMO.
Though I don't totally agree with the "political" part.
The only other thing that I would want to add: consulting can be a path towards this too, as you get to pitch the work you'd like to do for the client. (That is, real consulting, not contracting on a technology).
That's what I want. A job where I won't be dictated by designers who can't implement their bullshit photoshop mockups.
I'm not an entrepreneur, but I like to create things. I am OK with a paycheck (where eating out on McDonalds is a luxury) with no equity, hell that's my current situation - sans creative freedom. Right now I'm a code monkey, and I kinda hate it, so I'm hoping that would change in the future. Just need a project without the photoshop-guy.
That being said, creating my own tech demos on my own free time helps keep my sanity in check
I've always found the resistance to this so strange.
My CV has Erlang, Haskell, IA32 assembler, and HTML5/CSS3 on it in various places. The first question any company inevitably asks me, when I send it in, is "what position are you applying for?" (Even though I answer this in the cover letter. Good evidence that they don't bother to read it.)
I should probably just start answering "development factotum."
I would pose the opposite: that learning more "parts" of programming at the same time, makes learning each individual part easier and faster. Epiphanies from learning functional programming will explain bits of compiler design; patterns you learn in macro assembler will clarify instruction-optimization vs. space-optimization choices; working with message-passing systems will revise your views on networking protocols; etc.
You'd expect, for a similar reason, someone with training in book publishing and communications design to not need much help getting into web design.