Needless to say he was completely wrong. I was out-earning him within 2 years of entering the market and I have probably the greatest job security in my immediate friendship circle.
Despite my efforts, he refuses to talk to me to this day. The man does not like being wrong nor disobeyed. A shame really.
My father pushed me into EE. I burned 5 years in industry being paid crap and then discovered it was actually a fairly low paying profession in the UK. Ended up supporting a bunch of Sun machines for other EEs which was more fun. So i learned Perl one weekend, bailed out and lied my way into a sysadmin job for 2x the money. 20 odd years down the line I’m glad I made that choice.
They ended up at groups in the US with much worse scientific output than mine (it's true that well-known US universities wipe the floor with mine in every metric, but that's not true when you go down to the level of individual groups, labs or fields of research), while working unpaid while I was paying a decent salary.
They were bright people so I think and hope they'll have fruitful careers, but their parents (with their best intentions, I'm sure) surely put a roadblock in front of them due to the prejudice that there are no good opportunities outside the US.
I told him to beware, talk to other students and try to gauge the atmosphere in the lab. If you're smart and motivated you'll make it. But will you have fun and be happy? What do you want out of life?
I have friend that made "Associate Professor" at an impressive age. He does make 80 hour weeks and travels 50% of his time. It can be fun and it is an adventure, but is it what you want? This life is pretty incompatible with having a family for example.
Beware of the fact that your parents may define success very differently from you.
Most engineers in all disciplines lose their math ability after graduating. The workplace itself allows this to happen: They get so busy with regular design work that they forget their math and theory. A lot of the analysis work is handled by their CAD tools. The work that does need math or deep domain knowledge is handled by one or two experts within the department.
There are some practical limits to the size and complexity of hardware, that limit the amount of hardware work. An electronic board might be designed and tested once, and then a million copies made. The software for supporting that board is maintained constantly. This is partly due to a conscious choice to move functionality from hardware to software. When hardware is obsolete, it's abandoned. When software is obsolete, it's augmented with new software on top of the old software.
There's a strong message from above that software is more important than hardware. Sparkly software is what management sees when they are shown the product. The people who find that they can program well enough to do it for money, have moved into software development.
It's harder for an individual hardware person to capitalize on their own innovation, because they need the infrastructure to test and manufacture new hardware. So we can only move at the pace of the businesses that employ us.
Programming can inflate its own demand through technical debt, and can organize itself to a level just short of full blown collective bargaining.
Note that I'm not talking about pure software businesses, but those businesses don't need hardware engineers at all. ;-)
Though I don't agree with negative take on software like "sparkly software for management", "inflate its own demand by technical debt" or "organize itself for collective bargaining".
Sparkly software gets you just as far as it is useful usually, less sparkly sells worse but you still need it on hardware to get job done, hardware alone is not enough.
Inflate demand - well people just suck at organizing big projects there is no need to artificially inflate demand it just happens as business needs more and more features.
Software developers are bad at organizing and bargaining - because they all think they are better than others and code of other people always sucks :)
What is my hypothesis:
Hardware has physical limitations as is obvious - even if you build millions of boards - well it takes storage space, you need copper, aluminum, you cannot make transistors smaller into infinity. You can only sell so many phones as there are buyers.
Software on the other hand is limited now mostly by amount of the developers in the world. There is infinite amount of programs that you can run on finite amount of hardware. There is infinite amount of software to be built let alone maintained that is why software developer salaries are going through the roof.
While I can sell 1 phone only once now I can build SaaS solution that I will get cashflow and monthly payments it is not even that individual can capitalize on his own innovation. Basically infinite revenue stream from SaaS model is just so attractive for any business man.
It was just sooooo depressing.
Did you do the testing on actual hardware?
* Circuits are physical implementations of differential equations, and EE gives a unique way to intuitively think about dynamics, which applies to finance, epidemiology, and just a really diverse range of domains.
* With a rigorous EE background, you can rapidly pick up most domains of engineering (think Elon Musk), since you've got all the mathematical foundations. The reverse isn't true. The way math is taught in EE is broader than e.g. mechanical, civil, or other engineering disciplines, where it tends to be more domain-specific. EE gives you a lot of depth in probability, error analysis, signal processing, controls, calculus, linear algebra, etc. I think the only things missing are statistics and discrete math, and I picked those up elsewhere.
High-performance board-level EE is insanely fun. Incredibly creative. You get to build stuff, design stuff, do math, and it's just a huge diversity of intellectually-fulfilling stuff.
IC design is a bit less fun, due to the many-month turn cycles (develop, wait months and hundreds of thousands dollars, and test/debug), but not bad.
However, the EE industry sucks:
- Pay is not bad, but much worse than other jobs you can get with an EE degree.
- Work culture has all the worst excesses of the eighties -- think of Office Space style cubicle farms, dress codes, conservative management, ISO processes, and paperwork.
- Yet it's somehow adopted some of the worst excesses of the 2010s; it no longer feels like work is a family or a community
- And it's hard to get into. There are virtually no jobs for junior-level EEs (which isn't just BSes -- in the Great Recession, I knew bright newly-minted Stanford/MIT/Caltech/etc. Ph.Ds who couldn't find jobs).
- Even at the senior-level, there's a bit too much of a boom-and-bust cycle, without the booms ever getting that boomy, but the busts being pretty busty.
I spent maybe five years doing EE work after my EE degree, and I think that was enough. I've been out for a long time now. I still do EE as a hobby, and I enjoy it, but the industry culture isn't one I remember with fondness.
I suspect a lot of this stuff will continue to disappear from the US into Asia; that transition is rapidly in progress. US firms maintain specialized knowledge in some areas (e.g. particular types of MEMS devices), but there are plenty of places we've fallen behind. I don't see us on the path to regain leadership. I think some of this is cyclical. Declining industries don't make for good employers, and poor employers don't make for growth industries.
But career-wise, it's a mediocre choice in most Western countries. (Possible exception is Germany, where engineers have a similar status to doctors and lawyers.)
Most people have no clue what EE even is, or just how much math and engineering goes into building everyday devices and services.
(A friend of the family said "Great! You'll be able to get a job repairing TVs!" when I got my course offer.)
Here's the thing, though: PDEs are NP-hard. There isn't a generalizable way to model dynamics. On the other hand, dynamics come up everywhere:
- How is the pandemic going to evolve?
- How will incentive structures skew cultures?
- How do I build a suspension for my car?
- How does heat leak from my house?
- How does my understanding evolve with learning?
... and so on.
What EE does -- and I think uniquely -- is given intuitive, graphical tools to think about differential equations, in tools like Laplace, Body, Nyquist, root-locus, and so on.
They also give a lot of applied experience in applying those, including in contexts with nonlinearities. An op amp will clip on both sides, which you model as a linear differential equation (which is easy enough to reason about) and a memoryless, time-invariant nonlinearity. You squint. You kinda ask yourself how it would work if it /were/ linear, and the nonlinearity just cut gain. And at some point, after doing it enough, you have intuition for what it will do.
With the EE-specific stuff, I can intuitively reason about these things think through to design.
EE is all about modeling -- building simpler equations which approximate more complex ones in ways which give intuition -- so this is also usually correct or almost correct. Indeed, if you go onto grad level courses in control theory, you'll see formalizations of this intuition, where for example, a time-variant system or a nonlinear system is modeled as a linear time-invariant system, together with a bounded error.
A lot of the mathy stuff -- which I've learned a fair bit of as well -- is in abstract more general, but in practice, gives much less intuition.
My experience with the real world is that there are rarely actual differential equations handed to me. I kinda get that we've set up some pricing structure, or some incentive design, or whatnot, but I can't model it formally. I know which way things push, and whether those integrate or not. I can draw a block diagram and reason about how it will behave, in a way the math side doesn't let me do.
Errr, no they don't. In terms of pay and status Doctors and Lawyers trump Engineers every day of the week in Germany, the only exception being the engineers with PhDs who are tech leads in some well known research institute or big-brand company like Audi or Porsche.
Not once did I use Laplace in EE. It was all cheat sheets or applying data sheets and doing some adhoc calculations in excel or taking a wild guess and iterating.
After twenty years of doing IT related stuff I’ve forgotten how to even differentiate stuff.
1. I did learn them well, and so I did use Laplace quite often in EE.
2. I jumped careers not into IT, but into tracks which leveraged both programming and a mathematical skill set.
I'll mention: I'd be bored out of my wits doing just IT. The intersection of IT and math includes computer graphics, visualizations, robotics, machine learning, fintech, image processing, and a ton of other stuff I find much more fun and fulfilling.
That's not an implicit commentary on your path, by the way, just an explanation of mine. We all have different goals, desires, values, constraints, etc.
I sought areas where I could learn more math and use it to stand out from the crowd, albeit to mixed results, because if your manager can’t read your analysis paper he may not be impressed either, and sometimes the reverse.
If you know a little bit of math, there's no benefit.
If you know enough math to jump to e.g. medical imaging, robotics, controls, simulators, image processing, ML, or similar, there's a ton of benefit.
An EE degree ought to give enough background to get there, although it may involve a year or two of study in a particular domain, and a side project to prove you have the skills.
The absolute worst fields are the “sexy” or trendy ones. Unless you are strongly driven to enter a field for non-monetary reasons always look into employment opportunities.
To get a high salary, you need to be in a good negotiating position, such that if company X won't hire you for US$150,000(/year), then company Y will hire you for US$145,000 (a strong BATNA). There are three possible reasons company Y might not hire you for US$145,000:
1. They are badly managed and making irrational decisions.
2. It would be unprofitable for them to hire someone like you for US$145,000; in an engineering position, this is because their revenues minus cost of sales would go up by less than US$145,000, risk-adjusted.
3. They can hire someone else like you for a lower cost, such as US$130,000.
Item #1 can mostly be discounted as a difference across fields; there are badly managed companies in every field, but generally they aren't the ones who hire a lot of people, and they aren't the ones providing your BATNA. However, in the case of programming, company Y might be you and your college roommate setting up Pinboard or Tarsnap, so there is perhaps a relevant difference here.
A thing about items #2 and #3 is that "someone like you" means "like you" from the company's perspective before they hire you. The fact that you can solve hard leetcode puzzles during the interview in ten minutes figures into this, because that's something they can observe before they hire you, unless they go through a recruiter, in which case it doesn't. If you can do a board layout with 166 MHz DDR and it will work right on the first spin with no signal integrity issues, that doesn't figure into "like you", because that takes at least a week, so you can't do it as part of the interviewing process.
The bigger difference, though, about item #2, is that the returns to NRE work in either EE or programming depends on volume. If your EE innovations give them a working board that costs $3.80 to produce instead of the other guy's $4.30, then if they're producing 100 units, you've produced $50 of value for the company. But if they're producing 100,000 units, that same amount of work on your part has produced $50,000. And similarly if the product brings an $0.50 higher price instead of having an $0.50 lower cost. And similarly if we're talking about lowering the cost per user of operating a server farm, or increasing the ad spend per user.
So why is that a difference if they're both NRE work? Because producing 100,000 units of an electronic device requires a huge amount of up-front capital investment. You can't produce 10 units one day, then 15 units the next day, then 25 units the day after that. So if Company X is investing $3 million in your project and Company Y is investing $0.3 million, the Company X devices are likely going to get produced in ten times higher volume, so every design decision you make is worth ten times as much money.
Now, of course if you're working on Google's backend systems that serve, ultimately, 5 billion people, an 0.1% improvement produces more value than an 0.1% improvement in the systems of a company with only 1 million clients. So FAANG can afford to pay hackers more than the average health plan, ISP, or venture-funded satellite imagery startup. But, even in those cases, the capital investment needed to get a lot of value out of a programmer's work is fairly small, maybe US$10k to US$100k, rather than the US$1M or more that is common for EE projects. This puts programmers in a much better negotiating position.
So, though the two fields have similar diversity of applications, type of work, and intellectual difficulty, electrical and electronic engineers are reduced to begging for scraps from rich employers and then have to sit in bunny suits on factory floors with shitty coffee, while programmers get free massages, incentive stock options, and private offices. Except in countries where companies hire programmers through recruiters.
(Why do they do that? I think it's mostly an industrywide case of #1: companies in England and Australia use recruiters because everybody else uses recruiters, and so the ambitious programmers leave the country, reducing the large advantages obtainable by black-sheep companies who hired directly and could thus hire only competent programmers, to whom they could profitably offer twice as much money. But maybe there are legal reasons or something.)
In America, we value frivolous crap over serious scientific and artistic endeavors, mainly because the masses are terribly dumb. Idiocracy was quite close to the truth, as good satire must be.
Think my position is probably “internal consultant” really.
I was absolutely dumbfounded when I looked up engineering salaries in the UK. I mean, even in the US, I don't consider most engineering fields particularly high paying, but the UK is something else.
It’s easier to take ownership of a failure as move on when you made the choice.
The offshoring of IT was so novel unlike say manufactured goods. Governments can’t stop it although I think they should in some form if you think it’s important for your country
I've had similar experiences, but not as drastic as yours -- my father didn't allow me to use my bike for YEARS as a punishment for smashing my bike as a 10 year old (faulty chain, impulsive child).
I guess this I would call the real toxic masculinity.
Unfortunately there's nothing much you can do, except build your life around it, keep your boundaries firm and perhaps psychotherapy.
I wasn't able to get a job as system administrator (even though I believe I'd liked it) because I can't program. I tried it various times, and the reason I always quit is because I get frustrated and get migraine symptoms. I tried C, Lua, Python (multiple times), and all I ended up being able to is some Unix kung-fu and shell scripting. Which seemed to be not good enough for system administration. It kind of feels like my failure in life, to be frank. Tho I'm happy I ended up with something else, IT security related.
I'm still unlearning the harsh/punitive internal voice, still dealing with people pushing my guilt buttons.
It might sound hypocritical, but I'd trade all the material help my parents gave for the freedom to be ME.
HN is the last place I would have expected to see these words.
Which is slightly interesting take on a parent - I presume they housed you, fed you, got you educated and relatively safe...I cant possibly imagine you are writing this from a rehab facility or jail. And yet, for denying you a bicycle deems that man "toxic"? And what does a parent taking away a privilege have to do with masculinity? Which one of your human rights were infringed upon exactly?
I'm genuinely interested.
Seriously, being so strict to punish a 10yrs old kid for years is not a sign of a toxic personality? Parents suppose to build theirs kids character and not stomp on it to make them 'tough'.
toxic masculinity is not being manly man man. Its being insecure and lashing out at anyone who disagrees with you or is not 'with you'. Any father that thinks their kid misbehaving is somehow a personal attack.
I recognize the character traits. I know someone raised without a father who also shows them. Perhaps in his case a result of having a tough time financially their entire youth? This put a huge value on stuff (because almost everything is irreplaceable, literally, and there was hardly any time to fix things), leaving little room for error and no reasonable room for breaking stuff, as children do?
As I am getting older I really realize that I do things like my parents did them. It is really difficult to just decide to do it differently because of the emotions involved. It is difficult to be rational the whole time, the monkey brain sometimes leads. What is important is to be able to admit your mistakes and being able to apologize. For all my flaws I hope to show my kids at least that there is no shame in this.
I'm sometimes harsh on the children only to later apologize and tell them I actually do believe they should be able to make mistakes and that whatever they broke can be fixed again, and if not, no lives were lost (ideally).
I am certainly grateful to my father for all the material support he provided, and he did provide a lot and still insists he does, even though I constantly remind him I'm an adult and quite well off myself.
It's not about masculinity being inherently toxic, it's about toxic expectations men are expected to fulfill by the society.
And you don't have to have your human rights infringed, for example something as simple as saying "you are useless" is toxic, yet it doesn't infringe on any rights. Not everything that's legal is good.
Similarly someone once advised me not to do a Masters in Molecular Biology because the market was screaming for Bachelors (back then in the Netherlands a Bachelor meant working in a production lab or something). I didn't listen and this also turned around in about 3-4 years and I love how my career went (and is going).
I had a similar (but much less intense) situation with my Father in law by the way. He has some experience in "home improvement". I like to read and watch YouTube before starting any activity. So we had a big discussion/argument on how we would re-do our ceilings. In the end I said: I prefer to do it my way and mess it up than to do it yours and regret that. He agreed, we had a fun time working together after that. He learned a thing or two and now he consults me on many things he does around the house.
I think this just made its way into my "life rules for dealing with family and close friends."
It's up there with "give money freely, but never lend it," and, "don't hire a friend to perform work for you on a deadline."
This of course does not mean you should let them die screaming "yolo!", there is a balance to be found, but having this mantra keeps the balance a bit more on the "open mind" side of things.
I think the message is slightly different, and worse. I think the message is
"If you disobey me, you have hurt me, and I will need to retaliate"
It was also "question."
I ended up gaining a far better understanding of who he is as a person and perhaps even why he is the way he is. This has allowed me to come to terms with his actions enough to forgive and forget (for the most part) and move forward with my life. I still call him once a year on fathers day, an attempt to extend the proverbial olive branch, but he never picks up.
All in all my life goes on and I am happy and healthy. I am extremely grateful for the community I live in, the fantastic friends I have surrounded myself with and (most importantly) my incredible wife who helped me through a lot of the pain over the years. I wouldn't be where I am today were it not for her.
My childhood wasn't bad (as in horrific) but there were enough ... episodes that stuck with me for a long time, and sharing with friends (both at the time and afterwards) raised a lot of eyebrows (mostly saying "that's really not normal/acceptable").
"This has allowed me to come to terms with his actions enough to forgive and forget (for the most part) and move forward with my life."
I'm glad you got there. I've come to a similar place (without a lot of therapy, but over a longer period of time). My parents did the best they could, and on looking back, they were in a situation they didn't want to be in (kids at a young age, money problems, etc). With enough time and distance, and knowing them as an adult, they're generally OK people. They did the best they could, they just didn't know very much at the time, and ... they got a lot of bad advice (imo) during a pre-internet time when it wasn't fast/easy to get a lot of information. I'm still rather fortunate, in that they're both overall good people (just... were not prepared for parenthood) - many folks are bad at parenting and ... are just overall not great people either. I have a sibling that is still struggling to come to terms with some of this, and is still searching for 'answers' to things that I don't really think have 'answers'.
And yes, a good spouse can really help balance you out, give you some grounding and perspective. You can get some of that through therapy as well, I'm sure, but having a spouse with you is a different sort of grounding and perspective.
edit: kudos to you for sticking to it really! You should be proud of yourself!
Worst thing is, with parents, we get to regret these things for longer than they do.
A real sweet guy...
The advice you got might not have applied to you on the way in. But it certainly applied to all the students those professors had just seen graduate. It probably took them a few years to notice the tide coming back in.
Incidentally, the jobs had all been “going to India” for a long time by then. I’ve personally heard about them going there for at least 30 years now and I don’t doubt they will continue to do so in the future. At this point I’m not overly convinced they will all make it.
I started my CS program in 1999 and was supposed to do a Co-op placement (university-facilitated internship) after 2nd year, and after 3rd.
In 2001, I had dozens of interviews and could easily choose whatever placement I wanted.
In 2003 I couldn't get a job, and had to wait until the next cycle 4 months later.
You are completely right about that and that slipped my mind. Either way it was kind of nice how easy it was to get a job back then. Getting my foot in the door was a little difficult actually, but once I had some thing on my résumé I got an interview for basically every job I applied to.
My résumé is much more impressive these days, and it may be in part ageism or higher salary expectations, but it’s much rare to hear back from a job application.
(I have never understood this industry's way of hiring. Long drawn out interviews, and candidates whom are just average that get jobs.
Why not hire a guy for two weeks. See how they do. And of course, be upfront. Tell them this is probationary. You don't sent a guy to relocate, just to be let go in a few weeks.
There are some really great older workers that some company will scoop up when hiring is upgraded to this decade. Sorry about the sentence fragments. Too lazy to fix.)
One thing that stood out to me though is that a lot of the older candidates I interviewed that had been struggling had deep knowledge of a technology that's no longer used and had had very little interest during their career in learning new things outside their job. So once the thing they were expert in was no longer fashionable, they had a hard time catching back up.
I know it's unfashionable to say this and I know that a lot of people have full time jobs and don't want to have side project additionally to their full time job but if you want to keep a career as a software developer past 40 without going into management then you need to do side projects,you need to keep up to date with some of the latest fad (even if some of those fads are cyclical and recycle concepts from 20 years ago). Doing a job well and becoming an expert in an obsolete technology is no path to career growth.
Sad thing about this is that some of us (like me for one example) have known this since the days before personal computers were even a thing, but it don't really help to stay on top of modern tech when all the people in charge of hiring in the tech industry are twenty-somethings who automatically instantly hate anyone with even a single gray hair or wrinkle visible, and instantly dismiss a lifetime of knowledge based entirely on ageism.
Even sadder is that the "decision makers" in many tech jobs still to this day actively ignore good advice that people like me have been giving since the early days re; things like network security being more important than they want to admit to themselves (just to name a simple and obvious example), and then when their ignorance of such issues come back to bite them in the ass they always scapegoat the "new guy" somehow and out he goes.
But I did want to explain the typical issue I have seen when interviewing older software engineers that had a long career but shot themselves in the foot by being too tied to a specific technology. At no point did I want to say that it was the case of every engineer I interviewed. And I fully agree that it's often tough dealing with the ageism in this industry.
It takes some politics, and interpersonal trust to get your advice taken seriously. Sadly, this also means looking past the technical details and considering organizationally why certain decisions need to be made. The company might prefer the occasional breach and "we are sorry" PR over spending a lot of money on network security, for example.
Sure, but what about when the choice presented is more along the lines of "Hey, let's spend a little money on network security now so that we don't have to spend millions later cleaning up a huge mess", and is met with the mentality of "You're worrying about nothing." Ummm, no? I'm sharing the expertise for which I was hired?
This is true for anyone. I've interviewed young people with 5 years experience only to find out they had 5 years experience doing the same thing over and over that they learned in the first 3-6 months on the job.
While the pace of change has slowed down in some software areas in my last 20+ years of working, I never saw it as a field where a person could learn something in school and simply apply it for an entire career. For better or worse, it requires learning outside ones job, or at the very least, constantly moving jobs to keep skillset building.
For me, this has been fine because I've always loved tinkering on the computer. Learning new tech is something I've always done as a hobby as far back as I can remember.
Those going in only thinking programming is an easy way to make money, may struggle later in their career. Though, this is less of the case now as there is so much more older code out there to be maintained.
Developers who understand the fundamentals of a particular area may not be ignorant of so-called developments in that area , but rather may be able to see where trends and modern approaches fail or lack. I know a Swiss developer who never used react in his life, but he coded up a rough approximation in an hour in front of me. He has his own tool belt, naturally. Would he be a good front end factory grunt? No. Smart companies use his services to design them tools.
Got a link?
Paradoxically, this does have the side effect that I'm more skeptical of learning some new ways of doing the same thing, preferring to prioritize new learning for actual new capabilities vs different arrangements of the same deck chairs. I see that behind some of the inertia in my experienced cohort -- just-in-time can be reasonable approach to picking up specific tech.
OTOH, I've certainly worked with people who are aggressively disinterested in picking up anything new, even when offered the chance to do so on the job, and that's certainly no fun to work with. Or manage.
When compared to other careers after, say, 15 years of experience you are not well established high paying position as a lawyer or an engineer (the actual kind :) )
After 15 years you are out-of-date dev that didn't find a time to do their job, manage family and friend and have a side projects to keep up to date with technology.
This is a bit overdramatic but sw devs are expected to ride the wave all the way through their careers when other career paths offer stability and protectionism of well established fields.
That seems to be available only in US for handful of VERY vocal people.
It’s not easy, and you may need to actually go to the place where those jobs are. But each of those companies will hire thousands of people at those compensation level in the next year. And the people they hire were in no way exceptional (or different to you) before they started down the path to getting where they are now.
There’s no reason you can’t be one of them.
To get the interview, you just gotta have some years of experience, some side projects, and that's about it. If you went to a top tier school or something like that, you don't even need the years of experience. Getting an interview at those companies is the easy part, pretty much everyone I went to college with got an interview with one of those companies before graduating (and I didn't go to some super known ivy league college, it was just a pretty good public school in Georgia). The issue was that most people didn't pass those interviews.
To pass the interview, read up on systems design, read up on algorithms, practice some leetcode/hackerrank/etc., and you are good to go. All of those resources can be easily obtained for free. There is no secret or trick to any of that.
It worked out well for me at TomTom: I kicked ass during the 3 month probationary period as a contractor, then when they decided to offer me a full time contract, I was in a very good position to negotiate a salary (and even a hiring bonus), much better than if they were hiring me cold out of the blue.
By doing so, that cuts out anybody who currently has a job. Looking for a new job is much less stressful when your fallback option is "keep working at the current job and continue the search". It also gives you a much stronger negotiating position, since you don't have the deadline of bankruptcy hanging over your head.
If I heard that a company wanted me to work for two weeks on a probationary manner before deciding, that would be a very hard pass. That's long enough that it couldn't really be done without leaving a current job first. Best-case scenario, the transition becomes immensely more stressful for no good reason. More likely scenario, the hiring company decides to play hardball after the two weeks, and I'm over a barrel because I already left the safety net.
The assumption I was given was almost all the thinking and innovation had been done, and it was just a matter of working your way up the Java coder/senior/architect hierarchy over time.
I feel a bit cheated in retrospect - almost all other times the industry's felt amazingly exciting/fun. At that time it was a bit deflated. Luckily I just wanted to work with computers, so at the time I wasn't bothered.
Most offers which were "locked up" were rescinded. I was fairly fortunate that the small software consulting firm I had interned at landed a new contract and made me an offer- for $37k. I swallowed my pride, the market was absolutely flooded with java devs with a few years experience that I was competing against. It seemed far better to be working and building a resume even if for a non living wage.
I received only one hit on my resume my entire first year working, despite sending it out to multiple places each week.
After about a year, things picked up a bit and I landed a job with a group that was impressed by my distributed systems undergraduate research work and curiosity and was building what would become known as a high frequency trading system. My salary was still lower than my 2000 self thought acceptable, but at 55k I could at least afford to move out of my parents house.
Things took off from there a bit, but it was a rough start. And it's a post 2010 thing that engineers can retire in their 30s. My expectation was that this would lead to a comfortable middle class lifestyle but the eye popping salaries of today were beyond the expectations of any of us. Tbh, when one of my coworkers left to go to Facebook in 2007, I looked at it with disdain- a website? How disappointing... I imagine his net worth is deep in the 8 figures- he is still there.
Low points was being rejected from a job maintaining access databases in a small town. Being rejected from another job because I hadn’t suggested manually unrolling a loop as an alternative solution to a problem and I said “oh yeah you could do that I guess” (feedback: bad communicator I withhold information), and a 2 day hoop jumping affair for a dev job involving fake meetings where you had to make up bullshit.
Fuck graduating 2001. Also probably heavily affected my lifetime earnings as I started on £18k.
The Americans seem to be much higher paying, greater variety of roles, happy to let you remote.
Now is the time by the way, I was blown away by how hot the market is. Maybe jump in there before WFH starts to get retracted, you can do more interviews before you're back in the office.
I love it that San Jose is going to require gun owners to carry liability insurance if they want to carry weapons. It's about time they started paying for the health care and rehabilitation and funerals of all the people they shoot, and stopped whining that they're victims of government is oppression, when they're perfectly complacent with everyone paying for licensing and registration and insurance of cars.
https://www.usnews.com/news/best-states/california/articles/...
>San Jose to Require Gun Owners to Carry Liability Insurance
>San Jose officials have passed the first law in the country that requires gun owners to carry liability insurance and pay a fee to cover taxpayers’ costs associated with gun violence.
While it's true that UK salaries are quite a bit lower than other countries if I'm honest if I earned £150k a year the only difference in how I live my life would be that I'd be driving a Tesla. 30k is more than enough to live comfortably on, even in areas with a fairly high cost of living.
I’m not making a value judgement about whether health insurance or student loans should exist but just pointing out that your comment seems like a false rationalization about why a much lower salary in a different country is okay.
For what it’s worth I can’t afford a Tesla either making $200k now and live in a 450sqft studio.
This article from "A Collection Of Unmitigated Pedantry" goes in depth about how historians would classify the US as a state:
https://acoup.blog/2021/07/02/collections-my-country-isnt-a-...
Do you have a source for this? Anecdotally, my impression is that graduates in any degree can reach £30k with reasonable effort. Specifically for graduates in tech, the top end is something like £100k nowadays, and the average would be more like £45k.
I graduated in 2014 and also started on £18k, as a junior C++ programmer :P Don't beat yourself up on it.
The highest starting salary I applied for was 25k, and the highest I heard anyone get was 40k, but working on a trading desk for 12 hours a day.
I honestly can't tell if this is supposed to be good or bad. Graduated in 2020 and spent over a year looking for work with several hundred applications sent. Ended up enrolling in a masters because of it, only got a job last month.
At some point during the 20 years since, orgs decided that HR was to handle hiring. HR trying to add value by having the BEST candidate in their mind and decides that nice-to-haves are promoted to requirements, anyone over 55 (because they would not stay long enough, even while younger ones change jobs within 2 years) is culled as is anyone with less than 5 years of experience (unless possibly if you're below 25).
Then orgs go around complaining that it's hard to recruit people, Go figure.
Now it's refining the idea someone has until it's code. People think they know what they want, but have no clue about the masses of details required. If the person with the idea and the programmer are far apart (in space, time, or culturally), it's pointless.
Most ideas don't require 100s of programmers, so the cost saving is minimal
This is one of the most succinct ways I've seen this said. Thank you.
For the most part the days of handing a programmer a spec who then codes it up are gone. For many problems, programming itself is the easy part. Figuring out what to program, and the complete solution is where the majority of the work resides.
I'm reminded of that today in the rare instance when I run into the decision makers that are convinced GUI data engineering tools are the future.
The same train of thought leads to the idea that you can produce good software with mediocre developers by using processes, coding rules and checklists and "development methodology" like agile.
But to most, it is just putting lipstick on the same old pig.
Did I mention the whole training, coaches and lango flinging industry?
Fundamentally, dev is something to negotiate with, cooperatively, versus commanding "do what I say"-style. Many businesses are unable or unwilling to do away with this top-down hierarchy, hence agile will never succeed there.
The agile they practise instead is "Agile, but without actually relinquishing top-down control".
TBH, I think what we are really missing is for the development team to be a contract team (ala Accenture) that can implement agile via official mediums e.g. pushback via contractually negotiation, backlog prioritisation via contract pricing ("we can do that, but this is what it'll cost").
We do have very capable drag and drop CRUD generators now (not quite the same, but I still have a soft spot for VB5). But, what's expected, even out of a simple CRUD form, has risen.
My career took a 6 year detour until I finally made my way to programming professionally. I wish I’d had your conviction - the jobs I did in between weren’t half as fun and my career started that much later.
There were 20 candidates for each place in the course so you had to pass the entry exams really well (and it wasn't the best university in Poland, far from it).
I guess that's the difference between being the outsourcing source and destination :)
Personally i'd agree that this is good for individual employment prospects, but not necessarily good for the country itself.
For example, here in Latvia i've heard that there's a shortage of developers and hence many government projects can't be fully staffed easily, because they're having problems being competitive in regards to wages, when compared to outsourcing companies, like Accenture.
Of course, there's no reason for why any developer should work against their interests in regards to being able to save and earn money, but it does seem interesting - maybe i'm wrong and it's just a regional thing?
Government Development jobs just don't pay enough to be competitive for talent. So instead talent goes to outsourcers. Here in the Netherlands that has meant most big government development projects are done by outsourcers. Which leads to bad incentive alignment. Yielding cost overruns, projects that are DOA, and projects with way to large scope. And at the bottom line, the consultancies are better of keeping it this way than to improve things.
But government is not agile enough to pay fair wage for development work. Besides, it would be unfair to all other government employees if these developers made so much more money with less time on the job and the same level of education. (sarcasm)
There's also the fact that the number of hours worked is always fair, and that you can move within the public service very easily.
Because it is largely the outsourced big projects where our Government fails.
Let's say government hires 1% of the developers in the country, foreign companies pay them 3 times more and if not for outsourcing 50% of these people would have to emigrate.
If X is base salary ignoring outsourcing then the country would earn 0.5 * X * tax_rate - 0.01 * X without outsourcing and 3 * X * tax_rate - 0.01 * 3 * X with outsourcing
So the change is (3 - 0.5) * X * tax_rate - 0.01 * X * (3-1) = 2.5 * X * tax_rate - 0.02 * X = X * (2.5 * tax_rate - 0.02)
So in this simplistic example for the country to benefit from outsourcing it suffices that tax_rate > 0.008 which is pretty much always true.
Let's say government hires 10% of developers, nobody would migrate and the salary difference would be 500%. Even with such unrealistic assumptions the tax_rate would just need to be higher than 10% for the country to benefit from outsourcing.
tax_rate > (5-1) * 0.1 / (5-1) = 0.1
If you want to play with it it's: tax_rate > ((salary_foreign - salary_domestic) * percent_hired_by_government) / (salary_foreign - (salary_domestic* forced_migration))[1] https://www.amazon.com/World-Flat-History-Twenty-first-Centu...
It was not for lack of trying. The management class pushed it very hard. There are still many firms trying but it’s not really panning out.
From what I have seen the answer is that good software engineers are globally scarce and the good ones in India or Eastern Europe make enough that outsourcing isn’t that profitable once all overhead is included.
“Insourcing” is becoming a bit of a thing. You can get some salary benefits outsourcing to lower cost domestic places like Nebraska or Kentucky and not dealing with language, time zone, international currency exchange, legal differences, or other headaches. These folks can also travel to your office for an in person meeting in hours not days. Oh and their power grid and broadband are reliable too.
The jobs that have been most successfully outsourced are low to moderate skill manual jobs where basically what is needed is huge numbers of cheap hands.
All of the talented ones had relocated and were living in the US. I'm sure there are some talented software engineers that stay in India also, I just never end up working with them (probably because the companies I worked for were trying to save a few bucks by outsourcing to begin with, and went with the lowest bidder).
It didn't last much, by the time I graduated from computer science everyone in computer science had a decent job (not paying a lot, but enough for a living) while telecommunications engineers were out of job in their specific field and mostly taking second picks in the CS job market. And to my knowledge, it has been mostly like that since then.
As well, there was a waves of offshoring, so again the common wisdom was do not go into computing. With that being said, I hade the fortune of working with a company that was early to mobile, and was working with Palm on mobile web apps around 2000, so when the crash came, though I lost that job due to the company closing, I knew mobile was right around the corner and went back to grinding out internal corporate software for a few years.
The offshore projects started to fail to deliver and then Steve came back and launched the iPhone. My experience is software is a boom bust economy. It's been more robust this run and everyone learned that outsourcing was not the win-win they thought it was going to be. In the meantime software ate the world so there is not enough hands to do the work that is out there and to your point, a whole generation was discouraged from entering the market. If there is any market that has a bad track record of employment forecast software dev has to be top of the heap.
Similarly to other users here from Europe, in 2010 the market was actually starting to take off. My dad was such a visionary... or I just had a total lack of it!
I went on to college anyway because I wanted to do software development. Most of my classmates that joined didn't make it, or needed more time. A friend of mine ended up working in garbage collection and construction (remote crane operator) for a while, but he landed a job at a shipyard, and now a very cushy one at a generic IT supplier, traveling the country sometimes to go to jobs.
There was a big Compsci building that had been completed a year or two before I arrived (started being built before the dotcom crash). It was scoped for the massive growth in students that they were expecting in computing.
By the time I arrived the thing was practically a ghost town. Student enrollment had cratered. I remember the huge fields of desktop computers available for students on multiple floors, and it was basically empty the whole time.
For example [1], but many more with the same gist.
https://www.careerexplorer.com/careers/computer-programmer/j...
The BLS statistics have us based “programmer” jobs declining by 9% but “software developer” jobs expanding by 23% on a higher base. The job description is largely the same, although software developers have more design responsibility.
Of course then social media happened and everyone and their grandma needed developers so it didn't matter that people were flooding in because there simply wasn't enough labor to go around.
One being, that business requirements are often complex, and contain ambiguity, which requires communication between developers and the business, which is hampered by differences in timezones and culture.
How wrong they ended up being...
Once AI matures to a level where it can write programs, we will have to create newer pastures however.
When we solve the halting problem, AI can write software. Until then, it's Intelligence Augmentation, not AI, and humans will remain in the loop.
I was one of five students in my program that had been a huge multi-campus program only a couple years earlier. We were the last cohort before the college discontinued the program entirely, and I was the only one to graduate. What I found however for maybe five years after graduation was a insanely high demand for developers.
There was genuinely a generation that was so strongly discouraged from becoming developers that there were very few. Seems to me like the folklorists have largely missed this.