Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×

Comment Re:UPS? (Score 1) 293

UPSes do nothing about emergency thermal shutdown which isn't uncommon in laptops when you use them for real work.

They do nothing about the hard power cycle needed to clear certain software failures. As shipped my laptop running Windows 7 often hung with a spinning cursor and wouldn't bring up a task manager. Occasionally it hangs solid under Linux, usually when resuming from sleep.

Comment Crucial M500 life remaining (Score 1) 293

There's no way to know when the drive is wearing out,

Sure there is.

Smart attribute ID 202 Percent Lifetime Remaining

This value is defined as:
VR = 100(MAX(EAVG)) / BL

Where:
EAVG = The average erase count for a super block (stripe of blocks)
BL = The erase count for which the part is rated (block life)

Comment Companies are neither people nor always right (Score 1) 892

Depends on the situation. My current employer is in the process of outsourcing engineering to India, and keeping the US engineers on for varying periods of time (3-9 months) to facilitate the transition. There are incentives to stay through the end, but many have decided it's better to get out now. There is no bridge to burn, and people that are leaving already have new positions elsewhere when they resign. What is the possible incentive to give more than one or two day's notice?

1. You may care to work for and/or recruit people from that company and not want to make their lives worse.
2. The company may be wrong.

A year after a big company acquired a startup I worked for they decided to schedule the product's end-of-life, send it over seas for maintenance, and close the office.

1. I recruited a project manager and two engineers from that group to work for my next startup and joined the PM and one engineer at the one which followed that.
2. The company wasn't happy with the quality of the outsourced engineering and had to hire people back as high-paid consultants
3. While the competing group didn't care for the product the customers did, kept buying, and got the end-of-life pushed farther into the future (a few times IIRC)

Comment Engineering leadership is not over-rated (Score 1) 252

With leadership aptitude you can multiply contributions from people around you.

Without leadership skills your contribution to the bottom line is limited to what you can do personally.

When hiring an expensive senior engineer I want one with leadership skills. If I can't get that I'd rather have a less senior engineer likely to do as well or better as an individual contributor (because the work is more novel to them and likely to have them operating at a more optimal psychological arousal level) who I'm more likely to mentor into a leader than some one in industry long enough without signs of showing aptitude or motivation to lead.

As others have noted, leadership and people management are different things. I don't expect engineers to be managers or vise-versa.

Comment Stop doing something wrong (Score 1) 472

>Despite many accomplishments, published papers, and more, I cannot seem to get past the canned hiring process and actually get before a hiring manager.

With a history like that you shouldn't be going through a canned hiring process.

You're doing something wrong.

Talking to former co-workers and moving into positions at companies they've vetted as decent places to work is often a great deal for all parties involved - you get a good job, work with the same excellent people again, and their company gets a known well-performing quantity. That doesn't work as well when you've progressed to leadership roles too far beyond your peers or have other career goals that are too different like making enough to cease working for money at which point you start your own companies. I suspect new peers you'd like to work with again make that a temporary situation but have yet to verify.

Where that's not reasonable as a senior person you should be having casual encounters with technical directors (in big companies only; at small companies you want to go up the food chain to some one more able and willing to speak about the business), VPs of engineering, or CTOs in person (coffee is popular) or on the phone in which both parties get a feel for each other and determine whether a long term relationship is worth pursuing at this time or in the future. A decent linkedin presence should be enough to net this with inbound contacts directly from executives in young companies and from recruiters for larger organizations.

Those recruiters fall into two broad categories - keyword matchers taking a shotgun approach, and more targeted ones that have a better understanding of how things work and what your CV implies. The former usually don't have anything interesting to offer and I don't have much experience dealing with them. The later will make introductions. Some will try to funnel you directly into a hiring process which begins with a technical phone screen, but any place you want to work (executives recognize engineers' importance to the bottom line and consider you worth their time) you can get away with not doing technical interviews on the first date and push for a personal introduction.

Comment Meals are less expensive too (Score 1) 524

When the hunger comes I can stick around for dinner after which it's more convenient to keep working at my desk until I'm at a convenient stopping point (however long it takes) or I can head home, make something or wait for my wife to do that, and by the time I've eaten switching back into work mode would be too inconvenient so it waits until necessary the next day..

Comment Restricted stock shares are the new options (Score 1) 524

Options are ancient history in big companies.

By the time I got there in 2006 Microsoft was issuing restricted stock units - regular stock that you gain control of as it vests. When I went to Amazon I got RSUs there too. Valley companies seem fond of them as well.

Options today are mostly for startups where the current value is approximately zero which means there can't be a down side; although it's usually possible to convert those to restricted stock via early exercise, at which point you can make an 83(b) election to establish a low basis and start the clock ticking on the year after which any upside will be taxed as capital gains.

Comment You mean how do you deal with incompetentance (Score 1) 509

>As an example: I work with a developer who is 10 years my senior, but still doesn't understand how to write concurrent code and cannot be trusted to use a revision control system without causing a mess that somebody else will have to clean up.

The developer in question just isn't competent. Concurrent programming dates to at least 1950 and SCCS came about in 1972.

>So, how do my fellow Slashdotters handle situations like this?

Avoid them where possible and work around the damage. For instance good test automation will limit how long their mistakes go undetected.

>How do you help somebody like this to improve their skill-sets?

You don't. Understanding concurrency is one of the programming aptitudes which can't be taught.

Comment Re:99% - 47% = 51% ?! (Score 1) 526

The 47% is almost accurate - in 2011 46.3% of American households did not pay income tax.

28.3% are working but earn too little. Average 2012 income tax rates for the bottom two quintiles are -6.9% and -1.3% respectively due to refundable credits.
10.3% are elderly and didn't save enough to make their Social Security benefits taxable.
7.9% fall into some other category of non-income-tax payers like the unemployed.

This is because America's income tax system the most progressive (ratio of tax to income shares for the top earning decile) out of the OECD 24 which includes Australia, Austria, Belgium, Canada, The Czech Republic, Denmark, Finland, France, Germany, Iceland, Ireland, Italy, Japan, Korea, Luxembourg, The Netherlands, New Zealand, Norway, Poland, The Slovak Republic, Sweden, Switzerland, and The United Kingdom.

It was Bush 43 who moved us from second to first place.

Comment Process is about religion not logic (Score 1) 366

The fundamental problem is that this is a religious issue for both engineers and managers. People generally don't believe until they personally witness the miracle of rapid development with predictable schedules and low customer visible defect rate.

Working solutions in order of increasing time + difficulty:

1. Quit and either start a new team or join an existing one with decent development practices (I insist on a code and test process walk through of every company I consider joining to avoid unpleasant surprises. Obviously this fails for groups yet to build a product, and sometimes teams panic when pivoting and abandon reasonable practices).

2. Get promoted to a leadership role while you remain hands on. Tell every one else to do the right thing like you're doing - getting people to buy in is easiest when you're not making them do something you won't like the case would be with a non-coding manager. Most people fall into line with direction from above. Peer pressure works for most hold-outs. Any one not getting with the program can be replaced.

3. Do the right thing on your code. With your process producing a faster more predictable release cycle you'll have higher productivity and can take over an increasing fraction of the product so the bad people with bad process have less impact.

Applying test driven development variants to new features/subsystems/products helps a lot here because it makes shipping without good test coverage and short predictable cycle times impossible because no product code exists without the necessary infrastructure. While a "code complete" milestone may be farther into the future depending on how that's defined the total time to deliver the project will be lower and ultimately it's the ship date that matters.

Do the same for bug reports. Every reproducible bug gets an automated test case (if it broke the first time it's complicated enough to break again).

After a couple years you should be in good shape with enough infrastructure that the cost to add test cases is effectively zero before their benefits are considered (Perhaps most notable is that the requirement for incremental testing leads to cleaner interfaces which make complexity more linear with respect to project size. That in turn produces a lower defect rate, faster turn around time on repairs, and makes defect rate/time to repair more constant and predictable) and you don't have to worry about new people (or old people who haven't touched a piece of code in a while) breaking things accidentally.

Here are some things which don't work:

1. Talking to your co-workers about doing the right thing

2. Providing anecdotes (personal and otherwise) from other companies about the benefits

3. Buying everyone a copy of a book like

_The Clean Coder: A Code of Conduct for Professional Programmers_ by Robert C. Martin

http://www.amazon.com/The-Clean-Coder-Professional-Programmers/dp/0137081073/

Quote:
The jury is in!
Te controversy is over.
GOTO is harmful
And TDD works

in their choice of print or Kindle edition with the direction to read it on "company time."

4. Doing the right thing and providing metrics on things like defect rate, time to repair certain classes of bugs, number of release candidates for a feature, etc. This can be very striking - memory corruption bugs made reproducible by the test environment so you fix them in 30 minutes versus three weeks for co-workers' similar bugs, a major subsystem with no QA or customer visible bugs or just one of each, etc.

Logical people would get on board after seeing such evidence, but this is about religion not logic.

Comment It does not work that way (Score 0) 433

Employers are terrible at evaluating candidates. Can't tell a good programmer from a smooth talking bullshit artist. Nor, on the more subjective criteria, are they much good at telling the crazies apart from the merely desperate. The best they can do is hit prospects with a test on trivia about a particular language, the sort of stuff you shouldn't memorize but should look up in a reference. Quick, name all the reserved words in C++! If you can't do it, then you must not be an expert C++ programmer. If you try to explain why knowing that is not important, then you get that question "wrong", and are tagged as a BS artist to boot. I've had a so-called technical interview end after just 1 trivia question. They refuse to allow any time for training, demanding that new hires "hit the ground running". Candidates are expected to train themselves at their own expense beforehand.

Nope. I can accept that things happen differently in non-technical mega corporations and/or places without a critical mass of software people, although companies where software is core in viable startup hubs don't do that with "core" defined in Moore's core vs context categorization. Context activities are things that businesses must do like E-mail but doing them better than their competitors like sending messages in 10ms not 100 doesn't impact the bottom line. Core activities are those which do - better scalability and WAN optimization lets a cloud backup company serve bigger customers which pay more.

All but one out of a dozen places I've worked over 19 years in Boulder, Seattle (plus the East Side), and Silicon Valley did not do things the way you describe. Every competent software engineer who's worked in industry for a while knows that programming aptitude can be sanity checked in an interview, that knowing trivia is orthogonal to being able to do the job, and that other competent engineers will quickly pickup a language or library they're not familiar with (which is the easy part) while not so good engineers who know a language will never gain aptitudes they lack. Decent managers leave technical hiring decisions to a potential employees' peers.

Microsoft hired me to write C# professionally although I'd never seen the language before. I worked on Amazon products written in Java although I'd seen it once professionally.

There seem to be several aptitudes

1. Thinking through problems logically, identifying their edge conditions, and expressing a solution

2. Indirection

3. Applying knowledge to engineering problems

4. Parallelism

5. Recursion

which people have or don't.

In theory all should be pre-requisites for a computer science degree although in practice that is is not the case. My favorite professor taught data structures, graded students based on how their code did compiled and linked against teaching assistant defined automated test suites, and allegedly failed 1/3 of the class. The department wasn't happy with the failure rate (presumably due to their share of tuition dollars when people were forced out of a CS major) and replaced her. Graduates I interviewed for positions in industry before the faculty change were usually worth hiring. After they had a 50% reject rate.

I ask all candidates simple questions out of the first four categories, two with code. No trick questions. Engineers which do well as employees tend to make it through the current first question in under 10 minutes and the rest under 5 after which we can talk about projects and process. When I was young and naive I caved to management and overlooked a few problems but have since learned my lesson. People you don't want to hire can spend 45 minutes on one and not get to an answer. Probably 99/100 contingency recruiter submitted candidates don't do well there (I like to think that's because the vast majority of people you want to work with already have jobs, as opposed to there being that few competent people).

When it comes to projects I don't care how relevant what candidates did is to what my group is currently doing because they'll pickup the domain specific knowledge on the job. I sanity check that knowledge of what their resume said they did is consistent with actually doing it. I look for projects which are significantly meaty for their time in industry - while some jobs don't give you the opportunity to do neat things, after enough job changes failing to do that suggests a lack of motivation or aptitude neither of which I want. I look for scope and depth surrounding their work - successful software people are curious and absorb facts (like new domain specific knowledge) and I need them solving business problems as opposed to implementing code snippets I decide on.

I look for an increasing emphasis on software process with employee experience. Some places do things poorly, although once a candidate has had a few jobs and read some literature they should have strong ideas on how to avoid things detrimental to fast and predicable development cycles.

I only ask language specific questions where I'm concerned that a candidate isn't being honest on their resume. Some one claiming to have used C++ for a decade should be familiar with STL containers although they may have paged out minutia like the iterator, bool ordering in the pair which comes back from a std::map insert.

Pretty much everyone I've worked with and would want to work with again interviews the same way.

Comment Re:tech is a fairly broad category (Score 1) 660

_Starting_ compensation packages for new BS graduates at the big SF bay tech employers are north of $100K.

http://www.netpaths.net/blog/starting-salaries-of-top-technology-companies-apple-google-microsoft-facebook/

Compensation packages for senior staff / principal level engineering positions for guys 15+ years into their career with meaty projects under their belt (fifteen years of entry level work won't do it) and no management detour at profitable companies are over $200K

In spite of that positions go unfilled.

Comment Re:I can assure you... (Score 1) 642

Not true since Vista. Slashdot is full of folks who've last used Windows more than 10 years ago and thus complain of things like bluescreens, bloat etc. which makes them look like idiots.

Get with the times and at least update your hate machine.

Right!

My Dell Studio 15 with Windows 7 doesn't blue screen

  Instead it becomes extremely sluggish, unresponsive to mouse clicks, and I can't successfully start a task manager to see what's going on or get it to shut down normally so I need to use the power button instead.

I only use it for running Google Sketchup, Taxcut, Firefox, and the Mcafee anti-virus software which seemed like a good idea at the time.

Slashdot Top Deals

Remember, UNIX spelled backwards is XINU. -- Mt.

Working...