Hacker News new | ask | show | jobs
by votr 3521 days ago
Thanks for sharing.

My big question, which I'm still struggling with, is how much to specialize.

I'm one of those guys who wants to do everything. After a few years of Java development in financial companies, I now work on real-time web UIs. I'm now eyeing distributed, soft real-time systems with Elixir, and a bit of applied machine learning.

If you look at my blog, you'll see stuff on Clojure, React, and a few other things. So far, the React stuff has helped me land a client.

My question: Is this counter-productive? Should one specialize? How does one adapt when the specialization wanes and a re-branding is required?

2 comments

One trick is to separate your skills from how you market some of them.

You can remain pretty much (internally) a generalist and a tinkerer (as you are, and I am, too! but make sure not to spread yourself too thin), yet make sure to market /some/ special skills appropriately (and in very specialized/niche fashion).

You'll decide which areas to market based on how you feel the market can generate recurring revenue.

For instance, I'm a tinkerer, yet I have a couple of well-defined niches :

- in the past, "Rails maintenance work" (easy to find, and useful while my second child was still a baby)

- Ruby ETL (http://www.kiba-etl.org/) (more specialized, but very visible in my little sphere)

- "SaaS bootstrapper with experience implementing products (and their billing)"

- anything FinTech related (as in WiseCash & other projects)

- scaling your data processing (no matter the technology, Elixir, Node, Ruby, ...)

The underlying skills are all very "aligned" around products & data, yet each small niche appeals to a subset of potential clients.

Hope this helps!

I do consulting for a big company and am a bit like you.

Jump between Java, .NET and C++, backend and frontend (both native and web) depending on the project.

Also since I majored in systems programming, I tend to dabble in other languages.

On my personal experience and those on my circle of friends, some specialization is required to keep being marketable.

Switching among technology stacks inside the company is relativity easy, as it is only a matter of being available when the right project is looking for new devs.

Outside on the job market, agencies and HR departments tend to focus on the last couple of projects, so if they aren't the key technologies that are looking for, it is very hard to convince them that we also have knowledge in the specific area.

In any case, just the size of standard libraries for modern languages, make it almost impossible to know everything.

Let alone the third party tooling and most relevant libraries outside the standard.