The best ways I keep high performance in my development career includes: 1) get plenty of sleep, 2) step away when you feel stuck and just clear the mind, 3) eat healthy, 4) get regular exercise, 5) positive attitude even if the work sucks (it will from time to time), 6) always be learning new things, 7) help others and accept help from them, 8) stop worrying about timelines 9) stick to 40 hour work week (or less)
@@LinkEX yep, it turns out the way to be most effective in programming is going to teach you a lot about being effective at just about anything. If you don't take care of yourself then how can you do a great job?
In my 10 years of web development I've learned that devs are the smartest "dumb" people on the planet. They will accept almost any kind of abuse, work for peanuts as long as they can work in their favorite programming language and they will work almost all day nights and weekends for free. And then their management has the gull to say they are lazy and difficult to work with. If modern s|avery had a face it would be modern programming, and no I do not care how well you think you are getting paid, if you are getting paid well your boss makes 10 times more from your "free work" after hours.
It might take me several days to think of an architecture that solves a problem without tons of unmaintainable brute force. All the while I not only have managers, but other developers, who dont understand why shit is taking me so long. Because I dont want to build junk, thats why. This industry is infuriating.
Don't forget the part where someone comes up with a 'simpler' solution because YAGNI, all while racking up technical debt the size of their student loan. I'm all for not going full enterprise on everything, but sometimes it really is worth just thinking through the plan before executing it.
Or asking for time lines, while you are still designing, so obviously have no timeline yet. It's as if they expect everything has been done already, and you just crank out the same thing over and over again.
I don't code, I'm an illustrator of children's books and yet I find all the advice and information you give can easily be applied to my industry. A great channel, thank you.
At one company, my average line count was routinely negative, because I spent a lot of time coalescing copied and pasted patterns from offshore developers.
They are getting paid by the lines as well. Once my manager congratulated me because I had the highest number of commits. I wasnt even a developer, I was doing devops and the bot used my Personal Access Token to create tags.
Have you been able to resist the lies others buy into in the software industry? Skip to points: 0:00 Introduction 01:40 Technical Skills Determine Your Success 02:40 Harder Work Gets More Done 04:16 Past Success Determines Future Results 06:27 Bigger Companies Have Better Practices 08:56 Promotions Are Proportional
@Barry Manilowa Interviews technical or not, have little to do with a persons capabilities, beyond the actual testing ( if done) most relevant skills needed are pre-screened during the application process before even getting an interview. The interview is essentially a meet and greet to see if like the guy said, if you fit into the way the company works, if you as a candidate have any quirks that may need addressing in the workplace, and how you socially get on and if you can talk knowledgeable about the function of the role your being hired for.
@Barry Manilowa We also use those types of interview, albeit it as a precursor piece to be discussed at interview, the most favoured method is to mail the candidates a scenario or problem to solve which they bring their solution in with them and present it to the interviewing panel, either printed or on PowerPoint. It is often beneficial as they have no idea of the technical ability of the people on the panel so have to be prepared to field questions and explain in both " simple " and complex details. As to the qualifications they should hopefully have been prechecked during short listing, quite frankly if there are more than 5-6 people appearing for a position ( certainly at the levels i dealt with ) then someone screwed up on the sifting , what its like at the entry or junior level i have no idea, back then it was much like art students, a candidate was judged on portfolio as most skills were not " trained"
I actually agree with you @Barry Manilowa. Much of my current approach is to try and help people cope with a broken system. I can see how advising people on aspects of technical interviews might seem like an endorsement. Believe me, it’s not. Technical interviews are doing massive damage to our industry.
@@HealthyDev At one former employer of mine we discovered quickly that the technical stuff could mainly be addressed with a written low key exam. The real interview was a "personality interview" to see how applicants would interact with the team as a whole (~8 people), and we did bring in the whole team whenever possible and just... interact. A lot of people self-selected one way or the other, and everyone gave and got instant feedback ala radical honesty. It worked, but it was expensive.
One thing I think many software engineers may struggle with is realizing just how vastly different, people are. Our brains are designed to see patterns and solve problems. Unfortunately, people are much too complex to pin point any useful pattern, and even if you did recognize a pattern within someone, it is very likely to change over the course of time. Also, people are not "problems" to solve, even though we may look at them like this,.
Good products come from small, compact, loyal, professional groups of developers. 3 talented programmers, working without any organizational constraints, produce better and faster results than a group of 20 mediocre programmers.
@Vizman216 problem with bigger groups might be leadership, managers, who start to manage people as group, not as individuals and roles they have, causing intercompetition and harmful things inside group, even promote conflict and competition. It is unprofessional, present in all industries, unfortunately software isnt avoid of this. And it can be previous programmer, coz new role comes with this bureacracy stuff and control is nice but can be unproductive.
Large teams do a lot of redundant work. I have seen cases where several products share 90% of the code but management assigns each version to a different person/team who writes 100% of the code. I have also seen cases where teams treat the job as a competition and try to hinder other teams.
Agree completely on determining future results from past success. Often management try to shove their experience down to engineer's throat just because it works on their previous project (which often was built 10+ years ago). Great job on exposing this particularly toxic mindset
i somehow imagine an 'IV' with coffee in it, and having a drip going to your arm. media.istockphoto.com/photos/getting-coffee-through-iv-tube-picture-id184941385?k=6&m=184941385&s=612x612&w=0&h=D6uETC4kjdKuz9UIUDep10bbVsNy1ihDZiW8aJrIYmE=
There was a time in my software career that I did believe the more you worked the more productive you would be. I was working crazy hours not turning down any request my insane manager would ask of me. Then I realized that someone really messed up my code, when I looked at who committed it to source control it was me. I was so tired when i looked at my code in the morning I was like who the f**k did this to my code. I was not thinking straight at midnight and was horrified by the code I wrote when i looked at it in the morning.
these videos are helping me feel a lot better. I feel seniors should be doing this, giving useful advice and support to the newcomers. I remember my first year was horrible, I had no idea of what I was doing but luckily the senior devs at my job had the patience to teach me. Today I feel way more confident in my code thanks to their patience.
That’s great you had willing mentors! Iain Lowe has a lot of good things to say about that in the interview I did with him: ua-cam.com/video/y6KFy6b4Uek/v-deo.html
I agree and would also like to add to Technical Skills Determine Success. I have found that hero’s are rewarded far more than good technical skills. Someone who comes in and saves the day with a big fix, which in most cases is their own bug, is rewarded where if you write good, sound, bug free code, you will go unnoticed.
People call efficiency when I call it lazy. I always like to develop tools to speed up my work. Imagine you need to walk through the desert. I could work as fast as I can, or I can stop to build a bike and go the rest of the way with a bike. It is easier to ride in a bike, and this is why I call the efficiency of the bike as laziness. It means that at the beginning when you start building the bike, you go slower than everyone else. But later you go faster or make less mistakes. 30 years ago there was on ly one choice before workload: Overtime. Today there are 3: * Automate * Coordinate schedules to speed up delivery * Overtime It sounds crazy that I talk about automate when you code. What I automate is my way to make code. Reusable flexible generic libraries, and when possible, code generator. My tools are not intuitive if I do not teach people how to use them. But they are aimed at reducing human error. When you are asleep, no human error saves you time.
Big companies are good if you want a good pension and a good salary. However if you want good experience then work in at a smaller one. You'll get thrown in the deep end but you'll learn a lot fast.
As a rule of thumb, nobody can master more than 2 tech stacks. Consultants who present themselves as experts in 5 or more tech stacks are 100% overrated.
I work at an office doing software development, but ever since COVID-19, we are now working remote. I like both, I didn't have a boss that would micromanage, quite the opposite, he would lead by leaving us alone and letting us do our job. Of course if we needed him he was there, but again he let's us do our jobs.
The only thing I'd add to that is switching jobs is nearly always more profitable. Internal promotions often go under the market rate because they already have you as an employee and it's more convenient for you to accept a promotion than find another job. However if a company is looking to poach you then they're going to have to offer you something that's going to make you jump ship. Otherwise it's not worth the risk and you'll say no so they're never low ball you.
@@AdamSmith-de5oh that's the BIGGEST truth of promotions: passing an interview from another company will get you bigger counter offers for salary raise than any normal promotion ever would.
Relevant to the promotions point: my smartest decision ever as a manager working in the software industry was to promote one of my really high-performing direct reports to be MY manager, which freed me to get back to doing what I like to do best and offloaded a lot of the people management work that I was good at but that I didn't necessarily like doing. Plus, it's nice to have a manager with whom you have an excellent personal rapport. I guess this is kind of a tip for hiring managers: do look for candidates who can grow to replace you, and if one of them is ready, do help them advance their careers.
These lies, in my experience, apply to every industry, which makes this a really insightful video beyond its intended scope. Also, as someone who's be programming for over 30 years as a hobby, it seems like either a disturbing number of modern programmers either outright suck at programming or are horribly mismanaged as teams resulting in buggy, poorly-designed applications. I see evidence of this across all devices and platforms and am not pleased.
Correct. Programmers these days learn all the wrong things and are forced to adhere to it as if it is a religion. The basics are totally skipped and no experience with the fundamentals is build up (for example the costs of memory access patterns). It is all too code focused and not enough data focused. Structuring the data wrong for the processing that needs to be done with it, results in horrible systems.
These programmers are only doing what they are paid to do via the job description. Tote stuff, no elegant programming, no internal efficiencies, etc. You (barely) get what you pay for.
When I code, I love to make my code as flexible as possible. It means that if a change is made, my code is not hardcoded to the situation before the change. Data has its own behavior and corner cases. My code is able to spot if changes were made and notify the changes. When applicable, I also make my code to make a hardware diagnostic when running. No more having users saying "the software does not work" when it actually works. When it does not work, and they get an error, users get surprised because I contact them about the issue right after it happens, as if I was next to them.
Nowadays they are more concerned with making a fancy user interface and adding lots of useless features. Correctness, reliability and efficiency are secondary.
be weary of companies that try to mimic google on the surface...I'm talking about the office space, open office plans....styling, obfuscated floor plans, weird lighting....don't let the wool be pulled over your eyes.
I've always said that the quality of a job depends on the people you work with more than what you do. That's true whether you wash dishes or develop software for satellite systems.
I agree, "Past successes determine future results" - that has been one of the most inhibiting "advice" that has been given to me, in highschool already. While I didn't believe it to be true, it keeps coming back to haunt me regularly.
Yep, I was really impress that AWS curates their datastores manually in production. Yes,... MANUALLY. However, I have learned that this happened due to technical debt and handling an overwhelming amount of new feature that steps in the toes of other teams and existing services. The subproduct, inconsistency and really weird bugs.
bro god damn you spit some game in the two videos of yours i’ve watched. I’ve clicked each one knowing going in it was going to be worthless clickbait for a mid-career (10+ years) programmer who spends a lot of energy being a more “whole person” than I was raised to be. But no wow I’m impressed how real these vids are.
That soft skills are important, even come before good software skills is indeed my experience too. After 5 years working at a large computing company I had my first burnout: for working and trying to learn more in the evenings. From and in Netherlands.
Glad you are figuring some things out that sound like they’ll help you deal with the job better. I’ve never been to the Netherlands yet but the younger of my two sons has a friend there and has visited twice. I hope to see it some day!
Man you're whole channel value proposition is great! I've seen so many burnout devs, being burnout myself. Your message is very important to the industry.
One set of lies that always seems to come up for me. In the interview, they ask a series of technical questions that they expect off the cuff answers to. But once you start working you find that nothing they asked you about was ever used in their codebase. For example, "Inversion of Control", "Encapsulation", and even sadly "Inheritance".
#1 is so spot-on. I've seen people pass interviews with flying colors only to be dropped a few months later. Attitude is supremely important and we focus primarily on tech skills when we interview people.
That is 100% not my experience. I have been straight-up told that "stored procedures are slow" from "senior devs" in 2 companies during interviews. Non-sense. I'll clarify: My experience has been that interviewers are looking for a "cultural fit" (translated: will you put up with our legacy bullshit?) more than actual ability.
@@rabbitcreative Shit senior devs say: "Variables in closures get GC'd" (function sum(a) { return (b) => a+b; } //"a gets GC'd and this doesn't work" ) "You have too many methods, your code will run slow" "Don't use LINQ, for loops are more efficient" "You should reduce number of methods, just add a few more boolean flags in parameters" "You have too many classes, reuse the older ones" (most of old classes are 5k+ line behemoths with multiple extra flags to check every time you need to use them) "We follow best practices"
Such an incredibly true and accurate depiction of the dev industry. Awesome man. Annnnd, yeah #5 lol. At certain levels, just NOT worth it. Id rather just get a cpl side projects a year to make up the difference.
I love your channel. I'm a senior going for my masters in CS and I'm excited to get started on my career. I'll try to watch as many vids as I can from you. Good stuff!
Hey same! I start my masters in the spring 2021 semester, assuming I still have my opportunity there (should know in a month or so). When so you start yours???
In regards to #5... earning an extra 10-20k over 120k base may put you into a new tax bracket that immediately grabs a huge chunk of that promotion so you just added more responsibilities for nothing...
The last thing from the list has happend to me personally. I took a Product management role in addition to dev responsibilities... It was a disaster kekw
Something I had to learn, is that different people make a program better. I am decent at improving code and securing it. It takes me more time than average to write code. So, I now tend to do the paired programming bit, with someone who slings code around. We complement each other, and are more productive as a result.
3 important aspects to one's job - the work you do, the environment you work in (which can include corporate culture and/or computer environment, not just physical environment), the people you work with.
Ive been a mechanical engineer for over 15 years in shipbuilding, oil and gas, and water technologies and all of these apply to all of those industries. Good info though.
How you are respectful towards the viewers and how you introduce us to each beginning and end of a phase in your video (e.g. right after this, until next time thank you, etc.) is much appreciated. Also, thank you for not being overexcited in narrating, I subscribed with the bell on all your content.
The management or company cares about you. We want you to express your opinion. The process is flexible/adaptable. Your career development is important to us. We're giving you autonomy. It's OK to fail.
this video makes me subscribe because I hear a clear cleaver smart that really cares a good way to do things. you have not stuck in one a way of thinking things. not only in the program.
Another thing about big companies is that sometime you just do insignificant things. For example I was working at Ubisoft for 10 years as a UI programmer. I was working on Assassin's creed. It sounds glamorous but I felt that my work did not matter so much be cause we are at some point 800 people on one game. You feel you don't matter so much. It is hard to shine. Now I work in a smaller company as a lead programmer and I am way more happy with my work. I have a lot more recognition for my work. I feel my work matters more. But it's left glamorous then Ubisoft.
Being good actually puts a target on your back. I honestly after 29 years (the entire history of the internet) have to downplay my experience so as not to cause the fear mongering of my younger imposter syndrome ridding co-workers.
Yep I’ve run into this too. I’ve had to learn to hold back and let people struggle more themselves when they feel threatened by information contrary to their experience. Luckily not everyone is like that!
I had project management at University, and the one important thing I learned there was; the bias that you have when working with one project is not something you want to take with you into the next project. Context and planning is very important when approaching a new project, and especially in software you don't really have the luxury to just go ad-hoc development or rush development. Just looking back at the project that I am doing right now, I've made a lot of errors that could have been mended if I took the liberty to plan accordingly and estimate how much time developing the application would take. If you're interested(or anybodey else) in this kind of topic, I do recommend the work by Daniel Kahneman and Tversky when it comes to heuristics and biases.
Great advice. I just hope your software development decisions make more sense than your guitar placement 😅. Ain't nobody getting through that door haha.
On determining future results from past success: many times I've seen an enginenr that's very successful in one team / copmany, but mediocre in another. People tend to overestimate themselves and understimate the enviroment that let them rise. It's often that your perfomance and the value you bring to the table depend on: - the project itself - exectations of stakeholders and the quallity of communacation with management - matching personalies in a team - the way your skill set complements your fellow coleagues. - the way your senoirity matches a team layout
Lots of good advice in this video. If you're starting out, it's good to be wary of working for non-tech start-ups (e.g. biotech) because they usually lack IT leadership and you will lack good mentorship, also be wary of jobs which offer a lot of money but ask you to do the job of several people (e.g. UI/UX, front-end, back-end, cloud network engineer, database engineer, project manager, customer management, etc.), because this is an opportunity that looks great (lots of $) but in the end you are destined to burn out and fail. Ideally you would want to start in a company with a technology product, with senior employees you can learn from, and a specialized responsibility (e.g. front-end only).
Thanks for making this channel, I've been afraid of joining a big company in fear of being subjected to the horridly inhuman crunch practices that software development has become famous for.
I have seen this at small companies too. They often don't know what they really want and they keep changing the specifications until the final deadline.
As someone who worked for the Big 4 for a time, I can attest to his comments . . . First, yes, the company is usually trying to scale way too big so that it can show growth and please investors. This isn't just the case with publicly-traded companies, but also those Big 4 that are private, and just partnerships. The partners are the ones who have the most stake in the company, and so it stands to reason that they want to scale and rake in most of the gains, while screwing the workers without scruples. Second, because the Big 4 are usually so big, you run the risk of getting lost in the shuffle and in the weeds. Also, where you get place and how often you get placed will be influenced by how much a senior manager or equivalent gives a shit about you, and so can watch out for you, and what your rate is. I was hired into the firm at a manager level, and that worked against me. Though I had more than enough experience and presented well to clients, the senior managers in charge of staffing (and the managing directors, to a lesser extent) weren't creative in effectively utilizing me, and that was because I was "too expensive." In most cases, it's far easier to bring on board an analyst-level or consulant-level role because their rates are cheaper and then work them double-time than it is for someone while more experience but who is more expensive. Sometimes, this is something the client wants because they don't want to spend the money, and other times it's the managers who don't want to cut into their rates. At any rate, if you're on the bench at the Big 4 for too long, even if through not fault of your own, you eventually get shown the door.
He’s referring to the Big 4 software companies (Google/FB/Amazon/Apple) are you referring to Big 4 consultancies like Accenture/Deloitte/E&Y/PwC? Very different cultures, though there might be some similar people/politics issues as with any very large companies.
Well said Jayme, Regarding, solutions that works on your previous company but won't work on your current company. It's either "You get the support / approval" or "Not" If it gets approved, and still didn't work, adjust. However sometimes, a more interesting thing happens - Plagiarism / Stealing of ideas Perhaps you could do topic about plagiarism in the software industry, and how you dealt with it. It's been happening quite frequently, I would say around 60% of the companies (been to15+ companies already) I've been to, had an issue with plagiarism at work. (So I believe having a video for this will help a lot of developers out there) It can take many forms, examples: - Asking you, then will rush presenting the idea to the management as his/her own. - Mimicry (will say exactly that same sentence you have said on a previous meeting as his/her own, sometimes even your expressions get copied.) - Blocks your idea, saying it won't work, then presenting it after a few weeks / months (sometimes sugar-coated to appear like a new idea) - Blocks your idea, then after a while you realized they implemented it but someone already took the credit. - Acts as a middleman/free-rider, when it's successful. (Can be observed via Email , meeting or chatgroup)
Wow what a great topic! I agree with you this is more pervasive than many realize. Your list of situations is spot on. I believe people who do this have similar attributes to the type of person I described in the “Is Your Software Leader a Narcissist” video (root cause of feeling of low self worth) but I’m not entirely sure.
Thanks, Jayme, I did re-watched your video "Is Your Software Leader a Narcissist" and even went a little deeper and did some research. Plagiarism at work is indeed a hint that you're dealing with someone with "Narcissistic personality disorder".
Hey just giving you a heads up I’m publishing a video on plagiarism today as you suggested. I mentioned you (not by name) and used a few of your points to cover the topic. In the spirit of not wanting to steal your ideas if you’d like me to credit your points in the comments on that video, just let me know after you’ve watched it.
Sometimes a promotion can backfire. You make more money and have a title that has some weight to it, but you may end up doing less coding/programming and more people wrangling/hand holding.
I have experienced burn out, it's completely worse than I imagined I'm fucked up physically and mentally still trying to recover 10 months later and it's really difficult because now I do all I can to avoid work and its unconscious because I feel useless afterwards
I had multiple "talks" with my manager trying to prove to me (and others on the project) that "well, this solution works for that other project so it will work here too" while not taking into account and understanding many differences between those projects - scale of team, scope of the project, differences between teams on those projects when it comes to skill set, experience etc. He tried to force in his solutions which resulted that after just 1 month pretty much everyone on the project had enough, there were a lot of arguments, morale went through the floor etc. And he was like you said - pretty good when it comes to tech stuff but has no clue how to talk with people, how to communicate, prepare a proper planning for implementing changes etc. That was worst time on the project when he was in. That was the first time that I really started to think about leaving the company.
Thank you for that kind of bright advices you have made of this profession. It is actually fine to see anybody with simillar opinion, interpretation. Keep up your work up!
Thank you for this information. I am thinking of getting back into the programming space as I have been in support for most of my career. This will help me to watch out for these issues.
3 pillars of good software 1. Does what it was indended to do 2. Performance 3. Scalability , patterns and design If you rush into the blinking cursor, one of these are going to suffer. Or more. If you wait and think about the problem, get creative with it, you come up with software that is elegent, code that does not need microoptimizations, and code that does what you need it to do, all stemming from the idea of having more foreknowledge.
MY Top 4 are: 1. "No one ever got fired for buying IBM (or Microsoft)!" and 2. "Use SQL Server in your project, and it will succeed!" and 3. "Object Orientation" and 4. "Developers, Developers, Developers!" (I believe that Microsoft (and probably many other companies) does not care about developers as much as it cares about THEMSELVES).
So many people ask me why I don't use an IDE. For me, it's because the few features I could need are always buried under cruft I have never needed in 30+ years. If your manual is as long as your source, it's not built right. Period. What works for one person or group may be unsuitable for another.
Absolutely! If companies would stop trying to blow up and instead grow sustainably, our economy would benefit from less “pump and dump” of companies acquired on buzz and then dissolved once the problems emerge. One can hope ;)
One thing I have learned is this. I am not the best programmer or the fastest programmer. There is a person who I respect who is very fast and many would call a good programmer. However the longer I have been here and the more I have learned, he is fast but Idk if he is particularly good. In honesty I feel like that sums up being a "Software Engineer"
To me, there is truth in vulnerability. I think few people would think its worth exclaiming a lie if it had some chance of making them looking weak, unusual, etc. Thus its more likely that 'A company has made profit every quarter' is a lie. Saying something like 'We had some good quarters but the last two were really bad" is more likely the truth.
I am listening to this video on 2021, and it is still pretty useful. The most difficult part to accept but it is a reality is that not all teams are made for us to be fit, when it comes to soft skills it is pretty tired to deal with narcissist developers.
On the subject of lies, my favorite quote is from H. Mudd on the original Star Trek. "Now listen to this carefully, Norman. I am... lying. " Norman is an android that Mudd and the Enterprise crew are trying to confuse.
Interesting topic you have chosen! It's actually quite interesting to hear you break down the challenges from a non-technical perspective. However, I feel you are just scratching the surface. I have been earning money on writing software for 40 years by now and I have learned that one of the strongest forces that often gets underestimated, or even misconstrued, is that of self-fulfilling prophecies. A little of this is even 'baked in' to your choice of words when you say Lies! The truth is that every one of these 5 points can be nurtured, through positive thinking and, say gifted metrics ... into positive and achievable goals! And still, your observations are most relatable and true! I come to think of an annoying statement about job-interviews, that the decision is almost always determined in the first few minutes. As a senior consultant, I've learned that that becomes true if, and only if, you actually buy that! A typical example of a self-fulfilling prophecy. Whether it's about job-/assignment -interviews or methodology/process ... ... you just have to know what you want to achieve and what matters. Still, very enjoyable and relatable to watch. :-)
Thanks for sharing this video. It's given me a heads up of what to expect in the development industry. I'm switching from design to development. I've experienced some of the points outlined in this video.
When researching whether to take a job at a bigger company, look at how many companies they have been acquiring (press statements). If it's a lot then that should be a warning sign for Devs. It might be that they've made a lot of money, but there may well be the chaos warned about in this video.
I dislike the 2nd suggestion, I feel it leans towards optimising code before it even needs optimising. No one ever finds the perfect solution to a problem, as just like the English language there can be many ways to write the same thing. You just need to use experience to find the best balance between time, complexity and readability for your changes. Thanks for the information as always!
I’ve been out of the industry for over 20 years and the exact same garbage is still going on. All of the problems/lies here are mostly management issues. It appears that the things that drove me away are fundamentals that are not going to change. effective communication is paramount! I sat in a meeting where my part of a large project needed to be integrated for a Monday morning deadline. Management was pushing for everyone to work all weekend in hopes to meet that deadline. I knew that it simply wouldn’t be possible as the team didn’t have the ability for the complex change. In the end, I took the political hit and ‘told’ management what to do to the sighs of relief from the whole team. A simple request to extend the deadline BEFORE the other company allocated resources for implementation would be met with a simple ‘okay’. In the end it turned into a ‘nonevent’ because I stood up and spoke. In that company it worked out well. In others I worked, I was fired for ‘daring’ to tell management how to do their jobs that they weren’t doing. I see the industry as a whole is still a complete mess.
I personally feel like we developed interest in software with a learning perspective and to build something useful with as simplicity as possible. But the more we get into jobs, we realise just because the companies offer more money than probably any other occupation, we are forced into making a mess out of the mental and physical well being we possess and also to produce useless stuff which we don't want to do.
People really hate each other in these IT corporate environments.. But they not showing it.. is in their hearts... saying that your coworker is doing a better job is like taking money from your pocket..you always have performance reviews and you are evaluated based on what your coworkers say ...
An advanced dev can take a complex problem and use advanced knowledge of the language and framework to make it simple, short, concise, easily readable, easily manageable even to less experienced devs, and allow it to be adaptable for future changes. It takes a lot of time and experience to build up to being able to do that. An advanced dev doesn't mean you can take a complex problem and show off your thousand line solution that hardly anybody else can understand.
I recruit you for the new computer architecture and ASM im working on. Its like Nothing you have seen before. You could call it a Digital Wetware. A protocol and natural function by physical design is in place that allows the computer to not need a clock. Except for if you wanted to work with audio for example... you don't want to play a five minute song in a split second, etc. But outside of that category of human interaction there is no clock.
I got started as a junior developer for a company that didn't understand point number 2. It kills me now to look back at the absolute garbage I was pumping out day after day, creating an unmaintainable behemoth of a codebase just because my boss always told me to write quick and dirty.
What if you turn down a "promotion" based on the extra responsibilities outweighing the small amount of extra money, but then the company sees you as not progressing? Maybe at that point, when downsizing has to happen, you're then looked at as one of the people they can get rid of?
Good question. I believe that’s all about perception and what you communicate. Many people should absolutely not lead teams. They are fantastic individual contributors and don’t have the desire to work more with people. That’s fine, if you let your employer know you love learning new technology and being a productive member of the team there’s no reason they should have a problem with that. I say should - but there are always the people who don’t get that. As far as being laid off there’s really little you can do to prevent it. Even if you’re leading or a solid contributor if they decide to downsize it’s usually much of a crapshoot. I wouldn’t spend any energy trying to prevent that. Just live within your means, do an honest good job, save, and live your life! My personal opinion of course (to be taken with a grain of salt as always).
Hi Jayme, greets from Brazil. Do you have some video about "how tech jobs interviews can make you feel like NOTHING, just because you are NOT the tech stack semi god":
Ha!!! I hear you and can relate. Yes I plan to make future videos about coping with the ridiculousness of our current broken interview process better. 🤚 It’s a hard problem but I do believe I may be able to share some perspective that will help.
@@HealthyDev Thanks Jayme. Congratulations for this kind of content. I'm facing a very very difficult moment in my 15+ years on software development industry. Your videos are helping me a lot to see things for another perspective.
The best ways I keep high performance in my development career includes: 1) get plenty of sleep, 2) step away when you feel stuck and just clear the mind, 3) eat healthy, 4) get regular exercise, 5) positive attitude even if the work sucks (it will from time to time), 6) always be learning new things, 7) help others and accept help from them, 8) stop worrying about timelines 9) stick to 40 hour work week (or less)
Wise ways. I like your list. 👍
I mean, I agree.
But that's less about _software_ development, and more about _self_ development in general, haha.
@@LinkEX yep, it turns out the way to be most effective in programming is going to teach you a lot about being effective at just about anything. If you don't take care of yourself then how can you do a great job?
I 💯 agree
In my 10 years of web development I've learned that devs are the smartest "dumb" people on the planet. They will accept almost any kind of abuse, work for peanuts as long as they can work in their favorite programming language and they will work almost all day nights and weekends for free. And then their management has the gull to say they are lazy and difficult to work with.
If modern s|avery had a face it would be modern programming, and no I do not care how well you think you are getting paid, if you are getting paid well your boss makes 10 times more from your "free work" after hours.
The algorithm brought me here and I am not leaving.
The algorithm has detected that I'm stressed out and burning out.
same!
Yep, same here
All hail the algorithm
the algorithm has one huge draw back. it keeps giving me the same stuff. over and over and over again. im so bored im watching programming videos.
In big companies, the most important skill is navigating the bureaucracy and keeping it from thwarting your efforts.
Man...I wish I came across this when I started.
I've fallen afoul of this. Any tips for the newbies?
@@Thecoffeefreak avoid being part of the bureaucracy, focus on yourself takes effort and continue to code to provide services and solutions.
Reintermediate user-centric mindshare. That way everybody is on the same page, even if it’s not the correct page,
What does that mean? I am interested if you could explain in simpler words please?
It might take me several days to think of an architecture that solves a problem without tons of unmaintainable brute force. All the while I not only have managers, but other developers, who dont understand why shit is taking me so long. Because I dont want to build junk, thats why. This industry is infuriating.
the irony for me is your name XD parkinson
@@blacklabel130 No, its not. Read better.
Don't forget the part where someone comes up with a 'simpler' solution because YAGNI, all while racking up technical debt the size of their student loan.
I'm all for not going full enterprise on everything, but sometimes it really is worth just thinking through the plan before executing it.
U r my hero
Or asking for time lines, while you are still designing, so obviously have no timeline yet. It's as if they expect everything has been done already, and you just crank out the same thing over and over again.
I don't code, I'm an illustrator of children's books and yet I find all the advice and information you give can easily be applied to my industry. A great channel, thank you.
Yep. Applies on any industry, and to be honest, sorry to say but all this advice was, while true, but rather cliche and common sense.
At one company, my average line count was routinely negative, because I spent a lot of time coalescing copied and pasted patterns from offshore developers.
Then you have to pay the company :^)
They are getting paid by the lines as well.
Once my manager congratulated me because I had the highest number of commits. I wasnt even a developer, I was doing devops and the bot used my Personal Access Token to create tags.
Herp Derpingson
LMAO, yes!
@@herp_derpingson manager went to the school of "toxic agile" on this channel :D
when the entire logic of a function is wrapped in a try catch block
Have you been able to resist the lies others buy into in the software industry?
Skip to points:
0:00 Introduction
01:40 Technical Skills Determine Your Success
02:40 Harder Work Gets More Done
04:16 Past Success Determines Future Results
06:27 Bigger Companies Have Better Practices
08:56 Promotions Are Proportional
@Barry Manilowa Interviews technical or not, have little to do with a persons capabilities, beyond the actual testing ( if done) most relevant skills needed are pre-screened during the application process before even getting an interview.
The interview is essentially a meet and greet to see if like the guy said, if you fit into the way the company works, if you as a candidate have any quirks that may need addressing in the workplace, and how you socially get on and if you can talk knowledgeable about the function of the role your being hired for.
@Barry Manilowa We also use those types of interview, albeit it as a precursor piece to be discussed at interview, the most favoured method is to mail the candidates a scenario or problem to solve which they bring their solution in with them and present it to the interviewing panel, either printed or on PowerPoint.
It is often beneficial as they have no idea of the technical ability of the people on the panel so have to be prepared to field questions and explain in both " simple " and complex details.
As to the qualifications they should hopefully have been prechecked during short listing, quite frankly if there are more than 5-6 people appearing for a position ( certainly at the levels i dealt with ) then someone screwed up on the sifting , what its like at the entry or junior level i have no idea, back then it was much like art students, a candidate was judged on portfolio as most skills were not " trained"
I actually agree with you @Barry Manilowa. Much of my current approach is to try and help people cope with a broken system. I can see how advising people on aspects of technical interviews might seem like an endorsement. Believe me, it’s not. Technical interviews are doing massive damage to our industry.
@@HealthyDev At one former employer of mine we discovered quickly that the technical stuff could mainly be addressed with a written low key exam. The real interview was a "personality interview" to see how applicants would interact with the team as a whole (~8 people), and we did bring in the whole team whenever possible and just... interact. A lot of people self-selected one way or the other, and everyone gave and got instant feedback ala radical honesty. It worked, but it was expensive.
@@daveloynd3523 probably not as expensive as a bad hire! I like it.
One thing I think many software engineers may struggle with is realizing just how vastly different, people are. Our brains are designed to see patterns and solve problems. Unfortunately, people are much too complex to pin point any useful pattern, and even if you did recognize a pattern within someone, it is very likely to change over the course of time. Also, people are not "problems" to solve, even though we may look at them like this,.
Good products come from small, compact, loyal, professional groups of developers. 3 talented programmers, working without any organizational constraints, produce better and faster results than a group of 20 mediocre programmers.
What one programmer can produce in one month, two programmers can produce in two months.
@Vizman216 problem with bigger groups might be leadership, managers, who start to manage people as group, not as individuals and roles they have, causing intercompetition and harmful things inside group, even promote conflict and competition. It is unprofessional, present in all industries, unfortunately software isnt avoid of this. And it can be previous programmer, coz new role comes with this bureacracy stuff and control is nice but can be unproductive.
Agreed. I've worked with many teams in my time. The smaller teams are always better
Large teams do a lot of redundant work. I have seen cases where several products share 90% of the code but management assigns each version to a different person/team who writes 100% of the code. I have also seen cases where teams treat the job as a competition and try to hinder other teams.
Agree completely on determining future results from past success. Often management try to shove their experience down to engineer's throat just because it works on their previous project (which often was built 10+ years ago). Great job on exposing this particularly toxic mindset
Thanks and welcome to the channel!
Jenkins worked for our previous company. Let’s scale it up here in this new company too!!
I was drinking so much coffee at one point that I cut my daily amount by half and turned out to be more productive on those days.
i somehow imagine an 'IV' with coffee in it, and having a drip going to your arm. media.istockphoto.com/photos/getting-coffee-through-iv-tube-picture-id184941385?k=6&m=184941385&s=612x612&w=0&h=D6uETC4kjdKuz9UIUDep10bbVsNy1ihDZiW8aJrIYmE=
Yeah whatever I stopped shooting heroine and my numbers skyrocketed
had to switch from espresso and IPA to redbull and whiskey ;)
There was a time in my software career that I did believe the more you worked the more productive you would be. I was working crazy hours not turning down any request my insane manager would ask of me. Then I realized that someone really messed up my code, when I looked at who committed it to source control it was me. I was so tired when i looked at my code in the morning I was like who the f**k did this to my code. I was not thinking straight at midnight and was horrified by the code I wrote when i looked at it in the morning.
Loving your channel. Saying the things that need to be said!
Thanks for your support! I hope some of the information can help you.
these videos are helping me feel a lot better. I feel seniors should be doing this, giving useful advice and support to the newcomers. I remember my first year was horrible, I had no idea of what I was doing but luckily the senior devs at my job had the patience to teach me. Today I feel way more confident in my code thanks to their patience.
That’s great you had willing mentors! Iain Lowe has a lot of good things to say about that in the interview I did with him: ua-cam.com/video/y6KFy6b4Uek/v-deo.html
I agree and would also like to add to Technical Skills Determine Success. I have found that hero’s are rewarded far more than good technical skills. Someone who comes in and saves the day with a big fix, which in most cases is their own bug, is rewarded where if you write good, sound, bug free code, you will go unnoticed.
People call efficiency when I call it lazy. I always like to develop tools to speed up my work. Imagine you need to walk through the desert. I could work as fast as I can, or I can stop to build a bike and go the rest of the way with a bike. It is easier to ride in a bike, and this is why I call the efficiency of the bike as laziness. It means that at the beginning when you start building the bike, you go slower than everyone else. But later you go faster or make less mistakes.
30 years ago there was on ly one choice before workload: Overtime.
Today there are 3:
* Automate
* Coordinate schedules to speed up delivery
* Overtime
It sounds crazy that I talk about automate when you code. What I automate is my way to make code. Reusable flexible generic libraries, and when possible, code generator.
My tools are not intuitive if I do not teach people how to use them. But they are aimed at reducing human error. When you are asleep, no human error saves you time.
Big companies are good if you want a good pension and a good salary. However if you want good experience then work in at a smaller one. You'll get thrown in the deep end but you'll learn a lot fast.
As a rule of thumb, nobody can master more than 2 tech stacks. Consultants who present themselves as experts in 5 or more tech stacks are 100% overrated.
working remote is best... nobody really like to have coworkers or a boss that watch him all the time.
Amen, the lingering creeper Boss. *shivers*
Amen to that!
@@jonmsawyer what do you mean?
I work at an office doing software development, but ever since COVID-19, we are now working remote. I like both, I didn't have a boss that would micromanage, quite the opposite, he would lead by leaving us alone and letting us do our job. Of course if we needed him he was there, but again he let's us do our jobs.
@@samsarasap4911 Amen to working remotely.
Completly agree on what you said regarding promotions. Great video.
Strange Games Thanks for your feedback, I’m glad you agree!
The only thing I'd add to that is switching jobs is nearly always more profitable. Internal promotions often go under the market rate because they already have you as an employee and it's more convenient for you to accept a promotion than find another job. However if a company is looking to poach you then they're going to have to offer you something that's going to make you jump ship. Otherwise it's not worth the risk and you'll say no so they're never low ball you.
@@AdamSmith-de5oh that's the BIGGEST truth of promotions: passing an interview from another company will get you bigger counter offers for salary raise than any normal promotion ever would.
Relevant to the promotions point: my smartest decision ever as a manager working in the software industry was to promote one of my really high-performing direct reports to be MY manager, which freed me to get back to doing what I like to do best and offloaded a lot of the people management work that I was good at but that I didn't necessarily like doing. Plus, it's nice to have a manager with whom you have an excellent personal rapport. I guess this is kind of a tip for hiring managers: do look for candidates who can grow to replace you, and if one of them is ready, do help them advance their careers.
😂. That is like making your best servant "the Boss" of your house. Bravo Sherlock! Now he can kick you out anytime!
@@High_7 then he'll just go somewhere else. You have an impoverished mind.
These lies, in my experience, apply to every industry, which makes this a really insightful video beyond its intended scope. Also, as someone who's be programming for over 30 years as a hobby, it seems like either a disturbing number of modern programmers either outright suck at programming or are horribly mismanaged as teams resulting in buggy, poorly-designed applications. I see evidence of this across all devices and platforms and am not pleased.
Correct.
Programmers these days learn all the wrong things and are forced to adhere to it as if it is a religion.
The basics are totally skipped and no experience with the fundamentals is build up (for example the costs of memory access patterns).
It is all too code focused and not enough data focused.
Structuring the data wrong for the processing that needs to be done with it, results in horrible systems.
These programmers are only doing what they are paid to do via the job description. Tote stuff, no elegant programming, no internal efficiencies, etc. You (barely) get what you pay for.
When I code, I love to make my code as flexible as possible. It means that if a change is made, my code is not hardcoded to the situation before the change. Data has its own behavior and corner cases. My code is able to spot if changes were made and notify the changes.
When applicable, I also make my code to make a hardware diagnostic when running. No more having users saying "the software does not work" when it actually works. When it does not work, and they get an error, users get surprised because I contact them about the issue right after it happens, as if I was next to them.
Nowadays they are more concerned with making a fancy user interface and adding lots of useless features. Correctness, reliability and efficiency are secondary.
Thanks for making this awesome video. Always good to hear some rational and cool-headed opinions on the industry
be weary of companies that try to mimic google on the surface...I'm talking about the office space, open office plans....styling, obfuscated floor plans, weird lighting....don't let the wool be pulled over your eyes.
I've always said that the quality of a job depends on the people you work with more than what you do. That's true whether you wash dishes or develop software for satellite systems.
I agree, "Past successes determine future results" - that has been one of the most inhibiting "advice" that has been given to me, in highschool already.
While I didn't believe it to be true, it keeps coming back to haunt me regularly.
Yep, I was really impress that AWS curates their datastores manually in production. Yes,... MANUALLY. However, I have learned that this happened due to technical debt and handling an overwhelming amount of new feature that steps in the toes of other teams and existing services. The subproduct, inconsistency and really weird bugs.
As a web devolper I gotta say: Listen to this man, he knows what's up.
bro god damn you spit some game in the two videos of yours i’ve watched. I’ve clicked each one knowing going in it was going to be worthless clickbait for a mid-career (10+ years) programmer who spends a lot of energy being a more “whole person” than I was raised to be. But no wow I’m impressed how real these vids are.
That soft skills are important, even come before good software skills is indeed my experience too. After 5 years working at a large computing company I had my first burnout: for working and trying to learn more in the evenings. From and in Netherlands.
Glad you are figuring some things out that sound like they’ll help you deal with the job better. I’ve never been to the Netherlands yet but the younger of my two sons has a friend there and has visited twice. I hope to see it some day!
Man you're whole channel value proposition is great! I've seen so many burnout devs, being burnout myself.
Your message is very important to the industry.
Thanks Daniel - welcome to the channel! 🙏
@@HealthyDev Feel free to checkout my channel if you have some spare time, take care
Nice, I will do that! Cheers.
One set of lies that always seems to come up for me. In the interview, they ask a series of technical questions that they expect off the cuff answers to. But once you start working you find that nothing they asked you about was ever used in their codebase. For example, "Inversion of Control", "Encapsulation", and even sadly "Inheritance".
#1 is so spot-on. I've seen people pass interviews with flying colors only to be dropped a few months later. Attitude is supremely important and we focus primarily on tech skills when we interview people.
That is 100% not my experience. I have been straight-up told that "stored procedures are slow" from "senior devs" in 2 companies during interviews. Non-sense.
I'll clarify: My experience has been that interviewers are looking for a "cultural fit" (translated: will you put up with our legacy bullshit?) more than actual ability.
@@rabbitcreative Shit senior devs say:
"Variables in closures get GC'd" (function sum(a) { return (b) => a+b; } //"a gets GC'd and this doesn't work" )
"You have too many methods, your code will run slow"
"Don't use LINQ, for loops are more efficient"
"You should reduce number of methods, just add a few more boolean flags in parameters"
"You have too many classes, reuse the older ones" (most of old classes are 5k+ line behemoths with multiple extra flags to check every time you need to use them)
"We follow best practices"
Such an incredibly true and accurate depiction of the dev industry. Awesome man. Annnnd, yeah #5 lol. At certain levels, just NOT worth it. Id rather just get a cpl side projects a year to make up the difference.
Much truth here, from a 25+ year veteran. I'm promoting this where I can.
I love your channel. I'm a senior going for my masters in CS and I'm excited to get started on my career. I'll try to watch as many vids as I can from you. Good stuff!
Thank you. Welcome to the channel! I hope this stuff helps you avoid some unnecessary pain. 👍
Hey same! I start my masters in the spring 2021 semester, assuming I still have my opportunity there (should know in a month or so). When so you start yours???
In regards to #5... earning an extra 10-20k over 120k base may put you into a new tax bracket that immediately grabs a huge chunk of that promotion so you just added more responsibilities for nothing...
I thought I was the only one feeling this way. Thanks
+David James McLean you most definitely are not! Thanks for the feedback. 👍
I really needed this, i am seriously thinking in abandon software development and study another career or search a job in another related area.
That information should be taught to everyone who thinks about working in programming, managers and recruiters.
Thanks, I wish someone told me this when I started. I know for some of us this information might seem obvious, but I hope it helps someone out there!
The last thing from the list has happend to me personally. I took a Product management role in addition to dev responsibilities... It was a disaster kekw
Something I had to learn, is that different people make a program better.
I am decent at improving code and securing it. It takes me more time than average to write code. So, I now tend to do the paired programming bit, with someone who slings code around. We complement each other, and are more productive as a result.
Great attitude. You're going to do well :)
3 important aspects to one's job - the work you do, the environment you work in (which can include corporate culture and/or computer environment, not just physical environment), the people you work with.
Completely agree!
Ive been a mechanical engineer for over 15 years in shipbuilding, oil and gas, and water technologies and all of these apply to all of those industries. Good info though.
the biggest lies i was told in programing were
1. you cant
2. we dont
3. thats wrong
4. we need you
5. thats not possible
Nice list. I mean not nice that you’ve had to deal with it, but I can definitely relate...
@@HealthyDev i thought about adding a bonus one ... 6. sure of course you get payed :D
How you are respectful towards the viewers and how you introduce us to each beginning and end of a phase in your video (e.g. right after this, until next time thank you, etc.) is much appreciated.
Also, thank you for not being overexcited in narrating, I subscribed with the bell on all your content.
Thanks Mehdi welcome to the channel! Appreciate the feedback and support. 👍
I appreciate the way you notated this video, where I can hover over the timeline an see the points.
The management or company cares about you.
We want you to express your opinion.
The process is flexible/adaptable.
Your career development is important to us.
We're giving you autonomy.
It's OK to fail.
I wanted to comment: "Which company is this? I want to work there."
this video makes me subscribe because I hear a clear cleaver smart that really cares a good way to do things. you have not stuck in one a way of thinking things. not only in the program.
This advice is so amazing I'm glad he is telling people about these things. Literally will help so many people.
Thanks Adam I sure hope so! 🙏
Another thing about big companies is that sometime you just do insignificant things. For example I was working at Ubisoft for 10 years as a UI programmer. I was working on Assassin's creed. It sounds glamorous but I felt that my work did not matter so much be cause we are at some point 800 people on one game. You feel you don't matter so much. It is hard to shine. Now I work in a smaller company as a lead programmer and I am way more happy with my work. I have a lot more recognition for my work. I feel my work matters more. But it's left glamorous then Ubisoft.
Being good actually puts a target on your back. I honestly after 29 years (the entire history of the internet) have to downplay my experience so as not to cause the fear mongering of my younger imposter syndrome ridding co-workers.
Yep I’ve run into this too. I’ve had to learn to hold back and let people struggle more themselves when they feel threatened by information contrary to their experience. Luckily not everyone is like that!
I had project management at University, and the one important thing I learned there was; the bias that you have when working with one project is not something you want to take with you into the next project.
Context and planning is very important when approaching a new project, and especially in software you don't really have the luxury to just go ad-hoc development or rush development.
Just looking back at the project that I am doing right now, I've made a lot of errors that could have been mended if I took the liberty to plan accordingly and estimate how much time developing the application would take.
If you're interested(or anybodey else) in this kind of topic, I do recommend the work by Daniel Kahneman and Tversky when it comes to heuristics and biases.
Good stuff - thanks for sharing a resource with us! 👍
Great advice. I just hope your software development decisions make more sense than your guitar placement 😅. Ain't nobody getting through that door haha.
On determining future results from past success: many times I've seen an enginenr that's very successful in one team / copmany, but mediocre in another. People tend to overestimate themselves and understimate the enviroment that let them rise.
It's often that your perfomance and the value you bring to the table depend on:
- the project itself
- exectations of stakeholders and the quallity of communacation with management
- matching personalies in a team
- the way your skill set complements your fellow coleagues.
- the way your senoirity matches a team layout
Lots of good advice in this video. If you're starting out, it's good to be wary of working for non-tech start-ups (e.g. biotech) because they usually lack IT leadership and you will lack good mentorship, also be wary of jobs which offer a lot of money but ask you to do the job of several people (e.g. UI/UX, front-end, back-end, cloud network engineer, database engineer, project manager, customer management, etc.), because this is an opportunity that looks great (lots of $) but in the end you are destined to burn out and fail. Ideally you would want to start in a company with a technology product, with senior employees you can learn from, and a specialized responsibility (e.g. front-end only).
Thanks for making this channel, I've been afraid of joining a big company in fear of being subjected to the horridly inhuman crunch practices that software development has become famous for.
This is really dependent on a company. There are stories of small game development companies that have crazy schedules.
I have seen this at small companies too. They often don't know what they really want and they keep changing the specifications until the final deadline.
As someone who worked for the Big 4 for a time, I can attest to his comments . . .
First, yes, the company is usually trying to scale way too big so that it can show growth and please investors. This isn't just the case with publicly-traded companies, but also those Big 4 that are private, and just partnerships. The partners are the ones who have the most stake in the company, and so it stands to reason that they want to scale and rake in most of the gains, while screwing the workers without scruples.
Second, because the Big 4 are usually so big, you run the risk of getting lost in the shuffle and in the weeds. Also, where you get place and how often you get placed will be influenced by how much a senior manager or equivalent gives a shit about you, and so can watch out for you, and what your rate is. I was hired into the firm at a manager level, and that worked against me. Though I had more than enough experience and presented well to clients, the senior managers in charge of staffing (and the managing directors, to a lesser extent) weren't creative in effectively utilizing me, and that was because I was "too expensive." In most cases, it's far easier to bring on board an analyst-level or consulant-level role because their rates are cheaper and then work them double-time than it is for someone while more experience but who is more expensive. Sometimes, this is something the client wants because they don't want to spend the money, and other times it's the managers who don't want to cut into their rates.
At any rate, if you're on the bench at the Big 4 for too long, even if through not fault of your own, you eventually get shown the door.
He’s referring to the Big 4 software companies (Google/FB/Amazon/Apple) are you referring to Big 4 consultancies like Accenture/Deloitte/E&Y/PwC? Very different cultures, though there might be some similar people/politics issues as with any very large companies.
Well said Jayme,
Regarding, solutions that works on your previous company but won't work on your current company.
It's either "You get the support / approval" or "Not"
If it gets approved, and still didn't work, adjust.
However sometimes, a more interesting thing happens
- Plagiarism / Stealing of ideas
Perhaps you could do topic about plagiarism in the software industry, and how you dealt with it.
It's been happening quite frequently, I would say around 60% of the companies (been to15+ companies already) I've been to, had an issue with plagiarism at work.
(So I believe having a video for this will help a lot of developers out there)
It can take many forms, examples:
- Asking you, then will rush presenting the idea to the management as his/her own.
- Mimicry (will say exactly that same sentence you have said on a previous meeting as his/her own, sometimes even your expressions get copied.)
- Blocks your idea, saying it won't work, then presenting it after a few weeks / months (sometimes sugar-coated to appear like a new idea)
- Blocks your idea, then after a while you realized they implemented it but someone already took the credit.
- Acts as a middleman/free-rider, when it's successful. (Can be observed via Email , meeting or chatgroup)
Wow what a great topic! I agree with you this is more pervasive than many realize. Your list of situations is spot on. I believe people who do this have similar attributes to the type of person I described in the “Is Your Software Leader a Narcissist” video (root cause of feeling of low self worth) but I’m not entirely sure.
Thanks, Jayme, I did re-watched your video "Is Your Software Leader a Narcissist" and even went a little deeper and did some research.
Plagiarism at work is indeed a hint that you're dealing with someone with "Narcissistic personality disorder".
Hey just giving you a heads up I’m publishing a video on plagiarism today as you suggested. I mentioned you (not by name) and used a few of your points to cover the topic.
In the spirit of not wanting to steal your ideas if you’d like me to credit your points in the comments on that video, just let me know after you’ve watched it.
It's OK Jayme, this is not my real name anyways :) , I've watched the video and it's really great.
Sometimes a promotion can backfire. You make more money and have a title that has some weight to it, but you may end up doing less coding/programming and more people wrangling/hand holding.
I really liked your advice, voice and style to deliver the message. Thanks!
I have experienced burn out, it's completely worse than I imagined I'm fucked up physically and mentally still trying to recover 10 months later and it's really difficult because now I do all I can to avoid work and its unconscious because I feel useless afterwards
I hear you. It’s really frustrating and there’s nothing wrong with you for it taking that long! I’ve been there...
I had multiple "talks" with my manager trying to prove to me (and others on the project) that "well, this solution works for that other project so it will work here too" while not taking into account and understanding many differences between those projects - scale of team, scope of the project, differences between teams on those projects when it comes to skill set, experience etc. He tried to force in his solutions which resulted that after just 1 month pretty much everyone on the project had enough, there were a lot of arguments, morale went through the floor etc. And he was like you said - pretty good when it comes to tech stuff but has no clue how to talk with people, how to communicate, prepare a proper planning for implementing changes etc. That was worst time on the project when he was in. That was the first time that I really started to think about leaving the company.
Thank you for that kind of bright advices you have made of this profession. It is actually fine to see anybody with simillar opinion, interpretation. Keep up your work up!
Thank you for this information. I am thinking of getting back into the programming space as I have been in support for most of my career. This will help me to watch out for these issues.
For many people, the best solution is to start your own company. Most managers are terrible.
You are really calm but knowledgeable. I am
Liking you on day one
Great video! Thanks so much for sharing. Really relate to what you said about big companies.
Thanks, glad you could relate!! 👍
3 pillars of good software
1. Does what it was indended to do
2. Performance
3. Scalability , patterns and design
If you rush into the blinking cursor, one of these are going to suffer. Or more. If you wait and think about the problem, get creative with it, you come up with software that is elegent, code that does not need microoptimizations, and code that does what you need it to do, all stemming from the idea of having more foreknowledge.
MY Top 4 are:
1. "No one ever got fired for buying IBM (or Microsoft)!" and
2. "Use SQL Server in your project, and it will succeed!" and
3. "Object Orientation" and
4. "Developers, Developers, Developers!" (I believe that Microsoft (and probably many other companies) does not care about developers as much as it cares about THEMSELVES).
OO is a lie?
So many people ask me why I don't use an IDE. For me, it's because the few features I could need are always buried under cruft I have never needed in 30+ years. If your manual is as long as your source, it's not built right. Period.
What works for one person or group may be unsuitable for another.
Great video. I've been in software for 25 yrs+ and these are spot on!
Thanks Jon 👍
You have a great voice and personality. I love how people-centric and emotionally intelligent you are. Cudos!
Great to hear a balanced and experienced viewpoint - awesome content!
Diseconomies of scale. The larger the organization, the more complicated structures and problems.
Absolutely! If companies would stop trying to blow up and instead grow sustainably, our economy would benefit from less “pump and dump” of companies acquired on buzz and then dissolved once the problems emerge. One can hope ;)
One thing I have learned is this. I am not the best programmer or the fastest programmer. There is a person who I respect who is very fast and many would call a good programmer.
However the longer I have been here and the more I have learned, he is fast but Idk if he is particularly good. In honesty I feel like that sums up being a "Software Engineer"
This is a great learning lesson and tool. You make a good mentor.
To me, there is truth in vulnerability. I think few people would think its worth exclaiming a lie if it had some chance of making them looking weak, unusual, etc. Thus its more likely that 'A company has made profit every quarter' is a lie. Saying something like 'We had some good quarters but the last two were really bad" is more likely the truth.
I am listening to this video on 2021, and it is still pretty useful. The most difficult part to accept but it is a reality is that not all teams are made for us to be fit, when it comes to soft skills it is pretty tired to deal with narcissist developers.
For sure, I try to get a feel for the people I meet during the interview to give me an idea of how they will treat me. It’s not always possible.
I'm a software engineer and I agree with everything he said.
8:44 is spot on. Acquiring small companies can be difficult to integrate.
The IT workforce is... I'd rather not say. Managers are hell, but nothing is worse than a burnt out developer - a burnt out developer.
On the subject of lies, my favorite quote is from H. Mudd on the original Star Trek. "Now listen to this carefully, Norman. I am... lying. " Norman is an android that Mudd and the Enterprise crew are trying to confuse.
Oh, and many a Norman there is... and Mudds'
Interesting topic you have chosen!
It's actually quite interesting to hear you break down the challenges from a non-technical perspective.
However, I feel you are just scratching the surface. I have been earning money on writing software for
40 years by now and I have learned that one of the strongest forces that often gets underestimated,
or even misconstrued, is that of self-fulfilling prophecies. A little of this is even 'baked in' to your choice
of words when you say Lies! The truth is that every one of these 5 points can be nurtured, through positive
thinking and, say gifted metrics ... into positive and achievable goals!
And still, your observations are most relatable and true!
I come to think of an annoying statement about job-interviews, that the decision is almost always
determined in the first few minutes. As a senior consultant, I've learned that that becomes true if, and only if,
you actually buy that! A typical example of a self-fulfilling prophecy.
Whether it's about job-/assignment -interviews or methodology/process ...
... you just have to know what you want to achieve and what matters.
Still, very enjoyable and relatable to watch. :-)
Thanks for your support. I have 111 videos so yes, this only does scratch the surface!
Thanks for sharing this video. It's given me a heads up of what to expect in the development industry.
I'm switching from design to development. I've experienced some of the points outlined in this video.
When researching whether to take a job at a bigger company, look at how many companies they have been acquiring (press statements).
If it's a lot then that should be a warning sign for Devs.
It might be that they've made a lot of money, but there may well be the chaos warned about in this video.
Great tip, thanks for sharing this!
When you’re a hammer, everything looks like a nail
Bam! I'm a hammer
I dislike the 2nd suggestion, I feel it leans towards optimising code before it even needs optimising. No one ever finds the perfect solution to a problem, as just like the English language there can be many ways to write the same thing. You just need to use experience to find the best balance between time, complexity and readability for your changes.
Thanks for the information as always!
I’ve been out of the industry for over 20 years and the exact same garbage is still going on. All of the problems/lies here are mostly management issues. It appears that the things that drove me away are fundamentals that are not going to change. effective communication is paramount!
I sat in a meeting where my part of a large project needed to be integrated for a Monday morning deadline. Management was pushing for everyone to work all weekend in hopes to meet that deadline. I knew that it simply wouldn’t be possible as the team didn’t have the ability for the complex change.
In the end, I took the political hit and ‘told’ management what to do to the sighs of relief from the whole team. A simple request to extend the deadline BEFORE the other company allocated resources for implementation would be met with a simple ‘okay’. In the end it turned into a ‘nonevent’ because I stood up and spoke.
In that company it worked out well. In others I worked, I was fired for ‘daring’ to tell management how to do their jobs that they weren’t doing.
I see the industry as a whole is still a complete mess.
I personally feel like we developed interest in software with a learning perspective and to build something useful with as simplicity as possible. But the more we get into jobs, we realise just because the companies offer more money than probably any other occupation, we are forced into making a mess out of the mental and physical well being we possess and also to produce useless stuff which we don't want to do.
People really hate each other in these IT corporate environments.. But they not showing it.. is in their hearts... saying that your coworker is doing a better job is like taking money from your pocket..you always have performance reviews and you are evaluated based on what your coworkers say ...
An advanced dev can take a complex problem and use advanced knowledge of the language and framework to make it simple, short, concise, easily readable, easily manageable even to less experienced devs, and allow it to be adaptable for future changes. It takes a lot of time and experience to build up to being able to do that. An advanced dev doesn't mean you can take a complex problem and show off your thousand line solution that hardly anybody else can understand.
I recruit you for the new computer architecture and ASM im working on. Its like Nothing you have seen before. You could call it a Digital Wetware. A protocol and natural function by physical design is in place that allows the computer to not need a clock. Except for if you wanted to work with audio for example... you don't want to play a five minute song in a split second, etc. But outside of that category of human interaction there is no clock.
I got started as a junior developer for a company that didn't understand point number 2. It kills me now to look back at the absolute garbage I was pumping out day after day, creating an unmaintainable behemoth of a codebase just because my boss always told me to write quick and dirty.
The biggest lie of software development: Here, see this point and click tool you are using, this is "coding".
Looking at you Workday inc.
I think the choice of dev process should depend largely on the solution as well..
this man is an expert in a diverse, and stimulating range of different scholars cradles.
LOL!!!! I had to look that up. Hahaha! Thanks for that, I learned something new today 🙂
What if you turn down a "promotion" based on the extra responsibilities outweighing the small amount of extra money, but then the company sees you as not progressing?
Maybe at that point, when downsizing has to happen, you're then looked at as one of the people they can get rid of?
Good question. I believe that’s all about perception and what you communicate.
Many people should absolutely not lead teams. They are fantastic individual contributors and don’t have the desire to work more with people. That’s fine, if you let your employer know you love learning new technology and being a productive member of the team there’s no reason they should have a problem with that. I say should - but there are always the people who don’t get that.
As far as being laid off there’s really little you can do to prevent it. Even if you’re leading or a solid contributor if they decide to downsize it’s usually much of a crapshoot. I wouldn’t spend any energy trying to prevent that. Just live within your means, do an honest good job, save, and live your life! My personal opinion of course (to be taken with a grain of salt as always).
Hi Jayme, greets from Brazil. Do you have some video about "how tech jobs interviews can make you feel like NOTHING, just because you are NOT the tech stack semi god":
Ha!!! I hear you and can relate. Yes I plan to make future videos about coping with the ridiculousness of our current broken interview process better. 🤚 It’s a hard problem but I do believe I may be able to share some perspective that will help.
@@HealthyDev Thanks Jayme. Congratulations for this kind of content. I'm facing a very very difficult moment in my 15+ years on software development industry. Your videos are helping me a lot to see things for another perspective.
@@prologik85 hang in there. Hopefully you come out the other side stronger, and able to deal with future situations even better!
@@HealthyDev GREAT! Thank you very much Jayme. You rock!
Thanks for sharing! You are calm, experienced and passed days running for job. But we are step 1st after graduation 🙈🙃 in pandemic