Tips for Developers

bchip

Expert Member
Joined
Mar 12, 2013
Messages
1,324
Reaction score
418
Thought this was an interesting post:
(wonder how many people agree with it here)

  1. Don’t work for a gaming company, or you’ll be spending long nights trying to meet deadlines that they’ll never ever let slide.
  2. Never ever work for a military contractor, or else you’ll be hitting the street with 300 other software engineers when the contract ends or is cancelled in 6 months.
  3. Never ever work for large electronic manufacturers like cellphone companies for example, or else you’ll be a mundane software validation test engineer.
  4. Never ever work in an R&D department, because that will be the first department that they will lay off during hard times.
  5. Never ever work for a start up company, because most of them will fail within the first year or two. The ones that don’t will dangle stock options in front of you instead of a good salary, work you to death, and when the time comes that you can exercise your options they’ll either be worthless or the company won’t let you exercise them.
  6. Never ever work for a company that was acquired by a private equity firm. These companies do not care about their employees. It’s about making the numbers look good, so they can sell the company off in a few years. That will mean lots of layoffs prior to the sell off to make the numbers look even better. The equity firm will typically not hang onto a company for more than 7 years tops.
  7. Start looking for a job immediately after any company is sold to another company. This will end badly for most employees making high salary’s or employees with the least seniority.

 
Don’t work for a gaming company, or you’ll be spending long nights trying to meet deadlines that they’ll never ever let slide

Mostly agreed. The one exception being people who really have a unique skill and passion for game development - it's just what they do best. There are a ton of people with very modest ability and achievements who put themselves in this category unfortunately, and end up paying a heavy price because of this (e.g., they start an Indie company and spin their wheels for 20 years, or join a game company and just fade into the background, while losing out on the benefits of more supportive industries).

Never ever work for large electronic manufacturers like cellphone companies for example, or else you’ll be a mundane software validation test engineer.

It depends - a lot of these companies need system software specialists, and if they have their own SoC, they will need everything from kernel engineers to compiler engineers, to performance engineers working across the hardware and software teams, to application engineers writing some pretty close to the metal performant code - much of it pretty advanced and interesting.

Never ever work in an R&D department, because that will be the first department that they will lay off during hard times.

In my experience, during hard times, the focus moves to R&D for a strategy on what to do when the economy moves out of the current cycle. You want to be the company that starts off with an edge, not the one that is offering years old tech.

One of the important things to do is look at the cash reserves relative to the annual expenditure for the company. This gives you an idea on how well equipped they are to weather the storm. I went though the 2008-2010 cycle in a well prepared company - resources went into R&D, not out of it.

Never ever work for a start up company, because most of them will fail within the first year or two. The ones that don’t will dangle stock options in front of you instead of a good salary, work you to death, and when the time comes that you can exercise your options they’ll either be worthless or the company won’t let you exercise them.

These are all very valid concerns and certainly do happen on practice. I don't think that there is a one size fits all argument here though - really, if you think that the startup is founded on a brilliant idea, and that it appears to have all the right people to execute it, you should go for it. If you're not equipped to make this determination, it's more than likely a bad bet.

Never ever work for a company that was acquired by a private equity firm. These companies do not care about their employees. It’s about making the numbers look good, so they can sell the company off in a few years. That will mean lots of layoffs prior to the sell off to make the numbers look even better. The equity firm will typically not hang onto a company for more than 7 years tops.

This reasoning is a bit naive. Laying off people prior to selling to make the numbers look good isn't going to get past the potential acquirer. The company culture of "caring" about the employees is set by those in upper management - being privately owned doesn't mean they care (I've definitely had this experience in the past), and neither does having anonymous stockholders. A good management team will have a healthy balance of keeping the right people and dropping the wrong people, while monitoring morale. This is part of the selling point for PE as well.

Start looking for a job immediately after any company is sold to another company. This will end badly for most employees making high salary’s or employees with the least seniority.

This doesn't make much sense. Clearly they will want to keep the senior employees who know the product best, and the junior employees who offer good value for money. In my experience the situation you don't want to be in, is when the company that acquires you already has an established department for your roles. E.g., do they really need another payroll accountant? Another head of human resources? etc.
 
Pro Tip: Read your employment contract carefully especially the "responsibilities" part. If one or more of those responsibilities are things you are still learning to do or have not done before, they are put there as a stealthy way for the company to nail you when you do get given that particular task and take longer/unable to do it. Make sure those responsibilities are things you can already do and not things they've promised to train you up in.
 
The software developer community are such a bunch of touchy feely pussies.

Never has there been such an easy career path where people complained so much.
 
How does a smart engineer avoid dumb mistakes?
Quotes from Elon Musk

Simplify your product as much as possible.
  • Don't optimise something that shouldn't exist
  • Design for the most part is wrong, and your goal is to make it less wrong over time.
  • If the schedule is long, your design is wrong; if the schedule is tight, the design is right.
  • If the schedule is long it’s wrong, if it’s tight it’s right.

Risk taking
  • There’s a tremendous bias against taking risks, because everyone is trying to optimise their ass-covering.
  • If anything is slowing down your creative output, discard it.
  • Substitute the ‘best’ way for the ‘fastest’ method and see what happens.

Iterate
  • Iterate, even when you think you have finished.
  • I think it’s very important to have a feedback loop, where you’re constantly thinking about what you’ve done and how you could be doing it better.

Think using first principles
  • I tend to approach things from a physics framework; and physics teaches you to reason from first principles rather than by analogy.
  • The right question is often more important than the answer. It’s just like Hitch Hiker’s Guide to the Galaxy… best book on philosophy ever... The answer is 42, but did we ask the right question?

Remove complexity
  • Baggage can accumulate over time, and the original intentions are lost. In that case cut to the core and rebuild.
  • The best part is no part.
  • The best process is no process.
  • Let go of things that are not working. Don’t delude yourself into thinking something’s working when it’s not, or you’re gonna get fixated on a bad solution.
  • Question limitations.
 
Tip #1: Always stay positive:

Code:
bool isValid;
rather than
Code:
bool hasError;

You should use an enum for this - valid set to 1 and error set to 2. This way even your errors are positive!
 
The software developer community are such a bunch of touchy feely pussies.

Never has there been such an easy career path where people complained so much.
Well, there are just so many things around being a developer that is affecting us, like management and BA's. :P
 
Pro Tip: Read your employment contract carefully especially the "responsibilities" part. If one or more of those responsibilities are things you are still learning to do or have not done before, they are put there as a stealthy way for the company to nail you when you do get given that particular task and take longer/unable to do it. Make sure those responsibilities are things you can already do and not things they've promised to train you up in.
You don't really get that option as a consultant. You are just expected to know everything under the sun and klaar . :eek:
 
Top
Sign up to the MyBroadband newsletter
X