2

I've been a software developer for close to 15 years and while I like most of it, there's one thing in particular that I love above all: optimization. Specifically optimization for speed.

It's the kind of work I can spend hours on without counting. I'll have fun doing it, fun thinking about it outside of work, I'll show up to work earlier for it, the whole nine yards. It's not very often that I get the opportunity to do that, but when I do get that I'm in software heaven. It's work I'm good at and love doing.

I've registered on StackOverflow email alerts for job descriptions that contain the word "optimize", but I feel like this isn't the best approach.

What, if anything, could I do to orient my career to doing mostly just that? To find or get job offers that center on that?

  • can you be more specific about the optimization you are interested in? is it algorithm optimization or optimization in general? is it optimization at high scale or micro optimization? – kaptan Nov 16 '16 at 21:03
  • 1
    I don't think I have seen a job which is solely about optimisation of existing products. Projects are more likely candidates. I think developers are expected to optimise as part of their normal role rather than bring someone in to rewrite their code and do it for them. – Kilisi Nov 16 '16 at 21:30
  • 1
    I would take a look at Process Engineering, it strives to optimize the process of which it is based. – Prodnegel Nov 16 '16 at 21:34
  • @kaptan all of the above. Some of the problems I've tackled over the years required going back to the algorithms used and how they were implemented (graphs, like back in school!), others involved caching and building dictionaries, pre-sorting data, changing queries, adding or removing database indexes, all the way down to twiddling with calculations and finding out which types could be preferred and how much precision was required. I haven't done any assembly tweaking professionally but only because there was no need to at the time. – MPelletier Nov 16 '16 at 22:45
  • Look for applications that have lots of data and lots of transactions. – paparazzo Nov 17 '16 at 5:09
4

This is a job, though a fairly rarefied one. Major enterprises (e.g. Dell, Home Depot) have dedicated performance engineering organizations that usually use expensive application performance management (APM) tools to monitor and optimize their applications. Big tech companies have the same that do tool creation and such - like Yahoo's Exceptional Performance team and Google's equivalent. In fact, there's specialization in front end, back end, and systems performance engineering.

Learn some set of those skills and figure out who's involved in those communities (e.g. Steve Souders is a founding figure in the front end performance community and started the Velocity O'Reilly conference that covered it - that conferences is defunct now sadly; Brendan Gregg is a systems performance expert who does many conference talks and writes books). Follow the threads from the books, githubs, etc. to figure out the teams in companies that do that. I have a friend who is an APM tool product manager who has worked with many of these teams over time; finding someone like that (or even just starting with the "logo pages" of people selling those tools) can help.

| improve this answer | |
8

Find a niche where optimization is important and work toward career in that niche.

The examples that came to my mind immediately are:

  • Embedded development: faster and smaller code allows cheaper hardware and longer battery life. Size is often more valuable than speed, since RAM consumes power even when idle.
  • Game development: faster algorithms allow flashier graphics and more detailed simulations on the same console.
  • Scientific computing: Faster algorithms allow more experiments within budget, and sometimes allow doing things that would be infeasible without the optimization.
  • Massive online services: When your computing costs are in range of millions of dollars per year, even relatively small savings become worth someone's salary

I'm sure there are more niches like that. Be aware that the first three require very specific skills and all four may be difficult to get into.

| improve this answer | |
  • 1
    You missed probably the biggest/most lucrative one for sheer speed: Algorithmic/high frequency trading. Tens of billions of dollars a year rest on your algorithm making decisions and transmitting them to stock exchanges' servers millionths of a second faster than your competitors. – Kaz Jul 8 at 15:55
  • My impression has been that it is one of the more overhyped fields. – ojs Jul 8 at 20:01
3

TL;DR; Don't.

Make it your personnal favorite. Help people around showing them how to spot inefficiencies and how to make it run better. Be a multiplier of this ability. Be the go-to person for this subject. That can move your career forward.

Just don't make your focus. Optimizing a piece of code would save money for the company? Will it pay for the effort you'll have to put on? Usually not. It will pay off sometimes. There's value in loading up a web page fast, but in a long running, asynchronous process it may not make much of a difference. I would say it is more important to have a working product after all. People will find this skill valuable, but I guess you'll lose more opportunities than you'll be able to find.

BTW, congrats for doing this thing for 15 years already and still finding joy in the activity.

| improve this answer | |
  • I like that you answered, just not the words I wanted to read. But thanks for taking the time to write. – MPelletier Nov 17 '16 at 13:53

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .