
Ask HN: What is your software specialization and what's interesting about it? - skellera
I&#x27;m at somewhat of a crossroads as I&#x27;ve started as a Jr. Engineer recently. I figure I should choose a specialization at some point and start to focus on it.<p>What are some cool things about your specialization?  What makes you excited to work in your field?
======
itamarst
I'm skeptical of specializing in technologies. Personally I've built
multimedia CD-ROMs (in proprietary language), websites, high performance C++
servers for airline industry, distributed systems in Python and a bit of Go,
and now I'm doing scientific computing.

If back in the '90s I'd decided I was a multimedia specialist when multimedia
was the Next Big Thing... I wouldn't have gotten anywhere because it was
killed by the web soon after.

By all means become an expert in technologies that interest you, or that seem
lucrative, or have a lot of impact that you care about. But specialization is
in the end a marketing approach, it shouldn't define who you are.

More here: [https://codewithoutrules.com/2017/01/19/specialist-vs-
genera...](https://codewithoutrules.com/2017/01/19/specialist-vs-generalist/)

------
mickduprez
I've written an app that uses an XML schema to record local authority assets
such as roads, sewer and water, parks and cadastre et al as a plug in to a CAD
application. What is special about it is that it uses a vendor neutral file
format to record important assets that can be imported into a GIS system for
use in budgeting, maintenance, planning, asset depreciation etc. All data is
validated by the schema so all stakeholders can be sure that the data passed
around is usable and correct.

What's really opened my eyes is that the state of BIM (building information
modelling) is way out of touch with what is actually required to create re-
usable data.

XML, love it or hate it, is a simple text format and used with an XSD (XML
schema definition) is a very powerful way to enforce data standards, sort of
like type checking for a text file.

Having said all that I think if you can develop apps that use something like
XML, JSON, whatever as a data source and it's used along with a good schema
there is plenty of opportunities for work. Not everything needs to be stored
in a database :)

------
GenSpecialist
I've spent over a decade as a generalist. If I had to do it over, I would have
been shortened that time by half, then specialized.

Being a generalist means I understand coding, infrastructure, business
decisions, statistics, data analysis, data engineering, backend, web
technologies, marketing, and a little sales. It also means I cannot find a job
that uses all those skills quite as easily.

However, now I'm knee deep in the fast.ai deep learning course[0]. Nearly
every one of my previous skills acts as a solid foundation for my new
specialization. In a field where with an extreme Pareto distribution (10x
effort for a 5% model efficiency increase), I can be in the 50th percentile in
deep learning skills, but still produce solutions that solve problems.

Currently, I'm positioning myself as a consultant who can solve business
problems. I'll use all my skills in doing so, with the focus on deep learning
(it's great for structured data analysis!).

Being a generalist means I won't get paid for what I can do, but I've gotten
lots of feedback that it will let me do things as a specialist that will get
me paid. (Because I can work faster and cheaper than 3 people, once you
account for hiring and communication frictions.)

[0] will be released publicly for free in January

~~~
mcintyre1994
Is the fast.ai course being released in January the new/updated version of the
current Deep Learning for Coders one? If so awesome!

------
muzani
Android is an interesting specialization.

The market is very big and there's lots of contracts, without having to
compete as hard as say, PHP developers.

Americans are much more likely to specialize in iOS and the bulk of poorer
countries are likely to specialize in Android because a lot of people can't
afford to self-learn iOS and educational institutes can't get the budget to
teach it. So a lot of people start Android, switch to iOS for the money. That
makes Android specialists with 4+ years of experience much rarer. It's a very
young technology and so specialists are even harder to find.

Hybrid only goes so far. Hybrid builds MVPs well, but they usually get
converted to native down the line for efficiency.

With Android, one of the biggest difficulties is automated tests and
asynchronous http requests. Http requests also makes up for the bulk of
operations and development in many kinds of apps. This is where the
specialists shine - they can make architectures more suited to testing or
build/maintain HTTP web operations in a log (n) speed compared to a junior.

Android is also really tedious to build something basic with once you hit
moderate proficiency because there's a lot of "best practices" you have to
violate. An MVP specialist like myself can build an entire app very quickly,
knowing which best practices to stick to and which ones are best handled as
technical debt.

And once you're tired of programming, there is lots of demand for training,
both bootcamps and corporate. Learning Android development has as much demand
as web and there's a lot of people from corporate environments who know Java,
have money, and want to become app developers.

~~~
vram22
What do you mean by hybrid in this context? Tools like Cordova or PhoneGap?
(Don't know much about this area.)

------
matt_the_bass
You might want to think about what _business_ you want to work in. Then
develop the best technical skills for that business.

For example, my company works in the marine industry. Our SW team needs to
also understand the limitations of working on a ship.

------
fenier
I tend to be specialized in A/B Testing, Analytics and Personalization.

I enjoy the precision needed to get actionable data, talking through all the
use cases, and the constant experimentation.

I do on average tend to find the 'build it, and maybe throw it away in a few
weeks' style of development isn't for everyone however.

------
a_lifters_life
Cyber Security, when you understand how to build/maintain/manage software, you
know how to defend, and break it too ;)

------
SirLJ
With me is the opposite, I am interested in the stock market and the
technology (python, Linux, etc) is just the means to the end (making money
constantly)

