A few more pieces of advice occurred to me since I wrote the last post.
1) Never accept counter-offers. The chances are pretty slim that the only reason you were changing jobs is money. An offer of more money or a change of titles probably won't fix all the problems which caused you to take the relatively drastic step of looking for a new job. While it's quite flattering to hear how your old company can't do without your valuable contributions, usually none of the promised changes are permanent aside from a raise in salary. Once you get used to that, and sadly it never takes as long as you'd think it would, you'll probably be dissatisfied again. What's worse is you may have burned a bridge with the company which made you an offer by accepting your old company's counter-offer. It rarely pays to burn bridges.
2) Don't go back to an old company unless you really loved it the first time. This is for much the same reasons as the point above. No matter how much a company claims to have changed, the truth of the matter is company culture rarely changes. Companies with glaring flaws usually never correct those fundamental problems.
3) Socialize with your co-workers on a regular basis. You'll be surprised at how a few lunches or the occasional happy hour can build stronger working relationships which is good for everyone involved. Keep up those relationships once you change jobs. That's the best way to build a wide network of friends. Your network can help you with finding new jobs, recommending ways to solve problems, as well as giving you someplace to do a little venting about workplace frustrations.
This blog gives me a place to comment on things which strike my fancy, hence the title. Topics may include computer software/hardware, science, space, beer, books/movies/television programs of a geeky nature, or almost anything else. It is not marked as containing adult content but be warned that I occasionally post about beer and sometimes forget to watch my language. I've been writing systems software since the days of core memory, paper tape, and front panel lights/switches.
Monday, September 10, 2007
Monday, September 03, 2007
Advice to young engineers
A long time ago I was given a bit of advice that has served me well over the years. An engineer with much more experience than I had at the time made the simple statement that "your company doesn't love you". What he was trying to say was there's only one person you can really count on to look out for your best interests and that's you. Over the years, I've refined that simple statement into a philosophy which has helped me make some small amount of sense of how engineering companies work.
1) Never trust head hunters. These paid recruiters have a list of jobs to fill. They'll always try to steer you towards their least attractive positions since those are the hardest to fill. The rare "dream jobs" require almost no work to sell. Recruiters will lie to you about lots of things, including what contracting rate is equivalent to a given full time salary. If you do decide to work with a head hunter, make sure you tell them you want to be informed before they submit you on any job. That will help prevent misunderstandings where you apply to a company only to find out the head hunter has also submitted you. This is especially important if you ever decide to work with multiple head hunters at the same time. Being submitted by several agencies may lead to disputes about which should get paid if you want to accept the job. Companies don't like dealing with that sort of ambiguity and may decide against hiring you altogether to avoid the potential conflict.
2) Rarely trust Human Resources. Their job is to hire and retain workers at the lowest possible cost to the company. The best HR representatives will realize that if they can keep employees happy, the company will benefit in the long run. That's as rare as a car salesman who realizes that if he works with you to find the car that best meets your needs instead of one which offers him the best commission for the least amount of work, he might be rewarded with your return business and referrals. In my 30 years in the computer industry, I've met just two HR reps who I felt were true advocates for employee satisfaction and as a consequence might work to see I was treated fairly. That's not a terribly encouraging percentage.
It probably pays to do some negotiating when you're faced with a job offer. They're probably walking the tightrope of seeing how cheaply they can hire you without being too insulting. That's why they look for hints about how much you were making at your last job. You would think that a job has a specific worth to them which would be easy to calculate which would dictate what they'd offer you but you'd be wrong.
3) Salary increases are almost never fairly distributed. Companies tend to pick company wide target percentages for raises and those percentages tend to remain unchanged as they pass down the line though the executive staff is almost never restricted to such tiny percentages. So the person in the mailroom who has precious little impact on a company's bottom line may have the same target percentage raise as engineers working extra hours. What's frequently worse is when they create a raise pool by giving a first level manager this same target percentage for all the employees who report to him/her. A manager with an outstanding team of workers will either be forced to give the same percentage to everyone or worse yet, to attempt to steal from some employees to correct past salary inequities. Meanwhile there's no incentive for managers to return part of their pool should they have mostly average or below average employees working for them. Keep an eye on what you're worth to other companies in the industry and always make sure your salary measures up.
4) You're only as good as how well your last project or assignment was perceived. The minute you're not viewed as contributing to the bottom line well in excess of what it costs to keep you employed, you're no longer an asset to the company. That puts you at risk of making the list for the next lay-off. Sometimes this is exceptionally unfair because the perception may have been caused by you getting assigned to a project doomed to failure by factors outside your control. Keep an eye out for signs of project failure and explore transfers if things start looking bad. Always keep your resume up-to-date because we've already seen that HR cares more about the company's needs than yours.
5) Strive to give the company good value for their money. It's really your best hope of getting glowing referrals from your manager and co-workers. Part of this requires that you make sure they know how good a job you're doing. Suffering silently doesn't serve anyone except for a boss who isn't interested in trying to reward good workers.
6) Network with former co-workers. No job lasts forever so it pays to always be thinking about what you would do if circumstances were to suddenly change.
7) (courtesy of my friend Chard) A company never treats you any better than they do when they're trying to recruit/hire you. So if they're unresponsive, evasive, or misleading during the recruiting and interviewing process, you should see that as a preview of how things will be when/if you're hired.
1) Never trust head hunters. These paid recruiters have a list of jobs to fill. They'll always try to steer you towards their least attractive positions since those are the hardest to fill. The rare "dream jobs" require almost no work to sell. Recruiters will lie to you about lots of things, including what contracting rate is equivalent to a given full time salary. If you do decide to work with a head hunter, make sure you tell them you want to be informed before they submit you on any job. That will help prevent misunderstandings where you apply to a company only to find out the head hunter has also submitted you. This is especially important if you ever decide to work with multiple head hunters at the same time. Being submitted by several agencies may lead to disputes about which should get paid if you want to accept the job. Companies don't like dealing with that sort of ambiguity and may decide against hiring you altogether to avoid the potential conflict.
2) Rarely trust Human Resources. Their job is to hire and retain workers at the lowest possible cost to the company. The best HR representatives will realize that if they can keep employees happy, the company will benefit in the long run. That's as rare as a car salesman who realizes that if he works with you to find the car that best meets your needs instead of one which offers him the best commission for the least amount of work, he might be rewarded with your return business and referrals. In my 30 years in the computer industry, I've met just two HR reps who I felt were true advocates for employee satisfaction and as a consequence might work to see I was treated fairly. That's not a terribly encouraging percentage.
It probably pays to do some negotiating when you're faced with a job offer. They're probably walking the tightrope of seeing how cheaply they can hire you without being too insulting. That's why they look for hints about how much you were making at your last job. You would think that a job has a specific worth to them which would be easy to calculate which would dictate what they'd offer you but you'd be wrong.
3) Salary increases are almost never fairly distributed. Companies tend to pick company wide target percentages for raises and those percentages tend to remain unchanged as they pass down the line though the executive staff is almost never restricted to such tiny percentages. So the person in the mailroom who has precious little impact on a company's bottom line may have the same target percentage raise as engineers working extra hours. What's frequently worse is when they create a raise pool by giving a first level manager this same target percentage for all the employees who report to him/her. A manager with an outstanding team of workers will either be forced to give the same percentage to everyone or worse yet, to attempt to steal from some employees to correct past salary inequities. Meanwhile there's no incentive for managers to return part of their pool should they have mostly average or below average employees working for them. Keep an eye on what you're worth to other companies in the industry and always make sure your salary measures up.
4) You're only as good as how well your last project or assignment was perceived. The minute you're not viewed as contributing to the bottom line well in excess of what it costs to keep you employed, you're no longer an asset to the company. That puts you at risk of making the list for the next lay-off. Sometimes this is exceptionally unfair because the perception may have been caused by you getting assigned to a project doomed to failure by factors outside your control. Keep an eye out for signs of project failure and explore transfers if things start looking bad. Always keep your resume up-to-date because we've already seen that HR cares more about the company's needs than yours.
5) Strive to give the company good value for their money. It's really your best hope of getting glowing referrals from your manager and co-workers. Part of this requires that you make sure they know how good a job you're doing. Suffering silently doesn't serve anyone except for a boss who isn't interested in trying to reward good workers.
6) Network with former co-workers. No job lasts forever so it pays to always be thinking about what you would do if circumstances were to suddenly change.
7) (courtesy of my friend Chard) A company never treats you any better than they do when they're trying to recruit/hire you. So if they're unresponsive, evasive, or misleading during the recruiting and interviewing process, you should see that as a preview of how things will be when/if you're hired.
Saturday, August 11, 2007
Life with Linux
I haven't been very good about posting lately. I've recently started a new job and there's lots to learn. I'm dealing with Packet over SONET (POS) now which is somewhat unfamiliar.
I was given my choice of development platforms at the new job - Windows or Linux. I've grown quite tired of the poor performance, hangs, and crashes which seem to come with using Windows a a development platform so I opted for Linux. That also kept me from having to go through the effort of setting up the CygWin utilities to get a reasonable development environment. With CygWin I can almost tolerate Windows. Without, Windows is just too painful to use. The standard command line tools in Windows are not terribly powerful. The telnet client is buggy and poorly featured. And the command shell is decidedly substandard with its broken pipes and terribly weak wildcard support. Give me regular expressions any day!
I had to install Fedora 7 on the laptop my company provided on my first day there. The Linux install has gotten much better over the years but the Fedora install still isn't as good as the Ubuntu install for finding hardware and picking appropriate drivers. The Fedora install did not recognize the Nvidia video adapter which the laptop has. Fortunately, Fedora now comes with an easier method of updating software called yum.
Once I figured out how to use yum, finding the Nvidia driver was easy. With the Nvidia driver installed, the laptop is now able to drive the 22" LCD monitor I now have at work at its maximum resolution. I always like to drive monitors at their highest resolution because it allows me to fit more information on the screen at one time. That makes me a lot more productive because I'm not forced to switch constantly between windows. What would be ideal is multiple large LCD monitors like Al Gore's setup. Maybe someday I'll find that sort of dream setup.
After living with Linux full time for about 6 weeks, I still like it. Would I recommend it to my parents? Not quite yet, but it's getting close. For most tasks, it's pretty easy. But having to fool around with command line tools like yum and using su to change to the superuser mode (yeah, yeah, I know it's the root user but I'm not assuming everyone who reads this is a Unix type) is sufficiently cryptic to keep me from giving it a hearty recommendation to normal users.
Less we assume that everything has been sweetness and light, running Linux has not been without a few gotchas. Being a long time geek, I can't help fiddling to try to improve my setup. Fedora/Gnome has an optional window manager called Compiz which features a very cool way to switch between virtual desktops. It's got a 3-d cube you can rotate by holding down the Ctrl and Alt keys while dragging the mouse. The cube rotates to show the next virtual desktop. It's much cooler than the desktop switcher which sits in the tray. Of course it relies heavily upon the capabilities of the video driver. Fedora by default checks for updates every time you book. Being a compulsive geek, I always want the latest and greatest software running so I always apply these updates as soon as they're available. Last week, an update to the nvidia driver broke Compiz's rotating cube feature which left me with no way to switch to another virtual desktop. That will teach me to use new features. I uninstalled compiz and went back to the simpler and less elegant method of switching virtual desktops. I've learned my lesson... at least for the time being.
I was given my choice of development platforms at the new job - Windows or Linux. I've grown quite tired of the poor performance, hangs, and crashes which seem to come with using Windows a a development platform so I opted for Linux. That also kept me from having to go through the effort of setting up the CygWin utilities to get a reasonable development environment. With CygWin I can almost tolerate Windows. Without, Windows is just too painful to use. The standard command line tools in Windows are not terribly powerful. The telnet client is buggy and poorly featured. And the command shell is decidedly substandard with its broken pipes and terribly weak wildcard support. Give me regular expressions any day!
I had to install Fedora 7 on the laptop my company provided on my first day there. The Linux install has gotten much better over the years but the Fedora install still isn't as good as the Ubuntu install for finding hardware and picking appropriate drivers. The Fedora install did not recognize the Nvidia video adapter which the laptop has. Fortunately, Fedora now comes with an easier method of updating software called yum.
Once I figured out how to use yum, finding the Nvidia driver was easy. With the Nvidia driver installed, the laptop is now able to drive the 22" LCD monitor I now have at work at its maximum resolution. I always like to drive monitors at their highest resolution because it allows me to fit more information on the screen at one time. That makes me a lot more productive because I'm not forced to switch constantly between windows. What would be ideal is multiple large LCD monitors like Al Gore's setup. Maybe someday I'll find that sort of dream setup.
After living with Linux full time for about 6 weeks, I still like it. Would I recommend it to my parents? Not quite yet, but it's getting close. For most tasks, it's pretty easy. But having to fool around with command line tools like yum and using su to change to the superuser mode (yeah, yeah, I know it's the root user but I'm not assuming everyone who reads this is a Unix type) is sufficiently cryptic to keep me from giving it a hearty recommendation to normal users.
Less we assume that everything has been sweetness and light, running Linux has not been without a few gotchas. Being a long time geek, I can't help fiddling to try to improve my setup. Fedora/Gnome has an optional window manager called Compiz which features a very cool way to switch between virtual desktops. It's got a 3-d cube you can rotate by holding down the Ctrl and Alt keys while dragging the mouse. The cube rotates to show the next virtual desktop. It's much cooler than the desktop switcher which sits in the tray. Of course it relies heavily upon the capabilities of the video driver. Fedora by default checks for updates every time you book. Being a compulsive geek, I always want the latest and greatest software running so I always apply these updates as soon as they're available. Last week, an update to the nvidia driver broke Compiz's rotating cube feature which left me with no way to switch to another virtual desktop. That will teach me to use new features. I uninstalled compiz and went back to the simpler and less elegant method of switching virtual desktops. I've learned my lesson... at least for the time being.
Wednesday, July 25, 2007
MST3K
The guys from Mystery Science Theater 3000 (AKA MST3K) have a new project called The Film Crew Online. It's sort of a continuation of the work they did with MST3K. I'm giving it a recommendation based on how funny MST3K was.
Michael J. Nelson, the former head writer of MST3K, also has a series of MP3 files you can buy and play at the same time you're watching DVDs. They're available at a site called RiffTrax. It's a funny concept.
Mike Nelson has also written a few really funny books. My favorite is Mind Over Matters though Mike Nelson's Movie Megacheese was pretty entertaining.
Michael J. Nelson, the former head writer of MST3K, also has a series of MP3 files you can buy and play at the same time you're watching DVDs. They're available at a site called RiffTrax. It's a funny concept.
Mike Nelson has also written a few really funny books. My favorite is Mind Over Matters though Mike Nelson's Movie Megacheese was pretty entertaining.
Tuesday, July 24, 2007
Cory Doctorow
Lately I've been listening to Cory Doctorow's podcast available from both his website CrapHound.com as well as from iTunes. On his podcast he frequently reads from his works in progress as well as some of his older stories. I've been finding them immensely entertaining. If you like Cory's work as much as I do, please buy his books to help support his efforts. He's a real stand-up guy. He used to work for the EFF, he gives lectures on the absurdity of DRM around the world, and he licenses many of his works under Creative Commons. All that and he edits one of my favorite blogs, BoingBoing. I don't know where he finds the time to do all of that but I'm glad he does.
Saturday, July 14, 2007
Creating strong passwords
Gina Trapani has posted a great article on LifeHacker showing how to choose strong passwords that are also easy to remember. I've been using a variation of this method for a long time and have made slight modifications based on advice I've heard from security experts.
I use 2 classes of passwords. The weakest is used for the multitude of web sites which ask you to create an account but which store no financial or personal data about you. I reserve the strong passwords for web sites which store data which could cause me financial harm if it were to be discovered.
Choose something which works for you but which offers reasonable strength. Use the Password Strength Meter at SecurityStats to test the strength of your chosen method to make sure your passwords can't be broken too easily.
I use 2 classes of passwords. The weakest is used for the multitude of web sites which ask you to create an account but which store no financial or personal data about you. I reserve the strong passwords for web sites which store data which could cause me financial harm if it were to be discovered.
Choose something which works for you but which offers reasonable strength. Use the Password Strength Meter at SecurityStats to test the strength of your chosen method to make sure your passwords can't be broken too easily.
Sunday, July 08, 2007
Steve Wozniak interview
10 Zen Monkeys has a great interview with Steve Wozniak (aka Woz), a personal hero of mine.
Woz is a true geek success story. He made his money from sheer technical prowess. The elegance of his designs are the stuff of legend. Through it all he's remained a genuinely nice guy, seemingly unaffected by his success. Just last week he was handing out t-shirts while waiting in line for an iPhone.
If you get the chance check out his book, iWoz. It's a great read about a fascinating guy. Another great book about the early days of Apple is Revolution in The Valley: The Insanely Great Story of How the Mac Was Made. The stories will give non-engineers a taste of what it's like to create something from scratch.
Woz is a true geek success story. He made his money from sheer technical prowess. The elegance of his designs are the stuff of legend. Through it all he's remained a genuinely nice guy, seemingly unaffected by his success. Just last week he was handing out t-shirts while waiting in line for an iPhone.
If you get the chance check out his book, iWoz. It's a great read about a fascinating guy. Another great book about the early days of Apple is Revolution in The Valley: The Insanely Great Story of How the Mac Was Made. The stories will give non-engineers a taste of what it's like to create something from scratch.
Subscribe to:
Posts (Atom)
-
A long time ago I was given a bit of advice that has served me well over the years. An engineer with much more experience than I had at the...
-
We lost our very special dog to an osteosarcoma a few days ago. He started limping a little over 4 months ago and it took a while to dia...
-
Most of the longtime Unix users like me love grep. Regular expressions make the silly wildcards available in Windows seem completely underw...