Bristle Software Career Tips

This page is offered as a service of Bristle Software, Inc.  New tips are sent to an associated mailing list when they are posted here.  Please send comments, corrections, any tips you'd like to contribute, or requests to be added to the mailing list, to tips@bristle.com.

Table of Contents:
  1. How to stay
    1. Love your work
    2. Keep a "to do" list
    3. Keep a daily log
    4. Plan, Action, Report
    5. Write status reports
    6. Write your own performance reviews
    7. Schedule your own performance reviews
    8. Manage your manager
    9. Support the support staff
    10. Update your resume often
    11. Write effective emails
    12. Always reply to email
    13. Include the sender's email message in replies
    14. Proceed without a reply
    15. Always propose solutions
    16. Manage and exceed expectations
    17. Document how to do everything
    18. Train your replacement
    19. Be loyal to people, not companies
    20. Be ready to leave (so you don't have to)
    21. Leave if necessary (can always come back)
    22. Avoid layoffs
  2. Network
    1. Keep in touch with everyone
    2. Use the networking Web sites
    3. Use the job boards
    4. Attend user groups and meetups
    5. Attend computer conferences
    6. Subscribe to the TPNG mailing list
    7. Bypass HR via a colleague
    8. Bypass HR via the president
    9. How to get recommendations on LinkedIn
  3. Learn
    1. Subscribe to mailing lists
    2. Do tutorials
    3. Use MOOCs (Massive Open On-line Courses)
    4. Create a Web site
    5. Ride the Technology Waves
  4. Provide Value
    1. Blog useful tips
    2. Mentor Peers and Students
    3. Be a Leader
    4. Encourage Others
    5. Create a GitHub repo
    6. Contribute to a FOSS (Free and Open Source Software) project
    7. Create a Meetup
    8. Volunteer
    9. Give Talks
    10. Teach Classes
    11. Review Resumes
    12. Write a Book
  5. Attitude
    1. Be a Fred
    2. Do well by doing good
  6. Resume Tips
    1. What to include
    2. Don't oversell
    3. What not to include
    4. Context, then bulleted accomplishments
    5. Business value of each accomplishment
    6. Human-Voiced Resume
  7. Interviewing
    1. Know where your resume went
    2. Research the company
    3. Know what to expect in the interview
    4. Set expectations for the interview
    5. Be honest in the interview
    6. Be specific in the interview
    7. Be positive in the interview
    8. Expect games to be played
    9. Sometimes there's no job behind an interview
  8. Starting a new job
    1. Prepare before your first day
    2. Hit the ground running
    3. Deliver something the first week
  9. Recruiters
    1. Dave Fecak
    2. Genesis Micro Solutions
  10. IT (Information Technology) Careers
    1. What kind of company do you want to work for?
    2. What kind of programmer are you?
  11. Technology Job Trends
    1. Technology Job Trends 3/18/2010
    2. Technology Job Trends 11/4/2014
  12. Create Your Own Opportunity
  13. Consulting
  14. Plan to retire early
    1. Expect to be laid off at age 50
    2. Live cheap
  15. See also
Details of Tips:
  1. How to stay

    The tips in this "How to stay" section are focused on how to happily stay at your current job.  Keeping your boss happy and yourself motivated and challenged, and getting good raises.  Later sections will deal with how to find a new job, if necessary.

    1. Love your work

      Original Version: 12/1/1969
      Last Updated: 9/14/2015

      Make sure you always love what you do. If you lose interest in a project, stick it out for a while to see if you can find a way to re-spark yourself.  If not, move to a new job.  Ideally, work with your manager to find a new interesting project within the company.  If necessary, look outside.  I've always loved my work, often working crazy hours when I was hot on the trail of a really cool solution to a problem, or tracking down a particularly squirrelly bug.

      But make sure you always have a smooth transition, picking a good time in the project to leave, not in the middle of an urgent crisis or imminent deadline, and taking time to train your successor on any of your responsibilities.   People will respect you for following your passion, and will appreciate your loyalty and professionalism.  As I've moved from state to state (PA, MA, VA, PA), I've left a long trail of people who would love to work with me again, and who recommend me highly whenever my name comes up.

      --Fred

    2. Keep a "to do" list

      Original Version: 2/7/1982
      Last Updated: 2/12/2015

      Keep a short prioritized "to do" list at all times. 

      Focus on the top few tasks on the list, trying to accomplish them.  If you hit a roadblock on one task, notify the people you need help from to get past the roadblock, and perhaps the person who asked you to do the task.  Then proceed with work on another task.

      If you are working for multiple managers of a single employer, record who asked you to do each task and keep a single prioritized list of tasks, not one list per manager.  Each time one of your managers asks you to do a new task, show him the list and insist that he tell you where among your existing tasks this new task should be prioritized.  This forces him to consider what all you are doing, for him and for others, and should lead to him doing one of the following:

      1. Give you a clear new set of priorities
      2. Concede that the new task is not urgent, and put it at the bottom of your list
      3. Find someone else to do the new task
      4. Find someone else to do some of your other tasks, so you can do this urgent new task

      On the other hand, if you are a consultant working for multiple clients, record who asked you to do each task, but keep a separate list for each client.  Each time a client asks you to do a new task, show him the list of tasks you are doing for him and insist that he tell you where among those tasks this new task should be prioritized.  This forces him to consider what all you are doing for him, and as above should lead to him doing one of the following:

      1. Give you a clear new set of priorities
      2. Concede that the new task is not urgent, and put it at the bottom of your list
      3. Find someone else to do the new task
      4. Find someone else to do some of your other tasks, so you can do this urgent new task

      Keep in mind that he has no interest in tasks you are doing for other clients.  As a consultant, you have to manage cross-client priorities yourself.

      Such a "to do" list is the best way to combat the common phrase "not to impact your current work, but can you also?...".  Learn to recognize that phrase as the hyperspace portal to another dimension consisting of overworked workers and dissatisfied managers/clients.  Always step back from the portal by pulling out your "to do" list.

      --Fred

    3. Keep a daily log

      Original Version: 3/15/1983
      Last Updated: 2/12/2015

      Don't just do things.  Write down what you are doing. 

      Keep a daily log of everything you work on.  Update it occasionally during the day, adding:

      1. Date/time
      2. How far you've gotten
      3. What still needs to be done
      4. What issues and risk areas still need to be resolved

      Be sure to update it before you leave each day so you can sleep well that night, turn your brain off, and easily resume the next day.  This is especially useful when your world changes -- some new emergency comes up, and you have to pause a task for a few days or hand it off to someone else.

      Start each new task by moving it here from your "to do" list, along with the name of the manager/client who asked you to do it.

      For complicated tasks that you may have to do again some day, this makes a good start at documentation of how to do them so NEVER delete anything from the log.  If it gets too big, move a batch of old entries to an archive file.

      --Fred

    4. Plan, Action, Report

      Original Version: 2/28/1982
      Last Updated: 2/12/2015

      Always do all 3 steps when asked to do something:

      1. Plan:
        Reply that you intend to do it, when, and briefly how if that's not obvious.  And of course add it to your "to do" list.
      2. Action:
        Do it, moving it from your "to do" list to your daily log and recording your actions there.
      3. Report:
        Reply that it is done, with perhaps brief details of how, taken from your daily log.

      Doing this makes life much easier for your managers or clients.  They always know the exact status of everything.  Never have to chase after you to find out.  And they have a written record of it, so it's easy for them to forward to anyone else who needs to know.  Or to cut/paste into forms they fill out to get you a promotion, or to get you renewed as a consultant.

      For complicated creative tasks like computer programming, this also makes a good start at documentation of the new feature you just implemented.

      Never skip any of the 3 steps on any task you are assigned, or that you set out to do on your own.

      Extreme example of someone who failed to do that:

      I worked with a woman at GSK who was an administrative assistant.  Always did everything she was asked to do, but never did step 1 or 3, so no one ever knew that things were going to be done, or that they had been done. 

      It all came to a head when she was asked to order a limo to pick up an arriving exec at the airport.  She did it, but never did steps 1 or 3, so someone else also ordered a limo.  When 2 limos showed up at the airport for the same high level exec, he was not pleased at the waste of money, and she got fired. 

      Sad, but true...  It always pays to do steps 1 and 3.

      --Fred

    5. Write status reports

      Original Version: 4/10/1983
      Last Updated: 2/18/2015

      Write weekly or at least monthly status reports to your managers or clients.  Even if they don't ask for them. 

      Pull info from your daily log, and summarize it to something short and sweet.  Just a few bullet points, organized as:

      1. Old Plan:
        What you thought you'd be working on at the start of this week/month
      2. Actual:
        What you actually accomplished, how it differed from what you planned, and why you did it if not obvious (who asked for it, business value of doing it, etc.).  Combine this with "Old Plan" and rename it "Done" if nothing differed.
      3. New Plan:
        What you expect to be working on next week/month
      4. Roadblocks:
        What you need your managers/clients help with

      This makes a nice concise summary for your managers/clients.  They get a clear sense of progress, and what you need from them.  And, as with the Plan, Action, Report tip above, they have a written record of it, so it's easy for them to forward to anyone else who needs to know.  Or to cut/paste into forms they fill out to get you a promotion, or to get you renewed as a consultant.

      If you are an employee and your time is split among multiple managers, send the same report to all of them, so they all know what all you are doing, and are aware that they are sharing you, and that you are providing value on multiple fronts for the company.   Otherwise, each will see only the small picture and wonder where all of your time goes.

      On the other hand, if you are a consultant working for multiple clients, send a separate status report to each with no mention of the others.  Generally speaking, clients don't care what you did for other clients, even if it will benefit them in the future, and they don't like to be reminded that they are sharing you.

      Even if you never send these status reports to anyone, just writing them is a good exercise.  It gives you a chance to reflect on what you've accomplished, see that it is more than you realized, and feel good about yourself.  And it gives you a chance to notice that some things took longer than you expected, so you know where you have room for improvement.

      --Fred

    6. Write your own performance reviews

      Original Version: 4/10/1983
      Last Updated: 5/8/2016

      Write your own performance reviews.

      Performance reviews, raises and promotions are typically done like this:

      1. Manager tries to find time to write performance reviews for all of his/her dozen or more employees.  But other things are always more urgent.
      2. Manager may ask each employee for some input -- accomplishments, goals, etc.
      3. Most employees don't bother, or just toss something together quickly.
      4. Manager finally sits down and forces him/herself to do the extremely boring and difficult job of reviewing all of his/her employees, perhaps at home over the weekend in front of the TV, just before the deadline.
      5. Manager scratches his/her head, trying to think back to all of the things you've done over the past year, comes up with a couple from the past month or two, and jots them down.
      6. Manager moves on to next employee.
      7. Manager ranks all of his/her employees based on what he/she jotted down for each.
      8. Manager meets with his/her peers, after they've gone through a similar process, to merge the ranked list of each into one master list that decides who gets how much of a raise and who gets promoted.
      9. Manager tries to argue that his/her people are above average, so they should get bigger raises and more promotions.
      10. Argument fails because he/she has no compelling evidence.
      11. Managers end up merging the lists much as you might shuffle a deck of cards -- one from each manager, then one more from each manager, etc.
      12. Occasionally, some common sense prevails, and all managers agree that Sally is a superstar, so how did she get ranked below Pete?  So they make some adjustments.
      13. You end up somewhere in the middle of the list
      14. You get an average raise, and occasionally a promotion.
      15. Your next assignment is whatever your manager happens to assign you.
      16. You eventually become bored and quit, or obsolete and fired.

      Not really the way you want your career managed.

      So, when you learn that perfomance review time is coming, even if your manager doesn't ask for input, take the opportunity to do the entire job for him/her.

      Pull out all of the status reports that you've written over the past year and summarize them into a dozen or so bullet points highlighting all of the incredible things you've done.  Accomplishments, not just activities -- things that provided business value to the company.   And what you'd most like to learn and do next year.  Give it to your manager.

      Now the process goes like this (changes in bold):

      1. Manager tries to find time to write performance reviews for all of his/her dozen or more employees.  But other things are always more urgent.
      2. Manager may ask each employee for some input -- accomplishments, goals, etc.
      3. Most employees don't bother, or just toss something together quickly, but you provide a concise list of accomplishments for the entire year.
      4. Manager finally sits down and forces him/herself to do the extremely boring and difficult job of reviewing all of his/her employees, perhaps at home over the weekend in front of the TV, just before the deadline.
      5. Manager pulls our your list, realizes his/her job is already done, thinks fondly of you for a second for saving him/her so much time, looks over the list and says "Really?  All that was in a single year?  Oh yeah, I'd forgotten about that one.  And that one too.  Boy, this is a real superstar!".
      6. Manager moves on to next employee.
      7. Manager ranks all of his/her employees based on what he/she jotted down for each.  You end up at the top of his/her list.
      8. Manager meets with his/her peers, after they've gone through a similar process, to merge the ranked list of each into one master list that decides who gets how much of a raise and who gets promoted.
      9. Manager tries to argue that his/her people are above average, so they should get bigger raises and more promotions.
      10. Argument fails because he/she has no compelling evidence, except for you where the case is really easy to make.
      11. Managers end up merging the lists much as you might shuffle a deck of cards -- one from each manager, then one more from each manager, etc., with you at or near the top of the list.
      12. Occasionally, some common sense prevails, and all managers agree that Sally is a superstar, so how did she get ranked below Pete?  So they make some adjustments. During that process, the manager holds his/her ground, saying things like "I know that Tim is nearly as good as [insert your name here] so he should be bumped to the top of the merged list also."
      13. You end up at or near the top of the list.  So does Tim.
      14. You get a big raise and a promotion.  So does Tim.
      15. Your next assignment is the thing you most wanted to learn or do.
      16. You stay at the company forever, doing interesting and fulfilling work, and being well paid.

      Much better!  And, Tim owes you a beer.

      I've used this approach very successfully for many years.  I always get one of the biggest raises in my group, and get promoted quickly.  In several cases, I've been able to pull others up with me.

      For example, I have twice managed to get extra raises for every person in my group.

      The 1st time:

      1. My manager, Art Pyster, went through the above process as usual, and ended up with a set of raises and promotions for all of his people.
      2. He started meeting with us, one by one, to tell us what raises we were getting.
      3. I started to hear from my peers that raises were lower than they liked.
      4. Art called me in, and told me what raise I was getting.
      5. I told Art: "This is a disappointing raise.  I'm one of the junior guys in your group and I'm new to the company, so I'll tolerate it this year, but I expect better next year.  However, you have some real superstars out there.  Look at all I've done this year, and consider how much more than me Aaron and Tim and Alex and Eric and others have accomplished.  Your group has very interesting work, so you've attracted the best and the brightest from the whole company.  But now we're all splitting an average sized pool of money for raises.  You should go back to Howard and point that out, and get more money for your entire group.  Otherwise, people are going to start leaving the company."
      6. Art talked to Howard and convinced him I was right.
      7. Howard allocated more money, just for Art's group.
      8. Art called each of us back into his office and told us that it had been pointed out to him that raises were too low for the caliber of his people, so we each got an additonal 3% raise.
      9. People in the group guessed who had done the "pointing out", and came by to thank me.

      The 2nd time:

      1. I announced I was leaving SMS.
      2. I was called in by HR for an exit interview.
      3. They asked why I was leaving.
      4. I said that was the wrong question to ask.  They should ask 2 questions:
        1. Why are you leaving? 
          Answer:  Because I have an incredible opportunity that is just too good to pass up.
        2. Why are you not staying?  That is, why were you open to the possibility of leaving, so that you happened to learn of this opportunity?
          Answer:  Because I, and everyone in my department are undervalued, under-appreciated and underpaid.  I predict that more people will soon leave.
      5. I told them not to bother offering more money now.  Too late.
      6. I told people what I'd said, and that I hoped it would help them.
      7. I left the company.
      8. 2 weeks later, Dave Bartlett, another superstar from my department announced he was leaving.
      9. He was called in by HR for an exit interview.
      10. They asked why he was leaving.
      11. He said the same thing I'd said.
      12. He told them not to bother offering more money now.  Too late.
      13. He left the company.
      14. Most everyone in the department got an unscheduled raise.

      True stories.  Feel free to check with Art and Dave.  I can also connect you with Aaron, Tim, Alex and Eric.

      BTW, if you read to the end of this rather long tip, please send me an email (click here for a canned one).  I'm curious to see how many people follow the links I mail out for my tips, and how many of them read the whole tip.

      Thanks to Dave Tutelman for reminding me to emphasize accomplishments, not just activities!

      5/8/2016 Update:
      Dave Weiss reminds me that it's a good idea to include future goals, not just past accomplishments.  Makes sure your boss agrees with your plans for the coming year.  Also, try to meet with your boss's boss occasionally, especially in an informal setting.  Get a feel for what his goals are.  Try to align yours with his, which should natually align with those of your boss.  Thanks, Dave!

      --Fred

    7. Schedule your own performance reviews

      Original Version: 10/6/1996
      Last Updated: 2/22/2015

      Coming soon...
      Schedule your own performance reviews
      Even if your boss or your company doesn't usually do them
      Even if you work for a tiny company
      Even if you are a consultant, not an employee
      Take a half-hour or hour out of your normal work schedule to just talk to your boss/client about your performance.   It's too easy to never actually discuss that, in the rush to do all of your other tasks.
      3 months and 6 months after start date, then every year at least
      4 topics:
      - How am I doing so far?
      - Here's what I've done lately
      - What could/should I be doing better?
      - Here's what I'd like to be doing soon (what I'm interested in, what I'm good at that you may not know about, etc.)

      Coming soon...

      Coming soon...

      --Fred

    8. Manage your manager

      Original Version: 9/9/1984
      Last Updated: 8/5/2018

      Coming soon...
      Manage your manager
      Help him/her to do his/her job
      Do it for him/her if you have to
      Not to compete with him/her
      Not to suck up to him/her
      As a practical way to get things done
      To make his/her life easier, so he/she can do more for the entire team
      His/her primary job is to remove roadblocks and enable and motivate his/her people, and then get out of their way and let them do their jobs.  Do whatever you can to help with that.
      - Part of your job is to remove roadblocks and enable and motivate him/her
      Understand his/her pressures/priorities/goals and help him/her achieve them
      Create presentations and executive summaries about your work for him/her to show to others.  Offer to give demos/presentations yourself for him/her
      Managers are people too:
      - Your manager is not better/higher/more powerful than you.  Just another person being asked to do a different job than yours.  Be nice.  Treat them with respect.  But be fearless, open, and honest, not deferential.
      - Managers sometimes have bad days.  Be forgiving
      - Managers don't know everything:
        - May need help.
        - May never before have done some things.  Help them.
        - May be figuring it out as they go.  Help them.
        - May be younger and less experienced than you  Help them.
      - Teach him/her how to do what you need him/her to do:
         - Manage up, manage down, manage across (Randy)
         - Remove roadbloacks and get out of the way
         - "Manager's Disease", and help mitigate it
         - Communications (Annelle)
      Leads to great visibility and easy promotions

      Thanks to Dave Tutelman for reminding me to mention this whole tip!

      Thanks to Bob Shank for catching my typos!

      Coming soon...

      --Fred

    9. Support the support staff

      Original Version: 7/30/1987
      Last Updated: 7/3/2016/

      Always support the support staff.  Never look down on those with more "menial" jobs than yours.

      Over the years, I've always befriended the people whose jobs I didn't want to have to do:  secretaries, admin assistants, computer operators, tech support people, database admins, sys admins, lab techs, security guards, janitors, and other support staff.  Especially the ones who are good at their jobs and take pride in their work.  They are the ones who really get things done in many cases, not their "superiors" who may take all the credit.  You really need them to do their jobs well, or you're going to get stuck doing them yourself.  

      And when you're in a real crunch to make a deadline, they are often the ones who can open a door for you, or give you access to a system, or whatever logistical help you may need to meet your goal.

      I've also tried to be respectful of the people "above" me whose jobs I didn't want to have to do:  executives, managers, salesmen, etc.  Someone's got to do those jobs, and better them than me!

      For all of the people "above" you and "below" you, as well as for your peers, be respectful and appreciative.  It is irrelevant whether you would or would not want their job.  Notice when they do a good job of it (Fred Factor), and say so.

      --Fred

    10. Update your resume often

      Original Version: 7/30/1987
      Last Updated: 2/5/2015

      Coming soon...
      Pull and summarize from your performance reviews

      Coming soon...

      Coming soon...

      --Fred

    11. Write effective emails

      Original Version: 7/7/1985
      Last Updated: 1/13/2017

      Email is a critical communication tool.  But these days people are spammed with so much email that it's hard to get through.  Here's how to write effective emails:

      1. Meaningful subject line

        The subject line of an email should accurately tell us whether or not to bother opening the message.   It is our 1st chance to save time by simply hitting Delete.

      2. "To" vs. "CC"

        Pay attention to "To" vs "CC".  Send "To" the primary people you want to reach, and "CC" the rest.  If all senders do that, then being merely a "CC" recipient is our 2nd chance to save time by simply hitting Delete.  Unfortuately, that's not always the case, especially on an email sent via Reply-To-All.

      3. Accurate salutation

        The salutation on the first line of the message should be something like:
        1. Bob,
        2. Bob and Mary,
        3. Team,
        4. Bob (and Mary),
        5. etc.

        to indicate who you really want to see the message.  This is our 3rd chance to save time by simply hitting Delete.  If I'm not in the salutation, I can more safely ignore it.

      4. Informative first sentence

        Your first sentence should make it clear to all of us what the message is about and whether we need to read it.  Examples:

        1. I pushed version 1.2.300 to the test server
        2. I need help connecting to the database
        3. How should we communicate better as a team?

        The rest of the message in these 3 cases might:

        1. List all of the release notes for release 1.2.300
        2. Describe what you've tried so far, and further ideas you have about connecting to the database
        3. Suggest options for better communication

        The informative first sentence is our 4th chance to save time by simply hitting Delete.

      5. One topic

        Each email should focus on only one topic.  If you have 2 unrelated things to say, send 2 messages.  Then the recipients can delete one while keeping the other around as a reminder to deal with it.   This also makes it easier to keep emails short.

      6. Short

        Each email should be a stand-alone bite-sized nugget.  Ideally, one screenful of text or less.  Or at least conceptually short, if not physically short -- sometimes a long list of items on a single topic is unavoidable.

      7. Executive summary

        When you do write a longer email, use the first sentence or two as an "executive summary" of what the email is about, and what conclusion you draw, recommendation you make, or action your request.  I typically flag such a summary with one of:

        • tl;dr  (An Internet abbreviation for "too long; didn't read")
        • Summary

        and I flag the start of the longer version with:

        • Details

        This is our 5th chance to save time by simply hitting Delete.  If you're not interested by the time you see "Details", delete it.

      8. Be explicit

        Use explicit names. Don't just refer casually to things. Say "Bug #382: Error when sending", not "The bug we found today". See:
      9. Signature block

        If you want people to reach you other than via email, include your contact info in a "signature block".  For example: phone number, Twitter handle or hashtag, URLs for Facebook, LinkedIn, blog, website, etc.  For business emails, maybe even FAX number and street address.  Most email programs allow you to specify this info once, and have it appended to all sent messages.

      There's only one sender for each email, but often multiple recipients.  So, it pays for the sender to spend extra time, as outlined above, to save time for all recipients.

      Thanks to Glen McEwen for reminding me to mention signature blocks!
      Thanks to Steve Fairbrother for reminding me about "Be explicit"!

      --Fred

    12. Always reply to email

      Original Version: 6/10/1982
      Updated: 4/29/2016
      Last Updated: 6/1/2020

      Always reply to email.
      Otherwise, the sender doesn't know if you've seen it yet.  Keep in mind that the sender can't see you nodding in approval, rolling your eyes in disgust, scowling in irritation, looking confused, etc.  The reply can be as simple as any of:

      • OK
      • Thanks
      • Will do
      • I disagree.  Call me.

      Always reply.  To every single email you ever receive except:

      • Simple "OK" replies to emails you sent
      • Emails to long lists of people, where the sender does not expect feedback or even acknowledgement from each recipient
      • Emails sent "To" someone else and only "CC" to you

      Beware Reply-To-All.
      Use Reply-To-All only in the following cases, prefering a simple Reply to the sender in all other cases:

      • When your reply is likely to be of interest to everyone on the list, not just the sender
      • When you want to build enthusiasm for a coming event by telling everyone that you will be attending and they should too

      Beware "reply to some".
      You may be tempted to reply to some, but not all of the people on the list, but that's usually a bad idea.  Be careful about cutting people out of the conversation unless they've explicitly asked to be dropped, for 2 reasons:

      • They may be offended when they learn later that you cut them out
      • Others on the list may not notice they are gone, and may assume that they're still seeing everything that everyone says.  For this reason, I always make it clear, either via a salutation like "Mary and Bob only," or by explicitly saying "I'm dropping Joe from the list because ...".

      Beware "reply to more".
      You may also be tempted to add recipients, replying to more than the original list.  There are often good reasons to do so, but be aware of the risks:

      • You may accidentally forward something to Joe that Bob said, but that Bob would not really have wanted Joe to see.  Especially, beware forwarding anything that could be offensive to Joe, or reveal insecurities of Bob.
      • Even if the new person is interested in your one reply, they may not appreciate the subsequent "spam" they get as everyone else on the list keeps doing Reply-To-All.  It might be better to just forward them a private copy of the email chain, and perhaps ask if they want to be included in the discussion.

      Beware "BCC".
      You may be tempted to add "BCC" (blind carbon copy) recipients, so that other recipients don't know you are also sending to them.  This is almost always a bad idea.  Even if you have the best of intentions, it seems sneaky and makes you look bad.  Reserve BCC for only 2 purposes:

      • I have my mail client configured to BCC myself on every mail I send, so that I get a copy and can easily keep it in my Inbox as a reminder to expect a reply.
      • When sending to a large list, to intentionally not reveal all of the email addresses to all of the recipients, to prevent them from later spamming each other.  BCC everyone in that case, and use your own address on the To line.  
        Note:  Using massive BCC lists can cause mail filters to treat you as a spammer, so be aware that some copies may be silently discarded, not delivered.  For that reason, I wrote my own mail program many years ago, that sends "To" each person separately.  You may want to use a mail service like MailChimp if you find yourself BCC'ing large lists often.

      Thanks to Glen McEwen for reminding me about Reply-To-All!

      --Fred

    13. Include the sender's email message in replies

      Original Version: 6/10/1982
      Last Updated: 6/16/2020

      Allow your mail client to include a copy of the sender's message to give context to your reply.  Do not delete the entire "quoted" message, and send just a bare reply.  Reasons:

      1. No need for micro-efficiency
        Then: In the 1990's and earlier, transmission bandwidth and disk space were scarce and costly.  Sending only a bare reply gained some popularity because it reduced the total number of bytes sent and stored. 
        Now: That's not much of a concern today with multi-gigabyte disks and broadband.  A few additional typed sentences or even paragraphs don't add up to many bytes.
        • Avoid email attachments
          The one exception is with large attachments.  Make sure large images, videos, and other attached files don't get re-sent and re-stored with each reply in a long conversation thread.  That DOES add up fast.  In fact, if possible and convenient, try to avoid emailing attachments at all.  A text message composed directly in your email client can be just as fancy as a Microsoft Word document, with fonts, colors, tables, bullet lists, etc.  But it takes up MUCH LESS storage space than an attached larger PDF file or a massive and wasteful MS Word file.  So don't use PDF files, or especially Word docs, unless you really need to.  When you DO need to, or when sending other large attachments like images, videos, etc., try to send a link to the file, not a copy of the file.

      2. Less powerful web-based mail clients
        Then: Mail clients were more powerful.  They had been used for 10-20 years, and had developed powerful subject-threading features, making it very easy for the recipient of an email to see all of the previous emails in a conversation.  So, including a copy of the message you were replying to was unnecessary and a waste of resources.
        Now: These days, many people use a simple web client like Gmail, with limited capabilities for sorting, filtering, filing, tagging, etc.  So their inboxes get cluttered and they tend to delete old emails more quickly.  They may have already deleted the messages that make up the rest of the conversation thread.  So they may need the context to make sense of your reply.

      3. Mail from outside the company
        Then: Much email was within a single company, not sent across the public Internet.  Your recipient was typically using the same mail client as you, so you knew what capabilities they had, and knew they could easily see the whole conversation.
        Now: Email comes from all over the world, from people at home or at work, using all different mail clients.

      4. Higher volume of mail
        Then: Mail arrived in manageable volumes and was often important, typically work-related.  So, people filed away copies of old messages into folders, rather than simply deleting them.
        Now: Mail is over 90% spam, made tolerable only by multiple layers of spam filters.  Even with filters, much junk gets through.  And even counting only non-spam messages, there's just WAY more email than before.  So, people get in the habit of deleting any message they've already read and replied to.

      For these reasons, it's a good idea to "quote" part or all of the ongoing conversation in your reply. 

      There are strong and conflicting opinions about whether to quote the entire message or just the relevant snippet that you are replying to.  So I won't get into that.  Do what works best for you and your recipients.

      Top-post or not top-post?

      There are also strong and conflicting opinions about whether to "top-post".  That is, to put your reply at the top, so the reader is more likely to see it, but has to scroll down to see the previous messages.  Or to embed your reply among the sentences and phrases of that message, so the user sees your reply in context, but may not even notice it below text he's already read.

      Some people strongly prefer one, some strongly prefer the other.  Again, do what works best for you and your recipients.

      Microsoft Outlook munges email

      And finally, many people have only seen top-posting, since that's all Microsoft offers.  They don't even know about the decades older and more powerful Internet email standards that make it easy and natural for you to embed your reply. 

      All mail clients except MS Outlook respect these standards.  So it happens automatically that different parts written by different people are highlighted differently.  MS Outlook doesn't do this very well, and often strips out all such highlighting done by all of the standards-compliant mail clients.  Sometimes it even strips out all leading whitespace and line breaks. 

      So you may send an email that looks to you and most of your recipients like a highly structured conversation, with each previous message indented one more level relative to its reply.  And with each person's comments shown in a different color.  But any recipients using Outlook may see the entire conversation munged together into one massive word-wrapped paragraph.

      Worse, since most users of Outlook have never seen a real mail client in action, they won't even suspect there's a problem.  They'll simply assume you sent them one huge paragraph on purpose.  They'll start reading, recognize some of the text, and assume you just forwarded their own email back to them for some reason, without adding any comments.

      And in today's world, they'll probably be too busy and over-worked to even ask why you did that.  I once went for months, sending detailed replies to a person who used Outlook, and only later discovered that he'd never seen any of my comments.  Doh!

      Mix of top-posting and inline

      Personally, I generally top-post for short replies, since everyone understands that.  Especially if the email I'm replying to is limited to a single topic, as it should have been.  See:

      But for replies to longer, more detailed emails, top-posting doesn't work well.  I end up spending too much time setting context.  Saying things like:

      • In response to your comment about staffing...
      • Regarding the sales plan...
      • etc.

      In those cases, it's easier to just embed my comments among the lines of the original email, allowing the email client to automatically highlight my comments differently from the original lines.

      But I don't just insert my comments into the original email.  That would confuse some Outlook users and other novice email users.  I want them to be able to easily see what's new.  And to see it in context.  But I don't want them to have to deal with too many different levels of quoting.  Or to have to scroll past too much unnecessary context.  Especially if Outlook is munging their email all into one big paragraph with no line breaks.

      Instead, I copy the entire message I'm replying to, paste it at the top as a quote, then insert my lines, and delete any parts of the quote that are not needed for context.  I leave a full copy quoted at the bottom after my signature file, in case anyone wants to scroll down and see it all.

      So, it's a mixture of top-posting and in-line replies.  The best of both worlds!

      --Fred

    14. Proceed without a reply

      Original Version: 5/8/1995
      Last Updated: 3/8/2015

      Coming soon...
      Don't expect others to always reply to your email.
      It would be nice if they did, but don't just sit on your hands while waiting.
      When discussing an upcoming task with your manager or client via email, always say explicitly what you'll do by default if you don't hear back from him/her.
      This shows initiative (always a good thing).
      It also makes his/her life easier.  Gets to feel informed without ever having to make a decision.
      It also allows you to steer things a bit more.  Rather than wait for him/her to make a perhaps uninformed decision, you get to suggest what should be done.
      It also avoid politics and embarrassment.  Otherwise, your boss may make a bad decision, and find it embarrassing or politically difficult to change his/her mind.  You can preempt all that by making a good suggestion first.

      Coming soon...

      Coming soon...

      --Fred

    15. Always propose solutions

      Original Version: 5/8/1995
      Last Updated: 3/8/2015

      Coming soon...
      Always propose a solution when reporting a problem
      Don't just dump the problem on someone
      Propose a solution or at least a plan for how to start looking for a solution.
      And as described in Proceed without a reply, when doing this to a manager or client, always say whether or not you will proceed to implement the solution if you don't hear back from them.
      If you find enough problems, propose enough solutions, and volunteer to fix them all yourself, you are creating your own job, and you get to pick/choose the work you most enjoy doing.  Your manager or client will always see you as essential, and will never let you go.

      Coming soon...

      Coming soon...

      --Fred

    16. Manage and exceed expectations

      Original Version: 10/14/1991
      Last Updated: 2/19/2015

      Coming soon...
      Set ambitious but achievable expectations
      Exceed them
      Gets harder to be extraordinary over time as expectations inevitably rise
      How to deal with that?

      Coming soon...

      Coming soon...

      --Fred

    17. Document how to do everything

      Original Version: 6/3/1996
      Last Updated: 3/8/2015

      Coming soon...
      Document how to do everything that you do for your employer or client.
      "What if I get hit by a bus?"
      Seems like it would make you less valuable, more replaceable, but it doesn't.
      Your manager or client will always see you as essential, and will never let you go.

      Coming soon...

      Coming soon...

      --Fred

    18. Train your replacement

      Original Version: 2/2/1984
      Last Updated: 3/8/2015

      Coming soon...
      Despite your best efforts to Document how to do everything, sooner or later a task will come along that your manager or client thinks no one else can do, and that you are tired of doing.
      Perhaps because you are the only one who knows how.  Document it immediately!
      Perhaps because you are the cheapest or most convenient resource who knows how to do it.
      In that case, make yourself more expensive or less convenient.  For example, "OK, I'll do it, but next month I want to go to that conference we were talking about." Or "OK, I'll do it, but when I finish my current project, I'd like to be assigned to the cool new project you mentioned at the staff meeting."
      Also, soften the blow by offering to immediately train someone else to do it.  For example: "OK, I'll do it, but send Joe to do it with me, so he learns how and I don't have to do it any more.  Then there will be 2 people who know how, in case one of us gets hit by a bus."
      And then, if you ever do want to leave, you can do so guilt-free.

      Coming soon...

      Coming soon...

      --Fred

    19. Be loyal to people, not companies

      Original Version: 11/2/1990
      Last Updated: 2/5/2015

      Coming soon...
      A person can be loyal back
      Company has no memory, and no loyalty
      Person may leave or get fired, company no longer knows of your achievements or abilities
      Person may take you with them when they leave
      Person may hire you at their new company when you decide to leave

      Coming soon...

      Coming soon...

      --Fred

    20. Be ready to leave (so you don't have to)

      Original Version: 1/18/1994
      Last Updated: 2/5/2015

      Coming soon...
      Do all of the following, even if not looking for a new job
      Best employee is a competent confident one.
      Powerless child is whiny

      Coming soon...

      Coming soon...

      --Fred

    21. Leave if necessary (can always come back)

      Original Version: 6/3/1996
      Last Updated: 2/5/2015

      Coming soon...
      Fecak's post and MBro's commment
      - http://jobtipsforgeeks.com/2015/01/15/stability/

      Coming soon...

      Coming soon...

      --Fred

    22. Avoid layoffs

      Original Version: 7/11/2000
      Last Updated: 2/5/2015

      Coming soon...
      Fecak's post
      - http://jobtipsforgeeks.com/2015/01/08/stagnation/
      Avoid layoffs unless you want one.  If you'd be just as happy to leave, tell your boss.  You may save someone else's job, and may get a nice severance package.

      Coming soon...

      Coming soon...

      --Fred

  2. Network

    1. Keep in touch with everyone

      Original Version: 5/27/1983
      Last Updated: 2/5/2015

      Coming soon...

      Keep in touch with everyone you've ever worked with that you had any respect for. 
      Get their contact info before they leave. 
      I have email addresses of almost everyone I've ever worked with since before I graduated college. 
      For many, I also know their birthday, or wedding anniversary, or birthdays of their spouse and kids, especially if I was working with them when they got married or when the kids were born. 
      I send a quick email once a year to mark the occasion, and to have the chance to think fondly of them for a moment or two. 
      It often leads to lunch or a quick "What have you been up to lately?", and sometimes to "How would you like to come work for me?" 
      Maybe the social networking sites now make this less urgent, since it's easier to re-connect with people you've lost track of, and since they tend to prompt you about birthdays, anniversaries, etc. but keeping an explicit list of dates and email addresses has worked very well for me for a long, long time, and has survived the birth and death of many such technologies. 
      If you do rely solely on LinkedIn, or Plaxo, Doostang, MySpace, Google+, Facebook or something, be sure you know how to export your data from there in case they ever go away or something better ever comes along.  (Note that many of these networking sites have already vanished, in just the few years since I added them to this tip!  All the more reason to keep your own separate contact list!)

      Coming soon...

      --Fred

    2. Use the networking Web sites

      Original Version: 1/1/2005
      Last Updated: 2/5/2015

      Coming soon...
      Use "Skills" keywords at LinkedIn

      Coming soon...

      Coming soon...

      --Fred

    3. Use the job boards

      Original Version: 1/1/2005
      Last Updated: 2/5/2015

      Coming soon...

      Coming soon...

      Coming soon...

      --Fred

    4. Attend user groups and meetups

      Original Version: 1/1/2005
      Last Updated: 2/25/2021

      User groups ("meetups") are another great way to network with people to find jobs, or to just keep up with technology.

      Personally, I attend the local monthly meetings for Java, Linux, Agile, JavaScript, Python, Android, etc.  So, I can go to a meeting once per week or so if I want.  For lists of local computer user groups, and a calendar of upcoming meetings, see the links at:

      Or do a Google search like:

      These days, many of them are organized via Meetup.com:

      A typical meeting is:

      • Once per month
      • Free to attend
      • Free food (pizza, sandwiches, salads, snacks, soda, etc.)
      • 2 hours long, after work, typically 6-8pm or 7-9pm
      • A one-hour talk by a speaker on a pre-advertised topic
      • Another hour or so to chat with other attendees

      You'll find a bunch of people working at various local companies (some of which may be hiring), who are all interested in the meeting topic.  It's a great low-key way to meet or stay connected with people working in the field that you are in or want to enter.  You can chat about technical and non-technical topics, get to know people face-to-face, and maybe get referred for a job.

      Also, meetups are typically hosted at companies that are looking to hire.  So, it's a great way to get your foot in the door, glance around at typical working spaces, get a feel for the environment, and decide if you'd want to work there someday.  You'll be mostly in the common spaces, but may get a peek into some offices, cubes or team rooms.  It says a lot about a company when there's a ping pong table, foosball table, or even full-length bowling alley in the meeting space!

      Depending on your energy and confidence level that day, you can:

      1. Attend, hear the talk, perhaps learn something, but talk to no one

      2. Ask relevant questions and perhaps be noticed as someone who pays attention and thinks of good questions

      3. Answer a question that no one else seems to know the answer to

      4. Talk to the people around you, asking about their jobs, their companies, how they're using the technology, etc.

      5. Join the "after party" -- the subset that may be going out for drinks or dinner afterwards

      6. If there's not already an "after party", create one!  Invite the speaker and others to join you for drinks or dinner afterwards.  I always do that at any meeting I attend.  The speaker may have been too busy speaking to get any food, so I offer to treat him/her to dinner or drinks afterwards.  Typically, 2-10 other people tag along and we hang out for 30 minutes to 4 hours.  Conversation is sometimes a deep dive into the topic the speaker was talking about, and sometimes just a social gathering to talk about totally non-technical topics.  Either way, you can form a real connection with the speaker and other attendees.  After a couple meetings, you'll get to know some of the regular attendees pretty well, and they'll have a chance to assess your personality, skills, etc., and form an informal opinion of whether they'd like to have you on their team someday.  All without the pressure of a job fair or a formal interview.

        All the truly valuable work is done at the after party.  Instead of all sitting there listening to a technical talk, you're all hanging out chatting.  That's where connections are forged, opinions are expressed, group dynamics reveal themselves, personalities are assessed, technical skills become obvious, etc.  At the end of the after party, whether 15 minutes or 4 hours long, there will be at least a few people who now have a much clearer idea of whether they'd want to be sitting next to you on the same team in the future.  NEVER skip the after party!  Even if you're so late that you miss the rest of the actual user group meeting.

        See the Meetups row of my links page for a couple calendars and lists of local meetups.  And direct links to some that I attend: Java, Agile, Linux, Python, Android, JavaScript, Machine Learning, IoT, AWS, Bitcoin/ Cryptocurrency/ Blockchain, Red Hat.

      --Fred

    5. Attend computer conferences

      Original Version: 1/1/2005
      Last Updated: 5/8/2016

      Coming soon...

      As Mike DePaulo reminded me recently, even when you can't physically attend a conference, you can still often access the videos/audio/slides/PDFs of the talks on the web.   For example, see:

      Coming soon...

      Coming soon...

      --Fred

    6. Subscribe to the TPNG mailing list

      Original Version: 1/1/2005
      Last Updated: 2/5/2015

      Coming soon...

      Coming soon...

      Coming soon...

      --Fred

    7. Bypass HR via a colleague

      Original Version: 4/1/1991
      Last Updated: 5/3/2016

      Having trouble getting past Human Resources?  Here's how I do it.

      Problem:

      Picture the typical recruiting scenario.  Managers want to hire people, so they send job descriptions to HR.  HR gets WAY too many resumes every day, so they put automated filters in place to discard as many as possible.  Then HR has to sit down and wade through the rest of the pile.  They know that managers A, B, C, and D want various skills.  So they see a resume with a matching skill and they pass it off to manager A.  Good!  One less resume on their plate.

      Manager A thus gets WAY too many resumes from HR, skims them quickly, looking for valid reasons to discard them, and maybe contacts 1-3 of the people.  No one sends the others back to HR, and even if they do, HR does not bother to also send them to managers B or D who also wanted that skill.  Useless...

      Solution:

      Now, picture this.  Someone who works for manager A says "Hey boss! I know a guy who'd be perfect for this, and I'd love to work with him again.".   Manager A promptly throws all of the resumes in the trash, glad he doesn't have to wade through them any more.  He contacts the recommended guy, saying "Joe, I hear you're the guy.  Come on in.  We'd like to talk to you."

      That's not nepotism or any other kind of favoritism.  It's just plain common sense.  Why would a hiring manager NOT prefer to hire a known quantity that one of his team wants to work with?  Why keep digging through unknowns that take a lot of time and effort to evaluate?

      Once you have enough contacts, that's how all of your job searches should go.  You have arrived!  Welcome to the club!

      How to Reach Out:

      So how to reach out and make this happen for you?

      Think back to all the people you have ever worked with, or even known outside of work.  Those you have impressed in some way.  By your tech skills, your general knowledge, or your approach to problem-solving.  Or by your work ethic or helpfulness, or the way you once handled a tough situation.  Or by how you motivated a colleague, or brought a project in on time.  Or whatever.  Doesn't have to be an official job requirement.  Just whatever you did that might have impressed them.  Reach out to all of those people.

      One at a time.  Not via an impersonal mass mailing.  Many people would ignore that.  They may have every intention of replying, but never get to it.  They may assume that others will reply and may be more useful to you.

      Make it personal, so they'll feel honored that you contacted them.  Then they'll really give some thought to how they can best help you.  No need for them to even be aware that you contacted anyone else.

      Remind them of your shared experience.  Tell them that you're looking for a new and better job, and you'd love to work with them again.  Would they want you on their team?  Or will they recommend you to nearby hiring managers?

      See how much feedback you get.  You'll find out how strong your network is, and who your real friends are.  Whether you get 3 solid job offers this week, or only some vague maybes, or stone cold silence, it will tell you a lot.

      --Fred

    8. Bypass HR via the president

      Original Version: 4/1/1991
      Last Updated: 2/26/2020

      How to bypass HR if you don't know anyone at the company?  Send your resume to the company president!

      A very wise man (my dad) gave me a great bit of advice in 1991.  I was living and working in VA, trying to find a new job in PA to move closer to my family and my wife's family.  The economy was not good and I was getting discouraged.

      Dad told me that HR was not my friend.  They did not exist to help me find a job at their company.  They did not even exist to help me once I became an employee of their company.  They existed for one primary reason -- to make sure that no employee or applicant, or any one else, ever thought they had a valid reason to sue the company.

      He suggested I bypass HR entirely by sending my resume to anyone I knew personally at the company.  And if I didn't know anyone, send it to the president of the company.  Huh?  Why?

      The president was likely to see the resume and forward it to HR or a hiring manager.  But he was not likely to bother saying why he was forwarding it.  So, HR or the manager would pay more attention to it -- I might be the nephew of the president, or a close family friend, or something.  Genius!!

      So, I followed his advice.  I was sending out tons of resumes and getting very little response.  I sent one to Graham King, president of SMS.  I sent another to Howard Marano, an old high school buddy who worked at Shared Medical Systems.  I sent a 3rd to Alan Papson, my sister's next-door neighbor who worked at a local computer company.  I had no idea I was hitting the same company 3 times.

      Howard recommended me to HR, but there was a hiring freeze on, so they did nothing with it.  Didn't even bother to send me a reply.  Alan probably did the same, with the same lack of results.  But I did get hired.  A few months later, my manager told me how it happened.

      Graham King glanced at my resume and thought "This seems like a PC guy, not a mainframe guy", so he sent to it to Ken Shipp, the manager running the project to move SMS from mainframes to networks of PCs.  Ken later ran into Graham in the hallway and said "Graham, you told me there was a hiring freeze.  Why are you sending me this crap?   Put up or shut up!"  Graham said "OK.  Hire him."

      Bingo!  Ken suddenly had one more authorized headcount, reserved specifically for me!

      Ken sent my resume to HR and asked them to invite me in for an interview.   HR was disconcerted to see a resume that had not come through them, but when they looked around, they found the one from my buddy Howard.  So, when I got hired, they paid him the employee referral fee, which the president was not eligible for anyhow.  Nice!

      2/26/2020 Update
      John Woodring, who worked in Ken Shipp's organization at the time, was my official "mentor" when I started at SMS.  I think I also interviewed with him to get the job.  He just replied to this email, saying:

      "The Graham King part is exactly how I remembered it.  I think I even saw your letter.  When the President asks someone to follow up on something, you tend not to ignore the request."
      So, I went back and dug up copies. If you're interested, here are the cover letter and resume.  They've survived all these years, via my rsync backup script and despite this Microsoft Windows bug.  Thanks for prompting me to dig them up, John!  You were a great mentor!  It's been a fun trip down memory lane!

      --Fred

    9. How to get recommendations on LinkedIn

      Original Version: 12/30/2018
      Last Updated: 2/27/2020

      LinkedIn has gotten to be a valuable resource.  Employers routinely check it before hiring, and often before calling you in for an interview.

      "Recommendations" at LinkedIn are especially valuable.  They show what other people think of you.  And those people are all identified clearly, not anonymous, or via goofy nicknames.  So they can be contacted via a single click, to confirm their impressions, expand on them, etc.

      But how to get your colleagues to bother to write you a recommendation?

      Start by writing one for them, then use the LinkedIn "Ask for a recommendation" button to ask them to do the same for you. 

      When you ask them, take the time to include a comment to make it personal, so they'll feel honored that you asked them.  Then they'll really give some thought to how they can best help you.  No need for them to even be aware that you asked anyone else.  Remind them of some shared experience that you're both proud of, or that you both enjoyed.  Tell them that you're looking for a new and better job right now.  Can they help you out with a strong recommendation?  Then do the same for another person, and another person, etc.

      Also, keep in mind that potential employers can see not only the recommendations you received, but also the ones you gave.  They may form a strong (hopefully good) impression of you by how well you write, what you have to say, your enthusiasm, the insights you show into the strengths of a colleague, your understanding of what strengths are important to an employer, your people skills in emphasizing the strengths that the person seems to take pride in, etc.

      All of this may contribute to their sense that you are someone they want to add to their team, who will not have a huge ego, not cause friction, will work well with others, etc.

      For example, see this recommendation that Gail Rifkin wrote for me:

      Can't you just tell IMMEDIATELY that Gail is someone you would REALLY want to work with?

      So why is the link above to my own personal recommendations page, and not directly to Gail's recommendation at LinkedIn?  What kind of a scam are you tring to pull here, Fred?

      3 reasons:

      1. I started accumulating recommendations at that page long before LinkedIn, Doostang, Plaxo or any of the other business networking sites existed.

        Just like I started accumulating Tips in my Tips pages long before WordPress, Drupal, Wix, Squarespace or any of the other blogging sites existed.  Long before the word "blog" was even coined.

        And started accumulating my FOSS software at my Web site long before GitHub, GitLab, or BitBucket or any other of the other VCS repos existed.  Long before Git, Mercurial, SVN, CVS or PVCS existed.

        I should perhaps migrate them to the sites that are currently more mainstream, but my sites tend to last decades, while the "mainstream" sites fade or even vanish over time.

      2. Many of the recommendations I've received were via email or some other mechanism, not via LinkedIn.  There's no way for me to migrate them to LinkedIn because LinkedIn requires them (appropriately, to prevent fraud) to be entered by the person making the recommendation. 

      3. Ever since Microsoft bought LinkedIn, I've lost the ability to create a clickable HTTP link directly to a specific recommendation.  Or to any specific part of my LinkedIn page.  I can only create a link to my entire page.  (If you click the link above, note that the "#recommendations" anchor on the URL is now entirely ignored.  The browser just goes to the top of the page.)

        I suppose this is because Microsoft wants to be able to put paid ads on the page and not have people skip past them.

        For me, this was particularly annoying since I was accustomed to mailing people links to various parts of my LinkedIn page.  And I had lots of links from my HTML-formatted resume to various parts of my LinkedIn page.

        LinkedIn originally embedded HTML "anchors" at each section of the page, each item in a list of recommendations, list of jobs, etc.  So they could all be linked to directly.  But those anchors vanished after Microsoft took over.  And there's no way for me insert them back into the page.  Bummer!

      So, no, LinkedIn is not the best possible professional networking site, any more than Facebook is the best possible social media site, or Windows is the best possible operating system, or VHS is best possible video tape format.  It's just the most popular one that we currently have.  Until it's displaced, take full advantage of it.  But be sure to export your data occasionally, so you can migrate it elsewhere someday.

      --Fred

  3. Learn

    1. Subscribe to mailing lists

      Original Version: 7/31/1987
      Last Updated: 2/5/2015

      Coming soon...
      Fred's lists. Invite page.
      Google Groups, Yahoo Groups, LinkedIn groups, technology-specific

      Coming soon...

      Coming soon...

      --Fred

    2. Do tutorials

      Original Version: 1/1/2005
      Last Updated: 2/5/2015

      Coming soon...
      Fred's Getting Started with Java tip

      Coming soon...

      Coming soon...

      --Fred

    3. Use MOOCs (Massive Open On-line Courses)

      Original Version: 1/1/2005
      Last Updated: 2/5/2015

      Coming soon...

      Coming soon...

      Coming soon...

      --Fred

    4. Create a Web site

      Original Version: 6/3/1996
      Last Updated: 2/5/2015

      Coming soon...

      Coming soon...

      Coming soon...

      --Fred

    5. Ride the Technology Waves

      Original Version: 4/20/2016
      Last Updated: 5/20/2019

      The world changes fast these days, especially the world of technology.  Ride the new wave, or you'll get swamped by it!

      Always be the guy who knows about the new technology and embraces it, not the guy who gets replaced by it.  For example, I tell truck drivers to not be the guy who gets put out of work by self-driving trucks.  Instead, be the guy who sees it coming and volunteers to work with the new self-driving technology, sitting in the driver's seat, ready to take over if it has a problem, etc.  See:

      Here are some lists, off the top of my head, of past, present, and futures waves.

      Past: Think back to how recently these waves came along, and how quickly they changed the world:

      1. Computers
      2. Pocket Calculators
        • Bummer for makers of log tables and slide rules!
        • Do you remember the transition from "not allowed to use it during tests" to "specific model of graphing calculator required to be owned by all students taking this class"?
      3. Robot arms in factories
        • Bummer for assembly line workers!
      4. Word Processors
        • Bummer for makers of typewriters!
        • Bummer for secretaries!
      5. AutoCAD
        • Bummer for draftsmen!
      6. Cable TV
        • Bummer for broadcast TV stations!
        • Bummer for makers of TV antennas!
        • This one was gradual though.  It was about 30 years before the cables were run everywhere, so most everyone could get cable TV.
      7. Computers at home
      8. Computer animation
        • Bummer for live-action actors, set designers/builders, costumers, stunt people, lighting, film crews, etc!
        • Gradual growth in need for graphic artists, animators, computer programmers
      9. Internet at home
        • Dial-up, email, bulletin boards, then finally the "World Wide Web"
        • Bummer for the US Post Office!
      10. Cell phones
        • Emerging countries never bothered to run phone lines.  Went directly to cell towers.
      11. Instant Messenger (on computer)
        • Reduces growth of email traffic
      12. Texting (on cell phone)
        • Decline in Instant Messaging
        • Reduces growth of email traffic
      13. High speed Internet at home
      14. Search
        • Yahoo, AltaVista, etc., then finally Google
      15. Online shopping
        • Much more convenient than mail-order
        • Bummer for brick-and-mortar stores!
      16. Digital cameras
        • Bummer for makers of cameras and film!
      17. GPS
        • Bummer for makers of paper maps!
      18. VOIP (Voice Over IP)
        • Skype, Vonage, Comcast, FIOS
        • Bummer for traditional phone companies!
      19. SEO (Search Engine Optimization)
        • Suddenly, most web traffic is referred by Google
        • Suddenly, every company needs to do SEO
      20. Smart phones, mobile web sites
        • Suddenly, most web traffic comes from phones
        • Suddenly, every company needs a mobile web site
      21. Online magazines
        • Bummer for paper magazines!
      22. Online news
        • Bummer for newspapers!
      23. Wikipedia
        • Bummer for printed encyclopedias!
      24. PDA in your phone
        • Email, calendar, "to do" lists, documents, etc.
        • Bummer for makers of Palm Pilots and other PDAs (Personal Digital Assistants)
      25. Camera and video camera in your phone
        • Bummer for makers of digital cameras!
        • Bummer for makers of video cameras!
        • Bummer for privacy!
      26. Tivo and DVRs (Digital Video Recorders)
        • Bummer for makers of VCRs and VCR tapes!
        • Suddenly, no one watches live TV any more.  They watch "time-shifted" TV -- record it, watch later, and fast-forward through the commercials.
        • Bummer for people buying or selling TV commercials!
        • People also fast-forward through news blips and any other interruption, so they're no longer casually informed about current events in that way.
        • They also skip ads for new TV shows, always just watching what they DVR'd until years after the shows they knew are cancelled.  Then have to go back and see what's new.
        • Bummer for new TV shows trying to grow market share!
      27. FOSS (Free and Open Source Software)
        • GNU, FSF, Linux, Apache, and many others gradually write more and more software, giving it away for free, with the right for anyone to improve it
        • Thousands of volunteers submit enhancements to be rolled into the free version
        • Bummer for Microsoft, Oracle, and other large companies trying to sell expensive software licenses!
        • Millions of average users (teenagers, adults, professional programmers, amateurs, etc.) get in the habit of "forking the repo", fixing bugs or adding features themselves, and issuing a "pull request", rather than wait for the "product owner" to do it
        • Some forks overtake the original
        • Bummer for companies like Oracle, trying to forcibly steer products like Hudson (forked as Jenkins), OpenOffice (forked as LibreOffice), MySQL (forked as MariaDB), etc!
        • Software development becomes a collaborative, distributed, often social process
        • Software employers want to see your portfolio (your GitHub repo), not just your resume
      28. GPS on your phone
        • Bummer for makers of GPS devices!
      29. Social Media
        • Facebook, Twitter, Google+, LinkedIn, etc.
        • Suddenly, a huge amount of web traffic is referred by social media
        • Suddenly, every company needs a social media presence
        • Suddenly, every web app needs social media integration
        • Reduces growth of email and texting
        • Massive increase in communication across national borders
      30. YouTube and Streaming Media
        • Suddenly, people are watching video on their computers
        • Suddenly everyone and his brother (and child, niece, nephew, aunt, uncle, grandparent, etc.) is uploading videos
        • YouTube channels and stars emerge
        • Some stars are mere teenagers, producing and posting their own "TV shows" and making millions of dollars in advertising revenue
      31. Cloud Computing: SaaS (Software as a Service)
      32. Free Public WiFi
        • Truck stops, Starbucks, McDonalds, Panera, Wegmans, camp grounds, pretty much all businesses with a sitting area now offer free public WiFi to attract customers to hang out and buy stuff.
        • Mobile users (laptops, phones, etc.) are connected at higher speeds in more places
        • Massive increase in "co-working" -- people hanging out together outside of a traditional office and working on projects together or nearby.
      33. Crowdsourcing
        • Crowdfunding
      34. Tablets
        • iPad, etc.
        • Bummer for PC makers and PC chip-makers!
        • Suddenly, every web app needs to work on tablets
      35. Cloud Computing: IaaS (Infrastructure as a Service)
      36. Web-based multi-player games
        • Farmville, Words With Friends, etc.
        • Suddenly people are chatting through games
        • Reduces growth of email and texting
      37. Streaming TV
        • Suddenly, everyone watches TV on their computer/tablet/phone instead of their TV.  Whenever they want, without even having to schedule the DVR to record it.
        • Bummer for TV makers!
        • Bummer for DVR makers!
        • Bummer for cable TV, as people start "cord cutting"!

      How many of these have already become indispensible to you in your home and/or work life?  Can you imagine doing without them?

      Present: So, what's next? I can think of these, which will all have similar dramatic effects.  Some are already here for many of us:

      1. 3D Printing
        • Anyone can now do small scale manufacturing at home
        • Rapid iteration and fine-tuning of physical prototypes
        • What effect on small manufacturers?
      2. Arduino and Raspberry Pi
        • Anyone can now do computer hardware projects, not just software
        • Combined with cheap physical devices (3D Printing), cheap remote servers (IaaS), and free software (FOSS), what's stopping you?  Anything is possible.  The sky's the limit!
      3. Hybrid cars
        • Count the number of Toyota Priuses you see on the highway today
        • Do any of you NOT know someone who drives a hybrid?
        • My wife owns a Prius, and my next car will certainly be a hybrid or fully electric
        • Much better acceleration than gas engines.  First used in small cars for fuel economy, then added to SUVs so that 4 cylinders feels as powerful as 6.
        • See: http://www.businessinsider.com/ford-ceo-mark-fields-interview-2017-1
      4. Authentication
        • Password overload causes people to reuse the same password or write it down
        • SSL key pairs help to automate secure connections
        • MFA (Multi-Factor Authentication) gains traction using fobs, then cell phones
        • Suddenly, all US banking web sites are required by law to use MFA
      5. Big Data
        • Data is being harvested and analyzed everywhere, by web sites, public cameras, etc.
        • Used by police, FBI, NSA, etc.
        • Used by companies for marketing purposes, etc.
        • Already being used for more nefarious purposes?
      6. Video chat (Skype, Facetime, Google Hangouts, etc.)
        • Do any of you NOT know someone who uses this regularly?
      7. Public Live Mobile Video Streaming
        • Anyone with a phone can broadcast live video of anything to the entire world
        • Bummer for TV news reporters!
        • YouTube has had live video streaming for years, but now it's mobile at YouTube, Twitter Periscope and Facebook Live:
        • Bummer for muggers (Yeah, take my wallet and phone, but your face is already streamed to my YouTube, Twitter, or Facebook account, where my friends are already seeing it and showing to the police)!
        • Bummer for anyone who wants to hide their behavior (dirty cops, lazy front-office employees, etc.)
        • Bummer for privacy!
      8. Talking to computers (voice recognition, NLP, natural language processing)
      9. AI (Artificial Intelligence, Machine Learning)
      10. Cyberwar
        • This has been underway for years, but most of the public is unaware
        • My servers fend off hundreds of attacks per day
        • I'd bet that the PCs of most of you reading this have already been recruited into a botnet taking remote orders about where and when to attack
        • No need to physically attack a country ever again.  It's easier and more profitable to:
          • Manipulate their stock markets to become rich
          • Extort money from their companies and citizens via ransomware
          • Extort money by threatening to hack their power, water, phone, TV, radio, internet and other infrastructure
          • Hack the above systems to cause chaos and prevent them organizing
          • Hack their defense systems to prevent them blocking your incoming ballistic missiles
          • Hack their social media to confuse them with "alternative facts"
          • Steer their elections by hacking computers that count votes, or simply by influencing voters via social media
          • Take over their military and commercial drones, their factory robots, and their self-driving cars and trucks, to do your bidding
        • See: http://bristle.com/~fred/#cyberwar
      11. Online education
        • Already have MOOCs (Massive Open Online Courses): Khan Academy, Coursera, EdX, Wikiversity, etc.
        • Will people tend to learn on their own or in social media type groups, seeking only occasional human tutors?
        • Bummer for traditional schools and universities!
      12. Wearable computers
        • Fitbits, etc., to monitor your heart rate, steps walked, etc.
        • Apple Watch, Android Wear, etc., with computer screens, talking to your cell phone or directly to the Internet
        • Google Glass, etc., eyeglasses with computer screens and cameras built in
        • Smart Earbuds to cancel noise, focus sound, instant replay, translate languages
        • Suddenly, every app needs to interact with watches, glasses, earbuds, etc. not just with laptops, tablets and phones
      13. IoT (Internet of Things)
        • All sorts of gadgets connected to the Internet: Home security cameras, lights, window blinds, door locks, refrigerators, etc.
        • Suddenly apps will need to interface to all these devices
        • All of these devices must be secured or will join botnets
      14. Computer Vision and Image Recognition
        • Primitive robots "see" well enough to detect walls, floors, corners, obstacles, so they can navigate around a house
        • Google Googles on my Android phone "sees" and identifies famous landmaps
        • Cameras detect faces and focus on them instead of the background
        • Kinect and other game consoles can "see" the moving arms, legs, and body of the players
        • My Android phone takes a rapid series of pictures of a group of people, then picks and chooses among the copies of each face in the various pictures, resulting in one picture where no one has closed eyes
        • My Android phone takes a rapid series of pictures as I stand at the edge of the Grand Canyon with people walking past in front of me, then merges the pictures, discarding the transient effects and creating one picture with no people blocking any part of the view
        • Bummer for professional photographers!
      15. Cloud Computing: PaaS (Platform as a Service)
      16. Language Translation
        • "Google Translate" is a free app that runs on my Android phone.  Features:
          • Pick any 2 of the 90+ supported languages
          • Speak in one language.  It immediately speaks it in the other language, and shows the text in both languages.
          • Point the camera at something containing text in one language and it shows the same image on the screen with all of the text converted to the other language.  Works for road signs, pages of books, computer screens, etc.  Updates constantly with less than a second lag time as you move the camera around, pointing it at different things.  So, you can gradually move it down the page of a book, newspaper or computer screen, and read the entire thing in the other language.  Preserves the fonts, colors, etc.  So with a US road sign, you may see white letters in the same font and size on the same green background, etc., embedded into the same scene of trees, cars, bridges or whatever was around the sign.  But it looks as though the sign were manufactured with the words in the other language.  Really cool!
          • Type words of one language.  It immediately, char by char as you type, translates to text in the other language.
          • Write words in cursive on the screen with your finger or a stylus.  It immediately, word by word as you write, recognizes your handwriting and translates it to printed text in both languages
          • Does other useful things on the fly, like showing dictionary definitions of words at the bottom of the screen, etc.
          • Also runs on iPhone/iPad, and Android tablets.
        • Bummer for professional translators!
      17. Biometric identification
        • Voluntary:
          • Access to phones, tablets, laptops w/passwords:
            • Fingerprint scanners
            • Retina scanners
            • Facial recognition
          • Facebook recognizes people in photos you upload and suggests names to tag them with
          • Google Photo allows you to search all of your photos for a specific person
        • Involuntary:
          • Cameras on the streets and in all public locations, using facial recognition to track the movements of everyone

      All of these will dramatically affect your life within the next couple years, if they haven't already.

      Future: Beyond that, here are my predictions for the next few waves:

      1. Blockchain
        • The new encrypted distributed ledger technology is popping up all over
        • Bummer for old-school experts at:
          • Supply chain
          • Legal contracts (replaced by "smart contracts")
          • Distributed transactions
          • Privacy
          • etc.
      2. Chatbots
      3. Me bots
      4. Drones
      5. Electric cars
        • Much less complex, more reliable, and cheaper than gasoline cars
          • No gas engine, gas tank, drive train, transmission, radiator, muffler, oil changes, steering fluid, brake fluid, etc.
          • Just a battery w/wires running to small electric motors and brakes at each wheel
        • Tesla is coming out with a $35K model, down from $100K
        • See: http://www.businessinsider.com/ford-ceo-mark-fields-interview-2017-1
      6. VR (Virtual Reality)
        • Wear a headset to see/hear a simulated 3D world for:
          • Entertainment
          • Prototyping and simulating things not yet built
          • Training in expensive, dangerous, or even mundane environments
          • Practice runs for surgeons before difficult surgeries, using models built from scans of the actual patient
        • There are lots of headsets already available, from low-end Google Cardboard (literally a cardboard frame that holds your phone video screen close to your eyes) to high-end Oculus Rift.
        • Every app will need to add VR to its user interface
        • See: http://www.itworld.com/article/3151971/virtual-reality/virtual-reality-is-actually-here.html
      7. AR (Augmented Reality)
        • Wear glasses that overlay text and images on physical things you are seeing
        • Pokemon Go
        • Mechanics, craftsmen, repairmen seeing overlays of parts/instructions
        • Surgeons seeing overlays of medical info
        • Advances in the decades-old "heads up displays" used by military pilots
        • Tourists seeing info about historic sites, directions, etc.
      8. Social VR
      9. Self-driving cars (autonomous cars)
        • Google has many on the streets in several US states already
        • All the automakers and some other large companies have products underway
        • Most cars are starting to offer at least "driver assist" (self-parking, keep-in-lane, brake automatically in emergencies, etc.)
        • How long before we see the first road that is "self-driving" only?
        • How long before we're not allowed to drive ourselves on any public roads?
        • Soon, all long-haul trucking will be autonomous, then even local deliveries.
        • Bummer for taxi drivers, Uber drivers, and truck drivers!
        • Bummer for auto insurance cfompanies (fewer accidents, and different liability)!
        • See: http://www.businessinsider.com/ford-ceo-mark-fields-interview-2017-1
      10. Robot gloves/exoskeleton
      11. Quantum Computers
      12. Electronic money
        • Forgo cash entirely in favor of direct electronic money transfers between individuals
        • Tap phones or click a button to transfer money
        • PayPal, BitCoin and more
        • Settle on a single global currency, not per-country?
        • All apps that handle money will need to be updated
      13. Mobile robots
      14. 3D-printed food
      15. Medical advances
      16. Nanotechnology
        • Medical nanotechnology (see above)
        • Fighting Pollution
          • Nanobots eating oil spills and other pollution in seas and atmosphere
        • Generating energy
        • Storing data
      17. Overpopulation
        • Already a very serious problem, leading to pollution, anxiety, global concerns
        • How will it and technology affect each other?
      18. Cheap fresh water (desalination)
        • Major parts of the US and all other countries are water constrained
        • Many rivers are sucked dry before they reach their former downstream destination
        • A technology breakthrough here would have a massive effect
      19. Cheap energy
      20. Weather control
        • Controlling the weather, instead of just forecasting it
      21. Brain tapping
        • Directly monitor brain activity to:
          • See what another person is seeing, experiencing, dreaming
          • Detect if a person is lying
          • Record and re-watch your own experiences, or those of others
          • Record and re-watch your own dreams, or those of others
          • Communicate with a stroke or coma patient
          • Control a computer w/o mouse, keyboard, touch or voice
          • See: http://news.berkeley.edu/2011/09/22/brain-movies/
      22. Corporations vs. countries
        • We already have lots of multi-national corps
        • Corps are competing more and more w/governments
        • Will country boundaries and governments fade in favor of corporate entities?
      23. World government
        • Will the United Nations or something like it ever lead to a world government of the entire Earth?
      24. Space travel
      25. Space war
        • Miltary satellites to attack countries via lasers
        • Attacks on satellites (military, communications, other)
      26. Space mining
        • Mine minerals/resources from moon and asteroids
        • Harvest gases from Venus, Jupiter, Saturn
        • Harvest Helium-3 for cheap/clean/safe nuclear fusion energy
      27. Electronic implants
        • Electronic implants in your brain instead of just Virtual Reality.  Your brain will intertface directly to the implant and it will communicate with the Internet, and with other people's implants.
        • How will it happen? How will people get over the "ick" factor?
          • Wearables will get smaller and smaller, and offer more features
          • Music/video/entertainment will be delivered first, then on-demand info, news alerts, calendar reminders, health monitoring, person-to-person conversations, etc., until people find them indispensible
          • Privileged people will get "enhanced" first, then others will line up for it
          • It will be expensive at first but prices will drop
          • The younger generations will be early adopters, as with any new technology
          • Parents will do it to their children so they can know where they are, what they are doing, that they are safe, etc.
          • Note how quickly people today are getting over the concern about Google or Apple tracking their location because GPS in a phone and other location-aware services are so handy.   This will be a more extreme case of the same.
          • Many people already chip their pets to locate them if they get lost.
          • Some people already have implanted heart monitors that notify their doctors about excessive cardiac fluid levels, etc.
        • Eventually, every app will need to interface w/implants, not just wearables
      28. Mood modification
      29. Alien Life from Outer Space?
        • Would be huge if we discovered any
      30. etc.
      31. etc.
      32. etc., until...
      33. The "singularity"?
        1. See: https://en.wikipedia.org/wiki/Technological_singularity

      How will these affect your life, and your career?

      See also:

      1. http://tutelman.com/misc/tech/forecast/LessonsFromSingularityUniversitySummit.html
      2. http://tutelman.com/misc/tech/ComputingEvolution.php
      3. http://tutelman.com/misc/tech/TechForecastA0.php

      That was just off the top of my head.  What have I missed?  Anything I should add to the past, present, or future lists?

      Thanks to the following for new ideas added above:

      • Dave Weiss -- Electronic implants
      • Mark Larzelere -- AI deep learning for cancer diagnosis
      • Geoff Wilson -- Pocket calculators
      • Geoff Wilson -- Drones for cheaply taking aerial pictures and videos
      • John Moore -- Word processors replacing typewriters
      • Lee Beaumont -- Mood modification
      • Lee Beaumont -- VR for training, prototyping, simulation, entertainment
      • Lee Beaumont -- Online education
      • Lee Beaumont -- Brain tapping
      • Alan Elkner -- Space travel
      • Dave Weiss -- Existing implanted heart monitors
      • Howard Marano -- Human genome and genetic engineering
      • Howard Marano -- Health monitoring via watches
      • Dave Yantis -- 3D printing
      • Paul Burton -- IoT (Internet of Things)
      • Lee Beaumont -- CRISPR (tool for generic engineering)
      • Dave Reyes -- DVRs
      • Dave Reyes -- Steaming Media
      • Dave Reyes -- Computer animation
      • Dave Reyes -- FOSS (Free and Open Source)
      • Dave Reyes -- Nanotechnology
      • Lee Beaumont -- Authentication
      • Lee Beaumont -- Monitoring/Scanning
      • Dave Weiss -- Alien Life from Outer Space
      • Peter Stluka -- AutoCAD
      • Dave Tutelman -- links to various predictions and trends
      • Steve Pozun -- Space war
      • Steve Pozun -- Space tourism
      • Steve Pozun -- Space mining
      • Steve Pozun -- Helium-3 nuclear fusion energy

      Other ideas I've added since I first posted this:

      • Computer Vision and Image Recognition
      • Biometric identification
      • Electronic money
      • Corporations vs. countries
      • Global government
      • Overpopulation
      • Cheap fresh water
      • Cheap energy
      • Cable TV
      • Streaming TV
      • AR (Augmented Reality)
      • Arduino and Raspberry Pi
      • Language Translation
      • Google Home, Amazon Alexa
      • AI lawyers
      • AI physicists
      • Reduce effects of aging
      • Me bots
      • AI college teaching assistant
      • AI cybersecurity expert
      • Robots: SoftBank Pepper, Asus Zenbo
      • Smart earbuds
      • Quantum computers
      • Solar powered airplane
      • Cloud Computing: PaaS, and links to details of SaaS, PaaS, IaaS
      • Free Public WiFi
      • Moon base
      • More nanotechnology and nanobots
      • AI tech support
      • AI programmers
      • Solar powered airplane
      • Moon base
      • SpaceX
      • AI weather forecasts
      • Weather control
      • 3D-printed food
      • Artificially grown organs
      • Human cloning
      • Public Live Mobile Video Streaming
      • Robot gloves/exoskeleton
      • Wikipedia
      • Crowdsourcing and Crowdfunding
      • More examples of AR (Pokemon Go, mechanics/craftsmen/repairmen, surgeons, pilots)
      • Livestreaming of muggers by victims
      • Livestreaming of bad behavior of emloyees and public servants
      • Smart cameras (fixing closed eyes, removing passing people from Crand Canyon view)
      • Search photos by face of person
      • VR for practice runs for difficult surgeries
      • IoT security to reduce IoT use in botnets
      • Autonomous trucks
      • AI managers
      • Swarms of drones
      • Cyberwar -- take over drones and self-driving cars and trucks
      • Cyberwar -- influence elections via social media
      • More examples of AI programming
      • More examples of self-organizing drone swarms
      • More examples of AI medical diagnosis
      • AI news reporters
      • More AI job loss links
      • Effect of autonomous cars on car insurance business
      • Blockchain

      --Fred

  4. Provide Value
    1. Blog useful tips

      Original Version: 10/1/1987
      Last Updated: 2/5/2015

      Coming soon...

      Coming soon...

      Coming soon...

      --Fred

    2. Mentor Peers and Students

      Original Version: 2/12/1975
      Last Updated: 9/14/2015

      Coming soon...
      Everyone loves to recruit their mentor to join their team.

      Coming soon...

      Always find ways to provide value.  My company motto is "Glad to be of service!".  I always try to go above and beyond. I do my work well, and I always take time to help others with any technical problems they encounter with their work, or with social dynamics with their peers and their manager, or with whatever they need.  I really enjoy being the one that everyone comes to.   Makes it hard to get my own work done sometimes, which is why I sometimes work such long hours, getting much of my assigned work done after everyone else goes home.  But the team appreciates my overall contribution, and my wife is very patient.

      Coming soon...

      --Fred

    3. Be a Leader

      Original Version: 9/14/2015
      Last Updated: 9/14/2015

      Coming soon...
      Everyone loves to recruit their mentor to join their team.

      Coming soon...

      I have no interest in being the manager -- the one who pushes people to work faster, records how many hours they worked, tells them when they are allowed to use their vacation time, etc., but I'm always a team leader -- one that people follow.  They respect my technical knowledge and common sense.  They appreciate the time and effort I spend explaining things to them.  And they trust me because I never belittle them or make them feel stupid, and I always explicitly give credit to them for the work they do, even if I had to help them a lot.

      Coming soon...

      --Fred

    4. Encourage Others

      Original Version: 9/14/2015
      Last Updated: 7/3/2016

      Encourage everyone around you to do their best.

      Talk openly and honestly with everyone you work with.   Make a point of noticing what they are good at that they take pride in, and take every opportunity to compliment them on it.  Always genuine praise for real abilities and accomplishments.  Never false praise that you do not feel.  And never praise for something they happen to be good at but don't take pride in.  You won't score many points by praising someone's ability to do the kind of work they don't enjoy and want to get away from.

      When a new person joins my team, I always look for early opportunities to provide positive feedback because I know there will come a day when I have to say something negative.  I want the person to like and trust me before then, so they can hear my criticism and make improvements without resentment.  Also, try to praise in public, but critique in private.

      You will often be one of the smartest people in your group.  It is a fact of life.  Get used to it, and get comfortable with it.   However, never look down on those around you with less intelligence.   You will often be surprised at the talents that people have, that never even occurred to you and that you don't have.  Don't let the team miss an opportunity to benefit from such a talent.  Everyone is good at something.  Find out what it is, and encourage it.

      Aside from making your work environment more pleasant for everyone, you may find that this opens up mentoring opportunities for you.  If someone trusts you, they are much more likely to come to you for help and advice.  So, you get significant chances to help them and to help the team.

      This may also directly help your career someday.  Everyone loves to recruit their old mentor to join their new team.

      --Fred

    5. Create a GitHub repo

      Original Version: 3/11/2012
      Last Updated: 5/6/2016

      Create a GitHub repo immediately.

      Push all of the source code you've written that you are allowed to share.  Entire projects, reusable parts, Unix scripts, Windows batch files.  Documents too.  Tips and techniques. And especially, your resume.

      When someone asks for your resume in reference to an IT job, point them to your GitHub repo instead.

      Says you're young, hip, current on Open Source and other marketable technologies, and have a love of programming.  Also lets them see and run some of your code so they can be impressed by your "mad tech skillz" even before they meet you.

      Even if you don't think you have much to post, consider:

      • Any reusable snippets of code that your employer doesn't care about, but are useful to you
      • Any ideas or design patterns you've developed that your employer doesn't feel like they own
      • Any organizational lists, charts, tables that you've created to help you with your work or other aspects of your life:
        • Questions you always ask when interviewing a candidate who wants a job with you
        • Template you made up for writing your weekly status reports
        • Technical tips and techniques that you wish you'd learned or developed long before you actually did, and that you've treasured ever since
        • Algorithm for deciding what your kids' bed times should be, or how much allowance to give them at different ages
        • Strategies for finding obscure sources of college financial aid
      • Your resume
      • Anything that might impress someone who goes to your GitHub repo, because it shows your coding techniques or organizational skills, or how you think
      • Anything that might be useful for such a person in their own job or life that they might download from your repo and appreciate having
      • etc.

      If you have an interesting app to post, but it's not in very good shape yet, don't worry about it.  If it's embarrassingly bad, yeah, clean it up before posting it.  Otherwise, don't wait too long.  Use the READ.ME file of the GitHub repo to describe its level of quality, how confident you are (or are not) in it, what changes you anticipate making some day if you have time, etc.  Then, anyone who sees it can decide for themselves whether to bother looking at it further.  But get it out there, just to add to the volume of stuff you're offering the world.

      Who knows?  Maybe someone will take an interest, fork your repo, make improvements, submit a pull request for you to pull his changes back into your repo, and you two end up collaborating on a fun and profitable project for a few years.  Or he says "Hey, my boss is hiring. Want to join my team?"

      5/6/2016 Update from Scott Russell:
      I don't know how popular this is yet from a boss perspective but it's an interesting concept.  A means for a potential boss to see your GITHUB resume.  The user has to star the resume project (22,000+ have stared) for the generator to work.

      --Fred

    6. Contribute to a FOSS (Free and Open Source Software) project

      Original Version: 11/16/1999
      Last Updated: 4/30/2021

      Contribute to a FOSS (Free and Open Source Software) project.  It's easier than you think!

      Don't have the time, ideas, or energy to write your own app?  Not a programmer?  No problem!  You can still contribute in some small way to an existing FOSS app.

      If you ARE a programmer:
      Find some piece of software that you've downloaded for free and are using, that is advertised as being written in a language you already know.  Download the code from BitBucket, GitLab, GitHub or wherever.  Look over the code and/or the associated list of bugs and feature requests.

      Many projects clearly identify bugs that should be easy to fix, to entice beginners to take them on and join the project.  Fix a bug, or add a feature, especially one that will make the software more useful to you personally.  Or write a test case, or document a feature, or something.

      Push your updated version to your free account at BitBucket, GitLab, GitHub or wherever, and issue a "pull request" at the original site.

      Hopefully, they'll review your change, accept it (or at least provide feedback to you about changes you'd have to make before they can accept it), and merge it into the main code base.

      If you're NOT a programmer:
      Find some small piece of software that you've downloaded for free and are using, that you think is kind of cool.  Contact the people writing and maintaining it.  There's probably contact info at the site where you downloaded it.

      Tell them you're a fan but not a programmer.  Ask how you can help.  Offer to test the app for them and report bugs, or suggest new test cases, or review docs for clarity or just for typos, or re-write parts of the docs to be more clear.  They'll tell you how to get access to the files you need, and how to submit your updates back to them.

      If you're a sys admin, devop, DBA, etc:
      Same as above, but offer to help with their infrastructure.  They may need help maintaining servers, setting up new servers, installing/configuring software to monitor things, researching infrastructure alternatives, migrating data to a new DB, migrating to a whole new platform, etc.

      Either way:
      You are now officially a "committer" to a FOSS project, which puts you ahead of at least 90-99% of all job applicants in the world.  The project will add your name to the list of committers at its public web site.

      Get that on your resume quick!

      What is "Free" software anyway?

      The "Free" in FOSS does not mean "no cost" so much as "freedom to enhance and reuse the software".  Yes, it's often no cost, but more importantly, you're are free to view the source code to see how it works, free to enhance the source code to suit your needs, free to submit your improvements back to the main project for the benefit of everyone, etc.

      Contrast this to proprietary software from companies like Microsoft, Apple, Oracle, SAP, etc.  Their licenses explicitly deny you all those freedoms.  They don't want to add any new features to their existing software if that feature already exists in another of their products, because they want you to buy licenses for both products.  So they make it illegal for you to add the new feature yourself.

      When you ask for support for a proprietary product, the support person has 2 goals:

      1. If possible, sell you an additional product or an upgrade to this product, to solve your problem
      2. Otherwise, help you with your problem using only your current license

      When you ask for support for a FOSS product, there is no such conflict.  They'll be glad to help you make better use of their product, and glad to accept any improvements you may have written for it.

      Thanks to Kahiga Tiagha for suggesting the "NOT a programmer" and "sys admin, devop, DBA" sections!

      --Fred

    7. Create a Meetup

      Original Version: 2/21/2008
      Last Updated: 2/5/2015

      Coming soon...

      Coming soon...

      Coming soon...

      --Fred

    8. Volunteer

      Original Version: 7/4/1988
      Last Updated: 2/5/2015

      Coming soon...

      Coming soon...

      Coming soon...

      --Fred

    9. Give Talks

      Original Version: 10/29/2009
      Last Updated: 2/5/2015

      Coming soon...

      Good way to get your name out there.  Everyone loves to hire the expert, the guy who taught them how to do something.

      Good way to force yourself to learn something, if you've already committed to teaching it.

      Coming soon...

      Coming soon...

      --Fred

    10. Teach Classes

      Original Version: 12/3/1999
      Last Updated: 2/5/2015

      Coming soon...

      Coming soon...

      Coming soon...

      --Fred

    11. Review Resumes

      Original Version: 6/3/1996
      Last Updated: 2/5/2015

      Coming soon...

      Coming soon...

      Coming soon...

      --Fred

    12. Write a Book

      Original Version: 8/30/1991
      Last Updated: 2/5/2015

      Coming soon...

      Coming soon...

      Coming soon...

      --Fred

  5. Attitude
    1. Be a Fred

      Original Version: 12/1/1960
      Last Updated: 2/24/2015

      http://bristle.com/~fred/MaximizingTheFredFactor.htm

      Coming soon...

      Coming soon...

      --Fred

    2. Do well by doing good

      Original Version: 11/17/2014
      Last Updated: 2/24/2015

      https://www.linkedin.com/pulse/20141111021703-36792-50-ways-to-do-well-by-doing-good
      Especially the info in the 2 embedded slideshows.

      Coming soon...

      Coming soon...

      --Fred

  6. Resume Tips
    1. What to include

      Original Version: 1/12/2000
      Last Updated: 5/22/2016

      Coming soon...

      What to include in your resume.
      Doesn't have to all be paid, professional, or even finished work.
      Just has to all be true -- stuff you really did.
      Include anything that shows relevant skills, interests, enthusiam, initiative, etc., including:

      1. Paid professional experience
      2. Relevant volunteer activities, including FOSS (Free and Open Source Software) contributions
      3. Relevant side projects
      4. Relevant hobbies

      For example, there was a whole section of my resume, that I finally had to cut out because the resume was so long, that looked like this:

      1999 Prototyped a component application architecture.  The Java components can be configured in a variety of ways, including:
        N-tier Web application Client is DHTML driven by JavaScript running in a Web Browser.  Web pages are generated by ASP using VBScript on the IIS Server.  ASP pages exchange data via XML with application objects written in Java.  Application objects communicate with a MS SQL Server 7.0 database via ADO 2.0.
        J++ WFC Client/Server application

      Client is a J++ WFC application, which communicates with the same Java application objects, and through them to the database.

        Java AWT Client/Server application Client is a Java AWT application, which communicates with the same Java application objects, and through them to the database.
        Java Swing Client/Server application Client is a Java Swing application, which communicates with the same Java application objects, and through them to the database.

      This was all work that I did at home on my days off, just playing with new technology.  Not a paying gig at all.  But it showed what I had learned, which I might very well use (and in fact did use) in a future paid assignment.  And it showed that I had the interest and initiative to teach myself such things.

      Doesn't have to be all technical stuff.  Soft skills count too, like organizational skills, management, persuasion, etc., especially those that may be useful in a job someday.

      Coming soon...

      --Fred

    2. Don't oversell

      Original Version: 1/12/2000
      Last Updated: 7/26/2019

      Coming soon...

      Don't overstate what you did, take credit for other people's work, make it sound like more than it was, etc.

      Your resume should undersell you just slightly, leaving room for more value to be discovered in the interview.  Ideally, each time someone asks about a specific item, your answer will be "I'm glad you asked that!  Let me tell you how cool that project was, and all the amazing things I did...".

      You never want to have to say "Oh yeah, well there wasn't really much to that..."  If you hear yourself saying that, you may as well get up and walk out of the interview -- you've just been caught in a lie!

      See: Set expectations for the interview

      Coming soon...

      --Fred

    3. What not to include

      Original Version: 7/16/1984
      Last Updated: 5/22/2016

      Coming soon...

      What not to include in your resume:

      1. Things that are assumed and would make you look foolish for mentioning them (ability to use a mouse, word processor, browser, email, etc.)
      2. Things you never want to have to do again, and therefore don't care to claim any knowledge of
      3. Things that are not valuable in or relevant to a job situation

      Coming soon...

      --Fred

    4. Context, then bulleted achievements

      Original Version: 5/30/1987
      Last Updated: 2/5/2015

      Coming soon...

      Coming soon...

      Coming soon...

      --Fred

    5. Business value of each accomplishment

      Original Version: 6/3/1996
      Last Updated: 2/5/2015

      Coming soon...

      Coming soon...

      Coming soon...

      --Fred

    6. Human-Voiced Resume

      Original Version: 4/14/2015
      Last Updated: 4/14/2015

      Coming soon...

      Value of a Human-Voiced Resume as described here.

      Coming soon...

      --Fred

  7. Interviewing
    1. Know where your resume went

      Original Version: 7/6/1996
      Last Updated: 4/24/2016

      Don't let multiple recruiters send your resume to the same company.

      Be aware that recuiters get paid a LOT of money for placing you at a company.   Typically a one-time fee of 20-25% of your annual salary.   Sometimes as much as 30-50%.  So they and the companies are very careful to keep track of who gets paid for each new hire.

      Also, because of the huge fee, some disreputable recruiters try to send your resume to as many companies as possible, to try to get you hired somewhere.  Anywhere.  As long as you get hired by a company that's paying their fee.

      This can cause you a couple of different problems:

      1. They may send your resume for jobs that don't fit, and push you to interview, etc., when there's little hope of a match
      2. They may actively discourage you from taking a better job through a different recruiter
      3. Companies want to avoid the risk of having to pay 2 huge referral fees for the same new hire.  So, if they get your resume from multiple recruiters, they may discard it, just to avoid confusion about who gets the fee.

      To avoid these problems, get an explicit promise from any recruiter you deal with that they will give you the name of each company and each position, and ask your permission, BEFORE sending your resume to that company for that position.  If they won't promise, find a new recruiter.   If they break their promise, stop dealing with them immediately, and warn everyone you know to not deal with them.

      Unless you are dealing exclusively with one recruiter, you are personally responsible for keeping track of which companies know of you via which recruiters.  Dealing with only one recruiter may be a bad idea.  It may limit your options, especially it may prevent you from getting your dream job at a company that doesn't work with that recruiter.  Or it may be a a good idea, if it's a good recruiter.  It may motivate that recruiter to do a better job for you.  In any case, it's hard to be entirely exclusive, since you're likely to be contacted directly by lots of companies who see your LinkedIn page, or your publicly posted resume.

      --Fred

    2. Research the company

      Original Version: 7/3/1991
      Last Updated: 5/20/2016

      Before going to an interview, research the company.  This is trivially easy to do via Google these days.  If you walk into the interview, not knowing the company's basic product line, technologies used, recent successes/failures, etc., you look horribly unprepared.

      Ideally, learn enough about what they do to be able to comment intelligently on the challenges they must face, and perhaps how you'd address those challenges.  It's also good to know who their competitors are, how well they are competing, market pressures they're likely to be experiencing, etc.  And most importantly, how hiring you will help with all that.

      5/8/2016 Update:
      Mike DePaulo reminds me that a good way to learn about the company is to read their public blog, their Facebook page, their Twitter tweets, etc.  Especially for late-breaking news that may be on their minds during the interview.  Thanks, Mike!

      5/20/2016 Update:
      This is not only a good way to impress the interviewer.  As Sandra Stocker reminds me, it's also a smart move for your own sake.  Learn about the company before you sign on.  Even if the initial job is great, what will you be doing for them in a year or two?  If the company has bad management, you may not enjoy it for long.  Or if they have financial troubles, you may get laid off.  Thanks, Sandra!

      --Fred

    3. Know what to expect in the interview

      Original Version: 7/6/1996
      Last Updated: 5/19/2016

      If you're working with a recruiter, ask him/her what a typical interview at the company is like.  One hour, half-day, full-day?  One-on-one or team interviews?  Programming test?  If he/she doesn't know, get a new recruiter!

      If you're not working with a recruiter, ask your contact what to expect.

      Ask your recruiter or contact what the company will view as your strengths and weaknesses.  What about you will impress them?  Where are you likely to stumble or fall short?

      Once you know that, prepare for the interview.  Learn a little about the areas where you're weakest.

      --Fred

    4. Set expectations for the interview

      Original Version: 7/6/1996
      Last Updated: 4/24/2016

      Before you agree to the interview, make sure that you are a reasonable fit for the position.  Some recruiters and consulting firms just throw every resume at every position in the hopes that something will stick.  Avoid them at all costs.  They'll just lead to awkward interviews and a bad reputation for you and for them.   If you don't have most of the skills listed in the job description, don't agree to the interview.

      Make sure also that you believe yourself to be sufficiently qualified and interested.  If you look uncomfortable during the interview because you feel someone has oversold you and you can't live up to the sales job, you'll come off looking dishonest.  And if you know in advance that you're not interested, they'll quickly figure out that you are wasting their time.

      In order to set expectations for the interview, be very clear with your recruiter or other contact what skills and interests you do and do not have.

      Make sure also to set appropriate expectations for salary or hourly rate.  Ideally, you'll be paid exactly as much as you think you are worth.  Too little and you'll resent it.  Too much, and you'll feel like a fraud who is unable to provide enough value to justify your cost, and will live in fear of being fired.  Neither will make you a good employee or consultant.  Also, ideally you'll be paid just a little less than the company thinks you are worth, so that you are always exceeding expectations and getting raises.

      --Fred

    5. Be honest in the interview

      Original Version: 11/1/2005
      Last Updated: 4/24/2016

      Be brutally honest in the interview.

      Ideally, your resume undersells you just a little, so that the interview makes you look even better, as described in Don't oversell.  But, if something comes up that does reveal a weakness, admit it openly.  In fact, you can turn such honesty about weaknesses into a strength.

      I had an interview years ago where the recruiter had told me that I was a perfect match for a position EXCEPT that I was missing one of the skills (EJBs) that they were looking for.   He had warned them of that, and they were still interested in talking to me.   Since the interview was a couple days away, I bought an EJB book and read the first 5 chapters.

      The very first time EJBs were mentioned at the interview, I said: "I'm glad you asked that!  4 days ago, I knew absolutely nothing about EJBs except how to spell E-J-B.  But I bought a book and read the first 5 chapters."  I then proceeded to tell them what little I DID know about EJBs: what types there were, what each type was for, their strengths and weaknesses compared to other similar technologies, what they could and couldn't do, etc., all at a very high level.  I finished with "Please don't ask any questions.  I've told you every single thing I know about EJBs.  There is nothing below the surface."

      They were impressed by:

      • My brutal honesty
      • My enthusiasm for learning
      • How much I had learned about EJBs in just 4 days

      The next day, they offered me the position and I took it.   And while I worked there, they never expected more of me in the area of EJBs than I was able to quickly learn.

      --Fred

    6. Be specific in the interview

      Original Version: 3/4/2015
      Last Updated: 5/19/2016

      Be specific in the interview.  Vagueness doesn't sell.

      Never say:

        I know lots of languages.  I'm sure I can learn Scala.

      Instead say:

        I don't know Scala, but I know Java, C#, and Clojure, and I understand that Scala is similar to Java, but with closures and other functional features like Clojure, and with annotations like C# and recent versions of Java, and with...

      The first is what every senior guy says, including those who have no idea what Scala is about, and think it might be like COBOL, Fortran, PL/1, etc.  It's such a common refrain that it's meaningless, and is immediately dismissed.

      The second is much more concrete and convincing.  It shows exactly how much you actually DO know about Scala, and how quickly you're likely to pick it up.

      --Fred

    7. Be positive in the interview

      Original Version: 8/6/1991
      Last Updated: 2/16/2025

      A very wise man (my dad) once told me "You have nothing to decide until you get an offer."

      During the interview, even if the job begins to sound unappealing, remain positive, upbeat and interested.  Unless you're ABSOLUTELY SURE you're not interested, allow them to continue to try to sell you on the job.  Who knows?  They may say something unexpectedly appealing.

      I don't view this as "always be selling", which seems a little dishonest.  I view it as "always be open to being sold".  Some of my most interesting jobs and best experiences in life have been things that I let someone talk me into trying.

      Even if they don't manage to interest you, they may say something that reminds you of someone else.  Maybe you've found the dream job for a friend!

      In fact, if you're really sure you don't want the job, work actively towards that outcome.  I've been known to stop in the middle of an interview and completely change tack.  Tell them flat out that this is clearly not a good match for me.  I don't have the interest.  Or I don't have the skills.

      But maybe I can help them find someone else.  I know a LOT of people.  Tell me about your ideal candidate, and more about the job requirements, and I'll see if I can help you find someone.

      I take good notes, go home and do a BCC mailing to my "Job Wanted" list -- folks actively looking for work.  And BCC the interviewer so they can see what I have to say, and can know that I kept my promise to them.  And maybe send a few targeted mailings to likely candidates that could perhaps be tempted.

      I've been paid a few referral fees over the years.  Almost always for jobs that I turned down myself.  Mostly without accepting the initial interview, but sometimes late in the game like this.

      --Fred

    8. Expect games to be played

      Original Version: 5/9/2016
      Last Updated: 5/15/2016

      Some interviewers like to play games.  I don't.

      For me, life is simple.  When I interview a candidate, I have one goal -- to decide whether I'd want the person to join my team and work side by side with me for the next couple of years, and if so, to talk them into signing on.

      So I ask some technical questions to see if they have the skills we need.   I try to get them talking a little about their interests, their strengths and weaknesses, etc. and watch for any red flags.  And I work with them, to come to a common understanding of how they would best fit our team, to maximize the value to both of us.

      If things are looking good, I may sell them a little on how much they'll enjoy working with us.  If not, I may tell them so immediately, and offer to help them find a better fit in another part of our company, or in a different company.

      Similarly, when I'm interviewed for a position, I have one goal -- to decide whether I'd want to work with the interviewer, and if so, to talk them into hiring me.

      So I answer all of their technical questions, and volunteer more technical tidbits.  I show them my enthusiasm and my interests.  I tell them my strengths and weaknesses, and watch their reaction -- if my weaknesses are a red flag to them, I probably don't want the job.  I work with them, to come to a common understanding of how I would best fit their team, to maximize the value to both of us.

      If things are looking good, I may sell them a little on how much they'll enjoy working with me.  If not, I may still keep up a positive front, to see if I get an offer, and to think about whether I could make things work out well.  If the fit is bad enough, I may tell them so immediately, and offer to help them find a better candidate among my friends and colleagues.

      All pretty simple really, and very above board.  All cards on the table.

      Unfortunately, not all interviewers are like that.

      Some interviewers like to play games.  For example, here's an article about interviewing practices that are supposedly used at companies like Google, Facebook, Amazon, etc:

      It claims that they intentionally do things like:

      1. Begin phone screens 15 minutes early, 15 minutes late, or not at all
      2. Make the interview schedule as confusing and unpredictable as possible
      3. Make sure something goes wrong during the presentation
      4. During the interview, make a ton of incorrect assumptions
      5. Ask the candidate to solve their own specific problems
      6. Have the interview frequently move between different rooms
      7. Ask the same questions over and over and over again
      8. Conduct dual interviews with a good cop / bad cop vibe
      9. Ask a question, then start typing very loudly
      10. 3 months later, call and offer the candidate a job she didn’t apply for

      All as ways to stress you out, try to annoy you, assess your ability to handle rudeness and the unexpected, etc.  And to pump you for free technical advice.

      Personally, I'm sure I would come through such an interview with flying colors.  I would remain polite and professional, and would create a great impression.  I would likely be offered the position.

      But an interview is a 2-way street.  Both sides have to put their best foot forward.

      I'd be so unimpressed by their incompetence, disorganization and rudeness, that I almost certainly would NOT accept the offer.  So they've wasted their time. 

      Furthermore, I'd probably tell a lot of people what a train wreck it was.  So they've hurt their reputation.

      Bad idea, I'd say.  But, hey, what do I know?  I'm just a lowly engineer.  Maybe that's what they're teaching in MBA programs these day...

      Thanks to Geoff Rhine for pointing me to the article!

      --Fred

    9. Sometimes there's no job behind an interview

      Original Version: 7/6/1991
      Last Updated: 11/26/2024

      Sometimes there's no job behind the interview. 

      Companies sometimes post jobs, and even conduct interviews, with no intention of actually hiring anyone.  They may:

      1. Already have an internal candidate in mind but have to officially look outside for policy or regulatory reasons.  But the internal candidate is going to get the job.

      2. Want to create the impression among current or potential investors, customers or competitors, that they are using the hottest new technologies.  So they advertise jobs that require those skills.  But they're not really using those technologies, don't intend to hire anyone, and may not even call anyone in for an interview.  Might be just a dead end job posting.

      3. Have a difficult problem to solve, and want to pump some experts for suggestions, so they bring them in for interviews and ask how they would solve the problem.

      4. Want to get a feel for technology trends, so they bring people in for interviews, and try to get a feel for what technologies they think are growing/fading.

      5. Want to convince current employees that they're trying to hire.  So employees believe their own work load will get lighter.  Or so employees are afraid they might be replaced.

      6. Want to monitor the availability and salary expectations of people with various skill sets.

      7. etc., etc., etc., ...

      So, never take it personally when you don't get the job, even after what seems like a really good interview, where you really nailed all the technical questions, and really connected with the interviewer.

      There may never have been a job to get.  It may simply have been a "ghost job".

      See:

          https://www.cio.com/article/3610861/beware-the-rise-of-ghost-jobs-fake-job-openings-with-no-intent-to-hire.html

      --Fred

  8. Starting a new job
    1. Prepare before your first day

      Original Version: 8/13/2004
      Last Updated: 4/24/2016

      Coming soon...

      Prepare as much as possible for your first day.  If you're going to be using your own laptop and know what software tools you'll be using, download and install them in advance. Practice using them, etc.

      Coming soon...

      --Fred

    2. Hit the ground running

      Original Version: 2/1/1982
      Last Updated: 4/24/2016

      Coming soon...

      Coming soon...

      Coming soon...

      --Fred

    3. Deliver something the first week

      Original Version: 2/1/1982
      Last Updated: 4/24/2016

      Always try to accomplish something concrete in your first week on the job.

      Ideally, take on a JIRA ticket or two, write the code, tests and documentation for them, and check it all into Git.  That's not always possible, but find some way to provide value, and ideally some sort of a concrete deliverable.

      I had a client several years ago, that was totally unprepared for my arrival. I walked in, found the manager, and he said "Oh yeah, you're starting today.  Let's see if we can find you someplace to sit.  How about over here?  We'll get you a computer soon."   So, I pulled out my laptop, tethered it to the Internet via my phone, and resumed some of the studying and prep I had begun for the new job.

      Various people wandered by, introduced themselves, and set things up for me.  One brought a PC, another set up my account on the network, a 3rd installed some web server software that I'd need as a developer, etc.  I took notes on what they did.  This continued for a full week, with DB drivers and other S/W packages, access to various remote systems, etc.  Finally, I was fully set up with their development environment, and able to start writing code.

      On Friday, the manager stopped by to see how things were going, and said "Sorry, this always takes forever.  I hope you haven't been too bored."  I handed him a 20-page "New Employee Setup" document that showed exactly how to set up a new employee, step by step, with all the gory details of everything that everyone had done for me in the past week, and said "This should make it faster from now on."

      Needless to say, he was VERY impressed, and also very thankful.  From then on, each new person was able to set himself up without any help.

      Even more dramatic -- about 3 months later, a virus swept through the company and many people, including the manager, ended up with infected PCs.  The IT support group took their PCs, wiped them to factory-fresh, and gave them back.  So they each, including the manager, pulled out Fred's "New Employee Setup" guide, and got up and running again in a day or less.

      I was at that company for about a year, but to this day, over 10 years later, the thing people remember as my most valuable contribution was my "New Employee Setup" guide.  It has since been moved into the company Wiki and kept current whenever the development environment changes.

      --Fred

  9. Recruiters
    1. Dave Fecak

      Original Version: 8/13/2004
      Last Updated: 2/5/2015

      Coming soon...

      Coming soon...

      Coming soon...

      --Fred

    2. Genesis Micro Solutions

      Original Version: 6/3/1996
      Last Updated: 2/5/2015

      Coming soon...

      Coming soon...

      Coming soon...

      --Fred

  10. IT (Information Technology) Careers

    Original Version: 2/1/1983
    Last Updated: 2/25/2021

    The following tips apply mostly to careers in IT (Information Technology), thought you may be able to draw parallels to other careers.

    --Fred

    1. What kind of company do you want to work for?

      Original Version: 7/7/1996
      Last Updated: 2/25/2021

      One thing to keep in mind when looking for a new job is what kind of company you want to work for.  For an IT guy, there are 2 types of companies:

      1. Those that sell software as their product
      2. Those that write and use software to sell some other product

      My first job after college was at Raytheon in Massachusetts.  They sold computer hardware.  Computers, huge air traffic control video monitors, radar antennas, etc.  They also wrote lots of software to drive all of that hardware.  But the main product was hardware.  Hardware was a "profit center".  Lots of money was available to the hardware guys since it led directly to the sale of more hardware.

      The software that had to be written to sell the hardware was a "cost center".   Less money was available to the software guys since they were "overhead".

      I worked for the software tools group -- the guys whose job it was to produce tools that made life easier for the software guys who were already a "cost center".  Needless to say, we were even more of a cost center and even less money was available to us.

      Later, I worked at at SMS which sold software.  Much different!  I was working in a "profit center" now.  But SMS was entirely focused on selling software, not on keeping the developer environment running smoothly.  So, they wrote an incredible utility for managing software builds.  It allowed them to easily manage many different versions of the same software, running in many different environments, at many different client sites.

      You could easily do a build of the latest 4.0 software and ship it to a new customer.  Or just as easily apply an emergency patch to the older 3.2 software and ship it to an older customer that had not yet paid to upgrade to 4.0.  Not quite as good as modern tools like Git, Jenkins, etc., but very impressive.

      However, SMS did not do a great job of keeping the LAN and the servers up and running at all times.  If there was an outage, it only impacted the developers, not the customers.  I ended up buying and installing my own UPS because the power was flaky and my computer was always crashing.

      Later, I worked at Vanguard which sold mutual funds and other financial products.  Again, the software I was writing was not the product.  Again, I worked for a cost center.  Vanguard lived and died by the quality of service it provided to its financial customers. 

      The "phone pop" was critical.  When a customer called and entered his account number, it was expected that his account info would already be on the computer screen by the time the customer service rep picked up the phone to take the call.  No delays, no apologies, the phone pop had to work.  The customer might be a millionaire or billionaire.  Don't want them moving their money to another financial firm.

      So, the LAN and servers at Vanguard NEVER went down.

      However, the software we wrote at Vanguard was only for use internally, by the call center and other employees.  So, very little effort was ever put into a build utility.  We didn't have to support multiple versions, or clients outside the building.  We just had to write the software and push it to the computers of the guys in the call center.  Very different emphasis from SMS.

      It pays to know what kind of company you're interviewing with.  So you can decide if it's the kind of place you're going to enjoy.  And whether your skills are going to be valuable to them.

      --Fred

    2. What kind of programmer are you?

      Original Version: 4/7/1992
      Last Updated: 4/4/2021

      Another thing to keep in mind when looking for a new job as a computer programmer is what kind of a programmer are you. There are 2 types of programmers:

      1. Application programmers
      2. Systems programmers

      I worked at SMS with Tim, a guy who was really good at what he did.  It struck me one day that Tim and I were very different kinds of programmers.

      Tim was very interested in all aspects of the application he was writing.  How it affected the users.  What features it had.  How it compared to the competitors.  Etc.  But he was very disinterested in all of the underlying infrastructure. 

      He didn't really care about the operating system, or the logging or exception handling subsystems, or the portability layers, or inter-process communication mechanism, or the frameworks we used and created for UI, middle tier, DB access, etc.  He was a natural and talented "application programmer".

      I was very different.  I found all of the underlying infrastructure to be absolutely fascinating.  I loved to make it as bullet-proof, efficient, and full-featured as possible.  I reveled in adding features that made it possible for yet another application group at the company to use it for their application. 

      I often stayed up all night working on such things, not quite able to tear myself away and go home to sleep.  My office mates came to know that if I was there at 8am, I was STILL there from last night, not ALREADY there this morning.

      But, when it came to actually adding features to any one application, I did it, but didn't get excited by it in the same way, and typically went home at 7pm.  I was pretty firmly a "systems programmer".

      So, are you an application programmer or a systems programmer?

      Here's a good way to decide, after you're worked at a few jobs.  When someone asks you to tell them about jobs you've had do you list application domains like these I've worked on?

      1. IBM: Defense systems
      2. Raytheon: Air traffic control
      3. SPC: Software tools
      4. SMS: Healthcare information systems
      5. VGI: Mutual funds and investments
      6. ECRI: Medical device watchdog
      7. GSK: Pharma
      8. ITF: Anti-counterfeiting
      9. VBZ: Social CRM
      10. HHL: Fund-raising non-profit
      11. etc.

      Or do you list technologies like these I've used?

      1. IBM: VM/CMS, Assembly language, XEDIT, REXX, Script, GML
      2. Raytheon: Pascal, VAX/VMS, DOS, C, Ada, device drivers
      3. SPC: Unix, X-Windows, Ada, graphics, Interleaf, Interbase
      4. SMS: OS/2, Windows, C++, VB
      5. VGI: Windows, VB, Lotus Notes
      6. ECRI: MS SQL Server, VB, ASP, Windows
      7. GSK: Oracle, VB, Perl, Java, JDBC, Servlets, Web, JS, Ajax, Unix, Windows
      8. ITF: Web, JS, Ajax, CSS, JSP, Mac, Linux
      9. VBZ: Groovy/Grails, MongoDB, JS/CoffeeScript, jQuery, Ajax, CSS/LESS/SASS, Jenkins, Git, Mac, Linux
      10. HHL: Python/Django, JS, Ajax, CSS, Mac, Linux
      11. etc.

      It pays to know what kind of programming job you're interviewing for  So you can decide if it's the kind of job you're going to enjoy  And whether your skills are going to be valuable to the company.

      --Fred

  11. Technology Job Trends
    1. Technology Job Trends 3/18/2010

      Original Version: 3/18/2010
      Last Updated: 3/18/2010

      Here's an interesting summary of recent IT trends, what's hot and what's not.

      A guy named Eduard Hidebrandt used the indeed.com job trends site to do a bunch of queries about trends in marketability of various competing technologies: languages, frameworks, architectures, app servers, queueing mechanisms, build tools, IDEs, etc.  He did different types of queries, getting indeed.com to plot different graphs, to emphasize current market share as well as recent change in market share, so you can see what currently dominates, as well as what is rapidly accelerating.  See his article at:

          http://www.soa-at-work.com/2010/02/it-job-trends-which-technologies-you.html

      Eduard draws lots of conclusions, which you may or may not agree with, but which seem to be supported by the data.  In any case, you can easily do your own queries at indeed.com to investigate further, by going to:

          http://indeed.com/jobtrends

      and entering multiple technology names separated by commas, and each enclosed in quotes if you use multiple words for one technology name.

      Also, each graph in Eduard's article is a clickable link to the same graph done with live data at the indeed.com site.  So, you can click on his graphs to go to the indeed.com site and then change the keywords slightly to tweak the queries as you like.  Also, you can go back to his article a month or a year from now, and click on the graphs to see how they've changed.

      Actually, if you do a View Source on his page, you'll see that the graphs he shows are not stored locally anyhow.  They are links to the trendgraph section of the indeed.com site, which is presumably a cache of recently generated graphs.  So, even without clicking on Eduard's graphs, I think you'd be seeing updated graphs in his article a month or a year from now anyhow.  It will be interesting to see if the textual commentary on what the graphs showed him still applies as the graphs change.

      As a further sanity check, you can do the same queries at other job trend sites, like:

          http://www.simplyhired.com/trends
          http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

      For more links to Job and Job Trend sites, see the Jobs row of my links page:

          http://bristle.com/~fred/#jobs

      Thanks to Dave Fecak for pointing me to Eduard's article!

      --Fred

    2. Technology Job Trends 11/4/2014

      Original Version: 11/4/2014
      Last Updated: 11/4/2014

      Yes, the graphs in Eduard's article above have held up well, since they are all live data.

      Here's a recent email to a friend who was asking:

      Dave,

      To see what's hot, check out my tip:

      You can pick your own combinations of competing technologies and have them graphed over time to see which are widely used, on the rise, on the decline, etc.

      You're coming from a Java background, right?  That's still very marketable.  For more info, see:

      But add these to the mix:

      • JavaScript
      • HTML5
      • jQuery
      • JavaScript frameworks like Angular

      Mobile technologies like Android and iOS are rising, and are a great way to do small jobs from home, but may lose out in the long run to solutions that allow you write a web app once and have it also work well enough on all the phones and tablets, rather than having to write separate apps for each platform.  If you're interested in Android and iOS, I would focus instead on:

      • JavaScript
      • HTML5
      • jQuery
      • PhoneGap (Cordova)

      MongoDB and other No-SQL DBs are rising, but not yet very widely used.  You may be better off learning MySQL or PostgreSQL.  Personally, I use MySQL for everything these days.

      I've also gotten heavily into Python lately.   Large enterprises are all using Java, but smaller companies are using Python.  It is a great rapid development platform, and with the Django web framework you can whip up apps in very little time.   It's much more like JavaScript than Java -- no static type checking, lightweight syntax, etc.  Very powerful, but not exactly a "belt and suspenders" language like Java, so you'll REALLY have to do a good job writing an automated test suite, because the compiler catches nothing, so everything is a runtime error.  Fortunately, Python and Django make it really easy to write automated tests.  Much like jUnit, but easier.

      --Fred

  12. Create Your Own Opportunity

    Original Version: 8/30/1982
    Last Updated: 2/5/2015

    Coming soon...
    My dad at trucking company

    Coming soon...

    Coming soon...

    --Fred

  13. Consulting

    Original Version: 6/3/1996
    Last Updated: 2/5/2015

    Coming soon...
    Genesis intro with 4 points.

    Coming soon...

    Coming soon...

    --Fred

  14. Plan to retire early
    1. Expect to be laid off at age 50

      Original Version: 12/25/1984
      Last Updated: 2/5/2015

      Coming soon...
      Low raises to older guys at Raytheon

      Coming soon...

      Coming soon...

      --Fred

    2. Live cheap

      Original Version: 12/1/1969
      Last Updated: 2/5/2015

      Coming soon...

      Keep that car forever. 
      Pack your lunch. 
      Buy a cheap house. 
      Pay the house off early. 
      Max out retirement plans. 
      Put your next raise into your 401K, IRA, Roth IRA, or ESOP, instead of allowing your lifestyle to get more expensive. 
      I "retired" at age 42 or so.  House was paid off.  Was still driving the 2nd car I'd ever owned.  Stopped working Fridays.  Took a few months off a few times.  Started donating most of my time to worthwhile clients, only billing enough to pay my bills. 
      No stress.

      See also: FIRE -- Financial Independence, Retire Early

      Coming soon...

      --Fred

  15. See also

    Original Version: 1/1/2005
    Last Updated: 4/14/2015

    A great site with lots of practical, thinking-outside-the-box, no-nonsense, let's-keep-it-human career advice:

    1. http://www.humanworkplace.com

    Lots of good links in the Jobs row of Fred's links page:

    1. http://bristle.com/~fred/#jobs

    Some documents from Mike McKeown, a recruiter friend of mine:

    1. Beating_the_Competition_in_the_Summertime.docx
    2. How-to-REALLY-use-linkedin-EN-light-version.pdf
    3. Linked_In_Success_-_MJM_-_SJU_Event.doc
    4. M-InterviewTechniques.doc
    5. ResumeTemplateCollege.doc
    6. TPNG_Resume_Template.doc

    Some documents from Kevin Raudenbush, a recruiter friend of mine:

    1. KR_MakeYourResumeStandOut.docx
    2. KR_ResumeExample.doc

    My own resume as an example:

    1. http://bristle.com/~fred/resume.htm

    Recommended by friends:

    1. GTD, "Getting Things Done, the Art of Stress-Free Productivity", by David Allen
      Web site       Book       More...
      Recommended by:
      • Hans Hermans
      • Chris Marasti-Georg
    2. AC, "The Accidental Creative" by Todd Henry
      Web site       Book       More...
      Recommended by:
      • Chris Marasti-Georg

    --Fred