The rather unethical alternative is to find a job in a fairly incompetent group at a company that's not extremely tech focused, then spend most of your time working on whatever you want to. I've had jobs (and spoken to many people with similar jobs) where I could accomplish all my tasks within a couple hours of actual, focused effort, leaving the rest of the work week for personal projects, side business, etc.
Man, I remember reading this and I loved it. A saga of corporate wastelands. I know deep down that it's too hilarious to be real, but I like it anyway.
The problem that I've found with those environments is that the 60% of downtime you have is usually when people are socializing instead of working. That means it's not actually that easy to focus on your own project. Also the office laziness rubs off and you tend to be less disciplined to work on that personal project than you think you will be. Perhaps somebody out there can consistently pull it off, but I've never seen it.
I met a guy who worked in the tech department of a large department store chain. He was one of a couple hundred programmers in a large cubicle farm. It was a pretty dead simple setup, each programmer got an assignment (generally COBOL maintenance, and new stuff was in C#, I think) that was due in 2 weeks. Rinse and repeat. Just like highschool or something. Anyway, he'd finish his "assignment" on day 1 and spend the next 2 weeks working on his own projects. Only made 40-50K, though (in the midwest).
Where I live, a student coming out of school with a CS degree could expect 55K or so, moving up to maybe 80K after years of experience. That being said, I pay $450/mo for a 1000 sq ft apartment, and gas is < $3/gallon. Cost of living here is nothing compared to the west coast.
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.
Not really midwest, but I'm in Colorado - it's not hard to find $100k+ jobs for experienced programmers, and buy a nice house for $250k. It's an amazing confluence of cheap to live, but high pay work.
The weirdest thing is that I've worked at places where I couldn't get other people to move fast enough to stay busy.
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..
What I did in a previous situation like that went:
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.
Excel with VBA, I was an infantry officer at the time. I made VBA tools for every station in the tactical ops center.
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.
oh, right. this is also really good advice. after learning how to write a yacc grammar, it's really easy to trick "non-technical" people into doing their own programming with with domain-specific languages. JBehave also looks useful for this purpose.
I don't know if it's that unethical -- I think there are a lot of jobs where if you made a graph of the worload it would look rather spiky -- IE, sometimes you're very busy, but with long idle times in between. Those downtimes are a good opportunity to work on pet projects or learn a new skill for career development. I think most good employers will recognize that if you're otherwise good at what you were hired for.
Sometimes they don't know what they hired you for. As in have no idea how the task should be done and how much time it can possibly take. That can be unethical.
If you have spiky workload and work on fun projects or just learn, I believe that to be fine.
upvote, because while i don't know if it's ethical or not either, that's my situation, although i didn't recognize it as such when i first started.
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.
I was stuck in that situation this time last year. I could knock out my daily work in maybe 2 hours (mostly babysitting some Excel spreadsheets) and spend the rest of the day building my own skills. So long as I was really good at alt-tabbing no one knew (or they just didn't care).
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.
I see a flaw in this, as being surrounded by fairly incompetent people will have an effect on you by osmosis. It will slowly erode your skills/happyness/motivation.
The unethical part comes in when you're purposely padding your estimates, delaying response, feigning work load, or profiting from a side business. The last one depends heavily on your work agreement, state law, and how the company chooses to interpret things. I know of a guy who was outed by coworkers for doing side work, but after review, management decided it was fine as long as he wasn't using the work phone for side-work calls.
Of course, nothing is black and white, and rationalization is just as strong an intoxicant as overreaching corporate policies are.
Whenever I give a talk about Erlang-related stuff, I almost inevitably get asked "do you do this for fun or for your job?" And I can genuinely answer "both, really".
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'm in a similar situation -- right now I have what I guess would be called a unicorn job, I work on open source stuff that I have 90% or more of the commits on full time and am paid for it. But it's not really a fluke or that someone is 'vouching' for me -- the stuff I work on is essential to my company's workflow, and pays off very directly as our work becomes faster and better, so I don't see it as a job that will go away soon (although I could certainly be wrong).
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!
Nice site. I ran a similar site for a few years in the mid-2000s, but focused more on the large-scale minor leagues (i.e. kids leagues, whatever they're called in the USA). Judging from your landing page you guys are more focused on the small beer-type leagues and stuff - is that a more profitable thing than trying to get the big leagues with 100+ teams on board? I never attempted to go for the little guys.
I think the question is completely wrong ... the question you should be asking is "how do I turn my current job into a unicorn job?". I've done this for almost 30 years and, with the exception of the times I was forced into management roles, I've loved engineering.
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.
> ultimately you want to tailor the work towards something you're enthusiastic about
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 a business begins as a unicorn job, and if you're lucky you find out that you also enjoy running a business. And get to keep your unicorn part-time job. Also, having other people help build your unicorn. I LOVE what I do every day - used to complain I wasn't coding enough, but it was because I was controlling the output too much and not delegating. It wasn't that I wanted to code more, it was just that I wasn't getting enough done. So I hired more staff and found I really like the balance of entrepreneurial life, helping my staff code their best (and towards our goals) and coding in the quiet hours.
Completely agree here. Anything specific that helped you delegate more? I'm getting started on that, but still feel I'm not getting nearly as much done as I could, and I'm a bottleneck for my outsourcers.
Delegation means knowing exactly what results you want, and if your staff aren't skilled enough being able to lay it out down to the line with direct tasks with clear finish lines for each task. We do a lot of training, so when working with junior developers you want to break it down, break it down, and be able to think laterally in case they can't achieve exactly what you want - there are always other ways to get things done. Then trust them, and make sure you get daily reports. At first it feels like you are not getting anything done and then they start flying and it feels great.
I think all knowledge workers should note what they did at the end of the day - it helps with accountability and gives a sense of achievement. For example a tool like idonethis.com helps you and everyone stay up-to-date and see quickly where problems are. Or ask everyone to just email you at the end of the day or a fixed period. Always read them and respond if needed.
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.
We only use this method for new and junior developers, for maybe 2-3 months depending on how quick they are to get up to speed and we trust that every day is spent on something constructive.
You can have a unicorn job if you just do consulting and/or project development. While I personally prefer entrepreneurship, I understand that it is not for everyone (as the author mentions). If you do consulting though instead, no one owns your time aside from what you decide to sell, and you can choose which projects you work on.
This article might not be applicable to that many people. My guess is that many people are actually happiest working on things that are given to them. Working on your own projects requires that you think of an idea, and have the self-discipline to work on it in the absence of externally enforced constraints.
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.
I'd just be happy having a job where someone paid me to learn after showing some basic competency. In return, I would stick my neck out for the company and stay 10 hour days trying to solve problems and not ditch at the first whiff of a higher paycheck.
I was lucky to start a small startup which functioned like a 'unicorn' job. It allowed me to work exactly on what I was interested in for 4 years, while making more money than I had been. The only drawback was the amount of time managing advertising.
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.
I see. I'd suggest that one would need to be as selective and fortunate in finding Unicorn self employment as outside employment that fits the bill.
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.
Would love to hear what you're using. And if you're concerned about competition, well, given that you have a headstart you can just start your own technologyXcasts site, newsletter, etc.
This setup is certainly rare. At my company (http://istrategylabs.com) we've done our best to at least feed this desire and tie it back to revenue.
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.
I think this is why some people go into Finance. Spend 10 years in some miserable high stress job, but hopefully gather enough wealth to retire in your early 30s and work on whatever you want.
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.
I think this is why some people go into Finance. Spend 10 years in some miserable high stress job, but hopefully gather enough wealth to retire in your early 30s and work on whatever you want.
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 ...
I definitely understand that. Personally, they are both tough choices. One is essentially a race to the top and the other a race to the bottom. That might be the trouble in looking for rare things(unicorns). You often need to go to extremes to find them, and extremes are usually quite uncomfortable.
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.
I always find such logic incomprehensible. Is a job that suits your interest, contributes to others in a meaningful way, and makes your life rewarding while at the same time keeps you a decent living ever so hard to find? I don't really think so. Why do people have to think like "it's I against the world, the job I do is the enemy of my personal enjoyment"? It's weird and potentially harmful.
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.
Much easier path would probably to create several small SAAS product aside from your day job which create enough monthly revenue to sustain your lifestyle. While getting there might take longer, it would be definitely more stress free than running a startup.
Question #4: are you a virgin? According to Wikipedia, "In the Middle Ages and Renaissance, [the unicorn] was commonly described as an extremely wild woodland creature, a symbol of purity and grace, which could only be captured by a virgin."
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.
For those of us whose "core dream" is exactly the kind of logistical problem solving and organizational coordination the author describes as "overhead", starting your own company is a unicorn job. Feeling lucky, I suppose :)
totally! if you love building businesses, managing organizations and logistics, and figuring out monetization and growth, then starting a company might be your unicorn job.
When your side project turns into a full time job via starting a company around it, your founding position at your startup is your unicorn job. I find that this is one of the biggest pulls towards entrepreneurship for me.
you mean if you end up cashing out and then unicorning afterward? i can't imagine running a startup being a unicorn job, unless you love doing all sorts of things that aren't remotely related to your side project.
I personally think that there are more unicorn jobs than people think. It's just that everyone has a different idea of a unicorn. The work I'm currently doing (the level of influence I have over the final product, the technical challenge, and meaningfulness of the work) all combine to make this probably the best job I've had. However others I talk to doing similar work in the past couldn't wait to find a different job.
I have to say that looks a weird and potentially very harmful way of thinking. Why by default pit yourself against your job? Why you have to work on some "personal project" which seems to be completely isolated from, even contrary to your job? I guess it has to do with some "unsuccessful intern experiences" by the author, but I don't believe it's the correct perceptions of things. The ideal scenario, obviously, is to blend personal interest/fun together with the job you are doing. And I believe a lot of, even the majority, of top people in their field do things by such principle, and are living a happy + productive life, not only satisfying their own intellectual appetite, but also benefiting the company, and more broadly the world as a whole.
A rather narrow view, of the thousands of occupations and careers you are just looking in the mirror. How about my friend who owns a bike shop? Or my other friend who runs an art/design webzine? Or my other friend with the micro-brewery? None of them are particularly skilled at what they do nor have the right networking. I think their secret lies between living within their means and choosing to do what they love. Anyone can do that and if that is what you are looking for, a sabbatical with enough money to go by and full time to inmerse in a great idea: go ahead and do it, do not over think it, do not be afraid to fail.
I've got a job where I get to spend a fair amount of time hacking on things that I'm personally interested in. I wonder if the 50% level, a la Guido Van Rossum, is some sort of optimum. Besides paying the bills, the non-unicorn work keeps me in touch with a lot of interesting people and ideas, and prevents me from getting tunnel vision.
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.
I haven't seen a job ad since I started my current job (~3yrs ago) that looks more interesting than the job I have. I do desktop applications (WPF/C#) one day, C++ computer vision/algorithms another day with an occasional scoping of signals with an oscilloscope and logic analyzer thrown in. All this and no politics or deadlines.
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.
I think most people don't spent enough time looking for the best fit. Most engineers I know select from the jobs offered to them by friends/recruiters. I did this for my first job (which sucked bigtime). The best jobs will never be offered (too many qualified people competing already). However, if you get out there and prove yourself to awesome people you'll get offered unicorn opportunities. My second job (helping schools write CS curriculum) came this way. My new years resolution: spend more time with less people.
A better way is to make a technology and keep reusing it for clients. Have clients find you more clients, make commissions and eventually earn their money back. Give old clients features developed for new clients. Eventually build out a productized service, get a bank loan, market it and sell the company. Or open source the tech and get a community around it (like symfony, etc)
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 don't know if I believe that Guido Van Rossum has to spend 50% of his time on not making python better, but perhaps it's true. Isn't he at dropbox now as well?
It's not clear to me that Guido actually wants to spend more than 50% of his time on Python. Stuff like the async stuff he's bringing into Python come from his time spent developing things with Python during the other 50%.
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 currently works at Dropbox, and it looks like he took his 50% deal with him: "In January 2013 I joined Dropbox. I work on various Dropbox products and have 50% for my Python work, no strings attached" [1]
I'm going to guess that GVR wants to spend 50% of his time on other things. If you're a language designer and you don't spend half your time programming to core business needs, you risk isolation and your quality of inspiration will go down.
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.
hmmm if you love library-building, then you probably won't like wrangling clients, chasing them down for payments, finding your next clients, etc. ... not to mention what happens when clients want you to customize your library in some bizarre way that goes against your core sensibilities, but you need to do it to get paid. doesn't sound very unicorn to me, since clients are ultimately driving your business.
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).
I thought this post would be about jobs for 'unicorns' designer + developers positions conjoined.
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."
The problem is that a less than A player in either design or backend programming will more likely shit things up instead of contributing in a minor way. It's just hard to believe that you are an A player in both.
Your statement hinges on the implicit premise that most of the skills required in programming share no common knowledge, and each must be learned entirely anew (so that time spent learning X is time not spent learning Y.)
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.
I have your unicorn job. They exist. I'm on the development team in a small startup, and since I'm the only one with proficient design skills, I have a ton of creative freedom.