This is pretty good advice that can apply to a lot of fields. But the opening note needs to be kept in mind. Their perspective is as an Engineer at Western Startups or mid-large sized corporates....
This is pretty good advice that can apply to a lot of fields. But the opening note needs to be kept in mind. Their perspective is as an Engineer at Western Startups or mid-large sized corporates. But tech is a lot of things between and beyond those points. Being a consultant in the middle east, in house IT in latin america, small dev house in central Africa. There's a lot of little things that needs to be considered, but in the end it's all very "same same but different" (I know that phrase grinds at native English speakers but it's the only one that really gets it across).
Anyway, if I can add some very good advice I picked up sharing an office with an old Novell specialist maintaining a critical government system in 2018. You need to have a good idea of how nontechnical people see you:
Expectation management is one of the biggest parts of this industry and it goes well beyond the code. "Tech" is a horrifically ambiguous term that covers so much. For people in the field it's hyper granular while everyone else (most likely everyone above your manager) puts hardware scientists, project managers and printer repair people in the same box.
Hell, I got out of tech 6 years ago and jumped as far away as I possibly could. And I ended up being the one man e-commerce team at my day job because I was "suited for the job" ("we don't want to pay a cent more than we need to"). I used to work on EAM systems at industrial sites with an interest in integrating legacy analog systems into our SCADA dashboards. I designed the virtual equipment hierarchy module that could drill down into individual screws and welds. The e-store I made can be described as "almost a CLI".
Point of the story: when decisions are made by people outside of your scope; you're going to be judged by their standards of things they know nothing about. And I'm hearing horror stories about companies following the Musk example and setting KPIs about line counts and commits so be aware of that. and I'm definitely not saying you should exploit the flaws in poorly considered metric to puff yourself up while not compromising the work
There also a point that is mentioned but not really dug into.
Create a “How We Make Money” Diagram
He mentioned it in the context of startups and that's very important. A lot of new companies get lost in the sause and focus on value to the detriment of revenue.
But when you get to FANG scale corporate, this is an invaluable exercise to keep yourself covered.
The thing is that at a certain scale, a company is going to cannibalize itself. Google is the prime example. I could rant on this for days but it blows my mind that regulators looked at it and said that Chrome is the key to breaking it up.
When you're dealing with people, be very aware of their goals and metrics because it can run contrary to you own.
Below is just a little rant/anecdote of corporate gig that killed any passion I had for the industry. It's not everywhere, but I've heard similar stories like this out of a many of the biggest companies. And it's not just tech.
Imagine you get a job at a massive tech frim that has a several major diviswill. RnD, support, software licensing and consulting/bespoke development (if you know them, you know). The value chain is obvious. RnD makes software, licensing sells it, consulting deploys it and support will be doing gods work and keeping things running smoothly.
But now you have the situation where licensing needs to sell as many licenses as possible, but customers don't want to pay for premium, in-house consultants to deploy. So licensing will then be recommending the work to third parties they will have thier own support offering. Now consultants have no work, so they have to sell their own licenses. So now you have developers doing sales work for months on end. But the sale need to go through licensing, and there's nothing stopping them from upselling licenses by recommending a cheaper consultant.
Consulting is a sinking (technically sunk) ship, so you jump over to RnD. But it turns out research is a time and cash hole with no guarantee of returns. And you could spend months working on a high value offering, only for a startup to beat you out the gate with a half baked prototype that we essentially whiped out in ideation. The RnD budget it diverted to aquiring that startuo. They slap on a bad API to say it's part of our intergrated ecosystem, ignore the many security and stability issues and licensing ships it out to customers as the the latest and greatest tech that will solve all their problems. This is about where I snapped.
Anyway, while I'm ranting: Agile is a lie made to make MBAs feel like they have something to add. AI is going to be the next Cloud and will never overcome the costs to retail customers. MS is top of the pantheon of slimy, unethical corporates and I hope they crash and burn. And the only thing worse than big corporate is working for you family business and wosre than that is if the two combine.
The original manifesto has some value, but the whole ecosystem is really sad. So so many people don't understand the point of the processes or want to make agile into something it's not. I was...
Agile is a lie made to make MBAs feel like they have something to add.
The original manifesto has some value, but the whole ecosystem is really sad. So so many people don't understand the point of the processes or want to make agile into something it's not.
My first team I worked on was a real honest to god agile team in the spirit of the manifesto and I just assumed that was mostly how everyone worked since everyone and their dog throws around the...
My first team I worked on was a real honest to god agile team in the spirit of the manifesto and I just assumed that was mostly how everyone worked since everyone and their dog throws around the word agile. And when it works agile is an incredible and fulfilling experience.
But I’ve come to believe you really need the right people both on the team and management at every level above the team for it to actually work. Because every other corporate and bureaucratic incentive is pushing against effective agile. And the only people that truly see and experience the magic are the developers themselves.
Add the fact is that unless you’re a start up, you can coast for a long, long time on counterproductive processes if you already have an established customer base. No one is going to know that the product could’ve been 15% better this year if dev time wasn’t wasted on process, meetings, and busywork. Because people only have loss aversion about what is actually in front of them, not what could have been if things were done better.
I feel like almost every agile critics issue is that it's not a universal solution. If I had a team for this e-commerce project, it be perfect to have a an agile team working on the front end and...
I feel like almost every agile critics issue is that it's not a universal solution.
If I had a team for this e-commerce project, it be perfect to have a an agile team working on the front end and continuously developing and improving the customer experience. But I'd never dream of agile for the back end. It's not worth moving fast if breaking something could kill payroll for 200 people or create a tax issue that risks the company.
Its a system that appeals to someone like my boss. They need to feel like progress is happening. So someone could be on a laptop all day securing a $1mil deal, but they favor the guy on the floor helping a $100 retail customers all day. One person is out there moving boxes, shaking hands, talking, real work. And the other guy is reading the same document for the dozenth time so that when the deal is done, it's done properly.
They're both important. The floor guys work will add up and the soft value he generates with happy customers strengthens the business to get the big deal. And that big deal is going to be a big boost that opens up more opportunities. There's no "best" solution for everything, just the right solution for the job.
Is this a7e? I could not figure out what the heck the company does from what’s publicly available on the web, and it surprised me because of how big this company is and how little I have ever...
Is this a7e? I could not figure out what the heck the company does from what’s publicly available on the web, and it surprised me because of how big this company is and how little I have ever heard of it.
If you're talking about AE7, no, but it's an interesting company. They dont work in my area but they are pretty active in the UAE Startup scene. If I understand correctly, they are essentially...
If you're talking about AE7, no, but it's an interesting company.
They dont work in my area but they are pretty active in the UAE Startup scene. If I understand correctly, they are essentially Senior Management as a Service.
They're constantly trying to poach experienced talent with the promise of impactful work without commitment. They target market is startups swimming in VC cash and government tech initiatives with a lot of strategic gaps.
Beside that, I'm not aware of any work they've done or anyone that works there. I get the sense that they hire per client/lead and shuffle you out of you don't make a big enough splash to drum up more work.
Just checked the website to make sure and... Its interesting in a way that I would not want to get involved with.
I’m very lucky to have found one of these straight out of college. Sadly it only lasted a couple years before the pandemic hit, we got a Jira obsessed manager, and everything slowly got worse. To...
Our goal with all of this is to get ourselves onto a good team. You'll know you are on a good team when you spend most of your time just clearing the highway of problems, such is your pace of progress. People are legitimately happy, even if the subject matter is boring. Some of my favorite teams in my career worked on mind-numbingly mundane things but we just had a great time doing it.
Once you find one of these, my advice is to ride it out for as long as possible. They don't last forever, management will come in and destroy it if given enough time. But these are the groups where you will do the most learning and develop the most valuable connections. These are the people who you will hire (or will hire you) five or ten years after you stop working together. That's how incredible the bond of a high-functioning group is and that's what you need to find.
I’m very lucky to have found one of these straight out of college. Sadly it only lasted a couple years before the pandemic hit, we got a Jira obsessed manager, and everything slowly got worse. To quickly cover my next positions:
I quit and went to a new team that wasn’t too bad. Started getting bored right when I got an invitation to apply for a high paying job. Nailed the interview and moved on.
Big company job sucked big time. Super disfunctional. Super toxic. Quit and assumed any smaller company must be good.
Joined a 3 person company on a recommendation. CEO turned out to be a big dick. Quit.
And now I’m wondering if I should go back to my second job or try and find another option.
No, big companies will always pay more than small ones. Please trust I’m doing this for the sake of transparency, and not TeamBlind-style flexing. For each job: Started at $137,500. Ended at...
No, big companies will always pay more than small ones.
Please trust I’m doing this for the sake of transparency, and not TeamBlind-style flexing. For each job:
Started at $137,500. Ended at $160,000 2.5 years later. (Small amount of equity)
Started at $150,000. Ended at $200,000 1 year later. (1% granted, only vested .25%)
Started and ended at approximately $300,000 (salary + equity) and a $40,000 signing bonus. What’s crazy is they didn’t even initially offer a signing bonus. I was paying someone to help me negotiate and they were like “Ugh, they always low ball” (which I understand is crazy because the starting amount was like $288,000 and I still think that’s high). As soon as I said the words signing bonus over the phone to the employer $40k materialized.
Started at $188,000 with 3% equity.
The roller coaster income changes have left me disillusioned with the idea of climbing the income ladder. It’s been clear than money doesn’t mean anything to them, and not too much to me. My quality of life hasn’t changed much with the change in income. What does matter is the development of my social skills and life. Exercising, learning skills outside of work like baking and cooking, joining social groups.
I understand that’s all because the baseline I started at was already pretty high. Take into consideration that the cost of living in my area is high - but I am comfortably above that cost. The studies about how you aren’t more happy with more money after you’re financially comfortable are true. I’m not going to work harder for more money. I’ve already found rewarding positions where I’m able to work essentially part time with full time pay. I’d need to get offered so much more money to bust my ass like a lot of people do in Silicon Valley.
This broadly jibes with my experience. I'll throw a few comments on, though: I actually disagree with this one. Having a portfolio is helpful to you; even halfway-decent interviewers will look and...
This broadly jibes with my experience. I'll throw a few comments on, though:
Should I contribute to an open-source project to improve my resume?
No. Companies that rely on open-source rarely contribute themselves, so why should you? Unless you want to be an unpaid idealist, skip it.
I actually disagree with this one. Having a portfolio is helpful to you; even halfway-decent interviewers will look and use it as a datapoint in the hiring decision, and it gives you something concrete you can talk about in an interview. (You'll want to talk about your previous work experience, if you have any, but you obviously can't share the code for that directly.)
That said, this can of course easily become a second (unpaid) job, which is rarely desirable. So I'd give the following tips:
Ideally, your open source contributions should be of the "scratching your own itch" form. Contributing for the sole purpose of building a portfolio will probably burn you out, and probably be visible to employers, too.
If you're just out of school, you probably have large programming projects for classes. Check with your professor first (the code you wrote is yours, but the problem statement and supporting material are not, and it may not really be possible to disentangle them), but putting these up in a publicly-visible place will be useful for at least a few years post-graduation.
You don't have to contribute to large, established FOSS projects for this. A toy personal project absolutely has value in a portfolio. Spending a few hours a month on something fun or self-educational will give you a nontrivial chunk of code you can talk about and which demos your skills.
Also, of course, you don't have to. Most programmers get hired with no meaningful public portfolio. If coding doesn't spark joy, definitely don't burn yourself out doing extra programming outside of work.
People can either be nice or good at their jobs, both are equally valuable.
This isn't a disjunction; you'll encounter plenty of people who are both nice and good at their jobs. These are, obviously, ideal coworkers, though less prevalent than everyone would hope.
The real condition here is that you can't be neither. People who are nasty and also bad at their job get fired. Talented assholes and friendly oafs might be on the chopping block for layoffs, but won't be proactively terminated.
Assume most of the decisions you are looking at were made by a person as smart or smarter than you and work from there has been a good mental framework when joining a team for me.
This is a good starting point, but a bad ending point. Everyone has cognitive pathologies that result in suboptimal code. Yes, even you! One of the most important things you can learn about your team is what these pathologies are, so you can judge decisions in light of them: was this historical decision made for carefully-considered (but inadequately documented) reasons, or because Senior Engineer Jay, who spearheaded the project, always makes that decision?
(An underappreciated downside to turnover is that when you don't know and can't talk to the person who committed a given headscratcher, there's no longer any way to unwind the decisionmaking.)
Seeing the profit numbers go up doesn't do anything for you.
There's an exception to this: if you like your team and job, your employer going under is obviously going to disrupt that. This is a long-term process at big corps, but can happen quickly—abruptly, even—at small companies or startups.
This is encouraging. My job search right now is a bit tumultuous but I'm hoping it'll all work out in the end. Because tech seems wild right now, I'm in the middle of this moral dilemma where I...
This is encouraging. My job search right now is a bit tumultuous but I'm hoping it'll all work out in the end. Because tech seems wild right now, I'm in the middle of this moral dilemma where I worry I currently might be better off in my pensioned government job, and keeping my serious budding interest in programming to a hobby, but it feels bad to be doing what I'm doing when I could be making more income for my family if this is a skill I have.
For someone like me, if I decide to go that route I have few other options than to create a portfolio piece or contribute to projects.
I'm further on an application than I've ever been, it's actually functional, and it's quite exciting. I believe in the open source cause and I feel like what I'm working on is actually useful and would honestly love to just create something people use, even if it means I have to continue to mop floors. My degree is in art/photography and the artist in me simply truly just wants to make things people can use and enjoy. Though obviously one has to eat. It's tough competition out there right now, although I'm sure I'm just doing something wrong in my job search.
Anyway, I've heard the nice/good thing as being one of those triangles; you need to be two out of three things: nice, good or on time.
While this is possible, don't assume it. Every application is a long shot; hiring rates for junior and mid-level positions are absymal right now (I've heard from colleagues of listings which got...
I'm sure I'm just doing something wrong in my job search.
While this is possible, don't assume it. Every application is a long shot; hiring rates for junior and mid-level positions are absymal right now (I've heard from colleagues of listings which got literally thousands of applicants, a sub-0.1% overall acceptance rate, although obviously almost all of those applicants never interviewed). If you assume a generous 10%—i.e., ten applicants to every opening—you would, given random selection of applicants (which there obviously isn't, but it gives an idea of a baseline), need to apply to seven jobs to beat even odds of acceptance, and 22 for 90%. To reiterate a point from the article, failure is the normal outcome of a job application. Try not to let it get to you, and try to be as objective as you can in your evaluation of your application and interview performance. (Also, if you do interview and are later declined, ask them why and if there's anything you should have done differently when applying.)
The article has a fair bit of useful advice and perspective in it. I'm going to chip in with my own perspective and experience. First, my background is this: I spent about a year and a half in...
The article has a fair bit of useful advice and perspective in it.
I'm going to chip in with my own perspective and experience.
First, my background is this: I spent about a year and a half in college in Electrical Engineering (I wanted Computer Network Systems, but every semester they told me 'the course will be ready next semester'). The first 10 years or so of my working life was in general low-level IT - customer support, break/fix, customer support again for 2 different small local ISPs (back when there were small ISPs), on-site service calls for customers and a lot of general computer repair (both hardware and software).
After that I got into Telecom: first residential install, later commercial infrastructure (OSP). I also had some in-between crap jobs here and there for a few months at a time (low-pay manufacturing, security). Later I got into Telecom Survey as well as autonomous security system service and maintenance - both of those last 2 as occasional contract work.
These days my primary work is eBay selling, mostly precision tools, industrial electronics and whatever else I know well enough to evaluate / service / repair and describe well.
...
So, with my background out of the way, on to actual advice.
Above and beyond anything else, I would strongly encourage DIVERSITY in your skillset. Jobs come and go, job security is basically a thing of the past, and having the ability to slot into (and be qualified for) many different roles gives you income security in a world where you can't achieve job security.
Educate yourself constantly, seeking to acquire at least an entry level understanding of as many inter-related roles in the field you are interested in as possible. There are free online courses and such for darn near everything.
General topics that will serve anyone well to have at least an entry-level familiarity with: behavioral psychology (why do people act, and react, like they do?), business economics (why is the company making this dumb decision and shooting itself in the foot like this?), marketing (what might another department promise customers that you will be expected to deliver on?), OSINT (Open Source Intelligence: want to apply to a company? Research them. Learn how to learn things about companies and people, especially the stuff they don't put out as "we went the public to think this about us"), public speaking / debate (staying calm and composed instead of appearing nervous during interviews, being able to keep your cool in conversation when being aggravated, etc...).
Tech specific topics: Computer hardware (be familiar enough that you can assemble your home PC from parts), operating systems (having at least a minimum familiarity with using Windows/Linux/MacOS on a desktop and both Android and IOS on mobile is helpful for cross-platform literacy), some basic knowledge of coding, even if you don't / can't code yourself, having enough subject-matter literacy to be able to follow a conversation on the topic is of use: knowing what Github is, knowing that Java is mostly used in web-related coding and SQL is for databases, etc... (I don't code, so my advice here is limited). Yes, this is quite general, it is about broad surface-level tech literacy and not having blind spots in large / common areas.
If you are applying for a job: having a bit of research time put into many different aspects of what a company does, aside from the role you are applying for, is of use. It will help you to remain in the conversation actively during an interview when they talk about stuff adjacent to, but not directly in, your intended job role.
This is pretty good advice that can apply to a lot of fields. But the opening note needs to be kept in mind. Their perspective is as an Engineer at Western Startups or mid-large sized corporates. But tech is a lot of things between and beyond those points. Being a consultant in the middle east, in house IT in latin america, small dev house in central Africa. There's a lot of little things that needs to be considered, but in the end it's all very "same same but different" (I know that phrase grinds at native English speakers but it's the only one that really gets it across).
Anyway, if I can add some very good advice I picked up sharing an office with an old Novell specialist maintaining a critical government system in 2018. You need to have a good idea of how nontechnical people see you:
Expectation management is one of the biggest parts of this industry and it goes well beyond the code. "Tech" is a horrifically ambiguous term that covers so much. For people in the field it's hyper granular while everyone else (most likely everyone above your manager) puts hardware scientists, project managers and printer repair people in the same box.
Hell, I got out of tech 6 years ago and jumped as far away as I possibly could. And I ended up being the one man e-commerce team at my day job because I was "suited for the job" ("we don't want to pay a cent more than we need to"). I used to work on EAM systems at industrial sites with an interest in integrating legacy analog systems into our SCADA dashboards. I designed the virtual equipment hierarchy module that could drill down into individual screws and welds. The e-store I made can be described as "almost a CLI".
Point of the story: when decisions are made by people outside of your scope; you're going to be judged by their standards of things they know nothing about. And I'm hearing horror stories about companies following the Musk example and setting KPIs about line counts and commits so be aware of that.
and I'm definitely not saying you should exploit the flaws in poorly considered metric to puff yourself up while not compromising the workThere also a point that is mentioned but not really dug into.
He mentioned it in the context of startups and that's very important. A lot of new companies get lost in the sause and focus on value to the detriment of revenue.
But when you get to FANG scale corporate, this is an invaluable exercise to keep yourself covered.
The thing is that at a certain scale, a company is going to cannibalize itself. Google is the prime example. I could rant on this for days but it blows my mind that regulators looked at it and said that Chrome is the key to breaking it up.
When you're dealing with people, be very aware of their goals and metrics because it can run contrary to you own.
Below is just a little rant/anecdote of corporate gig that killed any passion I had for the industry. It's not everywhere, but I've heard similar stories like this out of a many of the biggest companies. And it's not just tech.
Imagine you get a job at a massive tech frim that has a several major diviswill. RnD, support, software licensing and consulting/bespoke development (if you know them, you know). The value chain is obvious. RnD makes software, licensing sells it, consulting deploys it and support will be doing gods work and keeping things running smoothly.
But now you have the situation where licensing needs to sell as many licenses as possible, but customers don't want to pay for premium, in-house consultants to deploy. So licensing will then be recommending the work to third parties they will have thier own support offering. Now consultants have no work, so they have to sell their own licenses. So now you have developers doing sales work for months on end. But the sale need to go through licensing, and there's nothing stopping them from upselling licenses by recommending a cheaper consultant.
Consulting is a sinking (technically sunk) ship, so you jump over to RnD. But it turns out research is a time and cash hole with no guarantee of returns. And you could spend months working on a high value offering, only for a startup to beat you out the gate with a half baked prototype that we essentially whiped out in ideation. The RnD budget it diverted to aquiring that startuo. They slap on a bad API to say it's part of our intergrated ecosystem, ignore the many security and stability issues and licensing ships it out to customers as the the latest and greatest tech that will solve all their problems. This is about where I snapped.
Anyway, while I'm ranting: Agile is a lie made to make MBAs feel like they have something to add. AI is going to be the next Cloud and will never overcome the costs to retail customers. MS is top of the pantheon of slimy, unethical corporates and I hope they crash and burn. And the only thing worse than big corporate is working for you family business and wosre than that is if the two combine.
The original manifesto has some value, but the whole ecosystem is really sad. So so many people don't understand the point of the processes or want to make agile into something it's not.
I was originally more gung-ho on it because I'd only seen it used well. Then I worked at a bad company and learned where this blog post is coming from: https://ludic.mataroa.blog/blog/i-will-fucking-haymaker-you-if-you-mention-agile-again/
My first team I worked on was a real honest to god agile team in the spirit of the manifesto and I just assumed that was mostly how everyone worked since everyone and their dog throws around the word agile. And when it works agile is an incredible and fulfilling experience.
But I’ve come to believe you really need the right people both on the team and management at every level above the team for it to actually work. Because every other corporate and bureaucratic incentive is pushing against effective agile. And the only people that truly see and experience the magic are the developers themselves.
Add the fact is that unless you’re a start up, you can coast for a long, long time on counterproductive processes if you already have an established customer base. No one is going to know that the product could’ve been 15% better this year if dev time wasn’t wasted on process, meetings, and busywork. Because people only have loss aversion about what is actually in front of them, not what could have been if things were done better.
I feel like almost every agile critics issue is that it's not a universal solution.
If I had a team for this e-commerce project, it be perfect to have a an agile team working on the front end and continuously developing and improving the customer experience. But I'd never dream of agile for the back end. It's not worth moving fast if breaking something could kill payroll for 200 people or create a tax issue that risks the company.
Its a system that appeals to someone like my boss. They need to feel like progress is happening. So someone could be on a laptop all day securing a $1mil deal, but they favor the guy on the floor helping a $100 retail customers all day. One person is out there moving boxes, shaking hands, talking, real work. And the other guy is reading the same document for the dozenth time so that when the deal is done, it's done properly.
They're both important. The floor guys work will add up and the soft value he generates with happy customers strengthens the business to get the big deal. And that big deal is going to be a big boost that opens up more opportunities. There's no "best" solution for everything, just the right solution for the job.
Is this a7e? I could not figure out what the heck the company does from what’s publicly available on the web, and it surprised me because of how big this company is and how little I have ever heard of it.
If you're talking about AE7, no, but it's an interesting company.
They dont work in my area but they are pretty active in the UAE Startup scene. If I understand correctly, they are essentially Senior Management as a Service.
They're constantly trying to poach experienced talent with the promise of impactful work without commitment. They target market is startups swimming in VC cash and government tech initiatives with a lot of strategic gaps.
Beside that, I'm not aware of any work they've done or anyone that works there. I get the sense that they hire per client/lead and shuffle you out of you don't make a big enough splash to drum up more work.
Just checked the website to make sure and... Its interesting in a way that I would not want to get involved with.
I’m very lucky to have found one of these straight out of college. Sadly it only lasted a couple years before the pandemic hit, we got a Jira obsessed manager, and everything slowly got worse. To quickly cover my next positions:
And now I’m wondering if I should go back to my second job or try and find another option.
No, big companies will always pay more than small ones.
Please trust I’m doing this for the sake of transparency, and not TeamBlind-style flexing. For each job:
The roller coaster income changes have left me disillusioned with the idea of climbing the income ladder. It’s been clear than money doesn’t mean anything to them, and not too much to me. My quality of life hasn’t changed much with the change in income. What does matter is the development of my social skills and life. Exercising, learning skills outside of work like baking and cooking, joining social groups.
I understand that’s all because the baseline I started at was already pretty high. Take into consideration that the cost of living in my area is high - but I am comfortably above that cost. The studies about how you aren’t more happy with more money after you’re financially comfortable are true. I’m not going to work harder for more money. I’ve already found rewarding positions where I’m able to work essentially part time with full time pay. I’d need to get offered so much more money to bust my ass like a lot of people do in Silicon Valley.
This broadly jibes with my experience. I'll throw a few comments on, though:
I actually disagree with this one. Having a portfolio is helpful to you; even halfway-decent interviewers will look and use it as a datapoint in the hiring decision, and it gives you something concrete you can talk about in an interview. (You'll want to talk about your previous work experience, if you have any, but you obviously can't share the code for that directly.)
That said, this can of course easily become a second (unpaid) job, which is rarely desirable. So I'd give the following tips:
This isn't a disjunction; you'll encounter plenty of people who are both nice and good at their jobs. These are, obviously, ideal coworkers, though less prevalent than everyone would hope.
The real condition here is that you can't be neither. People who are nasty and also bad at their job get fired. Talented assholes and friendly oafs might be on the chopping block for layoffs, but won't be proactively terminated.
This is a good starting point, but a bad ending point. Everyone has cognitive pathologies that result in suboptimal code. Yes, even you! One of the most important things you can learn about your team is what these pathologies are, so you can judge decisions in light of them: was this historical decision made for carefully-considered (but inadequately documented) reasons, or because Senior Engineer Jay, who spearheaded the project, always makes that decision?
(An underappreciated downside to turnover is that when you don't know and can't talk to the person who committed a given headscratcher, there's no longer any way to unwind the decisionmaking.)
There's an exception to this: if you like your team and job, your employer going under is obviously going to disrupt that. This is a long-term process at big corps, but can happen quickly—abruptly, even—at small companies or startups.
This is encouraging. My job search right now is a bit tumultuous but I'm hoping it'll all work out in the end. Because tech seems wild right now, I'm in the middle of this moral dilemma where I worry I currently might be better off in my pensioned government job, and keeping my serious budding interest in programming to a hobby, but it feels bad to be doing what I'm doing when I could be making more income for my family if this is a skill I have.
For someone like me, if I decide to go that route I have few other options than to create a portfolio piece or contribute to projects.
I'm further on an application than I've ever been, it's actually functional, and it's quite exciting. I believe in the open source cause and I feel like what I'm working on is actually useful and would honestly love to just create something people use, even if it means I have to continue to mop floors. My degree is in art/photography and the artist in me simply truly just wants to make things people can use and enjoy. Though obviously one has to eat. It's tough competition out there right now, although I'm sure I'm just doing something wrong in my job search.
Anyway, I've heard the nice/good thing as being one of those triangles; you need to be two out of three things: nice, good or on time.
While this is possible, don't assume it. Every application is a long shot; hiring rates for junior and mid-level positions are absymal right now (I've heard from colleagues of listings which got literally thousands of applicants, a sub-0.1% overall acceptance rate, although obviously almost all of those applicants never interviewed). If you assume a generous 10%—i.e., ten applicants to every opening—you would, given random selection of applicants (which there obviously isn't, but it gives an idea of a baseline), need to apply to seven jobs to beat even odds of acceptance, and 22 for 90%. To reiterate a point from the article, failure is the normal outcome of a job application. Try not to let it get to you, and try to be as objective as you can in your evaluation of your application and interview performance. (Also, if you do interview and are later declined, ask them why and if there's anything you should have done differently when applying.)
The article has a fair bit of useful advice and perspective in it.
I'm going to chip in with my own perspective and experience.
First, my background is this: I spent about a year and a half in college in Electrical Engineering (I wanted Computer Network Systems, but every semester they told me 'the course will be ready next semester'). The first 10 years or so of my working life was in general low-level IT - customer support, break/fix, customer support again for 2 different small local ISPs (back when there were small ISPs), on-site service calls for customers and a lot of general computer repair (both hardware and software).
After that I got into Telecom: first residential install, later commercial infrastructure (OSP). I also had some in-between crap jobs here and there for a few months at a time (low-pay manufacturing, security). Later I got into Telecom Survey as well as autonomous security system service and maintenance - both of those last 2 as occasional contract work.
These days my primary work is eBay selling, mostly precision tools, industrial electronics and whatever else I know well enough to evaluate / service / repair and describe well.
...
So, with my background out of the way, on to actual advice.
Above and beyond anything else, I would strongly encourage DIVERSITY in your skillset. Jobs come and go, job security is basically a thing of the past, and having the ability to slot into (and be qualified for) many different roles gives you income security in a world where you can't achieve job security.
Educate yourself constantly, seeking to acquire at least an entry level understanding of as many inter-related roles in the field you are interested in as possible. There are free online courses and such for darn near everything.
General topics that will serve anyone well to have at least an entry-level familiarity with: behavioral psychology (why do people act, and react, like they do?), business economics (why is the company making this dumb decision and shooting itself in the foot like this?), marketing (what might another department promise customers that you will be expected to deliver on?), OSINT (Open Source Intelligence: want to apply to a company? Research them. Learn how to learn things about companies and people, especially the stuff they don't put out as "we went the public to think this about us"), public speaking / debate (staying calm and composed instead of appearing nervous during interviews, being able to keep your cool in conversation when being aggravated, etc...).
Tech specific topics: Computer hardware (be familiar enough that you can assemble your home PC from parts), operating systems (having at least a minimum familiarity with using Windows/Linux/MacOS on a desktop and both Android and IOS on mobile is helpful for cross-platform literacy), some basic knowledge of coding, even if you don't / can't code yourself, having enough subject-matter literacy to be able to follow a conversation on the topic is of use: knowing what Github is, knowing that Java is mostly used in web-related coding and SQL is for databases, etc... (I don't code, so my advice here is limited). Yes, this is quite general, it is about broad surface-level tech literacy and not having blind spots in large / common areas.
If you are applying for a job: having a bit of research time put into many different aspects of what a company does, aside from the role you are applying for, is of use. It will help you to remain in the conversation actively during an interview when they talk about stuff adjacent to, but not directly in, your intended job role.