I used to work at a hardware store. As in literal bolts and nuts type of tech, not software related:) Recently lost my job. Originally from Kazakhstan. Thinking of going back if I can't find anything else.
No credentials to speak of other than the fact that I could probably think my way out of an undergrad level abstract algebra or real analysis problem if cornered. Maybe topology, too. Native speaker of both Kazakh and Russian. Speak rudimentary Turkish, but could easily pick it up to a decent level if necessary. Currently studying CLRS to finally learn how to design algos. Also, trying to pick up Mandarin. Maybe I'll be able to immigrate to China in the coming years. Shenzhen or Hong Kong area.
I'll just leave this here in case anyone has a remote work for me :)
I don't have any work for you, but it would have helped if you had described your software engineering / computer science skills in more details. I'm not familiar with CLRS.
The other users correctly disambiguated CLRS. I am not experienced with software other than the rudimentary syntax of Python and Scheme. Read a CS book years ago based on the latter. Anyway, I was just wondering if anyone had any kind of job for me. Maybe something like data entry. Would have to learn coding in earnest after I pick up algo design techniques from CLRS.
>Would have to learn coding in earnest after I pick up algo design techniques from CLRS.
You're almost certainly better off learning to code first and then learning about algorithms once you've got a decent coding level. In a typical entry level coding job you can easily go a whole year without implementing any algorithm more complex than a binary search (if that).
Agreed. I would even say this is the order of importance for being effective in a real job:
1. Domain knowledge (understanding the problems you are trying to solve, for who and why they need solving)
2. Full stack awareness (understand computer hardware, networking, OS, HTTP protocols, UI etc. AND whatever the core components of your domain are. This is crucial for being able to reason about and debug a running system.)
3. Technical communication in written and verbal form.
4. Programming fundamentals.
Honestly I feel much more than "fundamentals" is a waste of time for new entrants. If you haven't been paying attention, GPT-3 has taken away the need for programming acumen for most creators. Prior to that Google+Stack Overflow got a whole lot of us through gaps in programming language expertise. Leetcode is literally just a proxy for formal education/privilege and has no direct application in daily work with the exception of a narrow few areas.
If you are truly a nuts and bolts person, let that be your domain. You could write a better inventory, search, and/or checkout system (wow bolts are easily stolen aren't they?!). You could also take the abstract mechanical intuition and focus on robotics.
One shouldn't aspire to work at a "tech company" - most of those that you might think of are actually ad companies. Following the analogy of 100 year old media, Googlers are out selling classified and yellow page ads in Search/Display, Netflix is a magazine publishing house, Amazon is the Sears-Roebucks catalog (Mail order homes!), Meta, the newspaper of newspapers. If you like sales, marketing, and influence it would make sense to work at such a place. I cannot tell you how many people are surprised by this, but it is vastly larger than it ought to be.
If you want to call yourself a developer/programmer/engineer/hacker then show up to build something that will run for a long time and not injure people during its operation. Build something better. If that isn't your ethos or ethic, there are better ways to make money.
> GPT-3 has taken away the need for programming acumen for most creators.
I strongly disagree. GPT-3 is impressive technology, but it isn't even in the same universe as a team of sharp experienced developers. It is a valuable tool for them to use in some contexts, but it won't be replacing them anytime soon (at least not at a company I would work for).
The parent comment might be refering to github copilot or chatGPT, both are fairly decent at removing a lot of google-fu for typical fullstack problems and helping newer programmers get up to speed or closer to a viable solution quickly.
And what is it that you want to do remotely? Sell nuts and bolts? It’s unlikely someone would read your post and think “oh yeah, you’d be great for our company working remotely”. You didn’t outline a single capability other than selling nuts and bolts.
It's about 80% the same as any other store (keep things stocked, tell customers where they are, operate a cash register kind of stuff), 5% copying keys, 15% answering questions that are either really simple ("what do I use to hang a painting") or underspecified ("I need a replacement nut for something"; the trick is to ask them to bring the bolt or another of the same nut if they can).
> No credentials to speak of other than the fact that I could probably think my way out of an undergrad level abstract algebra or real analysis problem if cornered.
That seems like a rather bold claim to make. I don't think anyone could really do that without having studied those subjects deeply. Did you study mathematics at a University and just didn't complete a degree or are you completely self-taught ?
Laid off from Twitter three weeks ago, lots of interest and cool companies out there. I binged interviews and have three offers to consider. Senior eng with 20 years experience
For that kind of seniority/experience, what fraction of companies asked LeetCodey stuff? Was it easy or medium/hard problems? How much time did you have to spend preparing/practicing?
Not the OP, but with similar experience levels and I’ve never done a LeetCode interview, and even regular interviews are pretty light. I mostly contract though, and they generally offer me full time after a little while if I want it.
Also not OP, and also similar experience. Most of my interviews are an hour or two of conversation, sometimes with a "I've been told I have to ask.. " techy question but never involves any actual code/whiteboard. Several times the interviewer has said something to the effect of "I won't insult you by asking you to do a tech test, it's clear to me that you understand the work" or similar. One occassion (some years ago now) I've replied to a request to complete a tech test with a "Would you rather look at my open source code/contributions?" which they did and I didn't need to perform the test.
Not quite as experienced as you (I’m in the 10-15 year bracket).
I never ask LeetCode questions because it’s far easier on both sides to ask experience-based questions like “what do you like/dislike about <technology on your resume>?”
If I get superficial answers that tells me something. If i get well thought-out answers from people who have clearly spent time in the trenches that tells me something too.
I've been doing this for 30+ years, and I've found the same. It's not just whether the candidate can answer correctly, but how they answer.
Back when I was doing C/C++ interviews, I'd ask questions like:
What's the difference between single and double quotes? A meh candidate answers something about you need single quotes for just a single character. A good candidate answers about how the data type for a double-quoted constant is a char.
If I want to pass a variable into a function, and have its value changed by the function, what do I do?* A lousy candidate says "put an ampersand in front of it". A meh candidate says to pass a pointer to the variable. The best candidate will talk about the difference between call-by-value versus call-by-reference.
People really do reveal a lot about themselves not just in what they say, but the way they say it.
Both great questions, where the answer will give you a level of knowledge, rather than a yes/no.
(personally, I would be a meh candidate until you probed further - but I've not touched C for.. hmm, I'm old)
I often get questions where I need to determine if they're looking the textbook answer, or a real-life answer. Usually I will go with "well generally, the answer is $Textbook. However, ..."
I just realized that my above model answer gets broken by the formatter. the first question should get answered with char-star, that is, pointer to char.
> If I want to pass a variable into a function, and have its value changed by the function, what do I do? A lousy candidate says "put an ampersand in front of it". A meh candidate says to pass a pointer to the variable. The best candidate will talk about the difference between call-by-value versus call-by-reference.
I agree it's good for a candidate to demonstrate a solid understanding of evaluation strategies, but the way you phrased the question, the 'meh' answer seems about right. You asked what do I do? which invites a narrow answer specific to the language.
In fact, I had an instructor in college that would have marked you down if a quiz/test asked this question and you wrote an entire paragraph describing call-by-value versus call-by-reference.
On the final, he said "Each of these questions is answerable in 1-3 sentences. If you're writing 1-3 paragraphs, you're wasting my time and I will subtract points even if your answer is correct."
We need your professor to coach interview candidates. On the "interviewer" side of the table, I can't tell you the number of times I've asked a question that should produce a quick, simple answer, and instead got a 5-10 minute stream-of-consciousness word salad out of the candidate. Or a huge run-on sentence this-and-that-and-this-and-also-that-oh-and-this... without coming up for air. It's so common, I must assume that these kinds of replies are being taught to candidates as some sort of best practice.
I suspect many interviewers reward using a question as an opportunity to
showcase knowledge though, even if it means rewarding that kind of expansive
verbosity. I suspect the this and also that you allude to is the candidate
not wanting to be called out for failing to mention a corner case or
tradeoff.
Of course, conversations are rarely
legalistically constrained to answering only the precise letter of a question
asked; it's a matter of degree.
Forgive a painful mixing of metaphors: if the Workplace StackExchange is
anything to go by, one interviewer's flying colours are often another
interviewer's red flags.
I'll add that, as an interviewer (whether of candidates or doing qualitative research), a pattern of very clipped responses to questions about experiences of various sorts soon makes me feel that I, as an interviewer, have suddenly become responsible for filling airtime. It should be a conversation even if that can involve sometimes going off on tangents.
> if the Workplace StackExchange is anything to go by, one interviewer's flying colours are often another interviewer's red flags.
This is absolutely true.
In /r/RecruitingHell, I recently saw a job seeker saying a hiring manager dropped them after they tried to connect on LinkedIn during the interview loop. Meanwhile, another HM in another loop praised them for it.
This is what I've been told. The idea being that the questions are more like prompts, and you should go ahead and elaborate to show your knowledge? Of course sometimes a questions really is just a question.
I think it's more likely a nervous candidate who may not be comfortable or experienced in conversation, as many introverted tech type people seem to be. I don't think it's being taught; it's more likely the result of the candidate not having had interview coaching at all.
Yeah, nerves plus the big question-mark of not knowing what the interviewer's actually looking for. One interviewer's perfect answer will be another's "red flag" (see this very thread, where directly and correctly answering the asked question apparently got you put in the "meh" bucket).
> On the "interviewer" side of the table, I can't tell you the number of times I've asked a question that should produce a quick, simple answer, and instead got a 5-10 minute stream-of-consciousness word salad out of the candidate.
Yup.
There's a fine line between giving a thorough answer and just vomiting up everything you know that's slightly relevant to the original question.
I do AppSec. If I'm interviewing a candidate, and I ask them what Cross-site Scripting is, then if at some point during their answer they bring up SQL Injection, that's a red flag.
Completely off topic, but I wanted to see if your bio could be parsed for an email with chatGPT - since I thought yours was the most interesting I've seen in some time. Turns out cgpt is quite clever:
What's the email address: To email, send to the domain [redacted], using the mailbox "[redacted]".
In general, email addresses consist of a username followed by the at symbol (@) and the domain name, such as [redacted]@[redacted]. However, without being able to verify the existence of the domain [redacted], I cannot say for certain what the email address would be.
Well, at the time I was doing that, it was actually for a C and not C++ job, so &references weren't even a thing. But my point wasn't that using the ampersand is wrong - just that if that's how you describe what you're doing, you probably don't have a very strong foundation in how the language really works.
Exactly this!
I haven't been interviewed for a long time now, but since the beginning of my career, when I have interviewed people I ask deeper questions. Even with tech tests, I use them as a jumping board for diving deeper into language design, tradeoffs and experiences.
Even a trivial, reverse-a-string kind of questions can take you deep into candidate's knowledge.
Contracting interviews are nothing like FAANG though, I literally had one that was a 30m chat with a couple of softball questions. Compared to FAANG they are all a walk in the park and barely need any prep.
I give contractors a coding question related to the job. Unlike LeetCode, it isn’t really challenging (not even fizzbuz), just a test that they can learn a few APIs (that are given descriptions) and write down code. You’d be surprised how many candidates freak out at that point. Unfortunately, it’s often needed for the role.
Not everyone can do this, but if you can manage to first do contract work, IMHO it's win-win for both parties. From the company's point of view: senior engineers are very expensive -- having a contract period lowers risk. From the employee's point of view: you get a good idea of what the company is doing / what your exact role would be before you commit.
In theory, it's at will employment yada yada. But in practice, it makes a difference.
How do you find contract opportunities? Is it the same as regular job searching? Do you use a firm? Do you apply to full time job posts but say you prefer contract to hire once you have an interview?
the canonical way is reaching out to anyone in your work history that you had any sort of positive working relationship with. i just went through this exercise and saw a tip in a similar thread to ask something like this in the email, “do you know anyone who is looking for contractors?” this way you don’t create a potentially awkward situation for them where they have to say they can’t hire you. and, in my case, this led to referrals that ultimately ended up in signed contracts.
big agree on contracting interviews being light. i’ve had about a dozen in the last year and only 2 asked technical questions. the rest were more curious about time lines and cost.
Not OP, 15 years of commercial experience, been writing code since 95. Only two companies did something similar to LeetCode, never prepared — last time I seriously took part in programming competitions was in high school in 2004 — still easily solved everything they asked for. One of the problems was actually famous n queens — which I remembered as a problem, but didn't remember the solution for. Solved it in 40 minutes (with an uncommon solution, as interviewer later told me) anyway.
Most of interesting questions had to do with system design and debugging, soft skills (also system design and debugging, but of systems made out of people instead of code) and code reviews — with me reviewing their production code. Sometimes I got pretty stupid interview questions like remembering REST spec (there isn't one) by heart, but those were companies I wouldn't want to work for anyway.
just chiming in for others that i've had a job specifically waive a coding test because they saw me livecode in front of 2000 people and my fave amazon interview story was a guy that walked in with his laptop open to my blog saying "this is just a formality i've read your work" lol
TLDR why leetcode in private when you can work in public*
(*yes yes, not everyone can work in public, but i bet a fair amount of you can but havent given it a real shot)
Last time I had a coding test during a job interview, I was left alone for an hour with a laptop that was screen-shared with a number of interviewers that was unknown to me. It felt a little like live coding in public but without any audible feedback. That might stress some people out I’d guess, but it felt chill to me. I did my usual thing, even used StackOverflow for some quick syntax & library tips, and finished the program (a Tetris-like game with an AI player, in Python). Got the job. It was pretty fun TBH, even with a lot of experience, I’d prefer the live-coding interview over talking through database schemas or whatever.
It was a whole game from scratch in the programming language of my choice. They only specified the rules. It was keyboard and console only, btw, no graphics or controllers or sound. I took the whole hour and was mostly done when I ran out of time. I forgot to write the score keeping before the interviewer came back. The AI player was “extra credit” and I finished that, so it helped excuse my scoring oversight.
It wasn’t that much or that bad, really. The setup was pretty simple, and quite doable for junior devs IMO (though full disclosure I had just left a position as a lead game programmer, so for me specifically it would have looked a little bad if I didn’t smash this particular interview question). It also helped that the problem was open-ended with extra credit features. I learned later when giving the interview myself that most people never finished the basic game, the majority never tried to write an AI player, and the interviewers were quite forgiving with their ranking & scoring - it was adaptive to the candidates. The coding part of the interview was just trying to be a bit fun and not just be pure dumb LeetCode problems. IMO it worked, I totally enjoyed the interview. The rest of the 4 hour interview included some whiteboard questions (on DB schemas, which I flubbed pretty hard) and also a lot of just talking about experiences and goals.
Yea that would do it for me haha. My bread and butter is embedded C! Technically it's C++ but we try to ease off the ridiculous C++isms because this stuff needs to be readable to the person that was waken up with a phone call at 3am and needs to explain some random behavior lol.
I've never done anything spectacularly fancy with CLI terminals. I could rig up a UI with c++ and qt, or python and tkinter.. but it's been a while. Longer ago, I used to do objc but that was forever ago!
Oh you could do what I’m talking about in C, no problem. By console and keyboard only, what I mean is that this is a game done in the shell with a REPL using printf() and scanf(), it was not graphical or anything. The programming problems weren’t about game programming, it was just design a little data structure to hold the board state, implement valid move checking, detect win/lose states. Really simple stuff, I guarantee it wouldn’t be hard for you.
Re: ridiculous C++isms and embedded C, I’ve been in the same spot for my entire career. After learning C++ in college, I joined a CG film company that had banned C++ (dumb story) so I learned how to write object oriented C. Working in console games after that, we weren’t allowed to use any built-in memory management or exceptions or a current compiler, so very restricted C++. (And the worst bug I ever fixed was when someone tried to get clever with their C++ copy constructor.) These days I use CUDA, which is also technically C++ but basically C.
So your suggestion is to just become a content developer and start marketing yourself online? Getting your work in front of others and getting the amount of reach that you have is also a lot of luck. Not everyone can get the same amount of reach as you have - I've seen hundreds of developers shouting out into the void without any recognition.
> Getting your work in front of others and getting the amount of reach that you have is also a lot of luck
I think this is dismissive of their talent, relative to other people who might try doing the same.
To be fair, swyx was also being dismissive of their talent "Just work publicly and you don't have to prove your coding skills!", which of course assumes your talent will be evident to anyone glancing at your public work. In my opinion, making incredibly complex work look effortless, and therefore easy to follow, requires exceptional talent.
> I think this is dismissive of their talent, relative to other people who might try doing the same.
I believe those who are popular content creators are also better at marketing and sales. Getting their work recognized means that their marketing talent is good and not necessarily their programming skill relative to other people who are doing the same.
When looking from that perspective - are you optimizing for hiring people with good programming skills or those with good marketing skill?
You don't need to become a Twitch streamer or anything, I expect the main developer of a significant open source library would have a similar advantage in adjacent industries.
You can take a traditional career path, or you can carve out a niche somewhere.
I went out of my way to not do leetcode so I only had one because Glassdoor was wrong. I would ask the recruiter during the initial call where I also talked about salary so as yo not waste everyone's time. I cancelled a few interviews that I later found out were leet code, not because I don't want to do them but more I think the people you end up working with are better at testing than coding, from my experience.
Base is higher than I was making at Twitter, but instead of RSU/ESPP it's now options which can go either way, so it's a gamble. For me, I prefer startups, but the golden handcuffs are hard to takeoff once you've had them on for a while.
You can make SF/Seattle/coastal money without participating in leetcode interviews. There is a fascination on this website with these cities, but you can make just as much from just about anywhere without going through this popular hazing process. It will limit the amount of opportunities offered, but there will still be opportunities regardless.
Sorry for slightly off topic response but is there a site (twitter account?) you can recommend for (unsubstantiated) gossip about what's happening inside twitter?
While I'm obviously guilty of wanting to know details about the 'car crash' I'm also curious on a professional level about the challenges and changes that are happening to the engineering teams in this extreme situation.
This might be another post once I'm done but in total I was in contact with 51 companies. Most contacted me, and a bunch I reached out to. I'm tracking everything in Notion but I think about 10-15% didn't get back to me, most moved onto a first round and then what happened after that varies. I stopped the process on about eight of them after I had four companies I was interested in. I'm now at three offers and the forth backed out because someone else accepted the offer while they were putting mine together. Pretty good run though.
I had the leet code once, interviewing for Meta. I didn't prepare because I thought that it was pointless, but I was curious about what it would be like to do it. So, I went through with it and to my shock and awe I managed to do it. The feedback was that I didn't ace it but I did more than well enough for the interviewer.
I didn't get the job though. The last step was a really strange and uncomfortable 1-1 chat with a "very senior employee". This did not go well.
> The last step was a really strange and uncomfortable 1-1 chat with a "very senior employee"
I had one of these once. The chief product officer came into the room, stared at me for awhile, then asked "tell me something you've thought really hard about...". It was a classic case of a narcissist exec. Glad I didn't get the job, as they are struggggggggggglin' right now.
I’ve been getting more messages from recruiters since the layoffs (not laid off myself — federal employee) for machine learning research engineer work. If you’ve been laid off and have those skills, could be fairly easy to land a job.
One may suggest to 'learn to code', but it is not enough this time.
Perhaps now one may say, it is time to 'learn to adapt', since with the recent release of ChatGPT now gives the excuse for managers to be more motivated to hire less engineers and programmers as the cheap money has essentially evaporated.
So this time it is indeed different and I would expect less engineers to be hired and more programming jobs to become very competitive. No-one is safe; and that includes 'seniors'.
This is just as good as a prediction as the alternative: ChatGPT will be the new gold age of programming, all you need in any company is only programmers, all kinds of programmers, no other job will be able to do anything of value.
So everyone who knows how to do a for loop is safe.
Or the extreme, we finally have to move to post-money society, because automation is no longer creating any jobs.
Except that my statement isn't extreme or supports either extreme. I said 'less' programmers, not 'none' or only programmers / all people being programmers.
I still stand by that no-one (including Big Tech companies) is safe, especially after the 2022 tech layoffs which happened to many and tools like ChatGPT will eventually reduce the need to hire lots of programmers like before.
It is not going to be the same as the hiring euphoria that happened last year.
I understand you disagree, but I am pointing out that you can just as well predict extremely positive outcomes instead of your pessimistic ones, which you probably convince yourself are 'realistic', but there is no such thing as 'realistic' predictions, because we live in true emergent chaos.
> since with the recent release of ChatGPT now gives the excuse for managers to be inclined to hire less engineers and programmers as the cheap money has essentially evaporated
I don't understand the relevance of ChatGPT to this.
- write a Gitlab ci job that tests python code and outputs a junit test report.
- can you add code coverage?
- write a sql table that has users, age, and a biography
- write python that parses the above output from the table
- now use a lexer and parser
- create a unit test to verify it's correct.
- write a perl one liner that parses a list of users and phone numbers
It completed all of them. I was already impressed with OpenAI when it generated an argument for why Britney Spears should become president and a test for a third grader about Socrates which I then answered incorrectly and had it grade it.
There are a lot of people for whom those kinds of tasks are the most difficult programming tasks they'll be doing (more or less) per feature. It's just their job will often involve a lot more than just that (and if it doesn't, goodbye job...)
Right. I don't understand the concern even for people working on small crud apps using widely used frameworks and little specialized business domain modeling. The act of writing code isn't the hard bit.
Have you tried doing this yourself? On Twitter etc. you see some really cool cherry-picked examples that are quite easy to break when replicating them yourself.
It is often confidently incorrect. Which is easy to spot if you know the subject matter, but nearly impossible if you are not familiar with the subject.
As a lifelong product manager, I’ve always considered my specs to be prompt engineering for incredibly impressive but sometimes misguided intelligences.
I've tried it and it works. It sometimes makes mistakes which it corrects when pointed out. And it's going to make less and less mistakes as the technology improves. It also can do many things I am not able to do. It's incredible.
I found the same thing! I asked multiple questions and a lot of things were “confidently incorrect”. It was the exact term I thought of seeing these answers.
I found it funny because it made it more human-like as well.
(Example: “what’s the difference between timestamp and timestamptz in postgresql?” will answer that timestamptz will store the time zone and takes more space, which is both incorrect!)
I also asked it general, abstract programming advice and it gave pretty well-reasoned arguments mentioning maintainability and readability.
On being able to replace a real programmer I'd say ChatGPT is about the same distance lane assist is from FSD.
Why you ask? Well it's because most of what a programmer does is more complex than the AI can handle right now. For example my job involves the following:
a) multiple interacting systems and management of the relationships between them
b) > 90% of my work does not involve writing new code
c) the programming part is mostly about changing existing code
d) or debugging (and sometimes setting up a debugger and running code)
e) reading hundreds of articles to figure out why the trivial example these systems are good at doesn't work (sometimes on someone else's machine or staging only)
f) taking product requirements and making small alterations to allow them to become reality (and knowing when to tell people about the decisions you made and when not to)
g) talking to people who might know more about the specific problem you are facing and when to battle through
h) sharing ideas on how to do things with the wider team
i) fighting the good fight and sneaking in refactoring when people are not looking
I don't think we are anywhere near these things yet.
If anything, we'll need more engineers to help GPT-3.5/ChatGPT eat most receptionist, customer support, and similar customer-facing entry level jobs. That itself could become a very healthy and large industry.
First, there's the uselessness of entry-level engineers. They are hired for their growth potential (that every human has, but language models don't) and are expected to grow into mid-levels and seniors. In most of the sw industry, entry-level roles are also not terminal, which means that such an engineer must get promoted at least +1L to keep working in the company. Someone (or something) perpetually stuck at the entry level is a bad value proposition for a sw company.
Secondly, the code that language models produce is buggy. They can, on occasion, produce amazing code and even entire codebases. But this is an exception, not the rule. You can generally prototype something or get an idea for something from language models, but you can only push very little of that into production. What good is code you can't use? You still need an engineer to oversee the language model's outputs.
Overall, if some company replaced their juniors with AI, that would be incompetent management.
This feels kind of arrogant? People working in many customer-facing entry level jobs do emotional labor within organisations that no AI-training has even taken aim at.
If glorified chatbots could do their work receptionists would've disappeared a long time ago.
Emotional labor is a problem, not a feature. A receptionist only needs to be polite with the guests. But unfortunately, receptionists are often subject to emotional abuse.
We've never had glorified chatbots like GPT-3 or GPT-3.5. I'm not just praising GPT; I've myself casually run through a few simulations with a hotel chain receptionist and an executive. The technology looks very competent, and aside from cost savings, there's also the customer service quality aspect (consistency particularly) and the element of removing staff from abuse.
The biggest challenge is integrating language models with live data. Making customer data accessible to them is not a problem technically (prepending prompts), but it could be a GDPR problem if a third party like OpenAI is involved (having to hand over data to a third party might make the AI receptionists unappealing to some customers -- maybe, needs to be tried). The other aspect is letting the AI make changes in a data model. But there are ways to solve that as well. When these obstacles are resolved - and there is a lot of incentive to fix them now - a lot of customer-facing reception-type work can be outsourced to AI.
By the way, some hotels are already very interested in chatbots for reception work. There has been a lot of talk about that in some chains since about 2020. Old-style NLP bots, too. But of course, GPT-3 capabilities are very appealing.
I just want to add, ordering through the McDonald's big touchscreen machine is much better than ordering through the human and that alone has elevated my affinity for McDonald's. Which other experiential leaps from replacing humans with machines remain unimplemented?
Of course. My comment was about 'less programmers' getting hired. Not the extreme of 'All programmers' getting replaced by ChatGPT as you read incorrectly.
Believing that programmers don't need to adapt and that managers won't need to reduce or do layoffs especially with programmers, is quite frankly a denial and delusion of what is going on with cutting costs in hiring too many of them in the first place.
Denial is the first step to acceptance and as I said before, less programmers will be hired with juniors and some seniors impacted.
Yet no-one here said that for this year's tech layoffs. But I wouldn't be surprised to see less engineers being hired compared to last year which is my entire point. Bringing in ChatGPT into the mix now won't make it any easier for entry level job seekers or for several seniors. This time, it is not the same as before.
But of course. Denying it all, and not adapting sure is a great way of coping with rapid changes. /s
More developers will get hired, because ChatGPT will not perform the higher function tasks most developers actually spend most of their time working on.
The reason this will happen, is because ChatGPT will be more efficient in performing the lower function tasks and there will be more of a need to put all that automatically created code into actual use, integrate it with Enterprise Package FooCPT, figure out what caused the product outage at 2am at night. And on and on and on.
Not to mention that ChatGPT will not be able to talk to your users about what they want next, convince your manager that that's the right thing to do and everything else that you need to do on top of the coding part to be a good developer.
What possibly will happen is that junior developers will have even harder time getting into the industry, because clueless PHBs will see ChatGPT doing all their work "for free". A few years later they're screwed, because nobody at the company knows how their applications work. Except ChatGPT...maybe.
> What possibly will happen is that junior developers will have even harder time getting into the industry, because clueless PHBs will see ChatGPT doing all their work "for free". A few years later they're screwed, because nobody at the company knows how their applications work. Except ChatGPT...maybe.
Reads like what I said before. Some will be affected and less programmers will be needed,. Especially in particular, juniors and some seniors getting impacted.
I don't know where I said 'All jobs' as you once again brought out as you clear read incorrectly. I only said less programmers will be hired and these software engineering jobs will be more competitive.
The best course of action is to learn to adapt and it certainly applies to programmers. Pretending that they don't need to adapt is a delusion and denial of constant change. With or without AI.
Who’s going to write new code to train the model? Who’s going to figure out why the code generated by the model is slightly off?
The performance gains from chatgpt are going to be amazing from a quality of life perspective but overall not a huge change (except maybe in some niche roles). Programmers are not spending much of their time figuring out code that chatgpt can generate.
The question is not who, but how many people are required to write code to train model?
You are like a peasant arguing about security of their job in the beginning of 20th century after seeing a tractor. Sure there are farmers now, but much fewer of them is needed.
You are right, but it doesn’t fit worldview of your opponents, they are just too scared to think this thoughts.
To anyone who used Copilot and ChatGPT it is obvious that in 5 years demands for entry to software dev will be much higher, and there will be less positions open, because sheer productivity increases for the already employed people will outpace the demand. It’s like peasants arguing about security of their future prospects in the beginning of 20th century after seeing a tractor.
Winter is coming, but they just can’t believe this since their income directly depends on this not being true.
No one is hiring ditch diggers because someday they may grow to become backhoe operators. No one is hiring content farm writers who can be replaced by an AI with someone a bit more senior providing some basic supervision. And no one will hire junior developers when frameworks, AIs, etc. can replace 90% of what they can do.
I'll get scared when someone shows me an actual deployed, running, and maintained app by something like chatGPT. Solving problems with code snippets is a tiny part of the job
I'll get scared when a chat bot can log into JIRA, take a ticket, read the requirements, say "Hmm, there's not enough details in here and a couple things seem ambiguous or contradictory..." Then it schedules a meeting with the biz dev and a QA resource and they all hash out and improve the ticket. Then it goes and implements the code and puts it out for review, addresses any comments, works with QA to clarify how to test it (maybe that's another chat bot) and deploys it.
I'm regularly getting enquiries but I do DevOps (AWS, Kubernetes and Istio) so I guess my skillset is still in demand.
I guess what's more important for me is the type of work. I'm looking for startup work that's a bit more secure now, if that's possible, lol! Doesn't seem so easy to find.
Bunch of companies migrate their stack to Kubernetes or other orchestrators (side effect of moving to microservices even when not needed) so you are safe and in demand for long.
Anecdotal example, though I'm sure I'm not the only one:
We had a C++ service. It needed high availability, but didn't have super high resource requirements. Our setup was an ec2 instance (c5.xlarge) to build and release AMIs (a bash script using debootstrap to build the AMI which someone wrote 10 years ago probably), an autoscaling group of 3 t2.small instances spread across AZs, and an ALB.
The total cost of this was perhaps $200/mo, and we had incredibly good uptime.
So, what's the catch? Well, it took the service about 20 minutes to build, and about 35 minutes from clicking the "deploy new version" to it actually running. Someone higher up noticed, and a bright-eyed infra engineer said k8s would make the deploy cycle faster.
Fast forward a year. Our autoscaling group is now 3 c5.xlarge instances because the kubelet + docker + coredns + all this other k8s gunk I don't understand need significantly more CPU than our app does (and without giving them more CPU, deploy times were much slower since downloading and unpacking the image was so slow). We have a new logging system (our old logging setup wasn't cloud native apparently) that takes a gig more memory per node. A gig of memory per node to support our service, which peaks at 200MiB RSS. Building and deploying a new version still takes about 35 minutes because compiling C++ is the exact same speed in a dockerfile as it is on an ec2 instance.
It costs about $600/mo, and it has far more operational load. When it isn't having any issues, the p99 is identical.
> better performance or lesser costs
It seems like the opposite of what you'd expect. K8s is adding more components. It's adding more resource usage. Why wouldn't that be slower and cost more?
I interviewed for 1.5 months (!!!) for AWS for a senior position, went through all the stages through the end. Then silence. I kept emailing the recruiters responsible for my interview, I kept getting out-of-office replies. Then I contacted some higher ups I found, told me they assigned my interview to other recruiters. No replies from them though. I have emailed them a bunch of times including the higher up. Then the news about Amazon layoffs got out; I presume they all got fired?
What a gigantic waste of time. Tons of stress for 2-3 months for nothing.
since amazon has a policy to layoff the bottom 6% every year (numbers may be off), any good manager will be constantly looking for someone to hire into the bottom 6% role so they can keep their good people. Since they are not actually looking for someone who can do a good job they don't care if they treat you well.
I keep hearing this trope but this is very naive. A manager simply cannot keep hiring into bottom 6% role. All candidates are subject to the same type of interviews. Every interviewer has to give a "hire" decision for the new candidate. Then there is a bar-raiser interview in Amazon where the interviewer belongs to an unrelated team. They need to give a "hire" decision too. Unless all of this happens, a manager cannot simply hire a new candidate. There is no way a manager can simply hire into the bottom 6% role to keep their good people.
I saw this happen personally. I was in the interview loop along with the hiring manager, HM was not inclined but the bar raiser and other people on the loop, myself included, were inclined but as a downlevel (L7 -> L6). Candidate is hired, I start mentoring him, he gets dev-listed (aka Focus) within two months, is pushed out by month six. I can only assume the HM had an axe to grind against this candidate, and saw a H2F opportunity.
“I can only assume” is I think the key to this comment, however let’s explore some hypotheticals.
You are a Director; you have a 350 person organization; you’re leading a rapidly growing business (let’s say >40% YoY growth in revenue, not uncommon in parts of AWS); during the OP1 you secured incremental investment of 20% meaning you’ll grow to 420, which is +70 hires to make.
You’re goaled against a 6% URA meaning 21 people exit voluntarily after being entered to Focus, during Pivot, or involuntarily at the unsuccessful end of a Pivot.
If I spoke from experiences, I’d say the (vast) majority of your URA will likely come from the tenure group with < 18 months at Amazon, in effect, hiring decisions which didn’t work out and where, in debrief, everyone thought the person had potential to be a bar raising hire but in reality they were bottom quartile. In the debrief your clear options were “Hire at L7”, “Hire at L6”, “No Hire”, plus maybe some flavor of good fit for Amazon but not really for this specific role.
Let’s take the extreme of this and say all URA comes from just the +70 growth, 21 people would be a 30% failure rate.
In a less extreme and more likely scenario: it’s more like some fast failures occur from the +70, others are slightly slower and show up after 12-18 months (that would be the prior years growth). Tenured people with e.g. >4 years sometimes start to struggle for whatever reason.
That’s not all that unexpected, in my opinion! Even with a structured well-used interviewing mechanism you’re getting perhaps 6 hours of signal and during this time the applicants are naturally very focused on “putting the best foot forward”. After a hire decision you work with someone for 6 months or more and ask “Is this what I expected?”, and “If I could make the decision again based on the signal I now possess, would I still be strongly convicted and proceed to hire this person?”. When the answers to these questions are “No”, that’s often what commences the performance management processes.
Now, this explanation works for growth businesses, it’s less apparent how 6% URA makes sense in a flat growth organization, since you’d be finding those cuts from a mostly tenured and presumably mostly proven set of people.
1/ Managers particularly for SDE roles don’t usually have >10-12 people. In reality the URA (Unregretted Attrition) goal is mostly managed at the L8+ level where organization sizes are usually hundreds. Far more likely you have some underperformers in an overall organization of 300, even if an individual team is all awesome.
2/ Interviews at Amazon involve a Bar Raiser who almost certainly won’t work in the Hiring Managers span of control, and the debrief attempts to answer “Is this a bar raising hire?”, meaning is this applicant better than 50% of people in the role/level.
I can really only speak for AWS and Engineering roles, but I never saw any “Hire to Fire” behavior at Amazon, and most every Bar Raiser that I saw took the role seriously and was not a “rubber stamper”.
This is my experience, too. I've mostly stopped responding to comments where people talk about how bad Amazon is. I've never experienced the horror stories despite being here longer than the average tenure and working in three separate orgs.
Balls may have been dropped by some people, but I always have recruiters pinging me relentlessly the day after I've done an interview so they can get back to the candidate within 5 business days.
Highly unlikely you will get a severance pay as most company will only offer barely minimum required by law, which is is not much and definitely not worth the hassle. Also probation period makes things even worse for new starters as it can easily abused to dismiss a new employee for no good reason.
An interview with one of the largest, most important tech companies in the world. Everything about landing a job there makes you more valuable. You have the prestige of having worked at AWS, who are known for hiring only top talent. And you’ll have worked at a scale unrivaled outside of a handful of other large tech companies. I’ve heard nothing but terrible things about working at AWS, but if you can tolerate it for a while, I’m sure you’ll have gained a lot of valuable experience. The trouble, it seems, is getting out before AWS makes you completely miserable. /(Based on people I know who have worked there, and comments I’ve read around the internet. None of this is first-hand experience.)/
I am still curious about the other question, though.
I went through four interviews with (insert popular encrypted messaging solution) a while ago and got a verbal offer, then proceeded to be ghosted entirely, no more replies, from multiple people. Still don't know what happened.
How is this acceptable? So much wasted time, and not just for me. I basically interviewed the entire team I was supposed to be working with.
Here (Israel) it's illegal, you can reject a candidate for pretty much any (non discriminatory) reason but you have to tell them about it pretty promptly.
It's weird there are US states where it's not a requirement.
One practical problem is that there are a fair amount of people who are simply unstable, and if told why they were rejected (in very neutral to positive framing) they will actively challenge it and even go pseudo-stalker mode over it.
Dealing with just a handful of these guys is enough to do away with providing any sort of feedback. Like many things, a few bad apples ruin nice things for everybody.
Don't know and I am desperate enough to not care about salary at this point: I apply for jobs everywhere and the only times I have had a reply the last 6 months (except for AWS), I was offered positions with relocating to other countries.
This is seemed pretty standard practice now, small companies, big companies, recruiters, FAANG. Actually Amazon for me was the best - I deliberately followed up a week later and they actively apologized and provided some feedback.
Could it be a deliberate test for being persistent? "Candidate does not jump through hoops to follow up, if they are not sufficiently interested we aren't either"
Then on the other hand, nobody ever got promoted for being nice to rejects. If their processes select for ambition (and they sure do), nothing that does not promise promotion will ever get done and that should qualify as explanation three times over.
Well they didn't change their mind. :) I think providing feedback is work which also requires coordination from more than one people, so is easy to avoid.
When they interviewed me the first time, the interviewer didn't show to work, so they asked another guy to interview me, he ended interviewing me in a language he didn't knew, to a position using another language entirely, the whole thing was a farce.
Some years later Amazon recruiters contacted me, asked me to go interview in person. Then during the interview in their offices, they literally forgot me for several hours in a random room of the building, the employees left at the end of shift, and left me alone in the floor with nobody in it, and I had no idea where the exit was.
I really need a job and been applying to lots of companies, but I won't apply to Amazon again.
Oh yeah, I didn't mention everything, I had analogous experience. At the second interview video call the interviewer didn't show up, because the recruiter forgot to tell him about it. At the fifth video call with a different interviewer, he was an hour late because of the daylight savings change, again the recruiters' fault.
From being on various recruiting positions, I believe it's usually just incompetence or laziness.
Hiring tends to happen when there's not enough people. Only the people who can do the job are qualified to assess whether someone can do the job. So you have people who are already at double the workload having to take time to design and handle interviews and such.
And by the time you get everyone to sign off on hiring this guy at the extravagant tech salary, economic downturn forces you to fire a bunch of people. In a recession, the least useful people are probably HR.
I'll add to the Amazon interview complaints (early 2021 so remote). The recruiter prepped me ahead of time that I would have only 4 interviewers, and the next day they would be sending me an approval or some feedback. Having done interviews before I knew this was nonsense, and sure enough 2 or 3 days after my five calls, he called back genuinely surprised that there was no feedback. The interview itself was genuinely interesting but complicated by this team not having hired a frontend eng before.
Over a video call, the interviewer asked a coding question and immediately put on headphones and I am sure was listening to music. There was no dialogue and I had to use visual cues to get his attention.
I coded using C++ and pass by reference. He had never seen it in his life. He refused to believe modification on a reference would modify the value in the calling function!
I hoping he would be willing to discuss or run the code, this was a total let down.
Anyone you find in the real world under ~30 years old may not even be aware that you can pass a reference and modify it directly without having to make a method return a value.
It's super cool to have someone explain to you side effects yet you show them a method with a null return and run it for them showing that the value has changed and they are mesmerized.
Yes, I understand... But the result, practically speaking, is objects are passed by reference, just like I said. Methods/functions can modify their parameters.
It's been a while, but my understanding was that actual C++ references were immutable, and what you are describing can only happen as a result of passing a pointer by value.
Yeah, you cannot 'reassign' a reference. The compiler will yell at you if you try. You can definitely modify values of your referenced object though, that's fair game. When it comes to pointers you can do whatever the hell you want but be careful.
I don't believe they're saying the feature doesn't exist or never gets used, but rather it's rarely something that's taught to junior developers, and rarely something you see highlighted as a best practice.
I've been developing for 25+ years in any language you can imagine, and know how to use pass by ref just fine, and know there are situations where it might be the best solution.
But I can't remember the last time I've used pass by ref. It's really just a coding style quirk for me, I find it "ugly" and it breaks my train of thought when reasoning through the flow of code. I certainly don't begrudge anyone who uses it though.
And OP's anecdote about the interview is certainly disheartening. You'd hope the interviewer would at least be open to the idea of learning something new. I've learned countless things from developers I've interviewed over the years, and I was incredibly happy about it each time.
Edit: In re-reading your comment and below replies it seems you may be misunderstanding what's being discussed. Yes, the things we pass into and out of functions tend to be object references by default. But when we say "pass by ref" (in some languages at least) we mean, essentially, modifying a value in a calling function without actually returning anything from the called function. That's a horrible way to explain it, but the MS documents for the "ref" keyword do a good job of showing examples:
It's like the other day there was a post where someone wrote an entire blog post about how they changed a tight loop with a function call in Golang to pass a pointer to a struct instead of by-value so they stopped allocating and copying on each call.
Like...duh?
I suppose that's why I find Golang less weird to work with than others in my cohort. I spent a semester in the depths of C and OpenGL so I'm intimately familiar with by-value vs by-ref.
All those languages pass by value and it's kind of embarrassing that you mixed it up while criticizing someone else for not knowing it.
One necessary (but insufficient) test you can use to determine if your language has call by reference or call by value is whether you can implement a swap function. In the languages you list, a swap function is not possible to implement, whereas in C++ it is, which tells you that those languages do not implement pass by reference.
We are actually both wrong. If they passed objects by value you'd be modifying a copy. They technically "pass by object reference" as another poster mentioned.
ECMAScript's Language Specification also states in section 10.6 that it uses pass by value semantics, although it's much more formal about the specific approach it uses:
I can't link to the specific section but you can review the semantics of MakeArgGetter and MakeArgSetter which are specified to produce arguments bound to the *value* associated with the name, as opposed to a reference.
Python does not have a spec that I can reference, but given that its argument semantics follows those of Java, and once again the inability to write a swap function, it should not be too difficult to deduce that Python also passes by value.
I said they pass objects by reference, which is true. Technically, yes, Java is pass by value. However, objects are not passed by value. The value you are passing is a reference (pointer) to that object. If this were not the case, you would not be able to see modifications to method parameters reflected in the caller because you're modifying a copy. You are not modifying a copy.
I think you are deeply confused about this topic and should not be making judgements about other people. Instead of making an honest attempt to understand the difference between pass by value and pass by reference, you are trying to mince words to save face and even your attempt to mince words is incorrect.
While I likely can not convince you further that you are in error, especially since you're now trying to double down on this, for others reading this who have a genuine desire to understand this topic, please understand that Java, JavaScript and Python do not pass by reference, but instead pass by value and refrain from attempting to redefine technical terminology.
The references I cite are quite authoritative and unambiguous on this topic.
This is indeed correct. Object references themselves in Java/Python are passed by value, which is why the following two code samples do not have the same effect:
Python 3.8.10 (default, Jun 22 2022, 20:18:18)
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> def f(d):
... d['foo'] 'bar'}
...
>>> a = {}
>>> f(a)
>>> a
{'foo': 'bar'}
Python 3.8.10 (default, Jun 22 2022, 20:18:18)
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> def f(d):
... d = {'foo': 'bar'}
...
>>> a = {}
>>> f(a)
>>> a
{}
Passing a reference is semantically different from passing by reference (the latter being a functionality of the language); doing the former (behind the scenes) doesn't imply that the language supports the latter (if one wants to be rigorous, not even C supports pass by reference).
The canonical example is a function that swaps the variables passed to a function:
a, b = 10, 20
swap_fn(&a, &b)
a == 20 # true
Since the above are primitive data types (ints), in order to make this work, the language needs to generically support passing the address (reference) of the variables. Java¹/Python² etc. are not able to do this; they copy the value of the variable and send it to the function, which will operate on the copy.
¹=at least, last time I've checked, which was long ago :)
²=funny to think that at least in Python, one can mess with the global register of the variables, and actually accomplish that
Python 3.10.8 (main, Oct 13 2022, 09:48:40) [Clang 14.0.0 (clang-1400.0.29.102)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> def f(d):
... d['foo'] = 'bar'
...
>>> a = {}
>>> f(a)
>>> a
{'foo': 'bar'}
My understanding of what's going on with python is it passes by reference (hence what your code does), but if the data type is immutable any modification results in a new instance being created in the scope of the function, and the object passed in is not modified. Which mostly looks like pass-by-value behaviour.
I guess my understanding could be technically wrong in some way, but it seems to reflect what happens.
The issue is that Python passes references by value, so you cannot overwrite what the arguments of a function reference from the perspective of the caller. However, if you pass something like a dictionary or a class the function gets a copy of the reference and can use it to update the members of what was passed. Java operates on the same principle, although there may be some edge cases I'm not aware of where the two differ.
Perhaps I'm being simple minded, but the id of the passed object within the function is the same as the id of the object outside the function, no? My mental model is that an object's id in python is basically an address / pointer. So, how come it's the same inside the function as outside, if it's not pass by reference?
You're correct that the id is the same inside and outside the function, but when you modify the passed in argument the id changes because you're setting the value of the parameter, not what it's referencing. In C it'd be like changing the value of a pointer in a function instead of the value referenced by a pointer in a function.
Here's an example to include the id differences and the fact that a does not take on the value of d:
>>> def f(d):
... print(f"id: '{id(d)}'")
... d = {'foo': 'bar'}
... print(f"id: '{id(d)}'")
>>> a = {}
>>> a
{}
>>> id(a)
140362610196224
>>> f(a)
id: '140362610196224'
id: '140362610196160'
>>> a
{}
>>> id(a)
140362610196224
But, as I've posted elsewhere in this thread, this example will change the contents of 'd' since d itself is not being set, its contents are:
>>> def f(d):
... d['foo'] 'bar'}
...
>>> a = {}
>>> f(a)
>>> a
{'foo': 'bar'}
Until the second line of your function (in the first example), it's pass by reference, no? It stops behaving like pass-by-reference because you then reuse the name 'd' to create a new object, which has a different id and lives at a different address.
At least, this seems like a coherent mental model of what's happening, to me.
I'm not re-using the name 'd', I'm assigning to the already-existing parameter d. Which if d was indeed a reference would result in the variable passed to the function being changed.
That example actually holds with what the parent comment said. You aren't trying to modify d exactly, you're modifying d's contents.
Python 3.8.10 (default, Jun 22 2022, 20:18:18)
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more
information.
>>> def f(d):
... d = {'foo': 'bar'}
...
>>> a = {}
>>> f(a)
>>> a
{}
does not modify the passed in dictionary, because the reference 'd' itself is passed by value. So the function doesn't change what d references for the caller. Java works the same way.
I understand it is semantically different, but the interviewer should not be surprised you can change a variable in a function without returning it, which is the context of this thread. It's syntactic sugar for pointers.
I'm definitely nitpicking here, but I'd say almost all languages use pass-by-value, and what you're talking about is copying a pointer. C++ actually has true pass by reference, nothing is copied in memory.
In addition to pass by value and by reference, there's also a pass by descriptor mechanism. It's not widely supported, but it's just another way to glue different conventions for defining arrays in various languages, where it's not just a raw pointer to alloc'd memory.
At one interview, as a joke at the end, the set of interviewers asked me if I could write code to reverse a string. I replied, "In place, or...?" which apparently confused some of them.
This is false and ageist. I got a computer engineering degree at a non elite state school very recently and this was covered in the first c++ and c classes. For that matter c# has an “out” variable that mimics this functionality, and the intro Java class covered primitive types vs. reference types. While reference types in Java aren’t the exact same thing, they do allow a void function to modify the state of the caller by modifying a parameter passed to the function.
I doubt that you can make an absolute "this is false and ageist" statement in any context, but here on HN, I would have at least expected you to supply information on what location in the world and level of institutional schooling you have.
Here in north-west EU C and C++ haven't been a part of the core curriculum for over 25 years (unless you do embedded work), and code with side-effects in desktop-class systems has been frowned upon for nearly as long due to the need for more cookie-cutter engineers to fill positions and write code that might still be OOP but has to be almost as side-effect free as functional code.
Basic/core languages are still (last time I checked when doing guest lectures ~ 6mo ago) Java, C#, Python and the mixed bag that is web languages.
This is also influenced by the core program required to be an accredited institution and the large amount of consultancies people end up working at straight out of college/school/uni. This even still happens in infrastructure-centric programs where you do lean a bit about TCP/IP and OSI layers, but then essentially get dumped into Juniper/Cisco/vmware/microsoft school which almost always gets them vendor-locked and unaware of the actual concepts and abstractions they implement.
So no, not knowing the difference between passing references or values, or pointers and dereferencing them is not as strange as you seem to think it is. It is not a piece of knowledge or experience that is seen as valuable enough by the people that create the curriculum or the companies that employ the largest quantities of inexperienced workers in this part of the world.
The core project for my compilers course in Germany in 2016 was about writing a C compiler in C++. I didn't do my intro courses at that university, but the professor clearly assumed all the students were already familiar with the language.
A lot of people seem to underestimate the prevalence of C/C++. I've had people tell me that C/C++ is completely dead and the future is machine learning entirely written in Python, but the machine learning models they're using still usually have parts hand-tuned in C/C++, or even assembly.
There isn't even a compilers course here, unless you go for a science masters. This likely got shaped this way due to the lack of interest and a push from industry to deliver more 'ready to use' engineers.
I went to a small Wisconsin state school, grad with a BS in CS in 2009. We learned C, operating systems, and had a compiler class. Definitely not useful in my day job, but it was fundamental in my understanding of programming languages and computing. Can’t believe there would be a CS program out there that would skip this.
I do know there are programs out there that focus on different aspects though, and not surprised they would be geared to make people more job ready. We actually didn’t really learn about unit testing, and such, so it’s a balance.
I work at a fairly large Python shop and we have some real performance problems with Python.
Most real world software will use many core libraries implemented in C/C++ for doing the heavy lifting. Just the FFI and creating all those Python objects makes it slow.
Python is a great language for prototyping and/or usage as a glue code.
Personally, I am more inclined to use Go for anything quick and performant. If Carbon language becomes a reality, I would bet on that since it allows seamless interoperability with C++ (and there is a large existing eco system). Else, time to learn Rust.
My 2014 undergraduate degree from an engineering school on the east coast included two required tracks, one for data structures/algorithms taught in Java and a computer systemsey track that taught C, Linux, and some operating system essentials.
I think an operating systems course, or something approaching it, is a pretty standard piece of good CS curriculums in the US still from talking with other folks I've worked with. And I live/work very far from where I got my degree.
I'm a PM and I ended up graduating with an econ BA instead of a CS degree, but I took a few intro CS classes at UCLA in...2011/2012.
Intro to Programming 1 and 2 were taught in C++. Can't remember which one taught pass by reference, but it was definitely in one of those two.
Third class I took was Intro to Systems or something like that. The whole class was C and x86 ASM. Lots of binary operations in that one, used K&R a fair amount in that class (also learned debugging assembly in GDB and some other "low-level"-ish stuff).
Just looked it up, can't say 100% it's still C++, but the syllabus looks about the same as I remember for both class. It gets to pointers by week 7, and then in the second class goes deeper:
And again, I didn't even get a CS degree. This was all lower-div CS work at a public university, and I'm not even a career engineer.
> So no, not knowing the difference between passing references or values, or pointers and dereferencing them is not as strange as you seem to think it is. It is not a piece of knowledge or experience that is seen as valuable enough by the people that create the curriculum or the companies that employ the largest quantities of inexperienced workers in this part of the world.
This attitude is why you're getting flak in this thread. Your claim that "We don't teach pass by reference these days" was too absolute, and not accurate for a ton of people. Then someone came back and told you that, and you told them that their claim was too absolute.
I'll also say that it's something that was absolutely valued around the orgs I worked in at Microsoft (Azure, DevDiv, Windows, very roughly bottom half of the stack teams). If not C/C++ pointers, than __absolutely__ passing by reference in C#.
Point being: __knowing__ about pointers, passing by ref vs. value, etc. is not as strange as __you__ seem to think it is.
I never stated my own position on this piece of knowledge, so no, __I__ did not have anything to do with your point.
C and C++ (and Assembly and compilers) are not part of the standard college software engineering curriculum here. Your opinion on that doesn't matter (just like mine doesn't matter) because it is a verifiable fact. And as such, it is also not strange to not see this bit of knowledge being prevalent. K&R isn't used much except if you are either taking the purely theoretical CS degree courses or if you tack them on to the normal required courses. Even the Gang of Four is only mentioned in passing when talking about patterns.
You __could__ argue if this is foundational knowledge, and if so, you __could__ argue that therefore the curriculum is in need of adjustment. But I didn't.
Regarding what this was all about (WrtCdEvrydy's comment), he might be talking out of the wrong hole, or he might be in a similar location as I am where this is how it works and that might be different from where you are.
C# also has “ref” arguments. The difference is that out arguments are required to be assigned during the execution of the method while ref arguments don’t have to be set.
I don't think any of the languages you mentioned support true pass-by-reference. (maybe C# and Java, but it's not common) I've heard what you're describing as "pass-by-value-reference" Go, however, supports pass-by-reference which allows you to write a function like this:
func swap(x *int, y *int) {
var temp int
temp = *x /* save the value at address x */
*x = *y /* put y into x */
*y = temp /* put temp into y */
}
Sure, you can't have the same code for Python, for instance, even if it was using objects, but you can have the same effect using a hack by copying the __dict__ from one object to another. However, you are still passing the object to a function by reference because the function can mutate the object and the object that the callee passed will also be mutated the same way, i.e. mutable objects are passed by reference, and values are passed as values. Which is how python, javascript, Java and the rest work. Obviously, you don't get to change what the reference is pointing to in most of these languages, but you can change the value that is being pointed to.
Coding in C++ could be a double edged sword whilst interviewing. It's hard for some interviewers to admit that they don't know C++ and they might end up surreptitiously misgrading your work. It's best to ask the interviewer's opinion on C++ before chosing it. IMO, the safest bets would be to stick to Java or Python (even Python's a fairly hairy language these days).
I once shadowed an interview once, where this happened. I felt bad for the candidate, because I wasn't allowed to speak whilst shadowing the interview, and neither did I have to submit feedback; and the candidate clearly was coding well. Although, I did reach out to the recruiter about this. And I don't know what happened after that.
It’s useful to call back because if you did well but they picked someone else recruiters can often send you to some other interview with a different team. This common because a team will often say we want person X, but Y is also acceptable if X declines.
I came here to say this. You didn't fail. Its just not a good fit. maybe they are incompetent, and saving you heartache in the long run. Maybe they weren't able to extract your relevant experience. maybe you didn't share effectively. Just keep moving and good luck!
THIS! It's a company that's not keeping on top of things! Overworked managers, HR doesn't have a queue, whatever, but it is unlikely employees magically escape these issues.
Very similar experience. Checking on my application using the link they provide would still show "under consideration", but I knew after 2-3 weeks I wasn't going to get a call back. Someone finally got back to me after I emailed/called a few people I had dealt with along the way and they confirmed it.
Sounds familiar! Not to mention the interview itself being a never ending stream of “tell me about a time when…”
Eventually you’ll get a “No” along with a message that, per policy, they don’t provide feedback. And then you’ll get several emails insisting you send your feedback, because they really want to “improve the process”. *facepalm*
Unfortunately, despite assurances to the contrary, I was generally unimpressed with the quality of the people doing the interviewing. One of them was in his kitchen, while family members moved about behind him. Another didn’t share video, because reasons, making every silence while they made their notes that much more awkward. And another would spend 2+ minutes typing in silence until finally asking the next question, ruining any opportunity for flow or conversation.
Judging by Amazon’s recent growth (prior to the recent layoffs), I’m not sure anyone has had time for any engineering. They’ve all been stuck doing interview “loops”.
Is that a bad thing? A lot of real world problems don't have simple computational complexity. I'd learn more about someone from how they considered heuristic tradeoffs and assumptions that could produce a "good enough" solution to a tough problem than seeing if they could reproduce Dijkstra's algorithm from memory.
You can offer. Nothing about it being NP should prevent your implementing an exact solution, though. It'll be slow as balls on (at least) some inputs, and you should surface that, but maybe they only need something that works for N<5 or something.
That's different than it being undecidable, in which case you have to insist on providing something other than an exact algorithm that handles every input.
For the short story. A few years ago I was sitting a CS exam that was 3 hours of coding and then a defense where you explained what you have done on the board.
You had to compute a graph from a set of points (i think it was knn, not sure) and do stuff on it. At some point of the defense, this happened
Me: I skipped this question.
Examinator: why?
Me: If I compute it using the graph structure, it reduces to max-clique, which is np-complete. I looked for a solution using the point dara but didn't find it
Examinator: can you write an algorithm for max-clique on the board?
Me: here. This is exponential time
Examinator: it's worst case exponential time. But in this case it would have worked, you just had to try it
Me: urgh
Now I've learned my lesson: np-complete doesn't mean impossible
Last time I interviewed for Amazon, I couldn’t understand one of the interviewers spoken English. Combination of bad audio (their side, I have a good headset) and accent. I kept asking him to repeat himself and eventually gave up, and tried to guess at what he asked.
I usually defend Amazon (used to work there and enjoyed it) but the last interview cycle was really unimpressive.
I will never again interview for Amazon unless I am about to be evicted and they are the only one left in town. Interviewed for a senior dev role, went through all the rounds, took days off of work to be available, and after the final round they just ghosted me.
I had to follow up to find out they had chosen someone else.
The amount of time I put into those interviews was absurd, reading up on all their principles, coming up with stories from my career where I met their principles etc. To then get ghosted at the end was a real slap in the face.
It seems to be a mixed bag. Don't know folks there who are developers specifically but I know people who say they really like it (admittedly fairly senior) and I know people who couldn't wait to get out after a rather short period.
Wow lot of complains here. I've had a good experience interviewing with Amazon few months ago. Recuiter was supper supportive and following up constantly. The interview rounds were also relatively nice. The only thing was to prep for all those behavioral questions. Been working there for a few weeks and so far better than what I expected.
Exact same thing happened to me with Amazon. Spent a considerable amount of time interviewing with them for a manager position, then they simply ghosted with zero recruiter response for weeks on end. Finally they told me they ended up closing the position.
I tried to refer a friend to AWS and this happened to them as well. Twice.
Here's the thing though: you know all those horror stories you've heard about big tech companies and how they operate? Most of them are true, so if you actually care about the field then AWS is not the place for you. Especially if you're senior. Junior devs: you'll want to start here to build your rep and get a taste for awful at least.
EDIT: I should add that the ghosting of my friend was confirmed to be due to lay-off of the recruiters, so that's most likely the reason for the majority of the ghosting complaints here.
I feel like this should be a "Who's hiring" thread.
But anyway - we're always hiring if you're into small consulting companies. We mostly do AWS, Azure, and not a lot of GCP (sad because I like GCP), and it's almost 100% K8s. You will have to be able to get a CKA, CKAD, or CKS at some point. Need to be in the US.
I haven't interviewed myself and I've suffered working for a corporate that is hiring but also not hiring dealing with the same sort of bullshit "throw_aws_inter" is dealing with but from the other side (being told simultaneously we really need to hire + that we're on a hiring freeze and still hiring in practice).
I do however mentor a bunch of juniors (less than 2 years of experience) and the 3 that got laid off got a bunch of offers within a month. It took more interviews but my experience from the last few weeks is that there are still a lot more jobs than applicants.
Layoffs make news, but if you look at the numbers they are relatively small compared to all the hiring the last few years. We have gone from the best time ever in history to be in IT, to a great time to be in IT. There are a lot of jobs if you step outside big tech (and targeted jobs in big tech with certain skills).
Depending on how you view things, layoffs are only starting. Companies are taking a wait and see approach before taking everything off the table. Some are predicting 2023Q1 to be when it peaks.
Recession case: inflation depresses other spending, new home starts are decreasing, strong dollar, Chinese economy wobbly, EU economy weak, continued supply chain disruptions, PMI weaker, ad spending curtailed.
Soft landing case: Goldilocks scenario for USA employment; inflation has decreased; chip shortage over; few layoffs outside tech; airline, hospitality, defense, healthcare, energy sectors booming; China economy may strengthen with softened zero-covid policy.
ProTip: Absolutely nobody knows. There are indicators this way and that. The predominant point of view I see in the sensible press it that a global recession centered around China is likely for 2023, but the US will likely be more insulated than most. Things could much worse, but it's now considered unlikely with a soft landing looking pretty plausible. But really the data are increasingly hard to predict and looking ahead more than a month or two at a time is mostly guesswork.
That doesn’t matter to laid off people if most companies have a hiring freeze and there’s net reduction in tech workforce. It means most laid off people won’t get jobs until companies start growing again.
Wasn't laid off (end of contract) but spent ~3 months looking and interviewing for jobs.
Applied to about 30 positions, heard back from 3 and received 1 offer for Google. Didn't exactly give me confidence about the future when I may be looking for another job...
Dude. You got an offer from Google. How do you not have confidence for the future?! Google took you! Who cares what the places that didn’t take you think? *GOOGLE* thinks you’re good. That’s a hell of a statement.
But getting a job at Google tells you that your overall skillset was not the problem. You just didn’t match the other positions as well as some others for some reason. FAANG level jobs are always hard to get, always hyper-competitive. You’re obviously good enough to be there, so the worst case scenario is likely that you’d have to leave the prestige of FAANG and similar. You’ll be employable for as long as you want to be, I’m sure.
Google may pay well and look good to future employers, but the internet is littered with stories about Google's weird promotion-driven-development culture and the stress/disappointment it can cause.
I genuinely wish GP the best but it's not a company I would want to work for if I had another option.
If I ended up at Google I'd probably keep my head way down, only showing up and getting the work done because everything about it seems like a toxic work environment these days.
But I can't help but think it's worth leveraging an offer like that, if not only as a favor to your future self. Go in planning to work for like a year, near the end start looking for a jobs and I have a feeling there will be a ton of companies drooling at someone wanting to leave Google for them.
Agreed. I got offered an interview at Google years ago and passed on it hard. On the one hand I feel like I should regret the money they I may have made, but honestly I regret nothing... Sometimes the fit matters more than the money and I would've hated my life there.
Blind is filled with posts talking about Google culture turning toxic. Googles stock has performed quite badly with the downturn, and the heat is being turned up on the workers.
Compare it to place like Salesforce or Oracle or Intel or IBM. Salesforce and Oracle may actually beat the google offer too since Google is low balling a lot these days.
Based on a small sample set. Seems like hiring is picking up. Most tech companies are still at higher valuation then pre pandemic times. They were profitable and hiring.
Bold statement: Tech will pick up first. And companies who are making noise based on Elon's move at Twitter will strave for good workers and die
Tech hasn't slowed down. High-burn SV companies are slowing down and large SV companies seem to be cutting cost. Small, normal companies haven't been able to fill positions for ages though, so they might finally be able to catch some fish now. Not great for the salaries of those used to FAANG and high burn salaries, but nobody should have to worry about having a job.
I'm sure most devs will be fine, as illustrated by some of the replies, it's the purple haired product managers and head of diversity staff I feel sorry for /s
Didn't get laid off but resigned around a month ago after a long stretch of non-stop work since I was basically a kid (worked through college, university, and straight after O_o). Basically for a little break and to focus on doing some real intense OSS. Been a wild, challenging, and rewarding 1.5 months so far. Applied to a couple places that were working on some interesting things, some even related to my own OSS, reached out by AWS but I wasn't willing to relocate to Sweden so I broke that off. I did my first "leetcode interview" a few weeks back and did quite well I think for someone who A) has only done around 5 leetcode problems for fun ~5 years ago, B) comes from a Physics, not CS background, C) is a quick learner and solver, not rote-learning BFS and DFS kind of guy.
7 YOE in web dev, full-stack.
Leaving this here if anyone has any remote work for me :)
EDIT: For anyone accessing my site, I apologize in advance for slowness or crashes, it's hosted in my residence on a puny server sitting behind me :( I've been meaning to cloud it for a while now but I kind of like the DIY of it all.
Similar to you, I left my job about a year ago after working non-stop for 25 years (worked through college, software development, architect, director, eventually C-level, all at the same small company). My break was to focus on spending time with my children. It has been very rewarding. Initially, I thought I would take 6 months off and then get back into an IC role, but after a year, I am in no rush. I have played the interview game with a few companies in the last few months, but so far have not found an inspiring place yet. There still seem to be plenty of opportunities with small companies out there.
When I left a year ago, I thought that it was likely that the industry would start to slow down within those 6 months. I have been watching everything happen with mild curiosity. I am fortunate that my wife has a healthy career, so looking for any work has been low-stress.
Thank you for sharing. You are certainly at a different point in your life and career (I am but only a humble developer), however it was very nice to read your story about spending more time with your children.
I share that feeling of observing the industry. I think that some of the recent sentiments are a bit overblown about the tech industry. Some seem to think that it's all going to blow up because a few thousand FAANG rest-n-vesters got let go. (side-note: I know that not all who got made redundant were of that type, just adding flare!)
Hi and thank you. The more I think about it, the more I find it kind of nuts that I worked non-stop for ~10 years of my formative life all the while completing a Physics degree without taking a little break apart from annual leave here and there.
I primarily write Elixir these days. At first I was worried that there wouldn't be a lot of Elixir jobs, but the ones I did apply to have mostly gotten back to me and I've been interviewing. I have 5 years of experience with the language, FWIW.
I'm compiling a list of companies confirmed to be using elixir (not just suggesting it as a language in the description), dm me if you'd care to share lists
Have not been laid off and I am not living in the bay area, but in Germany. Still wanted to offer some perspective.
~15 years fullstack and DevOps experience, visited top local university, no degree. Mostly Python + some other languages. Have been interviewing for Lead SE/DevOps/SRE roles as well as some architecture positions.
My findings about the German job market for developers:
- Remote-work is here to stay. Almost all companies are okay with full-remote, those who are not, want ~2 days in the office per week.
- Companies are starting to do leetcode-style interviews. Sometimes some FizzBuzz level to check basic understanding, going up to harder problems unrelated to the position. Unless they are very hard, you will just get used to that.
- Remote or hybrid meetings with multiple participants are horrible for interviewing. The delay makes you come across slow and is very distracting, when you need to look sharp.
- If you want to earn money in Germany, you have to join a bigger company.
- Bigger companies do their development in Java with a minority being MS shops. Python is for data science and DevOps.
- The missing degree is mostly not a problem. Sometimes the CTO's PHD makes it one.
- Landing lead/lower management roles seems to be difficult if you have limited experience leading people. Those seem to be mostly staffed internally.
- The market value for a profile like mine in a big German city seems to be around 100k € including some small bonus.
- There are many offers under that number. I think I would get hired almost instantly if I would accept offers for 80k €.
- All-in all IT does not seem affected by the downturn yet.
While these numbers are not directly comparable to the US (lower cost of living, better social security, health-insurance included and not tied to your job etc.) my subjective feeling is, that I am getting taken advantage of here. Salaries seem to be too low. You are often getting low-balled because "it would not fit within the salaries of the other team members".
For the time being, freelancing is the way to go in Germany, even though you are fighting against regulations.
Gross. Net depends on various factors (kids, spouse etc) so isn’t usually used for comparison. Personally I‘m living in Austria, where things are quite similar - I‘d say 100k gross should work out to 55k net for a freelancer. That’s after having paid for a deductible company car and hardware etc, so, again, hard to compare to others.
It is gross, but very hard to compare, because it does not include your employer having to pay halfes on social securities. Actual gross would be something like 120k, but with obligatory expenses, you cannot opt out of.
Net would be something like 55k if you are single, but you already paid into a mandatory retirement plan and you, your kids (and laughably also your partner) are health insured.
Gross... and about the 1/2 goes away. Like 45%.
Also depending on where you come from, you can be shock by the 19% VAT on almost everything. While food is cheap, some other things are more expensive (tech stuff).
The gov. has good health service, and also education. But the education system has some interesting limitations, that may surprise you.
I'll say again. Please stop spreading this nonsense information around the thread. Either you're very much misinformed or motivated by something else. Just stop.
>salaries seem to be too low. You are often getting low-balled because "it would not fit within the salaries of the other team members".
Preach it! CoL in German cities is far too high for how low skilled dev wages are. 100k at 15 years work experience is an insult when you look at Munich/Berlin house prices and that new grads can get 60k.
And DW posted a YouTube video yesterday about how Germany has a shortage of software developers and they need to actively recruit from India and Pakistan. [1]
More like a shortage of desperate people willing to be low balled and a shortage of companies paying good wages.
Companies in Germany need to start paying ICs more and stop complaining about shortage of workers. Simple.
Sure, we are getting into semantics now. 15 years experience could mean knowing how to lead and bring up a team and product form scratch or it could also mean 15x 1 year experience if that person was constantly switching stacks/companies.
It's why we should compare salaries for positions rather than YoE.
> 15 years of experience might also mean they are excellent at PHP+jQuery but have never heard of Rails+React ;)
Not in this case. It is 15 years of proper software engineering and devops experience, for times in leading positions with additional responsibilities.
First, 100k EUR is _before_ tax which I believe you might be confusing here. After tax you get maybe 50-ish % of that so you end up with something like 50k EUR per year. In no European country that would be enough to "buy the house" and even more so in Germany.
Secondly, I'm genuinely interested in your thoughts here. What if you:
* Lived in the EU
* Being salaried 100k EUR (which is probably around 90th percentile)
* Worked for a _global_ company with a _global_ product deployed on a _global_ market with _global_ competition
And now some of your colleagues are from the US and you:
* have the same responsibilities as they do
* have the same skill-set needed for given position as they do
* have the same impact, or potential for it thereof, as they do
* have to go through the same agony of being and staying among top performers
And yet your US colleagues are salaried 2x-3x as much as you are. Without taking RSUs into a picture because that's a very rare thing to have in European companies.
What are your thoughts about this? Do you attribute this difference solely to the cost of living?
The offer I linked to was literally a "buy the house with monthly installments and no upfront payment" offer. So yes, you can "buy the house" if you can afford those 1900€ per month in addition to food and heating.
Also, with 2 kids and 2 adults out of which only 1 is working, you'll get heavy tax deductions, so I'd expect an effective tax rate of around 15%. That 100k€ gross will turn into 85k€ after taxes. Deduct another 10k€ annually for top-tier health insurance for everyone, 1900€ per month = 23k€ annually for the house and that leaves you with about 4300€ each month to spend on food, clothing and heating.
This might be just me, but I think if you pay people so that they can have a very nice lifestyle where they live, that's a "good salary". If the absolute $ number is higher in San Francisco than it is in Germany, then you either need to pay them more to match the lifestyle, or maybe hire in cheaper markets.
Germany in general seems to be very remote friendly. Many larger companies even have programs where you can go on a work-vacation to a tourist resort and they'll organize a co-working space and necessary permits. I guess that's why you see salaries equalize more throughout Germany while in the US the regional differences are quite strong.
> so I'd expect an effective tax rate of around 15%. That 100k€ gross will turn into 85k€ after taxes.
Your calculus is far far from reality so your further reasoning is therefore flawed from the very start. 4-4.5k EUR is probably more realistic.
Moreover, property prices around EU are generally speaking anywhere from 3k EUR to 15k EUR per sqm. For a 100sqm home that's 300k EUR for the cheapest one, 700-800k EUR as a median and more expensive ones over a 1M EUR. Even with the 90-th percentile salary such as 4k EUR per month (after tax), how exactly do you envision buying a home with that sort of prices?
Software engineers are being grossly underpaid in Europe and all this recurring bullshit around housing prices, living costs etc. is just a bullshit that capitalist companies will spread to convince people such as yourself to start considering your colleagues as a "threat" and not just human beings who want to be paid what they are deserved.
My purchasing power, even with the 90-th percentile salary in EU, is _nowhere_ near the purchasing power I'd have with the same skills I have if I had lived in the US and that's where all the discussion can stop. If we take some of the other European countries as an example that gap is going to be even much larger. Purchasing power coefficients are a real thing you know.
https://www.steuerklassen.com/kinderfreibetrag/rechner/ with 100k€ income and 2 Kinderfreibetrag and no further deductions comes out at 18k€ taxes which is 18%. So to reach the 15% I predicted you only need 3k€ in additional deductible expenses like trash, cleaning, gardening, daycare, etc.
Dude(?), you’re seriously mixing things up. It’s not Switzerland and there are no 18% taxes in Germany. Stop spreading all this nonsense. Calculation for Bavaria with 2 kids, 100k and Steuerklasse 3. Every month:
Brutto. 8.333,33 €
Netto 5.581,90 €
There is shitton mandatory insurances and payments. Income tax alone does not really matter. Rundfunkgebühr is very real tax and can’t be avoided.
Edit: sorry, I am rude. But downplaying all the so called insurances, that must be paid from salary is not nice. They must be paid in full and can’t be avoided. I would love to decide about my retirement by myself instead of funding current retirees.
Please, stop spreading the nonsense and incorrect information. It's not anywhere near what you state and if it had been that way, we would have a tax oasis in EU which we clearly don't.
I don't think that is how it works. In the ad the Kaltmiete is €1900, which is simply the rent without utilities. It does not mean that a. you are eligible to buy that property b. the buy-to-rent price will be the same.
And even if it was, the legal costs alone add up to a few tens of thousands of EUR for a property like this (eg. if the property is worth €500k, you are looking at at least in the order of €50k of legal costs and taxes...). But I don't know of any bank that would lend you 100% of the price of the property you want to buy, if you do please introduce me to them...
If it really was so easy, everyone would be buying these properties. But the upfront costs are simply prohibitive.
Every lender (Wüstenrot, Interhyp and Sparkasse) were ok with 100% lending as long as I was able to bring in my own 10% for legal/buying procedure. Of course it was during cheap money phase. Now it might be different. I also wouldn’t buy a house from last century anymore with current insane gas and electricity prices. And this makes things complicated since new buildings are very rare.
Oh... that about "we have too few SW devs"... I've been hearing that for decades (literally) also about medical personell... Truth is, they just do not pay enough!!!
As you say, 100k would be just fine for 5 to 10 years in some small city... but Munich, Berlin, Hamburg... you have to talk 140k for 15 years real experience.
Actually I had more that one offer for 140k. For example from Magna. But yes, it is not easy. And I have 20+ years of experience.
Note, I do not say they actually pay that, but what they should pay, if they want to find the people.
100k€ for 15 years of experience seems about right for me. If you factor in all the freebies and tax refunds and stuff, that's roughly equivalent to earning 1000€ per billable day as a German freelancer, or the equivalent of about $150 per hour in the US.
Typical freebies in Germany include:
- 13th salary as a Christmas gift (so +8.3% salary)
- only half of your health insurance costs are included in the nominal salary
- tax refunds if you buy a PC, do courses, or drive to work with your car
- company pays for children's daycare
- government-backed retirement fund with generous payouts. If you pay in 83€ per month now you can expect to receive at least €450 per month later.
Also, with a bit of searching, you can rent a house with garden for €2000 per month even in large cities like Hamburg or Berlin. As a result, an 100k€ annual salary will be enough for you alone to comfortably bankroll a family of 5 - something that's almost impossible in the bay area due to high rents and insane costs of living.
> - 13th salary as a Christmas gift (so +8.3% salary)
My 100k number is all-in.
> Also, with a bit of searching, you can rent a house with garden for €2000 per month even in large cities like Hamburg or Berlin. As a result, an 100k€ annual salary will be enough for you alone to comfortably bankroll a family of 5 - something that's almost impossible in the bay area due to high rents and insane costs of living.
That is true. But you have to say goodbye to any romantic dreams about owning any property big enough for children (within a nice area of such a city), if you and a similiarly well-doing partner do not want to work for it for the rest of your life. If you have not come across FIRE, that might be okay as well.
Yes of course. A 100k€ annual salary won't let you retire early if you are the only one working in your family and you want to buy a nice house in a nice area of the city.
But then again, would that work out if you were to work in San Francisco for $200k annually?
Think about it this way: I am in the top earning 2%. It is only possible to buy such a home if you have a partner, who makes similiar numbers and then together decide to dedicate your life to it. The 98% of the rest cannot do it. Ergo I am either not earning enough or we have to accept, that you cannot really buy property within a top-tier city in Germany. In the end the whole debate turns into young vs. old and heritage vs. salary.
Wait! the Christmas/Vacation "extras" are already factored in the 100k.
The tax refunds may seem a big thing, but are actually not that much.
Company not always pay for children daycare. You have to make sure it is, and even when they would pay, sometimes you just do not find a place that accept the kid, because there is lack of places in many cities.
About the retirement... I would be careful about big expectations. Everything is based in constant growth of the german economy. Any public retirement is basically a Ponzi scheme (not my words! but from a Nobel Economy laureate)
Also one very important thing about cost of living: Hamburg and Munich, for example, the cost of living means that doing 20k more per year, as compared with say, Stuttgart, at the end you get the same... or the way around, 100k in Stuttgart is like 120k in Munich. You really have to factor that into the equation.
13th salary?.. It’s actually Austrian thing being taxed less in Austria. Never had this in my dozen jobs in Germany. Xmas bonus yes.
Health insurance is expensive and low quality. One must pay for all modern treatments despite being insured. Or have another expensive additional insurance. Cancer will be treated for free, that’s right.
Tax refund is a bad joke. Spending 5000€ to get cents back. 50% taxes and mandatory insurance plus 19% value added tax (food less, fuel with additional taxes). So 2/3 earned go to the government. Nice!
No company from dozen paid for childcare. I know, that it might happen, but it’s rare. Some companies have on-site kindergartens. But well… the waitlist is long unless you are important manager.
Government retirement will be about enough to live in extreme poverty trying to save every cent.
Just got intrigued and opened immobilienscout24. No houses for 2000€ in Hamburg and Berlin for a family of 5. Rather old Reihenmittelhaus for 2500€ with current electricity and heating prices.
There is nothing comfortable about 100k€ annually. Especially for a family of five. It’s like 4500€ after taxes every month paying 2500€ rent and living from 2000€. Belarus freelancers also make this and have really comfy lifestyles.
Edit: with 3 kids it’s closer to 5000€ after taxes. Still does not provide any luxury.
The only thing on here that is in any way better than what I get in the U.S. would be the free daycare.
Everything else is worse than what I earn as a fully remote employee, who could choose to live in any number of second or third tier American cities that are nearly as cheap as Berlin.
It's pretty hard for a software engineer to get bankrupted by the US healthcare system. As long as you maintain your insurance coverage, your biggest worry is the annual "out of pocket maximum", which is the most you can pay in a year, and is usually very low end of 5 digits. There are gotchas with this with uncovered services (i.e., rescue helicopters) but in general, this whole bankruptcy concept is overblown, especially in our privileged market segment.
"maintain your insurance coverage" sounds like a pretty difficult thing to do for a hypothetical software engineer who just got fired because of burnout.
In this industry severance is common, which often includes some amount of continuation of coverage. You are then usually eligible for COBRA, a law that lets you continue your current policy for 18 months self-funded (often expensive). You have 60 days to elect COBRA, so if you find another job or gain other coverage before needing care you can sometimes avoid paying for it.
You can get your own coverage on the Affordable Care Act exchanges. It's not necessarily a great deal, but again, it's about keeping that out of pocket limit as a safety net.
In all likelihood the burned out hypothetical software engineer is going to recover and find work with employer funded healthcare coverage again.
You have an easier time earning money in a high-cost area and are then able to move to a lower-cost area when you are retiring. I on the other hand, can not do the opposite. Additionally, while we Europeans like to make ourself feel better through the "US health insurance bad" meme, there are some US regulations, that make the difference even greater (e.g. there is no such thing as a 401k in Germany).
> Landing lead/lower management roles seems to be difficult if you have limited experience leading people. Those seem to be mostly staffed internally.
Because at most places lead/lower management is another word for yes men that have proven their blind loyalty to the CTO, usually for 2 or 3 years. They don't wanna hire a manager who may question the status quo, especially when it comes to architecture and best practices.
> The market value for a profile like mine in a big German city seems to be around 100k € including some small bonus.
That sounds low to me and attainable in Europe if you have 5+ YoE at the right places. It sounds to me like you are being lowballed. I'm getting similar offers with way less experience.
Specially in Germany middle management is all about contacts (they call it "B-Vitamin" because of the german word for "relationship" starts with "B") who do you know and who knows you is the most important thing...
Technical background is relegated to a second plane (to say the least) because you are "not supposed to solve the problems, but to manage the people who actually solve the problems".
> That sounds low to me and attainable in Europe if you have 5+ YoE at the right places. It sounds to me like you are being lowballed. I'm getting similar offers with way less experience.
Where you at?
In the Netherlands getting anything over €70k is incredibly hard. There are very few companies offering close to that and those are often for architecture roles. Lead dev is usually €60-70k, with some €70-80k exceptions, but those usually require ~10 years focused experience.
Interestingly, over here the freelance market is much better. Those will easily get you €100-150k gross and are often quite long term. And even with €100k, combined with all the tax benefits it's very much worth it.
My country is lower income than the Netherlands and Germany. 70k is upper management money here and a bit more than what I make.
I have talked to some companies in Ireland and the UK in the last few months, and their ranges usually start at 80/90k. The most famous example is probably Google. Entry level (L3) is 100k-ish and L4 starts at ~120k. Even if OP was placed at a below average level for someone with 15 YoE, they should be getting 150k+ offers.
Do you have any advice for freelancing in Germany?
I’ll be moving to Berlin in January, aber ich spreche nur Englisch und ich lerne Deutsch. Ich habe die EU-Staatsbürgerschaft und meine Frau kommt aus Berlin.
I am a senior front end dev who has experience leading teams
I just hate being “employed”. All of the politics and incompetence in other people’s businesses reminds me too much of the Russian communist party. Every large capitalist company ends up like a low-stakes episode of the Netflix series Chernobyl. Perhaps I’m just grumpy but that’s who I am. I’d much rather just code some stuff and get out before I start having to “assassinate” my managers. If I could find a place that allowed workers to vote out managers then maybe I’d be happy, but until then I’ll just come and go. Like politicians, managers are only as good as your ability to fire them. You’ll love my code, your customers will be happy. Let me go before I make you cry.
former freelancer here (writing, not coding), but I would not do it again, the stress around taxes, insurance etc alone is not worth it (at least for me). Plus, you probably won't be leading teams but be more of a workbench.
However, if you don't want to be tied down, something like "Elternzeitvertretung" (aka jumping in for people on paternity/maternity leave) might be interesting for you.
Welcome :). Berlin in January is tough, even for German standards.
1. Just get a tax advisor who is fine speaking English with you. Just let him do everything in the beginning. Afterwards you can do more of that yourself. Try to be classified as Freiberuflich, not Gewerbetreibender. It helps if you have an engineering degree, but he can help you with that.
2. Do at least two gigs per year (Scheinselbstständigkeit).
3. Use HAYS and others to start it of.
4. Continue to learn German. Maybe do some German interview training or something to get in. There are teams working in English, but you will have an easier time overall.
Some advice (some of it obvious if you've dont it before and not specific for Germany but maybe it's useful):
Have a profile on Linkedin and Xing, upload to sites like freelance.de and maybe to a bunch of agencies. Be ready to send a profile, listing as many projects as possible, i.e. different roles in a company could be separate projects. Make sure all relevant search terms (languages, frameworks, tools) appear for each project even if repetitive. English-only is ok in many places, German-speaking projects can be a little better though.
It's all through intermediaries, which means you can (and should) negotiate rates hard without worrying about burning bridges. No call with a recruiter that didn't go pleasantly ever led to anything so if it feels weird just hang up. Expect to be placed 3-6 months min, 2 years max in a project. Research a little on "Scheinselbständigkeit" but it's not a huge issue these days. If you want 100% remote it should be possible.
Be sure to look into how you will handle Health Insurance.
You are required to have Health Insurance if you live in Germany, and for freelancers it is quite expensive(it will probably cost more per month than apartment rent). This can be a dealbreaker for people with limited financial resources who need some time to get their business off the ground.
You’re being ripped off. I’m paying guys in various parts of Europe well more than this with probably less experience. European software developers are grossly underpaid across the board but 100k is very low.
I’m paying around 120-130k in Amsterdam which has a similar CoL to Berlin.
Can I ask if you know how average costs in Scandinavia hold up to that? Working in Norway atm making ~90k€ equivalent after some time, but I took the paycut from the US because of quality of life/healthcare/state pension, etc. Still, it’s a very good salary here, I’m in the top few % of all Norwegians.
But it was a huge paycut. I’m definitely happier than I was in the US but I have been considering moving a bit further south. Bumping up to 120k and getting more sunshine would be very nice.
I’m not sure about Norway but Sweden/Stockholm is in the same class as Berlin, Amsterdam, etc. I feel like Norway would be higher but I’m not certain.
Premium areas are London and Paris. But even these salaries are closer to a middle rate USA city.
Super-premium (on par with more expensive USA salaries like SF or NYC) is Switzerland. Very expensive to hire there and easily the highest salaries in Europe in my experience.
This is just based on a CoL ratings at a single place.
I think Sweden might be worse in all of Europe though. 90k€ is unheard of here for developers, unless you are managing a team or a middle manager or something. Well ok, maybe its a thing in Stockholm actually. Living in a slightly smaller city, now way Jose.
I am applying currently, don't know how that will turn out, but he manager even said that Swedish developers are cheaper for the company than people from Germany, Switzerland and I think even Poland was getting bigger wages.
10-20 years of experience in software engineering means around net €30k in Sweden, even in Stockholm. Tax and social security fees are the highest you will find, which means the cost of this might be around €70k-90k to the employer.
That’s how I justify it here at least. I mean, I make 500.000kr less than I did in the US, but 900k also puts me in the top 5% of all earners in Norway. So I have a very good quality of life.
The middle class is so compressed here that it’s a super cozy income, and I will never have to worry about anything financially or healthcare related for the rest of my life.
I just have moments of «I want more», which is when I get anxiety and look elsewhere. But honestly not sure I need it in any real way.
Company I'm referring to would fit the profile of a small/mid-cap publicly traded company. Compensation in any company of this size or larger is based on industry information. In essence, companies share their compensation via surveys and can then subscribe to a database which lists ranges for certain levels and roles and regions.
Companies tend to have a ladder and different paths/comp levels for managers and individual contributors. Different regions are then sliced into different levels and what you're left with is location, a role, and a level. These are combined to create a salary band which is the range an employee that fits into the profile.
It's important to note, it's a salary band. This means an individual can have a fairly wide range of total compensation across this band. Also, some companies are biased towards salary or stock options/RSUs. But generally, an employee will have a lower "comp-ratio" meaning they are under the middle of the band. This leaves room for raises, etc. At some point an employee will be at the top of their band. They are either promoted into a higher level, kept at their current level but only given CoL increases (bands tend to increase ~3% each year), or fired.
The company can decide how competitive they want to be in each region or choose to not hire in a region because it is too expensive to be competitive there.
Sure I understand, but I was specifically asking about an example name since I know quite w bit of people around Hague/Amsterdam/Rotterdam and noone besides freelancers really goes above 70-90k eur/y from my experience. Hence my interest in who actually offers rates this high.
Not to mention the 42% paid in taxes every year, assuming the €100k is gross, not net. €58,000 seems like a low take-home, even with all the caveats you gave.
You can get way more than 100k if you’re applying to tier 1 and tier 2 companies in Berlin. I’m at around 160k (6 yoe); but I agree with you, we are getting paid less for the same work as our American coworkers
It is not saturated. Not many companies laid people off in tech. They were just big names with bigger numbers but there are a lot of jobs. Yes, if you are only looking a MANGA-like companies sure. But there are a lot of jobs out there.
Not laid off, but webdev I've been applying about a year. About the past 3-4 months have been harder to land interviews than early on, even if I write sample code in company's stack/language and contact them. Have an online portfolio and contract work experience.
I got laid off last week. I have had ~40 linkedin messages so far. Turned that into ~10 initial calls. I am waiting to hear from ~7 hiring managers. I hope to have a job offer signed in the next month.
Job search has been going pretty bad. Only a few screen out rejections and a handful of obnoxious crap recruiters have contacted me. No interviews yet.
The last time around was in 2020. It seemed like it took forever to get any response. Even when I was able to get through the interview process, it just stalled and I didn't hear back at all. I thought I was being ghosted.
I finally took an offer in late January. By March I'd had no fewer than five companies come back with written offers out of the blue, long after I'd forgotten about them.
Got laid off in June, was contacted with a lot of different opportutities but most of them were start-ups with no revenue. I joined a start-up which has been a horrible experience(Toxic culture) and I'm back looking for a new job again.
I think I had something like 3-4 offers rescinded and a couple of interviews where I reached the final stage just to be informed that the company halted hiring.
I've been really lucky with my startup experience so far. The two I've worked for have both had really great, though different, environments. My most recent startup was 4 to 5 people and it was absolutely fantastic.
It's quite bad atm. Senior C++ engineer specializing in system-level programming, worked across several challenging domains including database internals for the last several years. 10+ years of experience.
Applied to around 25 jobs. Ghosted by 15 of them. Out of the 10 remaining, 3 of them are limited in terms of remote - to be considered you have to reside within certain countries.
From the remaining 7 I only got the interview round with 1 of them. Did not get an offer because I was not strong enough candidate despite successfully going through 5 interview rounds. Whole process was very slow and lasted for about 1.5 month, with not getting the feedback something like 2-3 weeks after the last round. All in all very weird experience and unexpected outcome with no strong arguments.
From the remaining 6 I did not even get an invite to an interview but a direct decline.
Getting the (systems programming related) remote job while located in Europe seems like an impossible task to me right now.
> Did not get an offer because I was not strong enough candidate
I was laid off last year and went to interview at an adjacent employer. They had a bunch of employees (not only engineers) hired from the company that was laying me off. One of which had previously walked out the door with a bunch of code to form their own startup; they were hired as a staff engineer. That employee frequently reached out to me for advice and guidance on writing the piece of code that they made off with.
I flunked their cargo-culting hiring process hard. I knew I should have walked out of the interview the minute they put fucking Leetcode in front of me, but didn't.
Moral of the story: your interview success has little to do with your experience and aptitude as an engineer. Here's a list of shops where you might find more success: https://github.com/poteto/hiring-without-whiteboards
I know a guy that left one FAANG recently which was laying off people, interviewed at two other FAANGs, got offers for senior remote roles for over $600k, accepted both and is now working two jobs at the same time. Given he was doing the previous FAANG together with a tough grad school, I think he'll be fine.
If we assume they started both on the same date, then they wouldn't have had to lie or mislead prior to that point.
Then the question is only whether it's legal (contractually) to be employed by more than one employer at a time. But to that... would it be legal for a company to own every waking hour rather than just your employed hours?
I've not seen anything that says someone has to be exclusively hired, but they would need to be able to fully do their job for their employed time and surely that's all that matters.
I'm in the top 25% compensation for senior SWEs in my area, according to levels.fyi, and I only have 5 YOE, so I guess so. I don't know that either me or them feel like that provision is the driver of this, but if it weren't a great offer I'd probably fight harder.
If it's in your contract where you promise not to work for anyone else without telling your employer, yes, it's illegal because breach of contract is illegal. But it's not illegal in its own right. However I doubt that they didn't make him sign a contract to the contrary so he's probably double dipping.
Contracts don't determine what is legal and not legal. If the said person is found out then they would be in breach of contract and could be fired or sued. They would not earn themselves a criminal record.
They could earn themselves a criminal charge if the court decides what they're doing is fraud which it likely is if they have signed something saying they wouldn't work elsewhere simultaneously.
that's not enough to show injury. If an employee does all their assigned work, there is nothing of value lost by the employer. No injury means no standing means no fraud.
Well, you aren't supposed to destroy the fabric of society! /s
How do you think society would work if there was no restriction on the size of the group that is allowed to break the laws for their own benefit?! Imagine the horror if all plebs were allowed to do that! Could everyone live in Monaco or what?
But that ignores my point; you said something, I said what you said isn't true, so when you restate what you already said without adding anything, you're not improving your position.
I believe you. People that doubt these things are usually projecting some kind of insecurity. "It's impossible!"... no actually, not only is it possible but it happens all the time and yes it happens with FAANG workers too.
It's funny, when this topic comes up, the people that are juggling multiple jobs are usually stuck in this weird place where they want to convince people it's true but at the same time not draw too much attention to it (for obvious reasons).
> People that doubt these things are usually projecting some kind of insecurity. "It's impossible!"... no actually, not only is it possible but it happens all the time and yes it happens with FAANG workers too.
And a lot of this comes from people who are far less wordly than they think they are. Like there are people that genuinely believe that no one in security makes more than $200k except CISOs.
I doubt these claims because I know human nature pushes people to lie in order to contribute to conversations.
I understand it's entirely possible to juggle two remote jobs, I just don't think it's nearly as common as people claim or think, which is why it's an easy lie to make. It's got nothing to do with the total salaries involved, and everything to do with the exceedingly rare nature of the claim.
If you sign a contract, then it is breach of contract, which would be a kind of illegal.
I don't see the ethical quandaries though. So long as one is doing the work promised, and the company is satisfied with their output. It's not any more unethical than working on any other side project after hours.
Is it highly unethical? You're hired to do a job, if you can successfully do that job and another one, I don't think there is anything unethical about doing that. It's very common in lower wage positions, not sure why it's suddenly unethical in higher wage positions. I would say it's unethical to force people to sign a contract saying you own all of their attention during the day, even if you don't use it.
I agree that would be ideal, but realistically there's usually a pretty big power imbalance between someone seeking a job and a potential employer. I'd say that how ethical it is varies depending on the company. For example, Jimmy Johns has non-compete agreements. Someone working at Jimmy Johns has 0 ability to negotiate that. Are they unethical if they quit after a year or so to go work at Subway? I would say obviously not, maybe you'd think they are.
I'm sure you're thinking "but we're talking about software jobs where people have a lot more choice and bargaining power", which is definitely the case, hence why I mentioned that it depends on the company. On the most unethical end of contract violation I'd put the small startup that treats its people right and on the other end I'd put Walmart.
No; this is simple, if difficult. If you want to be ethical, you cannot sign an agreement knowing what it says in full, and then violate that agreement when the counterparty has operated in good faith.
What the person in your Jimmy Johns example has is the ability to seek work elsewhere.
They are indeed acting unethically if they choose to work at Jimmy Johns, knowing what Jimmy Johns requires of its employees, then proceed to quit and then go work at Subway.
I'm concerned you're considering "acting unethically" as a kind of condemnation. It's not. Life happens, and nobody's being sent to the stockade for acting unethically, but that is what you're doing when you violate a contract.
I'm not worried about "acting unethically" being a condemnation, but IMO actions taken in a vacuum can't really be judged to be ethical or unethical, which is what it seems like you're trying to do when you state that violating any arbitrary agreement is unethical. In fact I'm not sure you really fully believe this, since you add the proviso "when the counterparty has operated in good faith".
I would add that ethics is an entire branch of philosophy, so you know, there's so ambiguity between different folks' definitions. IMO it is ethical to violate contracts that would cause undue harm to one of the parties without good cause and furthermore it is unethical for a party to ask another to sign such a contract. And working at another sandwich place is not good cause. Clearly in your opinion you think it is unethical to violate such a contract because you appear to believe that violating any agreement (almost irrespective of context) is unethical. I'd be curious if you think that Jimmy Johns is ethical, unethical, or neutral for inserting such language into a contract in the first place. I would strongly disagree with that being either neutral or ethical.
I personally know I person who works two remote PM jobs at the same time and in addition runs her own side gig. Sometimes she joins two meetings from the two laptops at the same time.
I know a guy who overlapped months of two different jobs.
So it exists and happens. And for IC-type positions should be even easier.
It's a better path, for sure. But the true path to financial success is to own a large enough share of a large enough company that you can get paid a 100-1000x salary for one job, rather than a 2x salary for two.
In a risk adjusted basis, making a million a year even for three years can set you up for life. Starting a business has so much risk, and could be attempted after you have 1.5 million saved and sitting in some index fund.
Im guessing an IC position? Still, being that senior I'd expect he's in quite a few meetings. I would love to hear how he manages his schedule and comes up with novel excuses.
If he really is coding 90% of the time though, more power to him.
There are some strategies one can use, e.g. work for one company on the East coast and one on the West, then being an early starter at the first one and late starter at the second one. Perhaps have some known medical issue that occasionally requires skipping some meetings if there is a conflict. I am honestly monitoring him and I hope he'll share his stories, tips and close calls for some added amusement. He's definitely using two computers to keep any monitoring system at bay.
I'm not in the USA so I'm not sure how the W2s and SSNs are tied to job/healthcare/401k etc, but how does this double timing work? Won't the Tax office/Finanzamt (IRS) know about this?
I am not in the US but where I am from the contract usually says you are not allowed to work for another employer unless approved by your current employee. All the stories of overemployed get me kinda envious because I would never dare to try it myself.
In your jurisdiction (Europe?) you are likely fine doing it legally if you are a consultant/contractor (i.e. responsible for all taxes/insurances yourself) but not as an employee. So if you find two remote jobs in the US, you are good.
It is likely a breach of contract at both jobs, though. All contracts I’ve signed in the past include a clause that say “this is your one and only primary job and you hold no others”.
The individual will end up overpaying on social security and underpaying on most other taxes. When they file their taxes for the year, they will most likely owe some additional money to the government. As long as they pay it promptly, I don't think the IRS will have any issues with the situation.
They can also request that the employer withhold additional taxes; this is fairly common because of situations where both spouses work.
They likely have two healthcare plans, but that's generally not an issue - again, it's fairly common if both spouses are employed.
For the 401K, the individual will just have to make sure that their total contributions between both companies are under the federal limit.
I've been looking for a remote design + engineering role, but it really seems like most companies are not hiring or just have way too many options to choose from!
I've got 10+ years as a design who is also a full stack engineer (node stack). If you're hiring for a role that is well-rounded product, please message me, I'd love to talk.
Been laid off in September, interviewed for a month and accepted an offer at the end of October.
I'll be starting in mid January since am legally still employed with the old company until 31 December. Still employed since that's how we get our severance, so am enjoying the time off.
The thing that bothered me the most was that I had to update my CV, interview again and all the things related to that. I landed that job in March so I really didn't feel like finding a new one, I also liked the place.
I have a nice resume so was pretty confident I'd find something before the end of the year, so I didn't feel much anxious about it.
579 comments
[ 3.1 ms ] story [ 379 ms ] threadNo credentials to speak of other than the fact that I could probably think my way out of an undergrad level abstract algebra or real analysis problem if cornered. Maybe topology, too. Native speaker of both Kazakh and Russian. Speak rudimentary Turkish, but could easily pick it up to a decent level if necessary. Currently studying CLRS to finally learn how to design algos. Also, trying to pick up Mandarin. Maybe I'll be able to immigrate to China in the coming years. Shenzhen or Hong Kong area.
I'll just leave this here in case anyone has a remote work for me :)
The acronym comes from its authors: (Cormen, Leiserson, Rivest, Stein)
You're almost certainly better off learning to code first and then learning about algorithms once you've got a decent coding level. In a typical entry level coding job you can easily go a whole year without implementing any algorithm more complex than a binary search (if that).
1. Domain knowledge (understanding the problems you are trying to solve, for who and why they need solving)
2. Full stack awareness (understand computer hardware, networking, OS, HTTP protocols, UI etc. AND whatever the core components of your domain are. This is crucial for being able to reason about and debug a running system.)
3. Technical communication in written and verbal form.
4. Programming fundamentals. Honestly I feel much more than "fundamentals" is a waste of time for new entrants. If you haven't been paying attention, GPT-3 has taken away the need for programming acumen for most creators. Prior to that Google+Stack Overflow got a whole lot of us through gaps in programming language expertise. Leetcode is literally just a proxy for formal education/privilege and has no direct application in daily work with the exception of a narrow few areas.
If you are truly a nuts and bolts person, let that be your domain. You could write a better inventory, search, and/or checkout system (wow bolts are easily stolen aren't they?!). You could also take the abstract mechanical intuition and focus on robotics.
One shouldn't aspire to work at a "tech company" - most of those that you might think of are actually ad companies. Following the analogy of 100 year old media, Googlers are out selling classified and yellow page ads in Search/Display, Netflix is a magazine publishing house, Amazon is the Sears-Roebucks catalog (Mail order homes!), Meta, the newspaper of newspapers. If you like sales, marketing, and influence it would make sense to work at such a place. I cannot tell you how many people are surprised by this, but it is vastly larger than it ought to be.
If you want to call yourself a developer/programmer/engineer/hacker then show up to build something that will run for a long time and not injure people during its operation. Build something better. If that isn't your ethos or ethic, there are better ways to make money.
I strongly disagree. GPT-3 is impressive technology, but it isn't even in the same universe as a team of sharp experienced developers. It is a valuable tool for them to use in some contexts, but it won't be replacing them anytime soon (at least not at a company I would work for).
As an SWE, this sounds way more fun.
That seems like a rather bold claim to make. I don't think anyone could really do that without having studied those subjects deeply. Did you study mathematics at a University and just didn't complete a degree or are you completely self-taught ?
I never ask LeetCode questions because it’s far easier on both sides to ask experience-based questions like “what do you like/dislike about <technology on your resume>?”
If I get superficial answers that tells me something. If i get well thought-out answers from people who have clearly spent time in the trenches that tells me something too.
Back when I was doing C/C++ interviews, I'd ask questions like:
What's the difference between single and double quotes? A meh candidate answers something about you need single quotes for just a single character. A good candidate answers about how the data type for a double-quoted constant is a char.
If I want to pass a variable into a function, and have its value changed by the function, what do I do?* A lousy candidate says "put an ampersand in front of it". A meh candidate says to pass a pointer to the variable. The best candidate will talk about the difference between call-by-value versus call-by-reference.
People really do reveal a lot about themselves not just in what they say, but the way they say it.
(personally, I would be a meh candidate until you probed further - but I've not touched C for.. hmm, I'm old)
I often get questions where I need to determine if they're looking the textbook answer, or a real-life answer. Usually I will go with "well generally, the answer is $Textbook. However, ..."
I agree it's good for a candidate to demonstrate a solid understanding of evaluation strategies, but the way you phrased the question, the 'meh' answer seems about right. You asked what do I do? which invites a narrow answer specific to the language.
In fact, I had an instructor in college that would have marked you down if a quiz/test asked this question and you wrote an entire paragraph describing call-by-value versus call-by-reference.
On the final, he said "Each of these questions is answerable in 1-3 sentences. If you're writing 1-3 paragraphs, you're wasting my time and I will subtract points even if your answer is correct."
Forgive a painful mixing of metaphors: if the Workplace StackExchange is anything to go by, one interviewer's flying colours are often another interviewer's red flags.
This is absolutely true.
In /r/RecruitingHell, I recently saw a job seeker saying a hiring manager dropped them after they tried to connect on LinkedIn during the interview loop. Meanwhile, another HM in another loop praised them for it.
Yup.
There's a fine line between giving a thorough answer and just vomiting up everything you know that's slightly relevant to the original question.
I do AppSec. If I'm interviewing a candidate, and I ask them what Cross-site Scripting is, then if at some point during their answer they bring up SQL Injection, that's a red flag.
What's the email address: To email, send to the domain [redacted], using the mailbox "[redacted]".
In general, email addresses consist of a username followed by the at symbol (@) and the domain name, such as [redacted]@[redacted]. However, without being able to verify the existence of the domain [redacted], I cannot say for certain what the email address would be.
In theory, it's at will employment yada yada. But in practice, it makes a difference.
there are sites online, like the whoishiring threads here. i’m running https://hourly.fyi/jobs/
Most of interesting questions had to do with system design and debugging, soft skills (also system design and debugging, but of systems made out of people instead of code) and code reviews — with me reviewing their production code. Sometimes I got pretty stupid interview questions like remembering REST spec (there isn't one) by heart, but those were companies I wouldn't want to work for anyway.
TLDR why leetcode in private when you can work in public*
(*yes yes, not everyone can work in public, but i bet a fair amount of you can but havent given it a real shot)
It wasn’t that much or that bad, really. The setup was pretty simple, and quite doable for junior devs IMO (though full disclosure I had just left a position as a lead game programmer, so for me specifically it would have looked a little bad if I didn’t smash this particular interview question). It also helped that the problem was open-ended with extra credit features. I learned later when giving the interview myself that most people never finished the basic game, the majority never tried to write an AI player, and the interviewers were quite forgiving with their ranking & scoring - it was adaptive to the candidates. The coding part of the interview was just trying to be a bit fun and not just be pure dumb LeetCode problems. IMO it worked, I totally enjoyed the interview. The rest of the 4 hour interview included some whiteboard questions (on DB schemas, which I flubbed pretty hard) and also a lot of just talking about experiences and goals.
I've never done anything spectacularly fancy with CLI terminals. I could rig up a UI with c++ and qt, or python and tkinter.. but it's been a while. Longer ago, I used to do objc but that was forever ago!
So yea, I'd die on this one hahaha.
I should try it sometime. I love tetris!
Re: ridiculous C++isms and embedded C, I’ve been in the same spot for my entire career. After learning C++ in college, I joined a CG film company that had banned C++ (dumb story) so I learned how to write object oriented C. Working in console games after that, we weren’t allowed to use any built-in memory management or exceptions or a current compiler, so very restricted C++. (And the worst bug I ever fixed was when someone tried to get clever with their C++ copy constructor.) These days I use CUDA, which is also technically C++ but basically C.
I think this is dismissive of their talent, relative to other people who might try doing the same.
To be fair, swyx was also being dismissive of their talent "Just work publicly and you don't have to prove your coding skills!", which of course assumes your talent will be evident to anyone glancing at your public work. In my opinion, making incredibly complex work look effortless, and therefore easy to follow, requires exceptional talent.
I believe those who are popular content creators are also better at marketing and sales. Getting their work recognized means that their marketing talent is good and not necessarily their programming skill relative to other people who are doing the same.
When looking from that perspective - are you optimizing for hiring people with good programming skills or those with good marketing skill?
You can take a traditional career path, or you can carve out a niche somewhere.
While I'm obviously guilty of wanting to know details about the 'car crash' I'm also curious on a professional level about the challenges and changes that are happening to the engineering teams in this extreme situation.
I had the leet code once, interviewing for Meta. I didn't prepare because I thought that it was pointless, but I was curious about what it would be like to do it. So, I went through with it and to my shock and awe I managed to do it. The feedback was that I didn't ace it but I did more than well enough for the interviewer.
I didn't get the job though. The last step was a really strange and uncomfortable 1-1 chat with a "very senior employee". This did not go well.
I can only describe it as creepy.
I had one of these once. The chief product officer came into the room, stared at me for awhile, then asked "tell me something you've thought really hard about...". It was a classic case of a narcissist exec. Glad I didn't get the job, as they are struggggggggggglin' right now.
Perhaps now one may say, it is time to 'learn to adapt', since with the recent release of ChatGPT now gives the excuse for managers to be more motivated to hire less engineers and programmers as the cheap money has essentially evaporated.
So this time it is indeed different and I would expect less engineers to be hired and more programming jobs to become very competitive. No-one is safe; and that includes 'seniors'.
So everyone who knows how to do a for loop is safe.
Or the extreme, we finally have to move to post-money society, because automation is no longer creating any jobs.
I still stand by that no-one (including Big Tech companies) is safe, especially after the 2022 tech layoffs which happened to many and tools like ChatGPT will eventually reduce the need to hire lots of programmers like before.
It is not going to be the same as the hiring euphoria that happened last year.
So, you have a choice how to look at the world.
I don't understand the relevance of ChatGPT to this.
- write a Gitlab ci job that tests python code and outputs a junit test report.
- can you add code coverage?
- write a sql table that has users, age, and a biography
- write python that parses the above output from the table
- now use a lexer and parser
- create a unit test to verify it's correct.
- write a perl one liner that parses a list of users and phone numbers
It completed all of them. I was already impressed with OpenAI when it generated an argument for why Britney Spears should become president and a test for a third grader about Socrates which I then answered incorrectly and had it grade it.
It is often confidently incorrect. Which is easy to spot if you know the subject matter, but nearly impossible if you are not familiar with the subject.
My god, it truly can replace computer programmers.
I found it funny because it made it more human-like as well.
(Example: “what’s the difference between timestamp and timestamptz in postgresql?” will answer that timestamptz will store the time zone and takes more space, which is both incorrect!)
I also asked it general, abstract programming advice and it gave pretty well-reasoned arguments mentioning maintainability and readability.
Garbage in, Garbage out.
GPT3 is as good and reliable as a Tesla autopilot.
Why you ask? Well it's because most of what a programmer does is more complex than the AI can handle right now. For example my job involves the following:
a) multiple interacting systems and management of the relationships between them
b) > 90% of my work does not involve writing new code
c) the programming part is mostly about changing existing code
d) or debugging (and sometimes setting up a debugger and running code)
e) reading hundreds of articles to figure out why the trivial example these systems are good at doesn't work (sometimes on someone else's machine or staging only)
f) taking product requirements and making small alterations to allow them to become reality (and knowing when to tell people about the decisions you made and when not to)
g) talking to people who might know more about the specific problem you are facing and when to battle through
h) sharing ideas on how to do things with the wider team
i) fighting the good fight and sneaking in refactoring when people are not looking
I don't think we are anywhere near these things yet.
I would not want to be a “take this UI and add a new field” coder right now.
First, there's the uselessness of entry-level engineers. They are hired for their growth potential (that every human has, but language models don't) and are expected to grow into mid-levels and seniors. In most of the sw industry, entry-level roles are also not terminal, which means that such an engineer must get promoted at least +1L to keep working in the company. Someone (or something) perpetually stuck at the entry level is a bad value proposition for a sw company.
Secondly, the code that language models produce is buggy. They can, on occasion, produce amazing code and even entire codebases. But this is an exception, not the rule. You can generally prototype something or get an idea for something from language models, but you can only push very little of that into production. What good is code you can't use? You still need an engineer to oversee the language model's outputs.
Overall, if some company replaced their juniors with AI, that would be incompetent management.
We've never had glorified chatbots like GPT-3 or GPT-3.5. I'm not just praising GPT; I've myself casually run through a few simulations with a hotel chain receptionist and an executive. The technology looks very competent, and aside from cost savings, there's also the customer service quality aspect (consistency particularly) and the element of removing staff from abuse.
The biggest challenge is integrating language models with live data. Making customer data accessible to them is not a problem technically (prepending prompts), but it could be a GDPR problem if a third party like OpenAI is involved (having to hand over data to a third party might make the AI receptionists unappealing to some customers -- maybe, needs to be tried). The other aspect is letting the AI make changes in a data model. But there are ways to solve that as well. When these obstacles are resolved - and there is a lot of incentive to fix them now - a lot of customer-facing reception-type work can be outsourced to AI.
By the way, some hotels are already very interested in chatbots for reception work. There has been a lot of talk about that in some chains since about 2020. Old-style NLP bots, too. But of course, GPT-3 capabilities are very appealing.
Kinda amazing this has not caught on more and sooner in USA.
Much more low tech versions of this have been used in Japan forever. The noodle bars and ramen shops are case studies in efficiency.
Of course. My comment was about 'less programmers' getting hired. Not the extreme of 'All programmers' getting replaced by ChatGPT as you read incorrectly.
Believing that programmers don't need to adapt and that managers won't need to reduce or do layoffs especially with programmers, is quite frankly a denial and delusion of what is going on with cutting costs in hiring too many of them in the first place.
Denial is the first step to acceptance and as I said before, less programmers will be hired with juniors and some seniors impacted.
Read a freaking newspaper once in a while.
But of course. Denying it all, and not adapting sure is a great way of coping with rapid changes. /s
More developers will get hired, because ChatGPT will not perform the higher function tasks most developers actually spend most of their time working on.
The reason this will happen, is because ChatGPT will be more efficient in performing the lower function tasks and there will be more of a need to put all that automatically created code into actual use, integrate it with Enterprise Package FooCPT, figure out what caused the product outage at 2am at night. And on and on and on.
Not to mention that ChatGPT will not be able to talk to your users about what they want next, convince your manager that that's the right thing to do and everything else that you need to do on top of the coding part to be a good developer.
What possibly will happen is that junior developers will have even harder time getting into the industry, because clueless PHBs will see ChatGPT doing all their work "for free". A few years later they're screwed, because nobody at the company knows how their applications work. Except ChatGPT...maybe.
Reads like what I said before. Some will be affected and less programmers will be needed,. Especially in particular, juniors and some seniors getting impacted.
I don't know where I said 'All jobs' as you once again brought out as you clear read incorrectly. I only said less programmers will be hired and these software engineering jobs will be more competitive.
The best course of action is to learn to adapt and it certainly applies to programmers. Pretending that they don't need to adapt is a delusion and denial of constant change. With or without AI.
The performance gains from chatgpt are going to be amazing from a quality of life perspective but overall not a huge change (except maybe in some niche roles). Programmers are not spending much of their time figuring out code that chatgpt can generate.
You are like a peasant arguing about security of their job in the beginning of 20th century after seeing a tractor. Sure there are farmers now, but much fewer of them is needed.
To anyone who used Copilot and ChatGPT it is obvious that in 5 years demands for entry to software dev will be much higher, and there will be less positions open, because sheer productivity increases for the already employed people will outpace the demand. It’s like peasants arguing about security of their future prospects in the beginning of 20th century after seeing a tractor.
Winter is coming, but they just can’t believe this since their income directly depends on this not being true.
We’ll get another slew of decades long court cases once one line of Oracle or Microsoft code proprietary code comes out of chatGPT.
proceeds to building a time machine to get a job in 2015
I guess what's more important for me is the type of work. I'm looking for startup work that's a bit more secure now, if that's possible, lol! Doesn't seem so easy to find.
Examples? Every time I see kubernetes pop up it's because of better performance or lesser costs.
We had a C++ service. It needed high availability, but didn't have super high resource requirements. Our setup was an ec2 instance (c5.xlarge) to build and release AMIs (a bash script using debootstrap to build the AMI which someone wrote 10 years ago probably), an autoscaling group of 3 t2.small instances spread across AZs, and an ALB.
The total cost of this was perhaps $200/mo, and we had incredibly good uptime.
So, what's the catch? Well, it took the service about 20 minutes to build, and about 35 minutes from clicking the "deploy new version" to it actually running. Someone higher up noticed, and a bright-eyed infra engineer said k8s would make the deploy cycle faster.
Fast forward a year. Our autoscaling group is now 3 c5.xlarge instances because the kubelet + docker + coredns + all this other k8s gunk I don't understand need significantly more CPU than our app does (and without giving them more CPU, deploy times were much slower since downloading and unpacking the image was so slow). We have a new logging system (our old logging setup wasn't cloud native apparently) that takes a gig more memory per node. A gig of memory per node to support our service, which peaks at 200MiB RSS. Building and deploying a new version still takes about 35 minutes because compiling C++ is the exact same speed in a dockerfile as it is on an ec2 instance.
It costs about $600/mo, and it has far more operational load. When it isn't having any issues, the p99 is identical.
> better performance or lesser costs
It seems like the opposite of what you'd expect. K8s is adding more components. It's adding more resource usage. Why wouldn't that be slower and cost more?
What a gigantic waste of time. Tons of stress for 2-3 months for nothing.
Amazon has done nothing but earn a reputation for treating it's employees, potential or otherwise, atrociously.
You are a Director; you have a 350 person organization; you’re leading a rapidly growing business (let’s say >40% YoY growth in revenue, not uncommon in parts of AWS); during the OP1 you secured incremental investment of 20% meaning you’ll grow to 420, which is +70 hires to make.
You’re goaled against a 6% URA meaning 21 people exit voluntarily after being entered to Focus, during Pivot, or involuntarily at the unsuccessful end of a Pivot.
If I spoke from experiences, I’d say the (vast) majority of your URA will likely come from the tenure group with < 18 months at Amazon, in effect, hiring decisions which didn’t work out and where, in debrief, everyone thought the person had potential to be a bar raising hire but in reality they were bottom quartile. In the debrief your clear options were “Hire at L7”, “Hire at L6”, “No Hire”, plus maybe some flavor of good fit for Amazon but not really for this specific role.
Let’s take the extreme of this and say all URA comes from just the +70 growth, 21 people would be a 30% failure rate.
In a less extreme and more likely scenario: it’s more like some fast failures occur from the +70, others are slightly slower and show up after 12-18 months (that would be the prior years growth). Tenured people with e.g. >4 years sometimes start to struggle for whatever reason.
That’s not all that unexpected, in my opinion! Even with a structured well-used interviewing mechanism you’re getting perhaps 6 hours of signal and during this time the applicants are naturally very focused on “putting the best foot forward”. After a hire decision you work with someone for 6 months or more and ask “Is this what I expected?”, and “If I could make the decision again based on the signal I now possess, would I still be strongly convicted and proceed to hire this person?”. When the answers to these questions are “No”, that’s often what commences the performance management processes.
Now, this explanation works for growth businesses, it’s less apparent how 6% URA makes sense in a flat growth organization, since you’d be finding those cuts from a mostly tenured and presumably mostly proven set of people.
1/ Managers particularly for SDE roles don’t usually have >10-12 people. In reality the URA (Unregretted Attrition) goal is mostly managed at the L8+ level where organization sizes are usually hundreds. Far more likely you have some underperformers in an overall organization of 300, even if an individual team is all awesome.
2/ Interviews at Amazon involve a Bar Raiser who almost certainly won’t work in the Hiring Managers span of control, and the debrief attempts to answer “Is this a bar raising hire?”, meaning is this applicant better than 50% of people in the role/level.
I can really only speak for AWS and Engineering roles, but I never saw any “Hire to Fire” behavior at Amazon, and most every Bar Raiser that I saw took the role seriously and was not a “rubber stamper”.
Balls may have been dropped by some people, but I always have recruiters pinging me relentlessly the day after I've done an interview so they can get back to the candidate within 5 business days.
I am still curious about the other question, though.
> I’ve heard nothing but terrible things about working at AWS,
wut?
How is this acceptable? So much wasted time, and not just for me. I basically interviewed the entire team I was supposed to be working with.
It's weird there are US states where it's not a requirement.
Dealing with just a handful of these guys is enough to do away with providing any sort of feedback. Like many things, a few bad apples ruin nice things for everybody.
Then on the other hand, nobody ever got promoted for being nice to rejects. If their processes select for ambition (and they sure do), nothing that does not promise promotion will ever get done and that should qualify as explanation three times over.
When they interviewed me the first time, the interviewer didn't show to work, so they asked another guy to interview me, he ended interviewing me in a language he didn't knew, to a position using another language entirely, the whole thing was a farce.
Some years later Amazon recruiters contacted me, asked me to go interview in person. Then during the interview in their offices, they literally forgot me for several hours in a random room of the building, the employees left at the end of shift, and left me alone in the floor with nobody in it, and I had no idea where the exit was.
I really need a job and been applying to lots of companies, but I won't apply to Amazon again.
Hiring tends to happen when there's not enough people. Only the people who can do the job are qualified to assess whether someone can do the job. So you have people who are already at double the workload having to take time to design and handle interviews and such.
And by the time you get everyone to sign off on hiring this guy at the extravagant tech salary, economic downturn forces you to fire a bunch of people. In a recession, the least useful people are probably HR.
I think you mean recruiters, not HR. Big difference.
I coded using C++ and pass by reference. He had never seen it in his life. He refused to believe modification on a reference would modify the value in the calling function! I hoping he would be willing to discuss or run the code, this was a total let down.
Note: I have 2+ decades of coding experience
Anyone you find in the real world under ~30 years old may not even be aware that you can pass a reference and modify it directly without having to make a method return a value.
It's super cool to have someone explain to you side effects yet you show them a method with a null return and run it for them showing that the value has changed and they are mesmerized.
I've been developing for 25+ years in any language you can imagine, and know how to use pass by ref just fine, and know there are situations where it might be the best solution.
But I can't remember the last time I've used pass by ref. It's really just a coding style quirk for me, I find it "ugly" and it breaks my train of thought when reasoning through the flow of code. I certainly don't begrudge anyone who uses it though.
And OP's anecdote about the interview is certainly disheartening. You'd hope the interviewer would at least be open to the idea of learning something new. I've learned countless things from developers I've interviewed over the years, and I was incredibly happy about it each time.
Edit: In re-reading your comment and below replies it seems you may be misunderstanding what's being discussed. Yes, the things we pass into and out of functions tend to be object references by default. But when we say "pass by ref" (in some languages at least) we mean, essentially, modifying a value in a calling function without actually returning anything from the called function. That's a horrible way to explain it, but the MS documents for the "ref" keyword do a good job of showing examples:
https://learn.microsoft.com/en-us/dotnet/csharp/language-ref...
Like...duh?
I suppose that's why I find Golang less weird to work with than others in my cohort. I spent a semester in the depths of C and OpenGL so I'm intimately familiar with by-value vs by-ref.
One necessary (but insufficient) test you can use to determine if your language has call by reference or call by value is whether you can implement a swap function. In the languages you list, a swap function is not possible to implement, whereas in C++ it is, which tells you that those languages do not implement pass by reference.
For example the Java Language Specification states in section 8.4.1 that Java is pass by value:
https://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html...
ECMAScript's Language Specification also states in section 10.6 that it uses pass by value semantics, although it's much more formal about the specific approach it uses:
https://262.ecma-international.org/5.1/
I can't link to the specific section but you can review the semantics of MakeArgGetter and MakeArgSetter which are specified to produce arguments bound to the *value* associated with the name, as opposed to a reference.
Python does not have a spec that I can reference, but given that its argument semantics follows those of Java, and once again the inability to write a swap function, it should not be too difficult to deduce that Python also passes by value.
While I likely can not convince you further that you are in error, especially since you're now trying to double down on this, for others reading this who have a genuine desire to understand this topic, please understand that Java, JavaScript and Python do not pass by reference, but instead pass by value and refrain from attempting to redefine technical terminology.
The references I cite are quite authoritative and unambiguous on this topic.
The canonical example is a function that swaps the variables passed to a function:
Since the above are primitive data types (ints), in order to make this work, the language needs to generically support passing the address (reference) of the variables. Java¹/Python² etc. are not able to do this; they copy the value of the variable and send it to the function, which will operate on the copy.¹=at least, last time I've checked, which was long ago :)
²=funny to think that at least in Python, one can mess with the global register of the variables, and actually accomplish that
I guess my understanding could be technically wrong in some way, but it seems to reflect what happens.
Here's an example to include the id differences and the fact that a does not take on the value of d:
But, as I've posted elsewhere in this thread, this example will change the contents of 'd' since d itself is not being set, its contents are:At least, this seems like a coherent mental model of what's happening, to me.
In explaining this I decided to check the Python docs and learned a new piece of terminology "pass by assignment", which is how Python explains its variable passing scheme: https://docs.python.org/3/faq/programming.html#how-do-i-writ...
Here in north-west EU C and C++ haven't been a part of the core curriculum for over 25 years (unless you do embedded work), and code with side-effects in desktop-class systems has been frowned upon for nearly as long due to the need for more cookie-cutter engineers to fill positions and write code that might still be OOP but has to be almost as side-effect free as functional code.
Basic/core languages are still (last time I checked when doing guest lectures ~ 6mo ago) Java, C#, Python and the mixed bag that is web languages.
This is also influenced by the core program required to be an accredited institution and the large amount of consultancies people end up working at straight out of college/school/uni. This even still happens in infrastructure-centric programs where you do lean a bit about TCP/IP and OSI layers, but then essentially get dumped into Juniper/Cisco/vmware/microsoft school which almost always gets them vendor-locked and unaware of the actual concepts and abstractions they implement.
So no, not knowing the difference between passing references or values, or pointers and dereferencing them is not as strange as you seem to think it is. It is not a piece of knowledge or experience that is seen as valuable enough by the people that create the curriculum or the companies that employ the largest quantities of inexperienced workers in this part of the world.
A lot of people seem to underestimate the prevalence of C/C++. I've had people tell me that C/C++ is completely dead and the future is machine learning entirely written in Python, but the machine learning models they're using still usually have parts hand-tuned in C/C++, or even assembly.
I do know there are programs out there that focus on different aspects though, and not surprised they would be geared to make people more job ready. We actually didn’t really learn about unit testing, and such, so it’s a balance.
Most real world software will use many core libraries implemented in C/C++ for doing the heavy lifting. Just the FFI and creating all those Python objects makes it slow.
Python is a great language for prototyping and/or usage as a glue code.
Personally, I am more inclined to use Go for anything quick and performant. If Carbon language becomes a reality, I would bet on that since it allows seamless interoperability with C++ (and there is a large existing eco system). Else, time to learn Rust.
I think an operating systems course, or something approaching it, is a pretty standard piece of good CS curriculums in the US still from talking with other folks I've worked with. And I live/work very far from where I got my degree.
EDIT: in the US, not in the CS, lol
Intro to Programming 1 and 2 were taught in C++. Can't remember which one taught pass by reference, but it was definitely in one of those two.
Third class I took was Intro to Systems or something like that. The whole class was C and x86 ASM. Lots of binary operations in that one, used K&R a fair amount in that class (also learned debugging assembly in GDB and some other "low-level"-ish stuff).
Just looked it up, can't say 100% it's still C++, but the syllabus looks about the same as I remember for both class. It gets to pointers by week 7, and then in the second class goes deeper:
* https://web.cs.ucla.edu/classes/spring22/cs31/syllabus.html#...
* https://web.cs.ucla.edu/classes/spring22/cs32/syllabus.html#...
And again, I didn't even get a CS degree. This was all lower-div CS work at a public university, and I'm not even a career engineer.
> So no, not knowing the difference between passing references or values, or pointers and dereferencing them is not as strange as you seem to think it is. It is not a piece of knowledge or experience that is seen as valuable enough by the people that create the curriculum or the companies that employ the largest quantities of inexperienced workers in this part of the world.
This attitude is why you're getting flak in this thread. Your claim that "We don't teach pass by reference these days" was too absolute, and not accurate for a ton of people. Then someone came back and told you that, and you told them that their claim was too absolute.
I'll also say that it's something that was absolutely valued around the orgs I worked in at Microsoft (Azure, DevDiv, Windows, very roughly bottom half of the stack teams). If not C/C++ pointers, than __absolutely__ passing by reference in C#.
Point being: __knowing__ about pointers, passing by ref vs. value, etc. is not as strange as __you__ seem to think it is.
C and C++ (and Assembly and compilers) are not part of the standard college software engineering curriculum here. Your opinion on that doesn't matter (just like mine doesn't matter) because it is a verifiable fact. And as such, it is also not strange to not see this bit of knowledge being prevalent. K&R isn't used much except if you are either taking the purely theoretical CS degree courses or if you tack them on to the normal required courses. Even the Gang of Four is only mentioned in passing when talking about patterns.
You __could__ argue if this is foundational knowledge, and if so, you __could__ argue that therefore the curriculum is in need of adjustment. But I didn't.
Regarding what this was all about (WrtCdEvrydy's comment), he might be talking out of the wrong hole, or he might be in a similar location as I am where this is how it works and that might be different from where you are.
I once shadowed an interview once, where this happened. I felt bad for the candidate, because I wasn't allowed to speak whilst shadowing the interview, and neither did I have to submit feedback; and the candidate clearly was coding well. Although, I did reach out to the recruiter about this. And I don't know what happened after that.
Guess how many times anyone has called a recruiter and heard "Oh yes, you got the job - I've been waiting all week for you to call me about it"?
No - it just means the decision has been made, and you won't be hired.
Which is different from "you failed". It could just as easily be their failure to evaluate you properly.
Eventually you’ll get a “No” along with a message that, per policy, they don’t provide feedback. And then you’ll get several emails insisting you send your feedback, because they really want to “improve the process”. *facepalm*
Unfortunately, despite assurances to the contrary, I was generally unimpressed with the quality of the people doing the interviewing. One of them was in his kitchen, while family members moved about behind him. Another didn’t share video, because reasons, making every silence while they made their notes that much more awkward. And another would spend 2+ minutes typing in silence until finally asking the next question, ruining any opportunity for flow or conversation.
Judging by Amazon’s recent growth (prior to the recent layoffs), I’m not sure anyone has had time for any engineering. They’ve all been stuck doing interview “loops”.
That's different than it being undecidable, in which case you have to insist on providing something other than an exact algorithm that handles every input.
You had to compute a graph from a set of points (i think it was knn, not sure) and do stuff on it. At some point of the defense, this happened
Me: I skipped this question.
Examinator: why?
Me: If I compute it using the graph structure, it reduces to max-clique, which is np-complete. I looked for a solution using the point dara but didn't find it
Examinator: can you write an algorithm for max-clique on the board?
Me: here. This is exponential time
Examinator: it's worst case exponential time. But in this case it would have worked, you just had to try it
Me: urgh
Now I've learned my lesson: np-complete doesn't mean impossible
I usually defend Amazon (used to work there and enjoyed it) but the last interview cycle was really unimpressive.
I had to follow up to find out they had chosen someone else.
The amount of time I put into those interviews was absurd, reading up on all their principles, coming up with stories from my career where I met their principles etc. To then get ghosted at the end was a real slap in the face.
Here's the thing though: you know all those horror stories you've heard about big tech companies and how they operate? Most of them are true, so if you actually care about the field then AWS is not the place for you. Especially if you're senior. Junior devs: you'll want to start here to build your rep and get a taste for awful at least.
EDIT: I should add that the ghosting of my friend was confirmed to be due to lay-off of the recruiters, so that's most likely the reason for the majority of the ghosting complaints here.
Thanks for sharing.
But anyway - we're always hiring if you're into small consulting companies. We mostly do AWS, Azure, and not a lot of GCP (sad because I like GCP), and it's almost 100% K8s. You will have to be able to get a CKA, CKAD, or CKS at some point. Need to be in the US.
Send resumes to Josh@BoxBoat.Com
When I post in a who's hiring thread... actually I don't like to post in a who's hiring thread because I end up with way too many conversations.
I do however mentor a bunch of juniors (less than 2 years of experience) and the 3 that got laid off got a bunch of offers within a month. It took more interviews but my experience from the last few weeks is that there are still a lot more jobs than applicants.
Recession case: inflation depresses other spending, new home starts are decreasing, strong dollar, Chinese economy wobbly, EU economy weak, continued supply chain disruptions, PMI weaker, ad spending curtailed.
Soft landing case: Goldilocks scenario for USA employment; inflation has decreased; chip shortage over; few layoffs outside tech; airline, hospitality, defense, healthcare, energy sectors booming; China economy may strengthen with softened zero-covid policy.
Applied to about 30 positions, heard back from 3 and received 1 offer for Google. Didn't exactly give me confidence about the future when I may be looking for another job...
YOE: 3
But getting a job at Google tells you that your overall skillset was not the problem. You just didn’t match the other positions as well as some others for some reason. FAANG level jobs are always hard to get, always hyper-competitive. You’re obviously good enough to be there, so the worst case scenario is likely that you’d have to leave the prestige of FAANG and similar. You’ll be employable for as long as you want to be, I’m sure.
I genuinely wish GP the best but it's not a company I would want to work for if I had another option.
But I can't help but think it's worth leveraging an offer like that, if not only as a favor to your future self. Go in planning to work for like a year, near the end start looking for a jobs and I have a feeling there will be a ton of companies drooling at someone wanting to leave Google for them.
But you do you!
Blind is filled with posts talking about Google culture turning toxic. Googles stock has performed quite badly with the downturn, and the heat is being turned up on the workers.
Compare it to place like Salesforce or Oracle or Intel or IBM. Salesforce and Oracle may actually beat the google offer too since Google is low balling a lot these days.
Bold statement: Tech will pick up first. And companies who are making noise based on Elon's move at Twitter will strave for good workers and die
7 YOE in web dev, full-stack.
Leaving this here if anyone has any remote work for me :)
EDIT: For anyone accessing my site, I apologize in advance for slowness or crashes, it's hosted in my residence on a puny server sitting behind me :( I've been meaning to cloud it for a while now but I kind of like the DIY of it all.
I think I will be soon in the same boat and happy to hear that your time was (at least partially) rewarding.
I have 13 years of non-stop work for big tech and I cannot wait for the day I resign. Hopefully, sometime in the next 3-4 months. :-D
It is better to be unemployed if you can afford it.
When I left a year ago, I thought that it was likely that the industry would start to slow down within those 6 months. I have been watching everything happen with mild curiosity. I am fortunate that my wife has a healthy career, so looking for any work has been low-stress.
I share that feeling of observing the industry. I think that some of the recent sentiments are a bit overblown about the tech industry. Some seem to think that it's all going to blow up because a few thousand FAANG rest-n-vesters got let go. (side-note: I know that not all who got made redundant were of that type, just adding flare!)
All the best with your future!
~15 years fullstack and DevOps experience, visited top local university, no degree. Mostly Python + some other languages. Have been interviewing for Lead SE/DevOps/SRE roles as well as some architecture positions.
My findings about the German job market for developers:
- Remote-work is here to stay. Almost all companies are okay with full-remote, those who are not, want ~2 days in the office per week.
- Companies are starting to do leetcode-style interviews. Sometimes some FizzBuzz level to check basic understanding, going up to harder problems unrelated to the position. Unless they are very hard, you will just get used to that.
- Remote or hybrid meetings with multiple participants are horrible for interviewing. The delay makes you come across slow and is very distracting, when you need to look sharp.
- If you want to earn money in Germany, you have to join a bigger company.
- Bigger companies do their development in Java with a minority being MS shops. Python is for data science and DevOps.
- The missing degree is mostly not a problem. Sometimes the CTO's PHD makes it one.
- Landing lead/lower management roles seems to be difficult if you have limited experience leading people. Those seem to be mostly staffed internally.
- The market value for a profile like mine in a big German city seems to be around 100k € including some small bonus.
- There are many offers under that number. I think I would get hired almost instantly if I would accept offers for 80k €.
- All-in all IT does not seem affected by the downturn yet.
While these numbers are not directly comparable to the US (lower cost of living, better social security, health-insurance included and not tied to your job etc.) my subjective feeling is, that I am getting taken advantage of here. Salaries seem to be too low. You are often getting low-balled because "it would not fit within the salaries of the other team members".
For the time being, freelancing is the way to go in Germany, even though you are fighting against regulations.
Net would be something like 55k if you are single, but you already paid into a mandatory retirement plan and you, your kids (and laughably also your partner) are health insured.
The gov. has good health service, and also education. But the education system has some interesting limitations, that may surprise you.
Preach it! CoL in German cities is far too high for how low skilled dev wages are. 100k at 15 years work experience is an insult when you look at Munich/Berlin house prices and that new grads can get 60k.
And DW posted a YouTube video yesterday about how Germany has a shortage of software developers and they need to actively recruit from India and Pakistan. [1]
More like a shortage of desperate people willing to be low balled and a shortage of companies paying good wages.
Companies in Germany need to start paying ICs more and stop complaining about shortage of workers. Simple.
[1] https://www.youtube.com/watch?v=n8Mch8xDCZU
So with a 100k€ annual salary, one working parent alone can buy the house and feed the entire family. You consider that an "insult"?
So you hire someone who has 14 years of extra experience and brings a lot more value to the company and only pay them 40k extra?
That's why I'm saying it feels like an insult.
It's why we should compare salaries for positions rather than YoE.
Not in this case. It is 15 years of proper software engineering and devops experience, for times in leading positions with additional responsibilities.
The cost published does not include heating or any other utilities, that adds up pretty quick!
And yes, heating and utilities add up. But we're talking about a salary that after taxes will be 3x to 4x the down payments.
Secondly, I'm genuinely interested in your thoughts here. What if you:
* Lived in the EU
* Being salaried 100k EUR (which is probably around 90th percentile)
* Worked for a _global_ company with a _global_ product deployed on a _global_ market with _global_ competition
And now some of your colleagues are from the US and you:
* have the same responsibilities as they do
* have the same skill-set needed for given position as they do
* have the same impact, or potential for it thereof, as they do
* have to go through the same agony of being and staying among top performers
And yet your US colleagues are salaried 2x-3x as much as you are. Without taking RSUs into a picture because that's a very rare thing to have in European companies.
What are your thoughts about this? Do you attribute this difference solely to the cost of living?
Also, with 2 kids and 2 adults out of which only 1 is working, you'll get heavy tax deductions, so I'd expect an effective tax rate of around 15%. That 100k€ gross will turn into 85k€ after taxes. Deduct another 10k€ annually for top-tier health insurance for everyone, 1900€ per month = 23k€ annually for the house and that leaves you with about 4300€ each month to spend on food, clothing and heating.
This might be just me, but I think if you pay people so that they can have a very nice lifestyle where they live, that's a "good salary". If the absolute $ number is higher in San Francisco than it is in Germany, then you either need to pay them more to match the lifestyle, or maybe hire in cheaper markets.
Germany in general seems to be very remote friendly. Many larger companies even have programs where you can go on a work-vacation to a tourist resort and they'll organize a co-working space and necessary permits. I guess that's why you see salaries equalize more throughout Germany while in the US the regional differences are quite strong.
Your calculus is far far from reality so your further reasoning is therefore flawed from the very start. 4-4.5k EUR is probably more realistic.
Moreover, property prices around EU are generally speaking anywhere from 3k EUR to 15k EUR per sqm. For a 100sqm home that's 300k EUR for the cheapest one, 700-800k EUR as a median and more expensive ones over a 1M EUR. Even with the 90-th percentile salary such as 4k EUR per month (after tax), how exactly do you envision buying a home with that sort of prices?
Software engineers are being grossly underpaid in Europe and all this recurring bullshit around housing prices, living costs etc. is just a bullshit that capitalist companies will spread to convince people such as yourself to start considering your colleagues as a "threat" and not just human beings who want to be paid what they are deserved.
My purchasing power, even with the 90-th percentile salary in EU, is _nowhere_ near the purchasing power I'd have with the same skills I have if I had lived in the US and that's where all the discussion can stop. If we take some of the other European countries as an example that gap is going to be even much larger. Purchasing power coefficients are a real thing you know.
There is shitton mandatory insurances and payments. Income tax alone does not really matter. Rundfunkgebühr is very real tax and can’t be avoided.
Edit: sorry, I am rude. But downplaying all the so called insurances, that must be paid from salary is not nice. They must be paid in full and can’t be avoided. I would love to decide about my retirement by myself instead of funding current retirees.
And even if it was, the legal costs alone add up to a few tens of thousands of EUR for a property like this (eg. if the property is worth €500k, you are looking at at least in the order of €50k of legal costs and taxes...). But I don't know of any bank that would lend you 100% of the price of the property you want to buy, if you do please introduce me to them...
If it really was so easy, everyone would be buying these properties. But the upfront costs are simply prohibitive.
"But I don't know of any bank that would lend you 100% of the price of the property you want to buy, if you do please introduce me to them..."
Here's a FAQ on buying a house without any prior capital. Obviously, the interest rate is going to be higher... https://www.immobilienscout24.de/wissen/kaufen/finanzierung-...
Outside of FANGS & MANGAS, German companies would start laughing if you ask for that much for IC positions, even senior ones.
That kind of cheese is usually reserved for management/corporate bootlickers high up the command chain.
Typical freebies in Germany include:
- 13th salary as a Christmas gift (so +8.3% salary)
- only half of your health insurance costs are included in the nominal salary
- tax refunds if you buy a PC, do courses, or drive to work with your car
- company pays for children's daycare
- government-backed retirement fund with generous payouts. If you pay in 83€ per month now you can expect to receive at least €450 per month later.
Also, with a bit of searching, you can rent a house with garden for €2000 per month even in large cities like Hamburg or Berlin. As a result, an 100k€ annual salary will be enough for you alone to comfortably bankroll a family of 5 - something that's almost impossible in the bay area due to high rents and insane costs of living.
My 100k number is all-in.
> Also, with a bit of searching, you can rent a house with garden for €2000 per month even in large cities like Hamburg or Berlin. As a result, an 100k€ annual salary will be enough for you alone to comfortably bankroll a family of 5 - something that's almost impossible in the bay area due to high rents and insane costs of living.
That is true. But you have to say goodbye to any romantic dreams about owning any property big enough for children (within a nice area of such a city), if you and a similiarly well-doing partner do not want to work for it for the rest of your life. If you have not come across FIRE, that might be okay as well.
But then again, would that work out if you were to work in San Francisco for $200k annually?
About the retirement... I would be careful about big expectations. Everything is based in constant growth of the german economy. Any public retirement is basically a Ponzi scheme (not my words! but from a Nobel Economy laureate)
Also one very important thing about cost of living: Hamburg and Munich, for example, the cost of living means that doing 20k more per year, as compared with say, Stuttgart, at the end you get the same... or the way around, 100k in Stuttgart is like 120k in Munich. You really have to factor that into the equation.
Health insurance is expensive and low quality. One must pay for all modern treatments despite being insured. Or have another expensive additional insurance. Cancer will be treated for free, that’s right.
Tax refund is a bad joke. Spending 5000€ to get cents back. 50% taxes and mandatory insurance plus 19% value added tax (food less, fuel with additional taxes). So 2/3 earned go to the government. Nice!
No company from dozen paid for childcare. I know, that it might happen, but it’s rare. Some companies have on-site kindergartens. But well… the waitlist is long unless you are important manager.
Government retirement will be about enough to live in extreme poverty trying to save every cent.
Just got intrigued and opened immobilienscout24. No houses for 2000€ in Hamburg and Berlin for a family of 5. Rather old Reihenmittelhaus for 2500€ with current electricity and heating prices.
There is nothing comfortable about 100k€ annually. Especially for a family of five. It’s like 4500€ after taxes every month paying 2500€ rent and living from 2000€. Belarus freelancers also make this and have really comfy lifestyles.
Edit: with 3 kids it’s closer to 5000€ after taxes. Still does not provide any luxury.
Everything else is worse than what I earn as a fully remote employee, who could choose to live in any number of second or third tier American cities that are nearly as cheap as Berlin.
You can get your own coverage on the Affordable Care Act exchanges. It's not necessarily a great deal, but again, it's about keeping that out of pocket limit as a safety net.
In all likelihood the burned out hypothetical software engineer is going to recover and find work with employer funded healthcare coverage again.
Because at most places lead/lower management is another word for yes men that have proven their blind loyalty to the CTO, usually for 2 or 3 years. They don't wanna hire a manager who may question the status quo, especially when it comes to architecture and best practices.
> The market value for a profile like mine in a big German city seems to be around 100k € including some small bonus.
That sounds low to me and attainable in Europe if you have 5+ YoE at the right places. It sounds to me like you are being lowballed. I'm getting similar offers with way less experience.
Where you at?
In the Netherlands getting anything over €70k is incredibly hard. There are very few companies offering close to that and those are often for architecture roles. Lead dev is usually €60-70k, with some €70-80k exceptions, but those usually require ~10 years focused experience.
Interestingly, over here the freelance market is much better. Those will easily get you €100-150k gross and are often quite long term. And even with €100k, combined with all the tax benefits it's very much worth it.
I have talked to some companies in Ireland and the UK in the last few months, and their ranges usually start at 80/90k. The most famous example is probably Google. Entry level (L3) is 100k-ish and L4 starts at ~120k. Even if OP was placed at a below average level for someone with 15 YoE, they should be getting 150k+ offers.
Well, it's definitely possible in Poland.
I’ll be moving to Berlin in January, aber ich spreche nur Englisch und ich lerne Deutsch. Ich habe die EU-Staatsbürgerschaft und meine Frau kommt aus Berlin.
I am a senior front end dev who has experience leading teams
However, if you don't want to be tied down, something like "Elternzeitvertretung" (aka jumping in for people on paternity/maternity leave) might be interesting for you.
1. Just get a tax advisor who is fine speaking English with you. Just let him do everything in the beginning. Afterwards you can do more of that yourself. Try to be classified as Freiberuflich, not Gewerbetreibender. It helps if you have an engineering degree, but he can help you with that.
2. Do at least two gigs per year (Scheinselbstständigkeit).
3. Use HAYS and others to start it of.
4. Continue to learn German. Maybe do some German interview training or something to get in. There are teams working in English, but you will have an easier time overall.
Some advice (some of it obvious if you've dont it before and not specific for Germany but maybe it's useful):
Have a profile on Linkedin and Xing, upload to sites like freelance.de and maybe to a bunch of agencies. Be ready to send a profile, listing as many projects as possible, i.e. different roles in a company could be separate projects. Make sure all relevant search terms (languages, frameworks, tools) appear for each project even if repetitive. English-only is ok in many places, German-speaking projects can be a little better though.
It's all through intermediaries, which means you can (and should) negotiate rates hard without worrying about burning bridges. No call with a recruiter that didn't go pleasantly ever led to anything so if it feels weird just hang up. Expect to be placed 3-6 months min, 2 years max in a project. Research a little on "Scheinselbständigkeit" but it's not a huge issue these days. If you want 100% remote it should be possible.
Good luck and welcome to Germany :-)
You are required to have Health Insurance if you live in Germany, and for freelancers it is quite expensive(it will probably cost more per month than apartment rent). This can be a dealbreaker for people with limited financial resources who need some time to get their business off the ground.
I’m paying around 120-130k in Amsterdam which has a similar CoL to Berlin.
But it was a huge paycut. I’m definitely happier than I was in the US but I have been considering moving a bit further south. Bumping up to 120k and getting more sunshine would be very nice.
Premium areas are London and Paris. But even these salaries are closer to a middle rate USA city.
Super-premium (on par with more expensive USA salaries like SF or NYC) is Switzerland. Very expensive to hire there and easily the highest salaries in Europe in my experience.
This is just based on a CoL ratings at a single place.
When looking at offers there, there is absolutly nothing beyond 70k.
I am applying currently, don't know how that will turn out, but he manager even said that Swedish developers are cheaper for the company than people from Germany, Switzerland and I think even Poland was getting bigger wages.
So Sweden has this low-wage aura apparently.
That’s how I justify it here at least. I mean, I make 500.000kr less than I did in the US, but 900k also puts me in the top 5% of all earners in Norway. So I have a very good quality of life.
The middle class is so compressed here that it’s a super cozy income, and I will never have to worry about anything financially or healthcare related for the rest of my life.
I just have moments of «I want more», which is when I get anxiety and look elsewhere. But honestly not sure I need it in any real way.
Companies tend to have a ladder and different paths/comp levels for managers and individual contributors. Different regions are then sliced into different levels and what you're left with is location, a role, and a level. These are combined to create a salary band which is the range an employee that fits into the profile.
It's important to note, it's a salary band. This means an individual can have a fairly wide range of total compensation across this band. Also, some companies are biased towards salary or stock options/RSUs. But generally, an employee will have a lower "comp-ratio" meaning they are under the middle of the band. This leaves room for raises, etc. At some point an employee will be at the top of their band. They are either promoted into a higher level, kept at their current level but only given CoL increases (bands tend to increase ~3% each year), or fired.
The company can decide how competitive they want to be in each region or choose to not hire in a region because it is too expensive to be competitive there.
Yeah, seems so - 80k is on the higher end, but possible in Poland, while the CoL is laughably low compared to Germany.
Job search has been going pretty bad. Only a few screen out rejections and a handful of obnoxious crap recruiters have contacted me. No interviews yet.
The last time around was in 2020. It seemed like it took forever to get any response. Even when I was able to get through the interview process, it just stalled and I didn't hear back at all. I thought I was being ghosted.
I finally took an offer in late January. By March I'd had no fewer than five companies come back with written offers out of the blue, long after I'd forgotten about them.
I think I had something like 3-4 offers rescinded and a couple of interviews where I reached the final stage just to be informed that the company halted hiring.
Applied to around 25 jobs. Ghosted by 15 of them. Out of the 10 remaining, 3 of them are limited in terms of remote - to be considered you have to reside within certain countries.
From the remaining 7 I only got the interview round with 1 of them. Did not get an offer because I was not strong enough candidate despite successfully going through 5 interview rounds. Whole process was very slow and lasted for about 1.5 month, with not getting the feedback something like 2-3 weeks after the last round. All in all very weird experience and unexpected outcome with no strong arguments.
From the remaining 6 I did not even get an invite to an interview but a direct decline.
Getting the (systems programming related) remote job while located in Europe seems like an impossible task to me right now.
I was laid off last year and went to interview at an adjacent employer. They had a bunch of employees (not only engineers) hired from the company that was laying me off. One of which had previously walked out the door with a bunch of code to form their own startup; they were hired as a staff engineer. That employee frequently reached out to me for advice and guidance on writing the piece of code that they made off with.
I flunked their cargo-culting hiring process hard. I knew I should have walked out of the interview the minute they put fucking Leetcode in front of me, but didn't.
Moral of the story: your interview success has little to do with your experience and aptitude as an engineer. Here's a list of shops where you might find more success: https://github.com/poteto/hiring-without-whiteboards
Then the question is only whether it's legal (contractually) to be employed by more than one employer at a time. But to that... would it be legal for a company to own every waking hour rather than just your employed hours?
I've not seen anything that says someone has to be exclusively hired, but they would need to be able to fully do their job for their employed time and surely that's all that matters.
Getting sued is not getting convicted of something.
Anti-moonlighting clauses are nonsense.
If they can do it, why not the plebs?
How do you think society would work if there was no restriction on the size of the group that is allowed to break the laws for their own benefit?! Imagine the horror if all plebs were allowed to do that! Could everyone live in Monaco or what?
The categorical imperative deserves to stay in the dustbin of history.
It’s not illegal, just highly unethical. It’s also not true, he does not know someone doing this.
It's funny, when this topic comes up, the people that are juggling multiple jobs are usually stuck in this weird place where they want to convince people it's true but at the same time not draw too much attention to it (for obvious reasons).
And a lot of this comes from people who are far less wordly than they think they are. Like there are people that genuinely believe that no one in security makes more than $200k except CISOs.
I understand it's entirely possible to juggle two remote jobs, I just don't think it's nearly as common as people claim or think, which is why it's an easy lie to make. It's got nothing to do with the total salaries involved, and everything to do with the exceedingly rare nature of the claim.
I don't see the ethical quandaries though. So long as one is doing the work promised, and the company is satisfied with their output. It's not any more unethical than working on any other side project after hours.
Sure, if you lose you probably just end up paying money. But lots of "real" crimes have punishments that amount to paying some fines but no jail time.
In your example, the "ethical" way to violate a non-compete is to redact it from the original contract.
I'm not saying you're the worst person ever, but littering is unethical, and so is saying you'll do something and then not doing it (or vice versa).
I'm sure you're thinking "but we're talking about software jobs where people have a lot more choice and bargaining power", which is definitely the case, hence why I mentioned that it depends on the company. On the most unethical end of contract violation I'd put the small startup that treats its people right and on the other end I'd put Walmart.
What the person in your Jimmy Johns example has is the ability to seek work elsewhere.
They are indeed acting unethically if they choose to work at Jimmy Johns, knowing what Jimmy Johns requires of its employees, then proceed to quit and then go work at Subway.
I'm concerned you're considering "acting unethically" as a kind of condemnation. It's not. Life happens, and nobody's being sent to the stockade for acting unethically, but that is what you're doing when you violate a contract.
I would add that ethics is an entire branch of philosophy, so you know, there's so ambiguity between different folks' definitions. IMO it is ethical to violate contracts that would cause undue harm to one of the parties without good cause and furthermore it is unethical for a party to ask another to sign such a contract. And working at another sandwich place is not good cause. Clearly in your opinion you think it is unethical to violate such a contract because you appear to believe that violating any agreement (almost irrespective of context) is unethical. I'd be curious if you think that Jimmy Johns is ethical, unethical, or neutral for inserting such language into a contract in the first place. I would strongly disagree with that being either neutral or ethical.
Not that the US government is an arbiter of ethics, but Jimmy Johns has dropped their non-competes in several states after state Attorneys General filed suit against them: https://www.cnbc.com/2016/06/22/jimmy-johns-drops-non-compet...
I know a guy who overlapped months of two different jobs.
So it exists and happens. And for IC-type positions should be even easier.
If he really is coding 90% of the time though, more power to him.
They can also request that the employer withhold additional taxes; this is fairly common because of situations where both spouses work.
They likely have two healthcare plans, but that's generally not an issue - again, it's fairly common if both spouses are employed.
For the 401K, the individual will just have to make sure that their total contributions between both companies are under the federal limit.
The IRS knows but they don't tell employers.
I've got 10+ years as a design who is also a full stack engineer (node stack). If you're hiring for a role that is well-rounded product, please message me, I'd love to talk.
Portfolio link in my profile.
I'll be starting in mid January since am legally still employed with the old company until 31 December. Still employed since that's how we get our severance, so am enjoying the time off.
The thing that bothered me the most was that I had to update my CV, interview again and all the things related to that. I landed that job in March so I really didn't feel like finding a new one, I also liked the place.
I have a nice resume so was pretty confident I'd find something before the end of the year, so I didn't feel much anxious about it.