Hacker News new | comments | show | ask | jobs | submit login
Ask HN: How to start a career as a generalist?
145 points by thriveaway on Jan 16, 2017 | hide | past | web | favorite | 60 comments

Once I'm in a company I can make myself very useful by analysing, abstracting problems and telling people what they want from each other when they are having discussions and filling any gaps in front-end development. But because I'm no specialist in anything I find it hard to get my foot in the door. I could specialize or qualify in programing more, but I prefer the management and product owner work.

I'm 28, close to finishing my studies in "media and fine art" where I focused on experimental informatics, more precisely news distribution in the internet, interfaces and haptic feedback.

Wherever I worked I joined for some rather low-skill work and quickly become the one to organize at least the conceptual or technical aspects of the project.¹

I freelance doing some custom wordpress sites (those where you do need to write a bit of php) or small web implementations and work in a 3-4 person startup (unfunded, but self-sustaining by side-gigs). At the startup there is not much pay and I do some communications with customers and concept, design and frontend of a cordova/angular app. If this startup succeeds, I will most likely float on top and have a nice job, but not much equity.

Now the question: Where to go from here? The launch date for the first project of the startup is immanent, so I'll see how that performs soon. There is of course a lot of reason for doubt as with any startup, so I plan to look for a better payed job.

Thanks so much for the help!

¹ This way I went from flash animations (a few years back) for our client BMW to writing the specifications for a new outsourced MVP in one company (they offered me to become CTO on paper for the new child-startup, but for laughable pay). In another gig I moved from assistance to technical supervision of a short-film festival sponsored by the german state television.

A few thoughts:

1) You've already started your career.

2) Companies (generally) don't hire "generalists". They hire people to solve their particular problems. You need to show why you're the right person to solve company X's problems.

3) Sounds like you're headed toward a product manager or program manager role, but need some more credentials to command that at legit companies. Starting in technical management is a good place. Learn an industry really, really well and then look into product manager roles.

Pay really close attention to #2. Especially with large companies, if they post a job opening it's because they've identified a specific job that needs to be done. I've had trouble job hunting in the past because I've been working for 6 straight years, but never doing one thing for more than about 6 months. If the job posting says "5 years of experience doing X", I have 5 years of experience and I've done X, but I haven't done X for 5 years.

Start-ups, on the other hand, seem to be a place where they like people who know how to wear multiple hats. It seems like you've got your foot in the door. If the start-up you're at seems like a dead end, start meeting people at other start-ups in the area and grow your network.

Wearing multiple hats is for the partners/owners. Startups don't hire generalist to do anything. I worked at Zomato's NEXTABLE (reservation software on the iPad) as the iOS dev along with two interns. I used to do some Nodejs and messed around in Java in addition to having done marketing and financial modeling as a real estate developer. Still - I was hired to work on the app, not server-side, not marketing nor making phone calls.

Pick something you like and get awesome at it and iterate from there.

Startups don't hire generalist to do anything.

More anecdata. I've worked as a generalist my entire career, always in companies with < 200 people. Mobile, web, desktop, api, windows, linux, embedded, javascript, sysadmin, netadmin, whatever. It's all the same to me. Point me at your weakest spot, and I'll make sure it's not your weakest spot, until the pain is gone, or you find a specialist. Rinse and repeat.

You may be hired for a singular problem / job to start. But if the startup grows, that problem is going to change or go away. The opportunity to grow with a company and take on new challenges often is the best reason to join a startup.

Having had a bit of startup mileage, I second this. I don't know why the above post downvoted.

Because it's generally not the case for early stage employees. The first couple hires, especially on engineering, definitely need to wear a variety of hats. In my first startup engineering gig, I did everything from front-end design and development to backend API work to helping people tech support their Macs and upgrading hardware in team computers, talking with potential investors, etc. Without a doubt, wearing multiple hats is the norm when joining a startup that's pre-seed up to Series A or so.

I'm working at my third startup now (horrible management and lack of understanding of work-related injuries caused me to leave my first two gigs)

I joined each of these startups in their infancy, and at that stage, even if wearing multiple hats doesn't get you hired, it quickly fast-tracks you to a position where you can have more impact in the decision-making process.

These startups were not just in tech either, so I think this is just generally true of startup culture. One was agricultural, one was food service / retail and only my current one actually has me coding, but I still found myself going all over the place with client/customer relations, marketing, spreadsheets, tech support / IT, etc.

What I like about taking these kinds of open-ended gigs is that it can really help provide you the experience and comprehensive knowledge that will land you better administrative / project lead roles elsewhere, as well as prepare you for striking out on your own without becoming overwhelmed.

I've found the exact opposite, in my experience. I have a lot of experience in several broader areas in software development, and I've had far more success in bigger companies than I have in startups.

I've found that that startups (especially the ones that are far along enough that they can actually afford to pay you) are not willing to put up with the (perceived) time it takes to get a generalist software developer up to speed with their particular software stack, because of the speed at which they need to move. If they need someone to develop in AngularJS, they damn well need someone who knows AngularJS deeply and can hit the ground running, because they can't afford to spend time and manpower training you.

This is compounded by the fact that many startups overestimate the time and effort it takes for a good self-driven learner to get up to speed with a particular technological system.

In contrast, bigger tech companies tend to look for people with good smarts and algorithmic chops, because they can afford to take several weeks to train you in whatever they happen to use. They can absorb that time because you're not needed as urgently, so they don't hire as narrowly.

I am a bit older than you, but I would say most of my life I and my peers have considered myself/me a generalist. I have subject areas where I am much stronger than others, but like you, I excel at "in-the-middle" jobs. I am good at seeing the big picture and connecting the dots among people and teams.

That said, its been a constant struggle for recognition and position in companies. When people realize what we can do, they tend to either promote and support, or jail and exploit.

I find myself taking specific roles with a hope towards moving up in the organization. Often the role isn't what I really want to do but there isn't another way into the organization without that strategy. It takes time and doesn't always work out.

I've tried the consulting role, and very nearly kicked off a serious consulting company with multiple subject areas of focus. It is fun but in the end, you still get hired to do a specific consulting job most of the time, not just to be a generalist and give advice. One exception to that rule in my experience was consulting with startups.

You seem to have realized the startup path. I have worked for startups and that was pretty successful for the kind of person we are, but usually higher stress. Also, the startup hopefully pays well enough and is successful, otherwise you find yourself with some pay and some experience but no job when the startup deflates and back to "ok, what to do next"?

Others have mentioned product/project management. I've done that too. Product management has been a good match for generalists but without previous PM titles on your resume it can be hard to get the first role. Technical product management is a good way in, but make sure you know the difference between what a product manager vs a technical product manager does. I suggest Pragmatic Marketing training to get a leg up for this. Certifications can help for product or project management in terms of recognition.

Long story short, I love being a generalist and I feel we often don't get the respect we deserve. But it can be a hard slog getting through and we are a unique and valuable resource, just like specialists. We're just specialists in being general. :) So best of luck with your pursuits!

Thank you very much. What you write confirms what I expect. I'll see if I can find something equivalent to Pragmatic Marketing in Germany to get that leg up.

When you're trying to get hired, talk the talk you know about the problems the company has, not about all of the skills you have. If you're able to focus the discussions on how a subset of your skills provide lots of value to the company, that's what's going to get you hired. Show that you know the domain that the employer wants to see. Definitely mention your other skills, but don't make them the focus of your interactions in the hiring process.

Then, once you've been hired and start working, you will naturally use your other skills to add value to the company. After you've been with the company for a little bit and have shown your other skills to also be valuable, that's a good time to discuss getting more formal authority in other areas and/or a raise to compensate you for the duties you've taken on.

Get into Project/Program Management. Do it as a discipline rather than as a "I just ended up doing it because nobody else will" Look for certifications in Management that your company or field cares about (PMP/PMI etc.). Very quickly you'll find that you can end up working on an infinite variety of projects and can dip into countless fields (just remember to let your actual SMEs do the work).

After a few years you'll find a groove in PMing that you may like and you can try to scope your world to that (certain project types or sizes, etc.).

My background is CS, but I've ended up in this kind of role and have worked in everything from helping out with Sales and Marketing to Designing Genomics algorithms...just dipping in to fill gaps where needed and dipping out again when there's somebody else who can fill it.

Generally the smaller the company, the more hats you'll end up filling and you'll learn more skills that way, enabling you to generalize better.

I personally tend to bounce between very small and very large companies and the ability to transition between skill sets has definitely been valuable in the larger corporations...I usually find myself starting in a discrete role and rapidly end up running a group or a department. When that gets boring I go do something very hands-on in a small company. When I want more focus, I'll go work in a large company.

The tradeoff is that I'm not highly skilled in any one field, but I can usually fill in for lots of foundational stuff to get something off the ground. I've worked in tons of fields, but would never really call myself a specialist in any of those fields, the people who are dedicated to those fields are far more skilled than I.

One bonus is I can usually take an idea and get some legs under a project very quickly, then flesh out real needs and start to fill those with specialists as needed. I've found that to be a very productive way to do business.

I'm a software generalist. Fortune did a study once that where the discovered the average person has three different careers. My first was in sales, before the age of 28. Second was in manufacturing logistics working in a warehouse and MRP. Third is software. Someone else suggested blogging. My sales experience has been a great leg up over the typical programmer in human relations. 1. Figure out how to sell yourself because your competition doesn't. 2. Consult. I've owned my consulting company since I graduated from college. Having a different "job" every year actually is a good thing when one is project consulting. 3. Be prepared to interview. I interview like crazy. 4. Network with agents and agencies. Find the agency that knows how to place.

When I first started consulting I relied heavily on agents and agencies. Agencies are a challenge and it takes time to find the a relationship that knows how to put you in front of clients.

Running a consulting company and interviewing like crazy sound kind of contradictory. Is your consulting part-time?

As an individual consultant, it's not terribly uncommon for the contracting company to interview you and get a feel for how working with you will be beforehand. At least that's been my experience.

I work as an independent contractor developer (not as a consultant). I would say that I get pitched on projects and to respond, I relate my background and experience to the problems conversationally, but I wouldn't call it an "interview" or at least it's a radically different style of interview than a dev candidate, for example, I typically do not get asked tech screen questions like algorithms problems, whiteboard coding, etc. Perhaps my experience is different than the norm because I work with a small number of clients very closely. OTOH, maybe it's just a matter of perspective.

You feel consultants shouldn't be interviewed? I wouldn't hire a consultant for a task without an interview.

Consulting. If you like solving different problems for different people, nothing will get you more variety of problems and people who have them than consulting. If you want to focus on the development and client relations bits, join a consulting firm with a solid sales team and smart devs to help you learn areas you're weak in.

Source: I've been a consultant for 3 years out of the 5 that I've been a developer. I always grow and learn the most and get the most customer contact in these roles.

"join a consulting firm" That is good advice, sounds like a good fit. I don't feel expert enough to consult freelancing, but with the backing of a firm it should be more easy to figure out where my weaknesses are.

Your post sounded like you're very front end focused. There's 2 options in the consulting world there. The first is to join a front end focused consultancy. There are places that just do UX and front end design.

The second is to join a general consultancy. This is going to make you rub shoulders with all types of devs. If you want to be a true generalist/full-stack type, this is a better route. You'll have mentors who can teach you server side code, SQL, deployment, security, etc.

I got my MS in CS and Applied Math (my BS was in unrelated science). When I got my first consulting job, I had strong backend and algorithmic skills, but very little front end experience. I found a mentor at that job who was a HTML/CSS expert, and I learned a ton from him. That job also made me learn how to setup CI, fix legacy code, and dig in databases to isolate data issues. Oh, and I definitely had to talk to customers. Now, I have no problems executing a full stack project from start to finish because I can extract requirements, design a UI, write the server code, turn the model into a schema, and deploy it all.

I've had a similar problem and the advice that's always given to me is "The term 'expert' is mostly about perception." Credentials help when you're trying to sell your services because they're used as a proxy for competence. Having a track record of success can also work. Start small.

>>I've had a similar problem and the advice that's always given to me is "The term 'expert' is mostly about perception."

Not sure I agree. I work for a consulting firm. One of our main revenue sources is clients who hire us to fix the mess created by "experts". The difference is that we actually are experts in our problem space - as in, we have lots of experience and technical knowledge - so we can actually add value to our clients' operations.

Don't get me wrong: perception is definitely important. But the worst thing one can do is sell oneself as an expert when they actually aren't. If one is a generalist, they should figure out ways to package that in ways that will resonate with the clients they are going after.

Starting small is good advice, though.

Joining a consultancy is a great way to get a variety of experience in a compressed period of time. I've spent most of my career consulting, but the time I spent with a group of developers I liked and respected was well worth it.

This reminds me of me when I finished the MBA, thought I was trained in "business", and tried to find a job as a "businessman". Oh, the folly of youth! It doesn't actually work that way in life. All businesses do specific things. All technology projects use specific technologies. If you want to make yourself a "generalist" that either means specializing in something that's used in a lot of different jobs (like PHP or Python), or specializing in more than one thing.

The key paradigm shift you need to make is this. You are probably viewing any kind of specific knowledge as a hindrance, a chain that will limit your freedom to do other things. In fact, though, it is the collection of such knowledge (as much as you can get) that eventually makes you multi-skilled hence free.

I really like this advice...I don't think I've ever seen the benefit of specialization to the generalist worded so succinctly.

Thanks. Some focus is a common theme in the comments here. I'll try to follow that advice, though I'm not sure I want to go much deeper in programming.

I'd recommend reading Cal Newport's "So Good They Can’t Ignore You: Why Skills Trump Passion in the Quest for Work You Love" for some great insights on how to build your skills whilst changing jobs/careers. His approach in 3 steps:

1. Develop skills that are rare and valuable

2. Do something useful and good for the world

3. Work with people you like

Embrace being a generalist.

I myself have gone through a similar dilemma, being a generalist allows you to make informed decisions that sit between two disciplines. When the problem concerns both sides you ARE the expert. This is a specialist skill in itself.

If you are looking for something specific I'd highly recommend working in R&D this will give you the opportunity to work in a role where being a generalist really helps.

You can program and you have a degree in fine art. Why aren't you looking for data visualization gigs? It's a lucrative specialty that few people are well suited for.

You could do what I do and find a startup that is just at the stage that they need an in-house tech person. There's tons of problem solving at that stage usually across many different areas! I'm programming, meeting with key stakeholders, sending RFPs and meeting with software vendors, etc. I didn't get this job by applying for it though, rather by contacting the company at just the right time.

It sounds like you're talking about being a project manager.

PMs don't code though. Not if they want to survive.

Not sure why you're talking about being a generalist but that word will kill any chance you have of getting a job unless it's help desk.

I'd add that the best PMs I've had can code and occasionally did (writing things like QoL scripts or database/ORM stuff for metrics gathering), but it's definitely not part of the day-to-day job.

1. Apply for better paying startup jobs. Startups are always changing, and there's more scope for fluid job roles.

2. Apply for jobs as product manager, or (a bit trickier) if you have the resume for it as technical manager.

The 2nd option sounds good. In both cases I guess I have to apply a lot and see what I can get. Thanks for the advice!

As a generalist myself, I would say try and find a way to land yourself a customer success gig. On any given day, I'm managing my team, our clients or our products in a non-trivial way.

Granted, having any say about the product took time and the final decision rest with our CPO, but with your design skills you could make the segue over to product teams much faster, if you wanted to.

By "land yourself a customer success gig" you mean getting a finished project to show off?

Thanks for the advice.

I think the parent used "customer success" as a reference to the job function of interacting directly with clients and serving as a channel for feedback. This type of work often affords one the opportunity to develop product improvement proposals directly informed by real customer use cases, so it requires a broad understanding of the industry, the user, and the technical implementation.

I've done this, one job title I held was "customer solutions architect" or "customer solutions engineer" and it was a pretty good fit, although involved more travel than I personally was looking for.

You match customer needs with solutions architected/engineered from your organization's product and service offerings basically, and support/consult with the customer about fitting your solution into their environment.

Specialize in an industry instead of a technology.

If you keep changing areas you will eventually be a generalist by default. If you gravitate to one sort of work (architecture, project management, etc.) then you will use generalist skills but perhaps develop less breath. Don't worry, just enjoy what you do.

Thinking about this some more, I think being a specialist is really about how you market yourself. Your skill set may be that of a generalist, but there's nothing stopping you from pitching yourself as a specialist in whatever the company cares about, so long as you know you'll be able to do it.

More detailed write-up: https://codewithoutrules.com/2017/01/19/specialist-vs-genera...

I'm a generalist. I've done things ranging from work with thermoelectric elements to creating battery systems to making UAVs to full-stack development. Sometimes it's really easy to find work. Sometimes it's really hard.

I recommend expanding to as large of an area as you can. I started as a full-stack developer, which is kind of a generalist role. Then I expanded to thermoelectric stuff, and then UAVs and batteries. Each of these things started as a personal interest.

If I were you, I'd find things you are interested in, and specialize in several of them as quickly as you can. Have you always been interested in hydrogen fuel cells? Spend a bit of time to learn as much as you possibly can about fuel cells. Know the cheap end of the market, know the expensive end, know the experimental research, know the size of the market.

The easiest way to get a job as a generalist is to get a "normal" job and convince the company that you can solve their problems in other ways. Going up to a company and saying "Hi, I'd like to be a generalist at your company" won't usually work, but "I'd like to be a full-stack developer with freedom to collaborate with teams throughout the company" will. Eventually, you'll grow into the "generalist" role and the company will recognize you as such.

The other, ideal option is to work for other generalists. For example, I was recently looking for someone who knows how to make CFD models, someone who can write assembly, and someone who knows about control surfaces. I would have hired a generalist who knows one or two of those three and could learn the rest quickly. I wanted to hire a generalist because I know that several months down the line, when I need something else, I can tell them "hey, I need you to do x now" and they can figure out how to do it themselves.

Here's an example of how I provide value as a generalist. A company hired me a while ago to improve the efficiency of their UAV system. Because I know about battery technology, I was able to build them a battery pack that brought the flight time from 9 minutes to 28 minutes, and cut costs by over 90%. Because I'm a full-stack web developer, I was able to build a web interface to control the system. Because I've worked on UAVs, I knew when to replace parts with low-cost alternatives and when to spend several hundred dollars on one motor. Because I've done UI/UX work, the system was usable without any training for everyone involved. And since I knew how to make these things "from scratch" there was no need to send things out to external agencies, and I was able to develop the system very quickly.

The hard part is convincing random people and companies that you're valuable to them. Unless you get lucky and find another generalist at the company that understands your value, you'll have to demonstrate it. But be careful. Only go to companies that have a semi-flexible structure already (e.x. don't try this at Microsoft or Apple.) Demonstrate your value with concrete things that can be done immediately with clear benefit. For example, at a lot of places I'm hired as a programmer, and I see a battery system that could be improved. I can go to them and say "by the way, you could switch out your current batteries for a custom pack and save $9000 per system, and I could build you that pack in less than an hour." If they like that, then the next suggestion I have will probably be an easier sell, and so on and so on until you've built up a role - official or unofficial - as a generalist.

Scrum is still in fashion, perhaps you could add Scrum Master to your CV maybe even get a certificate to go with it. Then it depends on your office politics.

As long as your pay is low it is hard to tell whether you are valued by your company. It sounds a little like you are afraid of asking for money or taking on responsibilities and instead just go along with others. I don't think you can build up a reputation that way.

I am valued, but the startup is really low on money (because we try to get our project done, not do much client work). As some compromise I now do it just 3 days a week and partly remote.

Do you have serious equity if things work out?

Nope, nothing serious. Hence I'll see what happens now after the launch and then probably move on.

I don't want to be too negative but I have been in a similar situation. Once money starts flowing it's very unlikely that you will get more. If you being underpaid and have no serious equity you are being disrespected and that won't change.

Sounds like you might be a natural for project management - might look into that role as well.

Yes, I thought so too, but I'm not sure how to get in to it.

Are you blogging about news distribution in the internet, interfaces or haptic feedback?

Thanks for the advise and: no.

I really have to get over the reverse Dunning–Kruger Effect (I know enough to know how much I don't know). In practice this is not an issue: if a problem is solved is farely easy to verify, but making statements is something else.

I will work on this :)

It sounds like you live in Germany? I have heard freelance project manager is a thing. Did you try to apply for those jobs?

I will try :)

move to austria / graz, become my employee, then my partner, then my competition (I'm ok with it)

The advice I give developers at the beginning of their career is that its really difficult to be a generalist when you don't have much experience to lean on. You end up knowing just a little bit about a lot of things, but you don't plug any holes for the team, so everyone there is deeper than you are on any question that matters. This was how my career started, and though its worked out really well for me as a consultant, there were several years where I questioned my fitness for this career path and even went down a road towards medical school before returning to the field, incurring a not-insubstantial student loan debt along the way.

First, focus on getting depth of experience in one area. This could be front-end or back-end. These days you'll want to pick a framework and get really, really good at it—could be react, ember, angular, vue, whatever. But be really solid in that framework and the language it uses (modern javascript, for example.) Learn all the tools you use in that capacity (e.g. Chrome's web developer console, webpack, etc). Then branch out—for our hypothetical front-end developer, pick up another framework and learn it about 70-80% as well as you know your first. Or learn how to pull off an isomorphic React application and start learning about the back end.

This is the "right"[1] way to become a T-shaped developer. Once you start branching out into other languages or platforms or whatever strikes your fancy, and you develop some experience with those things, you get to be more of a "paint-drip" developer. [2] Eventually you've been a generalist so long that the area of your experience puts you on par with a mid-level developer in any of several areas, and you're well-suited to a career phase as a consultant, manager, etc. Then you become fairly expert in all of these areas and you can start gap-filling (e.g. learn devops much more deeply, learn design, whatever you didn't pick up the first time.) As a seasoned generalist, you'll be pretty valuable in startup settings, but fair warning, they rarely pay enough to warrant the time you've put into becoming a broad expert. Unless you've got founder-level quantities of equity take those jobs because you really like it, not for the illusion of an exit. It sounds like you're already coming to this realization, so that's one less thing to learn the hard way.

A word of advice in your current capacity—if you're not getting much pay, and you don't have much equity, is this really the startup you want to trade those things for experience with? Is it giving you a quality of experience that will open doors or increase your depth in a single area? If not, you're better off coming up with your own project and working on it to learn than giving your time away to someone else's exit. With your degree concentration in informatics and interfaces, you should probably look for a project that will focus heavily on those skills.

Best of luck to you in finding the path you want to be on!

[1] There's rarely a single "right" way to do anything, but what I'm describing is the way I wish I'd done it.

[2] https://www.facebook.com/notes/kent-beck/paint-drip-people/1...

Working in a startup can be a great way to get a variety of experience. Too much variety can be a trap that furthers appearing as too much of a generalist for later positions. If the startup succeeds and you with it, even better.

But, for getting "established" financially as a human, startups with lower pay that may not succeed can make it more challenging.

immanent doesn't mean what you think it means :) even though it still makes sense in that sentence.

Mandatory XKCD: http://www.xkcd.com/863/

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact