When the Thrill is Gone
Will you be an engineer forever? Have you given this any thought at all?
Published January, 1996
|For novel ideas about building embedded systems (both hardware and firmware), join the 39,000+ engineers who subscribe to The Embedded Muse, a free biweekly newsletter. The Muse has no hype and no vendor PR. Click here to subscribe.
By Jack Ganssle
Recently two 40ish pals complained about being stuck in a rut lined with job responsibilities, family duties, and decades of continued struggles with no clear goal or benefit in sight. Their 20 years of engineering has brought them to the pinnacle of the profession - they make a decent living, but have no real prospects for significant salary increases. Their vast experience puts them in high demand as troubleshooters when projects spiral towards disaster, yet management is hard put to justify a salary twice that of a much younger person.
Most of us entered engineering - whether hardware or software design - to build things, to create new technologies and products. For some the excitement wears thin as the years roll on. In time the day becomes little more than yet another 8 hours of shoving the same old bits around the same old places.
When the thrill is gone it's time to change something. Only an idiot condemns himself to a lifetime of wage slavery. If the thought of Monday morning makes the bile rise, if you aren't usually anxious to get back to your chosen profession, then those 2000+ hours each year spent on the job are just like a Chinese water torture, whose effects multiply with each passing year until you'll explode, shuck the spouse, buy a red sports car, and blow a lifetime's savings on a fling.
January is a good time to spend a few minutes reflecting on the past and thinking ahead. Most people seem content to follow a lifeline whose course is dictated by events, rather than fighting to do what fascinates them. Though perhaps it's often impossible to equate avocation and vocation, surely we've got to insure our jobs are fulfilling and financially adequate. This month, think about where you are, and where you'd like to be. Find a path to link the two.
Conversely, I think it's naive to figure you can plan your career from leaving school to retirement. Things change; particular passions wane as new ones arise. Keep your options open.
In school we're taught that computer science and engineering are sure indicators for success. Perhaps the armies of recruiters that once prowled campuses have largely disappeared due to downsizing and consolidations. Surely, though, techies still expect to have less trouble finding a job than a poly sci or English major.
That first job comes with a nice salarye. Even better, frequent raises build that salary for ten or fifteen years.
Then, suddenly, at age 35 or 40 the raises slow down, becoming more cost of living increases than real gains.
It's not an age thing. At some point an embedded designer simply makes too much money; the employer is forced to admit that two beginners equal the cost of one old-timer. The math at least seems logical: two times the people, two times the productivity. The reality is often somewhat different, though it's awfully hard to prove this to the bean counters.
Bosses see that a continued 8 or 10% per year raise will price today's wage at stratospheric levels in no time at all. How much can a business afford to pay an embedded programmer?
At some point, no matter how good you are, your increases will hit a limiting value. This happens sooner rather than later, and at the worst possible time in life, when you are supporting a family, have kids in expensive schools, and need the income like never before. In our carefree twenties we carelessly spent our extra income - no one in America saves - never quite understanding how putting a little away each week could make so much difference in the future.
Lawyers take classes about billing and running their practice. Engineers don't. None of us, graduating from 4 years of more of a highly technical education, have a clue what to expect in the real world. This is the great lie of technology education: we're groomed to expect tremendous opportunity, but never understand how our success will turn into a mid-life problem until the crisis hits. My 40-something friends moan about the problem, but I wonder if perhaps wage compression isn't a good thing in disguise. It makes room for newcomers, as many older engineers change careers to manage the slope of their salary curves.
The embedded industry changes at warp speed. It's hard to keep up as one gets older, as other responsibilities interfere with the off-the-job time available to read magazines and study new developments. I find myself overwhelmed with publications, application notes, and other publications that have the information I need to keep up, but that compete with other demands.
How do doctors stay abreast of their also rapidly changing field? How many manage to spend an hour or two a day reading journals?
Young developers bring new ideas and new ways of doing things to an organization. They make mistakes - but a wise outfit uses mistakes as the critically needed learning ground. Someone just out of college probably has never written a real application, or even a large amount of code, but they've also been trained exclusively (we hope) in modern methods. C and C++ are now the staples of a computer education rather than Basic and FORTRAN, which can only help mold minds in a more structured way of programming. I still see plenty of crummy C code written by latecomers to the language who clearly continue to think in the computer dialects of their youth.
When a business changes as rapidly as this one does, getting stuck in well-proven ruts is dangerous indeed. Though salary compression is nothing more than a result of assigning value to a particular job, it does create a valuable turnover that ultimately improves the industry. (OK - flame away! My email address is at the end of the column).
In the military one is expected to have the grace to retire if passed over for promotion a couple of times. Colonels either turn into generals or get out, making room for new people. It's not quite clear to me what they do to survive, though, having abandoned a 20+ year career while still relatively young.
There are three phases to a engineer's career: the youngish developer who produces code and products, experienced older mentor, and a change of profession.
Some folks get stuck in one area - sometimes with intent. Do what you love! Understand, though, that sticking with bit pushing will forever limit your income. If this tradeoff is acceptable, then do it with a smile. Otherwise develop a plan to get the mix of job satisfaction and financial incentives that meets your personal needs.
One of the greatest failures of the university system is its lack of focus on teaching. Every grad student, regardless of ability or command of the English language, runs a class. Most are abysmal educators. Their students somehow get enough to pass, but never see a role model of a proper teacher.
Yet, these students will themselves one day be teachers. After a few years in the industry, wearing metaphorical badges of honor from participating in various projects, most engineers will take charge of a gaggle of newcomers. Few are prepared for this, and fewer organizations have clearly defined goals for this mentoring role beyond "getting the (insert project name here) shipped!"
Every company proudly proclaims that "people are our greatest asset", but most use people like office equipment. Push the right buttons to get the job done. Few manage the growth of their employees, leaving that to happenstance. Example: I'm happy to see 6000+ attendees at the Embedded Systems Conference, but am somewhat appalled that of the hundreds of thousands of people in this business, such a small percentage make it too the only show devoted to the subject. Growth comes from working with peers, experiencing new things, getting away from the routine and seeing what else is going on in the industry (e.g., the Conference), and working with more experienced colleagues whose agenda includes training newcomers.
We're fortunate that this is not like the law business, where an army of graduates join firms each year and enter the brutal partner competition. This destructive "every man for himself" attitude might work in a field where innovation is not terribly important. In the embedded systems arena, cooperation and mentoring is far more productive.
The best way to justify your mid-career (hey, I'm talking ages 30-40 here) salary is to help build a productive engineering group. If you turn low-paid newcomers into productive developers, your much higher income is suddenly amortized over a wider employee base. Teach, and you multiply your department's efforts.
Most of the lousy unstructured code we see comes from folks who have grown from newbie to old-timer in a totally undisciplined manner. No one has taken an interest in their efforts. If they use heroic, and perhaps insane, methods to get a project done, they're deemed successful. Teach them the true road to embedded enlightenment!
No one fresh from school has any idea how to debug code. Show them the methodical troubleshooting techniques you've no doubt had to learn the hard way. Never leave them to thrash helplessly (as you no doubt did once).
Old and In The Way
By mid-career you'll have to decide between continuing actively developing code or moving into some other arena. What an odd profession we have! Doctors, lawyers, pilots and even politicians all pretty much expect to spend a lifetime employed at the same job. Look around: how many 65 year old engineers do you see?
It's natural to progress from developer to developer/mentor to engineering manager, leaving bit-pushing behind in favor of people-pushing. If big bucks are your goal, remember that managers will always make more money than workers. Effective managers, though, simply must have decent people and business skills. Not everyone does. Nor should every techie feel a need to move into management.
I'm fascinated to see the number of ex-engineers in various industries. You run into them everywhere - in the arts (which proves we're not all socially-challenged computer geeks), as educators, and especially in sales. A technical background gives you an entree into many professions.
Personally, I found managing even more challenging than engineering. It's harder: people react much less predictably than bits. It's more satisfying as well, and much less tedious than building systems, where every single bit must be perfect for the silly thing to work at all.
Others never tire of the creative act of design, and spend a happy lifetime at it, consciously trading off income to follow their passion. Fantastic! These people become the elder statesmen of the industry. The best continuously grow, learning new things till they become that one in a million expert. The smartest develop a broad base of contacts, to insure that they can find employment even when a particular industry falls into decline (e.g., aerospace and military).
It's easy to slam the school system, as I've done here. I do feel, though, that students of technology need something more from college than the ability to convert between hex and decimal. If I could make two wishes for change at the college level, the first would be to teach the teaching process. Part of what adults do is pass on their accumulated experiences, to their kids and associates. We need better, perhaps formalized ways to do this; ways that I'm sure the educational community has invented. Today, teaching in the workplace seems to be erratic and only marginally effective. This must change.
Second, it's unfortunate that colleges don't prepare young engineers for the career changes that are so likely in any developer's future. Most of us naively entered this industry expecting to devote a lifetime to it, without understanding that relatively few retire as programmers or designers. A reasonable school system should give at least a glimpse at what life in a chosen profession will be like; what sort of monetary rewards their will be, and a feel for how a typical career develops.
My business hires high school students occasionally, to give them a chance to see what the real world is like, and to try and find those occasional bright flames of brilliance that we can nurture and hopefully use as productive members of our team. I give them the same career advice I give friends enduring a mid-life crisis: make a decision! What do you want? What do you have to do to get to that point?
At retirement we'll all have to look back and ask ourselves if 40 years of working were agony or adventure. The money issues may not be so important at that point. Only you can make the day-to-day and year-to-year decisions that lead to long term job satisfaction. Don't abdicate these decisions.