I am a designineer. The problem is that it doesn't make you an expert of all skills. Jack of all trades, master of none.
While I took AP CS in high school, I can't rattle off the to O-notation of most algorithms. While I took plenty of art and design classes over the years, I'm no Jony Ives.
But, its not about what I can't do in my mind, but what I can do. I learn most things very quickly. I'm decent in Ruby and can get stuff done. I can get around Photoshop decently. I'm good at understanding what the customer wants and the product needs. I know how the pieces glue together. I don't mind meeting with VCs, talking to customers or interviewing people.
Yet contrary to popular belief, I don't find people bashing down my door. I don't have the sexiest Github account. The startups I've worked for aren't huge. When I'm asked what I do I reply, "Coding, marketing, product and design". Then they ask if I'm a Java or Ruby coder with 4-7 years of solid experience and a CS background.
Maybe the difference is I don't see myself as being a "full stack" guy, but a "full company" guy. I understand what everyone needs to be doing, and I have (often good) ideas of how a problem might be approached better.
I personally see myself as a huge asset to any company. I often end up doing the productivity of 2-3 people with more traditional backgrounds, but its a really hard sell honestly. I could try selling myself as a manager I suppose, but I'm not sure.
I suspect the scarcity of your skillset is the main contributor to your relative scarcity of opportunities. At a previous company I helped found, we realized that we were trying to find people who were pretty good designers, front-end developers, and really good on the phone with clients for support stuff. We didn't have the margins to split these into different roles, and that was the insight that allowed me to realize that our revenue model was fundamentally broken. It's not that these people don't exist, it's that you can't design your business around reliably finding them. So maybe you're left with a handful of startups who are able to find a place for you because they recognize your value and adapt, not because they had planned on finding you in the first place.
Your last sentence has been my experience so far. Essentially, when a company gets me, they seem to realize that month that they got more than they expected and its a good thing.
One thing I've noticed about some (not all clearly) people who are very good at one thing (let's say back end programming) is they might not really want to do something totally different. Dealing with customers? Writing documentation? Writing front end javascript? Its a bit like pulling teeth.
I don't mind in the least. Documentation writing is great. Making beautiful products is great. Listening to customers (and investors) is great. And yea, I like coding too!
The problem with finding programmers that are good at the social stuff (phone support, dealing with customers) is that the great conceit of programmers is:
That knowing things is more important than knowing people
Hence (most good) programmers will find dealing with customers and doing phone support a tedious chore.
What you are looking for then is a programmer that doesn't passionately love programming. If you find them I am willing to bet that as far as their programming skills go they are not so good.
----
Alternately, look for someone who used to be a hot-shot programmer, but then dialled it back, "got a life". Look for programmers in their 40s or 50s who are more into the social aspect of life. The problem is, they won't work 80 hours if you're only paying them for 32.
I'm building small products. Why don't you try that too? If you can build and maintain 2 or 3 products or SaaS, then you won't need to work for anybody else and you'll enjoy double what a developer gets.
In a product, you'll deal with:
- Coding the product back-end
- Doing its front-end and UX
- Writing the documentation. (I like that too)
- Design the landing page (and may be the Interface, if it's too important/creative)
- Marketing, branding and copywriting
- Customer support
- And finally getting some gigs (and you can charge well for them) from time to time
So you get to try everything. There are lot of opportunities on the web, you just need time to grow the ideas and validate them.
Same, except I don't really enjoy writing documentation. :) I posted my full thoughts in a separate post, but I'm looking for a job, and every job description I read makes me feel like I'm at a crossroads where I have to pick something to give up and something to get better at.
I would really like to have some people post that are looking for someone like you or I, and how someone can actually make themselves the best candidate, or even find such positions. I know how to find standard programming gigs. That isn't a problem.
I keep hearing about the demand, but I keep not seeing it. Unicorns looking for unicorns?
So maybe you're left with a handful of startups who are able to find a place for you because they recognize your value and adapt, not because they had planned on finding you in the first place.
If you are waiting for somebody else to figure out your worth, you're trying to make them do your job, and it's not gonna work.
You have to tell them -- or better yet show them what your value is.
That's the only way to sell products, or sell yourself. The people in the seat on the other side of the desk see a lot of candidates. They don't have time to fully investigate every one. They trust that if a person doesn't have the confidence or self-knowledge to sell himself, or herself, that it's not worth their time to dig deep and find it.
I say this as a person who's kicked ass at job interviews, gotten every job I ever applied for -- 3/5 of which were not open positions, but made for me by my request -- and also done quite a bit of hiring.
That's sort of what I was trying to say, except maybe I have a more pessimistic estimation of how many organizations are open to being convinced. Of course you have to sell yourself, but it still matters who's able to buy. Startups may have the most flexibility in this regard.
Anyway, I'm pretty sure that's a quibble on my part because your post still gave me an adrenaline shot of motivation to GET OUT THERE and MAKE PEOPLE LOVE ME!
I never thought of my self in this fashion but I guess I fit into the designineer category only because I took some graphic design classes in college while I was studying CS. I thought it would help me create video games but I landed in web development which I enjoy a lot of think of myself as lucky.
At my last company they jokingly called me the "Utility Man" taken from the football term. We had a lead designer but I worked with him a lot on stuff. We had developers that I helped. I worked with our Architect to design systems. I lead several projects so I did the PM thing. I even spent 2 years in security and information security audits (yuck!). Even the audit crap I excelled at.
I think some people can just pick up stuff fast. I don't think I'm a genius as this post suggests these types are but I do think I can pick up stuff really fast. I would imagine that most "designineers" could probably pick up in another area fast as well.
I'm in the same boat. Until five months ago I'd only worked for smaller web design/dev/marketing shops because the opportunity to "wear different hats" presented itself more regularly. My current position at a larger company is "Front End Engineer" and I only arrived at that after a significant rebranding of myself.
I think your problem is a marketing problem. I wouldn't be impressed with somebody who said "coding, marketing, product and design" -- I'd wonder why they didn't have an answer with more flair or confidence or one that said how they'd help ME.
How about this: "I'm your trench man. When it's on the line and you need a good layout for a new feature you HAVE to roll out? Me. When you have a bug and all your other developers aren't available? I can drop Photoshop and fix it. And while I do all that, I'm figuring out how to help make your app better… and get more happy customers… which helps you get more customers, period. I can help your developers and your designers make sweet, sweet product love… because I have one foot on each side of the ravine, and can bridge it with my communication skills. One stop shopping, baby."
See what I said above to others about confidence & delivery.
When you only define yourself in terms of line item features "code, design" you invite comparison based on features alone. Hence the followup questions about years of experience. You're making yourself the crappy subnotebook with the bulleted list, and the MacBook Airs are beating the pants off you. :)
I think the problem is not that one person can't have both of these skills, but that it is hard to play both roles on the same project unless you have a lot of discipline.
The engineering mindset and the UX design mindset optimize for different things. Even if you are excellent at both, it helps to have someone else forcing you to get the UX right when you're doing the engineering work, and to make the engineering possible when doing the design work.
The people who can do both at the same time don't differ in having both skills -- lots of people have them -- but in having the discipline to optimize for both in alternation.
I find the reason it's hard to do both on the same project is that the engineer by definition knows the internals of the system. It's hard to un-know that and see things afresh from the user perspective. Thus one tends to create UIs that are intuitive to someone who already has a mental model of how the system works, but seem convoluted and arbitrary to everybody else.
This is a good idea. I'm going to try to do it on my next project. I don't know if I can stop thinking about the data and implementation. It is just where my mind naturally goes. Someone presents me with some type of data and a way they want to present it and I immediately start thinking about data representation, persistent storage, data abstraction models.
I think more important is just to get out of the engineering mindset and try to think like a user. I bet just sitting down with a non-technical person and working through the UI design would help a lot to keep me from going into my engineering mindset.
but that it is hard to play both roles on the same project unless you have a lot of discipline.
For me it's less of a discipline issue and more of a time issue.
Both the backend and the frontend take a lot of quality time to do them right. It's simply not effective to have a single person context-switch between them, even when said person is very good at both. I.e. this is one of the situations where two people can indeed produce a given result nearly twice as fast.
However, I also agree that on top of that discipline plays a role, too.
While wearing the engineer-hat you have to constantly force yourself to stick with the brain-damaged abstractions that comprise todays "state-of-the-art" and not give in to the urge of fixing them bottom-up.
I.e. when both front- and backend are in your hands then the temptation to make the frontend truly model-driven can quickly become overwhelming (auto-generate those stupid forms and validations! why mirror when we could just rpc!). Sadly more often than not this results in a huge time-sink, as you embark in an uphill battle against a tool-chain that's strongly optimized for the exact opposite.
This is the best comment so far, I think, because it highlights why a designer + engineer, even a theoretical 'designeneer' equally skilled at both, isn't necessarily going to be twice as valuable, and in fact may be only as valuable as a single engineer or a single designer.
I believe strongly in the value that knowing both can give you, and for certain classes of small project it's a huge win.
But you're right: context-switching is a limiter. You only have so much free time and mental energy.
For me, I know that I prefer working with competent UX/visual design guidance. I can get some really pretty results from doing my own designs, but it's a wonderful freedom to know that I'll spend 15 minutes in the morning iterating on a piece of paper with a designer today, and then just go away and do my thing. I'll get a PSD that will make the prototype UI more concrete late-afternoon, and the next morning we can talk about how using the UI makes us want to change it.
But if I was doing it all myself? I doubt that even with twice the time, the overall result would be equal, either on the code or the design side.
That designer keeps all of his visual design acumen and photoshop 'muscle memory' loaded into cache.
I keep my emacs key-chords, the code's secret sauce, my bash and git aliases and the topography of staging environments loaded into my cache.
There are definitely projects that exist where you can 'do it all', but ... node.js' model is great for maximizing throughput, but when you've got drastically different types of work, that's what you have multiple cores for. ;)
Re: "brain-damaged abstractions" - you reminded me of a coworker who could be called a "designeer" (he's a good programmer but he also does decent UI/UX).
The problem is, he ignores deadlines because he hates the brain dead abstractions and bad code, and decides to unilaterally refactor.
I feel sorry for him because I understand that he can't stand the sloppy code, he is working with nimrods and mediocre people (and awful tools), what he should do is quit. (some of the mediocre code is, I admit, mine, I've stopped caring and I just want to build a nest egg to quit)
100% agreed. That's why I couldn't believe the upvote fest on the "anti-Product Guys" post a while back. When you do it all, you quickly learn that it's absolutely exhausting work.
More than just the same work 2x, but more like 3x or 4x because of holding it ALL in your head and trying to balance it.
I had the same experiences you did. So, while I'm a good back-end developer, and a great front-end developer, I've chosen to focus on design because A) I'm amazing at it -- it's my best skill, so that is the best use of my energy, B) I don't have the time or energy to do it all any more.
That said, I do still pay attention to the overall shape of the code (and my husband/biz partner pays attention to the design).
Several times, I've been able to wade into a drawn-out discussion between my biz partner and one of our freelancers, & cut thru the crap with a beautifully architected solution. Which always makes me feel warm & fuzzy. And they look at me and go "Oh yeah, you DO know what you're doing," which is worth it just for that. (Because my biz partner has this irritating tendency to tell me "that's impossible" as if he forgot that I damn well know it isn't ;)
Being entirely wrapped up in the code OR the design can be dangerous. ("That's impossible!" - ha.)
I wouldn't trade my ability to do both for anything. I'm glad my husband & I are both "desingineers," at slightly different mix percentages.
"Organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations"
When the organization structure of a project is 'there's just one guy who does it all', the software architecture will tend towards 'the big ball of code' pattern.
However, if the team on a project has people who are engineers, and people who are designers, then a designineer might be a useful product manager to help balance conflicting engineering and UX requirements.
In a startup, looking for a first hire engineer, you probably want someone who will grow into that role - but it's a mistake to have your first system built by them and them alone, because you'll almost inevitably wind up with a big ball of code.
In general, all software should be built by at least two people collaborating, to force some division of responsibility, which will (via Conway's Law) force some structure.
(as you say, the best developers are disciplined and capable of structuring systems in the absence of a forcing structure. This is maybe because they divide work logically into units, and therefore find themselves collaborating with their past- and future-self, giving the structural effect of team work. But apply pressure to even a great developer and that discipline can break down.)
I don't know if I agree with this. It seems like the more people there are working on a project, the more likely you will end up with a complicated ball of code. The reason being is people generally aren't working with the same mental model on the system they are implementing. So, some of the engineers will think its obvious to do things one way, and others will do the opposite. It doesn't make sense for complete rewrites when the other engineer reviews the code, so you end up with inconsistencies in the code. At that point there is no real way to look at the code in a coherent fashion. It doesn't completely make sense to the first or second engineer. It has become a complicated ball of code.
If we accept the initial premise that designers who are also engineers are as rare as ninja-unicorns, then surely the logical thing to do is to turn them into managers?
I was an artist most life and learned engineering when I was 20. It was extremely difficult but I did well and graduated at the top of my class. I can still draw and paint, but creating beautiful web interfaces is very hard for me. Like you're saying, it's not for lack of ability. It's a curse of knowledge.
When you design a UI as an engineer, you're thinking long term. Like make the whole thing white so that new features can be added in easily. Also, the logo is going to need to look good on white anyway for email footers, Facebook apps, etc..., so just make header background white. Then you may have integrations with third-party widgets. All will support white best.
Also, things that 'look' good often are not usable. Like text below 11px, and low contrast shades of text may not be visible to older folks. I see this stuff all the time on sites with 'awesome' design.
Also, images for backgrounds, corners, buttons etc... slow the page load down and don't allow for easy extensibility or iterating. So if I can't do it with CSS, I don't do it.
Page load time, non-buginess, and iteration leading to smooth functionality are the most important parts of UX, IMO. Making the site look like a piece of art does none of these, but I think art gets confused with UX too often. Do you visit this site for the beautiful design? How about Google or Facebook?
If you spend the time to do beautiful design and functionality like Apple, you can create something where the beauty does not detract from usability. But, that takes somewhere on the order of 10x the resources since they're doing 10 prototype designs, refining 3 of them, and only keeping one. If you're trying to create a market, then that makes sense. However, if you're trying to create the most useful product in an existing market, then you're wasting time IMO.
A lot of people can do passable jobs on both roles, but I've never met someone who was awesome on the backend that was also a great UX designer. Likewise, the best designers can whip up a new UI in an afternoon, but it might take them a couple weeks to get it coded.
Maybe, but requiring both skills to be "great" and "awesome" in order to be anything more than "passable" is a little unfair, no? Are there situations for which "passable" is indeed doing a good job?
And yes, it often takes longer to code features than it does to draw and place their UI elements.
My point was that most good coders can implement a designer's UI a lot faster than the UI designers.
For almost all situations I think you are better off getting two developers with complementing skills rather than two jack-of-all-trades that can do "everything". If you can only afford one person then seriously consider how to contract out some tricky parts of the weaker skills to an expert. Then you have a good foundation to build on.
Engineering and UX can go hand in hand. What clashes is User-Centred UX and (sometimes) business objectives.
When engineers and UX people work together, it is bliss as both provide a piece of the puzzle, can't see why one person can't do both.
Agreed. It's hard to switch gears from being head deep in back end code to thinking about and approaching a problem in terms of design. Maybe if you can spend one day coding and the next designing...
Unless I'm working for myself I find I rarely have this freedom. This is why I left my last startup. If I'm trying to do both there are too many things that I'm accountable for on a daily basis to the boss, who in my experience doesn't want me to stop coding to "waste a day" designing.
And in the end I feel like I just end up doing a half-assed job on both. More power to those who can do the switcheroo, be excellent in both, and keep the writer-of-paychecks happy!
Definitely the best way is to not work in little nibbles but long stretches, like a day or two on each. Otherwise you're going to drive yourself insane! (As you've learned.)
I agree, there are a lot of people that can both very well and to be honest most contractors have to be able to if they want to get work.
I don't think that the skill set required is actually that different, but your right in saying discipline is required in order to excel in both.
Then I think the key point is those that do possess both skills and the discipline/drive to excel at both are usually either doing very well doing their own thing and aren't looking for work.
There are some people that have both but it is extremely rare as the author points out. Being a hack or OK in design and development is not the same, many people can do that. I think he is pointing out the very small circle of extremely gifted individuals who can legitimately do both on a professional level.
As in any profession there will always be some extraordinary individuals that are heads and toes above the rest.
You're probably also not making two salaries' worth for doing two roles worth of work. But I know, you guys don't go into startups for the money, right.
I recently applied at a YC funded startup. Their job description had the most random combination of front-end/back-end technologies that exactly matched my recent focuses, and said absolutely nothing about design. I considered myself extremely qualified.
I received a call the following day and was told I was a top candidate. As the interviews progressed with each founder (3 of them), I started to get the impression that they also wanted a designer. I was super careful about managing their expectations and let them know I wouldn't count on my design skills for anything more than "not ugly".
I didn't get an offer.
This is the second time in my very remote, limited experience I've speculated a startup hiring stereotype that has later been echoed in the community. I've convinced myself that both indicate the lack of experience that startup founders have in hiring. Yet another reason I suspect founders can't find talent. After all, what kind of established, motivated and passionate, developer/designer would want to bet their livelihood on a startup that doesn't pay well, isn't clear about its expectations, and shows signs of inexperience?
Sounds like you dodged a bullet. The founders probably weren't going to give their first employee the kind of equity they were going to give themselves, despite the fact that their first employee would have to be more qualified than they were.
Every freelancer in my area is, by this definition, a "Desingineer." I'm in the midwest, so there's almost no other way to get work other than go full stack. Obviously, some are better at the back end and some are better designers, but they have to do it all.
Honestly, this reinforces the issue that startups do a poor job of recruiting outside of their 20 mile radius. For example, its early in the office, and I still see 5 people who have pushed high level applications, good front ends, and the occasional mobile app.
have built a company in the middle of the country as well, and know this freelance type. Typically they are "okay" at design and "okay" at development. They work well for local small businesses but not for startups looking for top caliber design.
I agree with jsavimbi. If you're able to hire specialists, then do it. But, if you're looking to get multiple roles out of the same person, you should be willing to take the pros and cons.
Also, if you're in the situation where you have to hire generalists instead of specialists, you are likely a small business, rather than a high growth startup. If you have a war chest and are looking to scale, it's a mistake not to hire specialists -- you as the business owner should be able to tie everything together, not an employee.
Most startups aren't looking for, and shouldn't be looking for, top caliber design. It costs too much and usually provides no measurable value for an immature product.
I agree with this, however, what constitutes a "designer?"
Defining an engineer is easy: can build systems that optimize for function. Can build a UI that the user can understand to the point that the user can gain value.
How do you quantify design? How do you quantify a designer? If we had metrics, then it would be easier to understand which freelancers actually are "Desingineers."
I have about 14 years into my career as a web guy who can code (front to back), design killer UI and create, execute and grow business strategy.
What that being set! "being" a generalist is not for everyone.
There are some things to note:
1. Keeping up with all three is a LOT of work. Understanding the latest javascript libraries, deployment tech, UI tools and successful business models take a ton of time. I roughly spend 15-30 hrs a week trying new things our, designing or running spreadsheets not to mention the meetups and whatnot.
2. Every startup is looking for this person because they can enable so many parts of the success equation in one, self-contained shot. They add more value per square inch at critical phases of business growth that is a considerable asset. As a startup grows, this is personality turns into an optimal product lead, who can drive major decisions and participate in meaningful discussions with teams, investors and press.
3. Large corporations are not tuned to need or understand your services, unless you are accomplished in mid- to senior-level management positions.
4. You can visualize and eval business ideas quickly, then be able to communicate them to specialists with ease. I can't tell you the number of times being able to verbalized the need for a linked list or onHover whatever has made communcation easier with people who I bring to help me execute. This makes you a better implementer who is respected by counterparts and team members. Business folk quickly grasp CLV and burn margins when deciding to invest or advise.
4. You don't necessarily become an expert in everything. In fact, it's near impossible. I've had to focus of two or three major activities and fine tune my skills. This could mean I will be specializing in the future.
5. You don't get rest. The world is moving quickly, technology even faster. There are millions of able and hungry people willing to execute on their great ideas every single day. That means I have to keep moving or lose my flow. I can probably point to 7 or so ideas that were launched in the time I was evaluating the opportunity with 3 that have gone onto real growth.
I'm 21 years into my career myself, so the web is younger than my carrer. At this point, I do full stack development as well.
And... I think you are taking on more than you need to for the discussion at hand.
If you are an excellent JS programmer, you don't need to keep up on the latest libraries. You can code what you need yourself. Sure, maybe you do something from scratch that could have been done with a newer library, but the 10 hours you lose there is more than made up by not having to do those 15 hours a week keeping up.
Likewise on your other tech points. Constantly churning your toolkit doesn't speed you up. It slows you down. There is a balance to be found where you keep up "enough", but still focus the majority of your time on delivering work.
I choose to spend a day or so each month trying to keep up, then roll with what I know for a while.
Likewise with some of your other activities. Meetups and business models? They may help you be a consultant, but that is adding yet a 4th role to the topic at hand.
Many of your other points also apply more to a consultant than a heads-down designer/coder.
In general, it sounds like you are trying to be an even rarer breed. More power to ya, but it may be overkill for most people.
The design's not bad and avoids most developer designed pitfalls, but it's not great either. HTML wise you've resorted to nested divs, there's errant elements floating in the wrong place and there's also a bunch of commented out code in each html page, which imho is always a massive red flag for me programmer wise. You shouldn't have to comment out code if you're using a VCS.
Obviously this is from 2 years ago, do you have any examples that better show off your skills now?
I'm not trying to pick on you here, it's more that I am honestly interested to see some of your work.
Matt, neither my code nor design will ever match someone who specializes in these areas. So I feel you're kind of missing the point. I never claimed to be a great anything so I wouldn't go jumping to conclusions. I simply do a little of everything. Kudos to your HN detective skills, Cookbuk was a weekend project hacked together playing with CI. Full blast reviews of missing or nested DIVs are a waste of your time that could be better spent on your startup. If you're looking for UI help on your corp or other products (which could use a refresher), lets chat.
You did say you had killer UI skills. Checking someone's comments and profile takes like 10 seconds.
I pretty much check the source HTML of every startup or demo site I see on HN as a matter of professional advancement and to see what they're using. People sometimes put easter eggs in their HTML or headers too, so it's fun too! Or even better when they're not minifying their JS and leave stupid comments in.
You'd be surprised about how much someone's HTML can tell you about them.
I do all of those, and I am definitely not a genius. Nor all that rare. Most of the projects I've worked on in the last 5 years have had several devs who could go end-to-end, and the ones that weren't were working towards that goal.
It's really not rocket surgery, it's just a matter of applying yourself over time and every few months acquire new skills in an essential area. CSS, JS, Ruby, TCP/IP, HTTP/REST, UI/UX, SQL, design patterns, on and on. Set em up and knock em down. Be a generalist, but be a very good one.
It's not that hard to accomplish over time and it keeps you engaged longer. Heck, it's just more fun. I'm an 'older' coder and taking that approach I think has kept me from getting bored, kept me sharp and also kept me from feeling like all these young'uns is passin me by. Hey! Get off my lawn...
Would you say over the years that you've oscillated between points of the stack, based on the needs of your current team? I've found that to be the case for me.
At my last job I did a lot of front end work, at my current gig I'm focused on the backend. I enjoy the oscillation and try to keep interesting side projects where I focus on the opposite of what I do in my day job.
Yeah, absolutely. It's been a matter of looking for new opportunities to do something out of my comfort zone. If you've been doing Rails for a year and an opportunity comes up to do some mobile stuff, take it. If you've been doing css/html for months and someone needs a SQL migration written, do it. If someone needs to configure Passenger/Apache/Resque, etc., be the guy. Get comfortable in Photoshop or Gimp enough to knock out an icon or two. Sketch out wire frames for Product for your next feature if someone already hasn't.
There's usually an opportunity to do all this stuff over time, you just have to be willing to jump on it when it comes up.
I've been working hard at being this guy. HTML+CSS+JS(coffee!)+Ruby, years of professional experience doing UX and website design on whiteboards and Photoshop and Illustrator, successfully launching brand-new projects.
I also know a few guys I've worked with that are very strong in the same areas. It's more pleasurable to work with a team where every member will do well in all areas, even if we have a core area that we would prefer to be an expert in. I don't believe those people are mythical or hard to find.
The myth is that startups want those people, but don't have enough money to afford them. They want desingineers that are cheap. I'm personally tired of seeing "stock options" in startups that don't have a product yet.
I'm a desingineer - ux, visual design, solid on front-end and okay on backend. Just wanted to point out its not all a bed of roses.
For the last month I've been interviewing at some really amazing startups. What I've found is that I have no problem getting interviews at some of the best startups (>50% response rate) because well everyone wants someone who can code and design . The problem is that I have to fight an uphill battle to prove that I'm not just a designer that writes HTML/CSS. There is ALWAYS the question of "so...how good are your frontend skills?" with an intonation of doubt. No one actually bothers to ask or determine about the level of your design skills. Another question is "which one do you prefer?". I really hate that question because it shows you don't understand what a product focused engineer is.
Positive response really depends on the stage of a startup. I'm finding that teams between 5-20 are looking more for specialists in design and engineering. Any smaller or bigger and a desingineer becomes a very valuable role to fill. So feeling I'm missing out on opportunities at some great startups cause of this phenomenon. Would e interested to know if anyone else has experienced this?
It's definitely causing me to think about my career path. Do I focus on one or the other? I know I am not great at both and that is because I have to spread myself thin in both areas and dont know the best tools and practices as well as I should.
Being a desingineer makes it really easy to start your own thing be it a startup or side project - I've done it a few times myself. However, sometimes you need financial stability, or are waiting for a significant idea, or just want to work with other really smart people on an idea with traction to gain more experience.
So we aren't unicorns and it's definitely not a double-rainbow life.
I'm coming a little late to this discussion, but I do think that as much as startups want "desingineers", the hiring process makes it very unlikely that they will ever get one.
I remember reading Scott Adams's advice on how to get into the top 1% (well, reallu the top .0..1%). One way is to be incredibly good at one thing - like Roger Federer. The other way is to keep combining interesting and related things until you're there - ie., someone in the top 10% at coding, design, sales, biology, and construction.
Here's the thing - recently, we've been discussing the willingness of companies trying to hire to accept "false negatives" because the impact of a bad hire is so detrimental to a team. But I think a lot of "false negatives" may be coders who do pretty well in the interview but not quite well enough to get past the filter. The interview process almost never gets at their other skills. So the company fails to hire someone with exceptional domain experience and good design skills because he or she struggled a bit finding cycles in a linked list.
There are solutions for people like this. One is to be a founder - get an idea, start coding and designing, create an initial app, and see what kind of traction you can get. The other is very similar - you'll managed to get hired somewhere eventually, and you can start proposing projects. Eventually, you'll get to run with one, and you can be entrepreneurial about it (well less upside but at least you'll have a salary).
It's much easier to do this on your own or once you're established with a company. It's tough to get this across in an interview process.
There is a third option that is more accessible than building your own products - consulting.
Clients seeking consultants have different interviewing tactics, even though the clients themselves have an engineering background. A good consultant is too expensive / too busy to be asked about detecting loops in linked lists or about how many balls can fill a bus. Therefore for a consultant references and a portfolio are what's taken into account.
And these can be built through hard work. At first you could build something for demonstration purposes and open-source it. Or you could work on a project pro-bono. Of course, consulting requires good marketing skills - but we are talking about generalists here.
That's a really good point, and reminds me of some thoughts I had last time I was at the white board explaining the difference between composition and inheritance. I was irritated as crap to be doing it, but I also realized that my irritation should be with myself. Even if I'm not a rock-star programmer with huge contributions to open source, I should, by this point, have a body of work that speaks louder than a technical interview.
Part of the problem is that many programmers still don't get to do open source work (I couldn't have revealed the source code to what I was working on at the time in an interview), whereas many other fields (design in particular) provide more opportunity to show off your work publicly. But there is a choice here, and as you've pointed out, it's important to make sure that at least some of your work is publicly available.
Even "demo" sites don't strictly need to be demo anymore - a small "real" app can be created, deployed, and used, even if the main purpose was to show off skills.
When I worked as an industrial design, we had a similar person on staff that sat at the intersection of design and engineering - we call this person a design engineer.
About six years ago, I decided to become a "desingineer", by accident. Here's how it went down:
After getting a BS and M.Eng in Computer Science, everyone was pleased as punched to let me code for them. But I wanted to code and design interfaces as well. What a strange idea - a programmer also making the interfaces.
Well, it turned out no one would take me seriously unless I had designed interfaces in a professional environment before. I needed someone that would take a chance on me, to actually let me design their UIs while hiding me away in their software team. (I managed to find one job that would, and for that I'm forever grateful.)
Once I picked up some experience designing UIs, the top companies wouldn't would take me seriously until I had some formal design training and credentials. So, I went back for a degree in Interaction Design.
Once I finished my degree, the top companies wouldn't take me seriously until I shipped some code that had my own designs in it. So I did that for a while, in a few hybrid dev/designer positions.
Once I shipped my code, the top companies wouldn't take me seriously until I had shipped a design of my own creation that was also my own (so, owning the UI, UX, code and business strategy). So I got back into entrepreneurship (something I'd largely given up with my pure CS focus), and started creating and shipping my own designs.
Now, as an entrepreneur, interaction designer and computer scientist, the top companies won't take me seriously until I start shipping designs of my own creation that are also visually stunning. Working on it. :)
--------------------
Only now, six years later, do I realize that no one will ever take you seriously unless they can define you.
Programmers can be understood, and slotted. They have real, respected career paths. Designers can be understood, and slotted. They have real, respected career paths as well. Even Interaction Designers are slowly becoming understood.
Being a desingineer, while bringing me incredible amounts of joy, also feels absolutely terrible - because people are constantly coming along with ideas of what you can or should bring to an organization. The limits of the position are such unknowns, in fact, that sometimes people feel desingineers should be everything to everyone.
Sometimes that comes out of with a sense of greed - after all, it's on the desingineer to prove they shouldn't have to do all of those things, right? And, in fact, they feel entitled to everything. Early-stage startups are particularly bad about this, I've noticed - their "first designer hire" posts often forget that everyone starts somewhere. (Sorry, but it's true.)
But other times people simply misunderstand how long it takes to become good at each of the individual skill sets involved. And other times companies are still sorting out what skill sets their companies actually need in the same person.
-------------------
Is there anything we can do, as a community, to bring some clarity and definition to "desingineering" - so kids coming out of school don't have to go through what I have gone through? It's obvious that this is a position that companies need, but it's not one that will be treated with respect until its own practioners - a fair number of whom seem to be on HN - actively come together to help define it.
I think in general, being a generalist in any field puts a ceiling on your career path after a while. And like you said the ceiling is not so much about the generalist being mediocre at many things, its more about others getting confused about how you would be best moved up the career track. But the problem with the concept of a career track is that you are on a track defined by other people. I'd say the only way out is go your own way as you have - career tracks all eventually end somewhere. As a generalist you have a much broader perspective on how to create your own track and a much better vision as to what direction best suits you. I think probably the best way we can encourage up and coming tech generalists is to encourage them to get frustrated with the status quo and to become entrepreneurs. As a result hopefully the next generation of companies will have a deeper appreciation of the competitive advantage of multi-disciplined people.
Entrepreneurs that are engineers and don't have a designer as a cofounder have no choice but to become desingineers.
Generalists are considered to be mediocre (jack of all trades, master of none). I don't know why though - maybe it's because many developers calling themselves specialists in a domain are doing the same thing for 5-10 years in a row and it's scary when other people take a different path.
This helps with some of the big, important things. But running a company will present you with a dozen of design challenges. A month. You can't just deal with these all contractually.
Thats just the thing - while that worked for me working a bit at the forefront of this trend, this doesn't feel like a long term solution. Entrepreneurship != being a desingineer, as the market is clearly showing. A student / aspiring desingineer shouldn't feel forced to start a company too soon simply because we lack the structure to help support that student grow into our industry properly.
I don't think they're forced to start a company. The trick is defining yourself in a way that provides a clear example of your value to a company, and how exactly they can monetize that. That's difficult to do right now, for the reasons you described.
The reason that everyone thinks 'desingineers' should go into entrepreneurship is because of the tremendous advantage this gives them. Bigger companies are failing to capitalize on people with these skills. These same skills allow desingineers to produce higher quality work at a faster pace for a cheaper price then any other combination of programmer and/or designers. This naturally leads to a competitive advantage that can(should?) be capitalized on.
Being a designer-coder is not being a generalist, it's being a double expert. It's like being a ninja unicorn. Everybody wants one… Chris Dixon's original tweet is right.
In my experience, a designer-coder is always in demand and can name their price.
I started messing around in photoshop making paintings of websites and dreaming up ideas in high school. In college, I convinced a programmer to help me build one of my ideas, and he agreed on the condition that I had to code the front end HTML and CSS. So I learned how to do that and surprisingly enjoyed it.
Then I realized I could quit my job making websites for people, so I got even better at building and deploying static sites.
I started going to meetups and built more side projects and sites with friends and started to get more comfortable with Rails, JavaScript, Git, etc.
After college, I went to work for Olark (YC 09) and realized that I could be far more useful if I knew how to program. So I've been working hard to get better at the various languages and frameworks that comprise our stack. And I'm well on my way to becoming a desingineer.
This sounds very similar to my experience, just starting with design first and then delving into programming to gain more control over the finished product. I knew that this would be a great combination to have considering how frequently a product breaks down in the communication between programmers and designers.
However, right now I am debating which direction to go in since it has a mess trying to get anyone to take me seriously without being 100% designer or 100% programmer.
If people don't take you seriously, there are only two potential things at play:
1. You don't command respect (either in posture/body language, the way you communicate, your portfolio/lack thereof, some combination of the three)
2. You are trying to work with nimrods
If you don't personally command respect, you will never get respect, no matter what you do. Unless you shore up your body language, communication style, and portfolio.
If you're trying to work with nimrods, nothing will ever please them. There's nothing worse than an ignorant client who thinks he knows what it takes.
Sometimes it's a 1-2 punch with all factors, in which case you're screwed. Better work on your clients (charge more) and work on yourself (take improv training, fix your body posture, etc.).
As a desingineer (not a particularly amazing one), I love the freedom I have to create entire projects front to back on my own and have them look and work great. But I totally agree about the "slotting." If I do one or the either, I feel slighted. If I do both, but get paid the same as if I did one, I feel slighted. I think desingineers are meant to be on their own, not slotted into one or the other in a larger group.
Where did you study Interaction Design? I'm getting in a masters in it at CMU after getting an electrical engineering BS. The masters here is a great program.
It would be amiss to separate my own academic influences from my desire to return to school - there were a few Ph.D applications in there along the way :) It is also entirely possible that as someone interested in such theoretical things, my career has subconsciously drifted to a road less traveled.
Indeed, this post was not meant to be bitter - and I think I would do it again - but it was meant to point out that the longer we take to pin down a definition, the more out of control it will get. I have half a mind to start some sortof of "Desingineers Association" to help get this solidified, in much the same way the Interaction Designers Association was so crucial for solidifying that movement in the late 2000s. Thoughts on that would be appreciated.
Funny, I'm purely self-taught and have worked for little local cos as well as big ones such as Pepsi & Bear Stearns (as a consultant at $hundreds per hour). Never had any problems with the fact that I had zero "official" credentials whatsoever.
They all hired me for what I had already shown I could DO.
I even put on my resume "School of Hard Knocks" - back when I actually had a resume.
If I were you, I would wonder that the common thread is in your experiences.
You defined yourself - as a product of your experiences - and you sold yourself, brilliantly. That's cheating. ;)
But seriously, I'm more concerned with the student who is interested in doing both and is still unsure of their career, than in the competent professional like you or me. It is obvious that the field wants desingineers, more than self-teaching can produce - what can we do to encourage them, either at the educational or at the job title/industry level?
you should try splitting it into (i) a designer who does HTML, CSS (ii) a programmer and (iii) perhaps even a separate Javascript coder.
This is how the company I work for right now does it and it is EXTREMELY inefficient. I've been advocating them to go back to one person to do html/css/js/php.
I can see the above work for large orgs. But with a 3-4 person tech team, super specialization has not worked at all
What's inefficient about it? Usually this doesn't work if your process sucks. The way I've seen it work well is:
Designer starts on the project a week ahead of programmer. Gathers requirements (with the programmer tagging along). Does paper sketches which get a general a-ok from everyone.
Does html prototype, ideally already in rails.
Hands off to developer, developer wires up. Over time they iterate together on the same codebase.
So in your model there is only a designer and a developer? At my work, we have someone for each specialty: 1. design 2. html 3. backend like php 4. js.
Your designer seems to do both (1) and (2) which is more manageable and something I've had work well. Likewise, your programmer seems to do both (3) and (4).
The problems arise when you need to tweak a small feature. You end up needing four-five people(if you count product manager) to touch it to make the change happen. It's not efficient at least for a web start-up(I can see it work for larger enterprises).
Pretty sure badclient said that the company has one person each for HTML, CSS, JS and PHP.
That does sound pretty nuts - seems like almost every layout/front-end/design change you'd ever need to make would touch both HTML and CSS, requiring two people to handle it separately.
My partner does: UI/UX design, HTML and JavaScript and a dash of backend. I do: backend, architecture, algorithms, sysadmin work and HTML + JavaScript when necessary.
It works really well. We also continuously try to expand to the others territory.
I suppose it's a bit of a lost battle in the web space, but I find it weird when the jobs are broken into "programmer/engineer", who does implementation, and "designer", who does UI/frontend stuff. In other areas of engineering, a lot of things other than the final aesthetics, or even just the UI, are called "design"; when you "design" a power plant, that's not purely implementation, but is heavily tied to the engineering. Surely any nontrivial webapp also has that kind of design as well, something more like product design? And it seems like you do want engineers who are also able to do that.
I might be considered a larval Designineer. I started off as a visual designer, then learned HTML and CSS, then Javascript, then out of necessity began maintaining an old ASP Classic codebase. As soon as I started to understand the code I was reading, things got easier. Then I built a small data-backed web app and I was totally hooked. In the last two years, I've learned to build nontrivial web apps from the ground up. SQL, MVC, Backbone, UI, design. I'm pretty proficient at each level of the stack, but only insofar as it's related to the web. Eg. I know C#, but I wouldn't have the first clue about how to write a native Windows application. So I end up feeling like my knowledge is the proverbial mile wide and inch deep.
I'm looking for jobs right now, and it's been an exercise in frustration. The coding jobs require CS degrees, 5 years of experience, tech interviews with big-O notation and data structures (trying to teach myself basic CS theory, but need a job now). The UI and design jobs require a smidge of front-end knowledge, but are mostly mocking and wireframing. I want to be able to employ all of my tools, but I feel like the hiring market makes me pick between being a front-end or a back-end guy, and I don't currently have enough specialization at either to get a reasonably good job.
How can I find companies that could use someone like me, when their job descriptions are specialized? Any thoughts or advice?
Anyone on here have any insights on HOW to get there?
IME, you need certain attitudes towards life to get good at both.
You need to be a visionary AND an engineer. Usually people are one or the other and prefer it because they suck less at it. Hence, they eventually get great at it. But this means the other suffers. To be in the designer+engineer category, you first need to figure out what you are good at (essentially what you spend a large chunk of your time on - dreaming or coding) and then what you are weak at.
Then practice doing the weak thing for a couple of years.
Pretty soon, you are a designeer.
Problem is, in the startup world, I still can't figure out WHY you should be both when you can hire people to complement your weakness. Steve Jobs was obviously only a visionary and he, through practice, became great at it. Dennis Ritchie, an engineer.
Unless, of course, startup is not your endgame. Unless your goal is self-improvement powered by a zesty thirst for knowledge. In my limited knowledge, though Learnado Da Vinci fell into the designeer category, he was still very much an idea person (visionary) than an engineer - mainly because he procrastinated like crazy with his projects (for years, at times). This shows that he preferred conceptualizing the project and loved cultivating the vision rather than actually implement it.
Thoughts? Please give me some feedback, this stuff is important.
Jobs was not "only" a visionary. Before Apple, Jobs worked at Atari as a technician. He would get assigned tasks like designing circuit boards. If you consider the early days, Jobs only looks like a business guy if you stand him next to Woz.
Anyway, I think I can say without exaggeration that I'm better than average in both engineering and design. At least for me, I think you have to be born that way -- you get pleasure both from aesthetics, and from solving problems. And when left alone by a world that sees both as separate, you just do your thing.
I started got a computer when I was 11. Other people played games. It seemed completely natural to me to spend almost all my time programming pretty graphics demos.
But how do you get any better? I think you have to be the kind of person who seeks challenges, who seeks a ladder to climb.
For computing, I think we all know that drill. Open source has made it so that you can start anywhere and go all the way to OS development, if that's what you want. You can also get work (even if you have little experience) and use other people's resources to educate yourself.
For design, it's a bit harder. Perhaps I was lucky in that I continually wavered between science and engineering, and design and journalism.
In my teens and early 20s, I was the production/layout guy at student newspapers. So I could educate myself, with thousands of dollars of other people's money, in a way that was almost ridiculously unsupervised. That sharpened my appreciation for typography, photography, design, etc., as well as gave me some experience managing people, budgets and deadlines. But I guess that other people in that role might not have gone as crazy as I did for the design aspect. Especially for the entertainment sections (where design was allowed to be more fun) I was trying to top myself with every single issue that I did. You know that you're doing it right when (a) the bloody thing actually makes printing deadline, week after week (b) you walk around the university and you see people putting your layouts up as a poster.
I would guess this has become a trend based on the following...
1) Entrance of lower quality, inexperienced founders who want an end product and only know about the buzzwords that supposedly go into building that product. They don't have an expert grasp on the development process so they naively think the process is to collect a group of people with all skills.
2) The advances in work process efficiencies make it easier to do different jobs in tech. Consequently, this makes it much more possible for 1 person to wear many hats somewhat more effectively. 10 to 20 years ago, these sort of job descriptions would be 100% insane because it took so much more out of the different disciplines to put software together. It would be like a hospital posting a job opening for a doctor who can also drive the ambulance.
On the 2nd point it makes me wonder if eventually at some point in the future the startup team along with the need for venture capital will be obsolete. If we follow the current trajectory, I could see building tech startups being more and more the domain of one to a couple people with slim to none capital requirements.
I think it's possible for most of the web-mobile projects today that aren't too ambitious in their scale, with one caveat: servers cost a ton on money.
The advantages of the "desingineer" is that you cut out a lot of red tape and inefficiencies in the early stages. You can implement things much much faster if you know both front/back and how they come together. IMO, this is crucially important in the MVP/early stages of a startup where you don't have a lot of resources and need to move quickly.
The downside to this (and what I'm slowly figuring out), is that there are limits. It involves a lot of context switching. Someone else mentioned it but it's true... you only have so many hours a day and it's insanely hard trying to become proficient at design, ui/ux, and programming.
What ends up happening is that you "feel" like you're mediocre at everything, and when your startup is growing that feeling SUCKS. I would much rather have a small team where we each specialize (with some overlap of course) in what we can be excellent at.
As a desingineer I'm always looking for the mythical startup that has cool technology, awesome people and a good chance to rocket to the moon. Probably as hard to find as desingineers.
That's awesome. Of course, if we just want money, prestige, and success, then that is what we want. But if we want opportunities to grow, then the startup should be a challenge demanding our best to achieve success --- it should not be an easy ride on others' abilities. And the same goes for finding the desingineer --- if a founder wants to address a prime responsibility of running a company, and control their culture, then part of their legacy is the people that they help grow and to flourish into the desingineer.
As a designer, I personally prefer taking any design straight to code (mainly because making iterations to Photoshop designs is a nightmare and frankly a waste of time). I think the thing that helped me most was that I started learning design by coding (i.e. I started writing XHTML/CSS alongside learning design principles). Being about four years in now, it's great to be able to get a project and say "yeah, I can code that." It really just takes time and patience. While my coding experience is mainly focused around front-end development, what I've learned from the front-end has helped me to feel comfortable with Wordpress and PHP. I think the best way to become a "Desingineer" is to constantly have some project that challenges you, whether paid or not (preferably not as there is less pressure to get things right).
I would think that the type of person that is a designgineer is likely to be informally trained, usually starting as a design person and becoming increasingly more technical over time.
Because of this, I reckon they would do poorly at a lot of the types of technical interviews that are in fashion today, such as puzzle interviews and data structure/algorithm questions that you'd probably only do well with if you had a computer science background.
"Tell me how you would go about building an efficient maze generator" is the wrong kind of question for these people. "How would you go about building token-field interface from scratch in javascript" would be a better question.
Sites like InterviewStreet and CodeSprint don't optimize for hiring this kind of person.
I think you are right, I suspect that is a drive to invent things and a passion for technology, that is at least how it works for me:
web design as a kid + DT at school + always inventing things -> Industrial Design at uni -> interest in developing product from both the user facing side and technology behind it.
I read these unicorn articles and at first think, hey, I'm one of those guys, meaning it can't be that hard. I am no genius, just a decently hard working individual that tends that likes to do things right. I feel comfortable in both worlds, I lead a design team and also lead the direction of some of the engineering efforts of a decent size team (20+).
That being said, it's hard to do both at scale or really well. One is going to suffer as soon as the project gets to a decent size, I notice this every time I try and do it myself. So, props to people who can produce extremely high quality code and designs, that takes a serious focus.
And be wary of people who say they are great coders and designers. In most cases, it's more half designer and half engineer; meaning you'll have an ugly design and a messy code.
Ok, first of all--if you're a designer and your primary area of design is for the web--you damn well better be able to hand-code HTML and CSS. If not, you push pixels in Photoshop--and that's not design.
Designing for the web requires that you understand the limitations of HTML and CSS and not push our crap from Photoshop that would be a nightmare to implement.
When we're talking about "desingeers" are we talking about designers that can write markup and style or designers that can code out a great Rails backend?
The real issue is that mastering something takes an awful long time - 10.000 hours or 10 years from what I have read (Malcolm Gladwell, Peter Norvig, various research). Most people aren't willing to put in this effort and most people aren't willing to suck at something for years, therefore they focus on the thing they are good at.
Maybe we could become awesome at multiple things if we are willing to invest 10 years into learning something instead of investing a few weeks.
I think the mistake is in structuring the company so that people have to be awesome on both axes. Either that, or so they're forbidden to become good at both.
Every developer is a designer. (You can't make something without thinking about it at least a little.) Every designer can be a developer if they want. Both skills take plenty of practice.
Nobody is likely to be 100% amazing at both, but that doesn't matter: a lot of day-to-day work is pretty mundane, so nobody has to be amazing all the time. As long as you have somebody great that you collaborate with frequently, you can still get a great product, and everybody gets to up their game over time.
Skill-based division of labor is fine for assembly-line products, but for iterative, creative work (which is what all startups are), I think you need intense collaboration, which requires broad skills. That's why IDEO, a design powerhouse, looks for what they call t-shaped people: http://chiefexecutive.net/ideo-ceo-tim-brown-t-shaped-stars-...
It's a cheesy name, but I think the idea's spot on.
I think I must fit into some super set of this somewhere.
My day job is as a physical product design engineer for a consultancy and have a degree in Industrial Design. So I would do the mechanical and aesthetic design of a product including Injection Moulding, Sheet metal, machining ect. which is not to dissimilar to someone doing the user interface and back-end of the software/web product.
What makes me a little different is that I spend my evenings doing web development and although I have never done it "professionally" I think I am probably allot better than most at the front end development using html, css and javascript (I do like a dash of coffee script). I also have a fair bit of experience with Python on the back end mostly using Django but have also more recently been experimenting with Gevent and web-sockets to do some interesting live updating stuff.
So I suppose I'm a bit of an odd ball, I can't work out how to get both the physical product design and all my interest in web development (front and back end) into one job. I think I will just have to invent a job for myself that does...
Reasonable article, this is fairly well known as an issue, but definitely does good to bring it up again since a lot of places just don't get it.
Also goes without saying that the companies looking for this person also will typically be requiring mastery of cross-platform application design simultaneously targeting most every known desktop and mobile operating system; a long, specific list of diverse technologies at very particular version numbers; they should be willing to relocate at their own cost, with remote work and telecommuting unacceptable; and of course they should be willing to work for less than market rate for a practitioner of even one of the skills they are supposed to be masters of, which should be no problem since there is a low cost of living in the obscure one horse town they will be moving to but which features lots of outdoor activities and family values as long as you don't mind the rampant small town corruption, house break ins, ATV, copper wire and catalytic converter theft, weekly stabbings over a girl, and pandemic meth addiction.
I was discussing this issue with a friend the other day. I think the real 'why' is there is no motivator to become good at both design and development. Both skills take people who are passionate about what they do, usually to the point where they hone their skills in their free time. I actually think most (good) devs and designers have slight inclinations towards each others work, but it is a serious effort to go from "that does look cool/useful" to professional proficiency. The few people who are currently 'designineers' are mostly likely completely passionate about both (which is their motivator). However for the rest why put in the effort? My understanding is that the pay isn't much different (in fact this sounds a lot like, "wouldn't it be great if I could get 2 for the price of 1"). Easier to find a job? Perhaps, but right now I think good designers and developers are having no trouble finding work. Additionally your skill set is now the target of tons of people looking to get something for nothing, or have one person doing 10 jobs
It's funny that this is a thing now. In the early days of the web, being a Designineer was a necessity to get anything done in most web-type companies.
Some will say, "well, you probably aren't on level with a rockstar coder." This is probably true, although my clients are very happy. I can wireframe, design and code a large-scale web app without having to consult a single person (other than the client, of course).
I am starting my own web company now and I am finding that the Designineer badge helps me in great ways. For example, I wanted to quickly create a prototype to show a potential client a better way to go with their website. Normally, in a web company of 5-10 people, this would require consulting a coder, designer and whomever else is involved in the drafting of a project. This could potentially tie up 2/3rds of the company for the possibility of landing a new client. For me, this was all handled inside of a few hours and it makes the company appear more staffed than it actually is.
Something not mentioned, people who are desingineers often gravitate to a comfort zone with regards to money and ability. Let's face it, design is subject to the whims of opinion and can take a really, really long time, code on the other hand usually just works or doesn't.
Dealing with clients on design projects compared to code is like night and day.
Engineering and designing are much more similar than they are different.
I recently completed a four-year graduate design degree (architecture) after a lifetime of math, physics and not a whip of art or design experience. Here's my take on this issue.
Engineering and design are both fundamentally processes of creation. While both creations must meet one or more objectives, the types of those objectives often differ. Engineers tend to optimize for quantitative objectives and criteria; designers tend to optimize for qualitative objectives and criteria.
I think this difference has two significant consequences:
1. The solution space for designers (or anything with qualitative criteria) is much larger than for engineers.
2. There are many more opportunities for mediocre design than there are for mediocre engineering.
By point 2., I mean that not only is the solution space of design much larger, but there are also many more "attractors" of solutions. In engineering, the attractors have a strong pull and are more recognizable as such. And, because the solution space is more quantifiable, the relations between those solutions are more well understood and comparable.
In design, the attractors are more fuzzy and their locations in the solution space are often unknown. This allows anyone who can find a mediocre design solution (especially those who find "pretty" visual ones) to become a "designer". But good designers must do much more. They must understand the design space enough so that, from any starting point, they can justifiably navigate towards that same design solution.
This involves crossing certain thresholds -- bifurcations -- in which the nature of the design solution changes. Recognizing when to cross these thresholds is, in my opinion, a task perfectly suited for analytical thinkers. You don't need to be able to create visually pleasing designs to find the best design solutions. Visual aesthetics are simply one component of optimizing the already discovered design solution.
So my advice to engineers is this: forget about visuals. Design analytically, question the existence of design components and their relationships. If you cannot justify their existences and relationships, you need to somehow change their nature (bifurcate the design) until you can justify it. Often starting from the bottom-up is the best way to accomplish this.
Once a design solution is in sight, optimizing its visual aesthetics is much easier -- you've already framed its problem so well!
Finally, I must note the three tasks which are essential to the design process: research, experimentation and documentation. Surely these tasks are also vital to engineers, or anyone else involved in processes of creation.
---
(PS If anyone would like to talk about how many of the concepts of dynamical systems theory can be used in the design process (and the design itself!), I'd love to hear form you!)
What I also find fascinating is the way words shape the way we see the world, instead of letting the world shaping the words we use.
I believe that we are creating artificial limits between jobs. Unless you are coding some really complex piece of software, programming is not that hard, at least not as "engineeringy" hard as electrical or civil engineering.
Thanks for the encouragement. I'm in the process of two related posts, but they're not quite finished.
One is on my master's thesis and how a design can actually be the result of a complex dynamical system. The other is on the process of navigated a design state space during the web design process.
I'll be sure to post both here when they're completed.
How interesting. I came from an Architecture background (high school +2 years and University +2 years) and I was decent at it and won a few awards before diving back into computer science (which I did throughout high school) and business (i.e. startups) and became a jack of all trades and then a founder. I can definitely see that my creativity in one area influences the other -- see https://github.com/tblobaum/nodeQuery
Amazing how many people are tooting their own horns in here. IMO, if you are one, you don't claim it, people know by looking at your work. But anyway...
This has been my problem breaking into the industry. A few years ago I didn't understand a lick of HTML/CSS and changed that by digging in and learning it. Now I can build WP themes from scratch (not the most semantic, but I can still do it), and write functions/code in PHP. Now I'm working on js and jQuery, while also trying to learn the rest of the LAMP stack.
Still, it seems like every time I teach myself something new, a new skill is added to the startup rockstar job requirement list. I get that startups want to fill big holes, and that many pay accordingly, but this is why so many junior level people decide to build their own companies instead of asking permission to learn a little on the job.
> IMO, if you are one, you don't claim it, people know by looking at your work. But anyway...
Except this is a discussion in text. Sure, yes, walking and talking are two different things, but how else are you going to know what point of view someone is speaking form unless then tell you in their comment? No reason to assume people are just tooting their own horns for 'hn-cred'. Does your comment mean so little you'd ruin it by belittling people?
As for the rest of your comment: to be fair, from the sounds of things, your still very much new to all of this. You are a junior developer, and that's nothing to be ashamed of. The problem is you are looking at these startup rockstar job requirements and deciding for them. That doesn't mean you are ready, but you shouldn't be the one to decide that. After all, good companies are always looking for good people. And while that position they have posted might not be right for you, they might have another place for you.
> this is why so many junior level people decide to build their own companies
Maybe. I don't know, personally. That being said, though, is that starting your own company requires another "rockstar" requirement list all it's own. Don't fool yourself.
If you're put off by "startup rockstar job requirements," starting a company won't be any easier.
All I'm saying is that the proof is in the pudding, and I find it odd that 25% of the people that had posted upon first read felt they could claim this status. I believe it can be achieved, but the numbers seem very skewed here.
Anyway, I'm not ashamed of it at all. I went through a job search and had a lot of bad luck. I'm not actually expecting to be given a rockstar job, but even the local small-time shops have the same requirements. Every single company I've seen is looking for the mysterious rockstar unicorn programmer.
So, after eventually finding a job, I decided to build a bunch of projects on the side, and we're getting a lot of traction. If I were to claim rockstar status at anything, it would be persistence. I guess you probably didn't look at my bio.
Bingo. As soon as possible after building a product that starts getting traction I build teams of people who are far better than me in every relevant discipline who can sprinkle true awesomeness on their respective areas. From that point my "deep understanding of all areas" (as you put it) gives me the judgment to lead the team as we relentless prioritize efforts in the individual aspects of the whole product. That skill set was valuable at least through the IPO, twice.
Even before I started my own companies I was a product manager at a large company, and groking the hardware, software, UX, manufacturing, and marketing aspects of the product gave me uncommon influence with the real experts in each of those domains -- because I had and could communicate that end-to-end vision of what was possible.
Tip: don't read Web Design for Developers from the Pragmatic Programmers. It was a good read, with a lot of basic stuff about color theory and typography, but that's the final project: http://www.yourfoodbox.com/
There are some out there that can do both but I find it to be very rare (and thus should be highly paid). I have worked with some very artistic people in the past who couldn't code to save their life. I always tell them "you make it look good and I will make it work."
I suppose one could break this issue down into one of breadth vs depth. You probably can find someone who can do both designing and engineering, but unless you find one of those mythic geniuses, you're not going to get someone who goes very deep in either one. I suppose this might be preferable to certain businesses that just don't have that many deep, involved problems. Of course, as a business grows more complex, you need some specialization. You just can't beat having someone who knows a problem inside and out.
Regardless, I think most startups who hire this way are trying to have their cake and eat it too. It's probably part of the reason why some startups find recruiting so difficult.
Mythical and wanted as may be, it is also one of the most misunderstood kind of roles. Bigger companies are simply not used to combine design and engineering in one role and try to push you into one (oh, you can code?). As a jack of all trades, master of none, you are often not taken seriously by either side and have to work twice as hard to prove yourself.
Once you do make it into the right places though, it is an incredibly fun and diverse job. I take most of my satisfaction from the notion that I can go from concept to (prototype) implementation on my own if I have to. It is one of the most empowering feelings in the world.
I don't think startups want a desingineer, but rather an expert at one skill (product UI/UX, engineering, marketing) with a pretty decent understanding of a secondary skill area.
For example, I do a fair amount of design work in photoshop etc. I can implement simple front-end stuff. But my co-founder can get complex front-end engineering stuff done 5-10x faster if I just help him pair program it. If I didn't understand code, we'd be unable to do that. Something similar probably to be said about his sense of design since he often ends up giving me really good feedback in the middle of building the page out.
I think a lot of this depends on what you mean by "backend". Personally, I need a designer who can write the frontend. That means HTML/CSS, but it also means JS (because what is a web app without JS these days). More importantly, it means being able to work directly on the app without hand-holding - for example, knowing where the CSS goes in a Rails project and being able to work on it directly.
I wouldn't expect my designer to write a sorting algorithm, or a web crawler, or anything that's more code-y, but HTML/CSS/JS and the frameworks which hold them are part of the toolset.
I've been working for startups a long time (over ten years) and I have only met one person that I would consider a great designer and developer. I don't think it is because others aren't capable but rather aren't interested or forced to. This type of person is definitely a rare breed which is good. I think a lot of people say they would like to fall into this position but in reality probably not so much.
Please keep in mind that I have met quite a few people that dabble in everything but a true professional at both is quite rare.
I have 15,000+ hours on each. My opinion is that good taste and intuition play great value on code, best practices and testing do the same to UI/UX and so on.
The funny drawbacks are usually that you can hardly win a discussion with people that don't know you well since they will usually corner you on your other 'personality' such as "says the interior decorator" when talking about CQRS or REST etc.
I currently work on 'Evil Enterprise Contractor' building web-based products but I too get to switch context all the time, from conception to live.
I'd say the closest anyone has come to this was Steve Wozniak. He of course built the first two Apples but also wrote the BASIC for ][ that would be used for its thriving game ecosystem...and he wrote a few games himself.
I know the article in question is talking about front-end/back-end design...but I'd argue that software and hardware engineering are just as peripherally-related-yet-substantially-differentiated enough.
My cofounder at http://bagcheck.com had the perfect mix of skills. He is a designer that also deeply understands HTML and CSS. He has some experience in coding, but knows that he shouldn't focus on it and uses those tools only as much as it helps him understand his medium. If you have have the chance to work with @lukew, I highly recommend him.
i'm a designer/engineer and trust me there isn't anything mythical or special about it.
i've been a web/graphics designer for 9-10 years and coder for 3.5 (python at first, but this year i started ruby/rails)
from personal experience i can say almost all creative/visual people are scared of logical/geekish computer stuff ... i was scared and lost at first too but then i realized i'm quite good at architecture and once i put my focus on becoming a better at it things weren't scary any more. my designs improved, my love of internet expanded and i can't imagine doing anything else!
the most important mistake designer make is that they think they need to become REAL "software engineers" like building compilers or even worse thinking they have to master java or C++! (nothing against java, it's just that designer shouldn't start with java or similar programming languages)
for all you designers first learn html5, css3, a bit of javascript and then start with python/ruby (django/rails) and go from there. it's not a 1 night journey, it will take couple of years but it's worth it!
Finding designers who can do front-end stuff (CSS, HTML, jQuery/JS) itself is hard. And add the complexity of backend coding. These type of people are rare. Quora had an interesting discussion on the topic of designers implementing their own designs where lot of top guys in design have voiced their opinions - http://qr.ae/7vD
Don't see a problem with becoming a generalizing specialist that sees the whole picture from many facets - from marketing, business, coding, design (product, pixel...).
A startup needs people being willing to fill these roles and if a said venture is successful (and becomes a business), you can afford specialists, until then, I would expect people to have many roles.
My role is exactly this. I find it more the case because I like to be a "jack of all trades" and understand the entire spectrum.
My true expertise lands in the front-end development side of things but I can do it all. I prefer not to though. It's a job for multiple people. However, having the ability to understand all the layers is a big plus when managing/leading a team.
It's often a good idea to have all these specialties be different people for the same reason that writer, editor, and proofreader are optimally different people. Now it doesn't hurt for all involved to have abilities and training in all the above, but responsibility and focus can be enhanced by some creative segregation.
“Most people make the mistake of thinking design is what it looks like. People think it’s this veneer – that the designers are handed this box and told, ‘Make it look good!’ That’s not what we think design is. It’s not just what it looks like and feels like. Design is how it works.” – Steve Jobs
Yay, i'm a designineer. :D But.. i've been in the closet. I don't talk about it much. In fact i've actually hidden the fact from others, masking my role by making up imaginary coworkers to beef up the credibility of my one man shop.
No, I'm serious. That is not a joke. And it works.
i am proficient in html/html5, css/css2/css3, javascript, jquery, python, mysql, nosql, but design is a whole different ball game. i know what looks good, but i can't be bothered to create icons, banners, logos, color palletes, and such in photoshop (?), provide guidance on margins, padding, font, layout, etc. given a set of wireframes, colors, images, icons, font family, i can go to town on a website, so i still believe in the need for a pure designer.
as for being able to add input into simplifying user experience, reducing clicks, using certain jquery widgets over html elements, etc, i can provide ample input. so it's really the visual piece that i lack. maybe it's time i picked up a phtoshop or illustrator book for myself :)
I don't think generalist's are as rare as this article makes out; I think most people are born like this. However I'm certain that when we go to work we are incentivised into becoming specialists. My assumption is that at scale businesses will consider any variance in employees more trouble than it is worth. As a result of this, if somebody wishes to market themselves to the majority of the employment market they are more successful if they find a niche to excel in. (Presumably once you've done this you start to think of yourself as a specialist and forget your underlying potential to learn multiple ways of thinking.)
Startups almost certainly would do well by hiring generalists but I doubt it's often that they seek them. The demand for specialists will have altered the supply of generalists in a way that probably makes searching for them costly.
I am a generalist although not a "Desingineer" as I haven't picked up very many design-related skills. I personally disagree with many people in this thread on what being a generalist means. Being a generalist does not mean you have several discrete skills, and it does not mean you are a good a programmer as a "programmer" or as good a marketer as a "marketer", etc. I think this separation is a projection of a formal education. Instead I would describe generalism as about having one big formless ability accrued from every discipline you have studied. This is a potent skill as it gives you a broader understanding of how things work and sometimes the cross-pollination of ideas allows you to make much better decisions, and act in a way that others consider wildly creative.
Of course, that's not to say that being a generalist is somehow better than being a specialist. Unless you're a genius [1], specialists will often outperform you in their area of expertise. It can also be a little depressing. Sometimes it feels like you've taken 100 steps in a 100 directions and ended up very close to where you started. However, it definitely has its pros -- for me, it satisfies a thirst for all kinds of knowledge.
Ultimately the rigid distinction between specialist and generalist is artificial. Few are pure generalists and few are pure specialists. I don't worry that I will be held back by other's difficulty in fitting me into a role. I might have multiple abilities but like most of you I have some which I am slightly better at. I doubt that even the most fervent self-proclaimed generalists can avoid becoming a little specialist at something. ;)
I wonder how a progsysadmin would compare to the desingineer. I'd imagine it's easier to find a progsysadmin just from my own experience. I've had a few jobs where I was responsible for both the programming and system administration, in small companies of course.
That's more complicated due to the history of programming and sysadmin being more closely intertwined, as you discovered. The first 20 years of Unix were the "systems programmer" domain, having followed the "sales engineer" era of the 60s (speaking roughly here) after the burgeoning computer industry's customer relations functions started getting specialized and split off from nerds. There were many, many more of you 30 years ago.
In my case I'm a designeer because of the circumstances of my interests at diverse times and the way I learned such interests. I started to get acquainted with linux when I was 7 or 8. I was coding C when I was 13 and then at 15 I was really interested in everything design. I ended up doing Web Design at 17. At 19 I opened a company making web applications. I then moved on to corporate software where I was in charge of coding commerce and enterprise applications. At 23 I was doing full sys admin work. I'm now 28 and I'm working doing UX, Design, Web Dev, Backend Dev, and little Sys Admin stuff. I'm rusty in the Sys Admin area, but I'm definitely more productive than the average CompSci graduate with a few years experience.
I'm pretty sure there MUST be a person better than me in all those areas, but not because I'm not a master of my skills, but because there is just always someone better. Becoming a Designeer happens only if you have the time (a decade?), and the inclination (interests in the right fields and skill sets at the right intervals in time) to learn the things you need to learn to do the job. Of course, there's also the fact that you need to be lucky enough to have people to hire you to do those things so as to get enough quality experience performing the tasks you need to perform.
Interestingly enough, I'm in the office right now... and this is the list of stuff I've done today:
1) Finished coding a Windows service that acts as a data bridge between an two applications and three types of databases.
2) Worked a UX prototype for an IPad app (made in Keynote) that integrates with an in house product.
3) Finished a redesign for another in house app (this one is a ERP type WebApp).
4) Modified a series of E-cards the in house designers made because they where not optimized for email and had some alignment, whitespace, and typography mishaps.
5) Worked on integration of commerce hardware with 'special printers'.
6) I'm currently designing the visual aspect of an interface for yet another of our in house products.
BONUS: Yesterday I spent 3 hours securing the web servers for our website and a ticketing tool that our customers use.
I am by no means the best programmer, sys admin, designer, or UX architect, but I find all those roles are second nature for me and I have no problem getting a job (I literally get a call every couple of days by recruiters or companies offering me positions), and I only work in places I know I'll be having loads of fun and interesting challenging work. Designeers are not hard to get because they don't exist. They're hard to get because they want to make their own rules and work in things they actually want to work in. Offer them this and you'll invariably be able to score someone that will fill this often looked for but generally not realistic position.
I don't see anyone explaining why it's such a big win to combine both skills in a single person, which is what I'm curious about. Can anyone explain this to me?
Given a scale of 1-10 for design skills and programming skills, it's my experience that individuals significantly over 10 are rare indeed. In fact, If you find one of Spinal Taps' mythical 11s, hire him or her now.
i don't think designers, per se, are that valuable.
this line of thought just stems from the conflation of graphic design and interface design. the skill in demand is the latter. to be good at it one needs to be able to be proficient in html, css, javascript, and have basic abilities in whatever server-side technologies are in use.
so, yes, these folks will be hard to find. just like any other good engineer, they'll either have a job, be kicking ass, or doing their own thing. c'est la vie. try offering a wage they can't refuse.
interface design. the skill in demand is the latter. to be good at it one needs to be able to be proficient in html, css, javascript, and have basic abilities in whatever server-side technologies are in use.
I really don't follow. A kick-ass interface designer can know nothing more than Photoshop. A front-end guru can be terrible at interface design. There's very little connection between interface design and the technologies used to implement it.
There's very little connection between interface design and the technologies used to implement it.
For starters, whatever you design in Photoshop typically looks 10-30% different in the browser when converted to HTML. That is significant enough to make the concept look very different than the actual browser interface implementation.
An interface designer who only operates in Photoshop thus cannot deliver accurate-looking concepts.
whatever you design in Photoshop typically looks 10-30% different in the browser when converted to HTML
HTML isn't the culprit here. Any design done in a static medium is going to change when actually implemented on a device, for a platform. But it could just as easily be Flash as HTML. Good designers understand and account for the target medium (flexible sizes, variable fonts etc).
Also I reject your initial hypothesis. With a knowledgeable designer's design I can get a pixel perfect HTML implementation. If your design changes 30% just in the implementation then your designer doesn't understand the medium very well.
I'd never hire a designer that valued Photoshop skills above problem solving, design thinking and usability. Photoshop should be just a tool for a designer. I think as that is where the end product usually comes from, it's seen as the skill that you're buying as an employer. Anyone can learn Photoshop, it's extremely simple, it's design thinking that separates the men from the boys.
The best designers will know HTML+CSS+Javascript pretty intimately for a variety of reasons.
Can you name a few? I work with an absolutely brilliant designer who can't write a lick of HTML/JS/CSS however he intimately understands how his designs will translate to a browser.
I'm not sure it's true anymore. The way something looks is important, but so is how it responds to user actions. This probably started with flash around 2001 i.e. flat graphics were not acceptable anymore but now designers don't have keyframes to tween so knowing css and javascript to manipulate user interactions is essential for UI these days. Even for mobile dev, designers should have prototypes to demo to devs about how an interface responds to interactions.
I wouldn't devalue graphic design as the parent did. There's room for a lot of improvement in the graphic design — what's often derisively called "just the way it looks" — of most digital products. Graphic/visual designers were somewhat restrained by low resolutions and slow GPUs. Evolving display technology will give rise to better graphic design both in the web and other digital products.
Good interface designers should definitely know the basics of the technologies used to implement their creations, in the same way industrial designers are expected to have some understanding of materials and manufacturing processes. It's often said that designers thrive on constraints: a designer does his best work when he knows the limitations of his tools, and works with their limitations and defects to create something useful instead of pursuing some impossible level of perfection. Designers, too, have to ship, and they ship best when they know what's behind the facade.
theoretically, you could just use photoshop (or keynote, more realistically) to design interfaces. however, given that from there someone has to take over and implement it using the real technologies, it is easy to miss things and the process becomes hopelessly slow. i guess it is theoretically possible to operate like this.
contrast that to being able to rapidly iterate on the real code.
i don't mean iterate as in "code a feature, commit to the repo, send for review, do over". i mean the tweaking while coding.
When people talk about 'interface design', it seems they rarely mean anything more than where on the page to place the navigation... The crux being that we all assume a set of priors, and everyone asks "how do we make doing this easier?" instead of the more fundamental "what does the user want done?" I don't think that skill is necessarily related to other forms of design -- it's just a case of taking a step back.
"They’re doing something on their own, are already kicking ass and are not available."
It's not that they can't use an extra $10k per month. They most certainly are available.
They're not available at 'speculative, "startup" wages' with unknown prospects even if you get them on board with a token amount of equity and even if you get funding.
They can do it all, and are doing it successfully. They don't need you.
So what? I don't need Google, I don't need Microsoft, I don't need IBM. These companies would hire me by putting some money on the table.
The key to the 'desingineer' is that, you know, they don't really need you. One of your skills (the person looking for a desingineer) is putting the pieces together, finding the people and getting them on board, none of whom can singly do everything. So, they need you.
THe desingineer doesn't need you. If you want them on board, you're going to have to actually open your pocketbook. Imagine that.
The HN comments have way more substance than the original post. But I'll echo others: it doesn't take a genius to be both. On the other hand, a skill for spotting and studying and applying underlying patterns is a must.
There are just as many patterns and underlying systems in design as codecraft, and vice versa. And they're not that dissimilar.
Design isn't "art" -- it's a type of making things fit for purpose. You can have purely functional design that meets the purpose without soul. You can have purely functional code that meets the purpose without soul.
The best design is crafted with soul. But so is the best code.
As somebody who does both, I speak from experience - they're just not that different. Superficially yes, but not at heart.
I am a `desingineer` I guess. I'm working on a startup that is taking on big web analytics. A lot of the reusable code is being released as free and open source so that I can focus on the UI. I built the initial front and backend application (now leading a team), the UI, the product plan, and the marketing plan.
I recently made the jump from doing freelance web development work with most of my clients coming from craigslist to being the Director of User Experience at a software startup developing algorithmic trading software and doing UI/UX consulting for another company.
Right now I am working in C#/WPF for one company and Sencha (ExtJS) for the other.
Sorry if I came off that way. I am confident in my abilities to create awesome interfaces but I still have a lot to learn and a lot of time/practice to put in. My original comment was meant to be from the viewpoint of a "desingineer".
I know the article is probably referring to someone who is equally talented in development as they are design, able to create the backend along with the frontend, but I feel that being able to implement my designs in Windows Presentation Foundation, ExtJS, JQueryUI, Wordpress, etc make me a desingineer as well.
While I took AP CS in high school, I can't rattle off the to O-notation of most algorithms. While I took plenty of art and design classes over the years, I'm no Jony Ives.
But, its not about what I can't do in my mind, but what I can do. I learn most things very quickly. I'm decent in Ruby and can get stuff done. I can get around Photoshop decently. I'm good at understanding what the customer wants and the product needs. I know how the pieces glue together. I don't mind meeting with VCs, talking to customers or interviewing people.
Yet contrary to popular belief, I don't find people bashing down my door. I don't have the sexiest Github account. The startups I've worked for aren't huge. When I'm asked what I do I reply, "Coding, marketing, product and design". Then they ask if I'm a Java or Ruby coder with 4-7 years of solid experience and a CS background.
Maybe the difference is I don't see myself as being a "full stack" guy, but a "full company" guy. I understand what everyone needs to be doing, and I have (often good) ideas of how a problem might be approached better.
I personally see myself as a huge asset to any company. I often end up doing the productivity of 2-3 people with more traditional backgrounds, but its a really hard sell honestly. I could try selling myself as a manager I suppose, but I'm not sure.