> When you put it all together, that’s a projection of 135.12 TWh in the year, or about as much power as is used annually by the country of Sweden
I don't doubt that bitcoin miners use a lot of energy, but I hesitate to trust a source that doesn't know the difference between power and energy. Also, they're lying about the energy consumption of Sweden, which actually uses 645.7 TW/yr as of 2012 [0]. They number they quote is actually the electricity consumption of Sweden [1], which is like 5x lower.
Thanks. I'm reading all the comments. I definitely felt like what the boss was upset about at the meeting had more to do with the technical side, rather than communication.
I feel like my communication with my manager was good. We have all-team meets (that the boss isn't a part of) where I gave weekly status updates, and there's a group chat on slack with my manager where me and the other person on the project discussed what we were working on. I also maintain a github project that shows the status of everything I'm working on that takes me more than one day (and try to keep it up-to-date with what the other person on the project is doing too).
But there was virtually no communication between me and my skip boss. My feeling is that I should have been doing more to keep him in the loop. I think, viewing from the outside, some might say that the management hierarchy exists for a reason and just communicating with my direct manager should be fine, but I think the skip boss would have appreciated being kept more directly in the loop.
That's very weird. I don't know much about office politics but it seems suspicious that your manager wasn't there to directly address your complaints.
Here's how I figure it. Let's say they felt they had conveyed the issues to you and that they could not get you to understand it. It happens, whose fault doesn't matter so much. But if that were the case I'd think a good manager would want to be in the room so that they can reinforce the thing being said and make sure everyone is on the same page.
Or what if they knew exactly what was going on but didn't see any issues. So then a good manager would go in and defend you because you did your best and if your manager knew what you were doing and didn't, well, manage you then who screwed that up really? But a bad manager might just conveniently not be there and who knows what they've been telling your boss you've been doing.
It really sounds like you three need to be in the room at the same time and agree on exactly what you're going to do and with what tools and how you'll explain what you're doing and get it approved. I don't see how else you can cover your butt, they need to take ownership of your technical choices or they aren't really managers or bosses.
But I suppose they could just honestly doubt your technical skills. If that were the case though then why would your manager and boss not both be there? No matter what happens it's really weird that the person who knew what you were doing and what needed to be done was absent.
The boss is definitely not incompetent (he's incredibly smart), and I don't feel like he's a dick either. Maybe this is just my naivete from being fresh in the job market, but I really wanted him to like me, and one of the things that bums me out the most here is that now I obviously feel like he doesn't. I do feel like some of his criticisms were unfair, but like I said in my post I can't deny that some of the problems are genuinely my fault.
Thanks for the encouraging words though. I probably am being overly emotional about it. I have a lot of model uncertainty about my boss so I have genuinely no idea whether he would fire me.
I think OP meant incompetent when it comes to management, not technical skills. And I'd agree based on your description of how he handled what in reality is a very minor setback for a project.
I'm not sure. I'm glad he told me, otherwise I wouldn't have known I was undershooting his expectations. I did make mistakes that made the project taking longer than it had to. I guess if I want to keep working here I'll need to find a way to make fewer mistakes like that in the future.
> I guess if I want to keep working here I'll need to find a way to make fewer mistakes like that in the future.
Communication is the answer.
If you think you're going to quietly go back to your laptop and solve all of these problems by being more careful, you'll probably end up disappointed.
You should take this as a learning opportunity to improve your communication skills. Communicate early and often. Ask for feedback. Ask for clarification. Ask for code review. Ask for a performance review.
Also: There is some good advice in this comment section, but there's also some absolutely terrible advice. Please ignore all of the low-effort comments insisting that you should quit or the comments suggesting that your boss's boss is malicious "gaslighting" you. This may be your first stumbling block in the workplace, but it won't be your last. If you make a habit of shutting down, quitting, or becoming resentful in these situations then you're never going to learn how to build actual healthy relationships in the workplace. Do as much as you can to learn from this, but make sure you do move on as quickly as possible. Don't let it eat you up.
To piggy back on this, you will most definitely work with and for people who are malicious and gaslight you. Not saying that is the case here, but even if it is, a valuable skill is learning how to cope through it and work with those individuals. It isn't easy, but it is more sustainable than just being a victim.
You want a strategy that works regardless. E.g. if your skip-level manager tells you a project should have been completed a while ago, and this is the first time you're hearing about it, it's better to say "let me follow up on that after the meeting and get back to you, because it's a bit different from the timeline we've set within the project" than to push the blame onto your direct manager, get defensive to your skip-level manager, apologise, or agree to spend the weekend working. Get some breathing room, put together a paper trail of emails and meeting notes, and let everyone cool down.
I've had modest success with this kind of thing. Managing to stay calm and maintain your internal composure is very important in the moment.
In a situation like this you need to be able to think on your feet and choose your words carefully, which can be very difficult if you have reverted to a defensive or fearful "fight or flight" mind state.
I personally have benefited a lot from biofeedback and meditation over the years, if only because it has given me the tools to recognize when I am in a fearful state and calm myself down.
The "fear is the mind-killer" mantra from Dune is not really fiction!
Mistakes are a part of life. Do not be ashamed of mistakes, you will only limit yourself. I'm sure you're already aware of this, but sometimes we all need a reminder.
As for the project, you should consider how much mentorship you received. If there was none, then obviously a high degree of mistakes is natural, especially for someone new to "professional software development" (if such a thing exists). If there was a lot of it and you blatantly ignored it, you should take responsibility for it.
Most importantly, keep a healthy work-life balance. It's easy to forget it, especially when first entering the workforce and thinking that you need to "prove yourself". Most of us are average; if you are too, accept it and keep living as best as you can. The 10x coders can keep on 10x-ing, but the world depends on the average person.
I think your last statement indicates how bad that feedback session reflects, not on you, but on the “boss”. On the one hand, we all have bad moments, that might have been theirs, which sounds pretty terrible though, especially in context of you having limited experience. On the other hand, while if you discuss he/she would probably apologise, it sounds exactly like the kind of boss that will throw you under the bus when the going gets tough.
Early days. One of the key things you get with experience is the cold blood to wait some things out and to not let minor or major incidents get under your skin. If/when this becomes a pattern assess it against the rest of your experience and decide on your best path forward.
I think just about every new developer makes mistakes that make a project take longer than it had to but this is how you learn and improve for next time.
Thanks. I definitely will take that into consideration in the future. I'm not sure if it would have helped in this specific case but I can definitely think of other situations at work where taking your advice would have helped me.
Pushing back on changing requirements is also a good skill to pick up. Part of it is getting a really clear agreement on what you're actually doing - what's the real scope of work - and actively changing the agreed plan when requirements change. I also find it helpful to highlight that changing requirements will have a cost in time, etc.
There's also a an art to getting together a good MVP efficiently. You can treat lots of added requirements as shiny feature requests, and prioritize them below getting the MVP working. Having an MVP that people can try out and see it working at all goes a long way towards building belief in your work. At the same time, you want to build flexibly enough that the MVP can expand rationally to take on those added feature requests... without writing in SO MUCH generality that nothing ever gets done. Doing this well is a skill learned on the back of many failures and tedious refactors... But efficiently getting a demo+MVP is golden, even if you build up some tech debt to get it.
I'll add here that there's a ton of nuance to "pushing back on changing requirements." My rule of thumb is this: program managers should understand the expected and worst-case consequences (including baseline time, switching costs, stepping on other team members' toes, etc.) of any proposals to expand scope, and as an individual contributor it is vitally important to be vocal to ensure they understand the full dynamics.
But if and once they do understand and acknowledge the consequences, and still say a scope increase is justified, it's highly highly likely that they have more business context than you. Document the decision, of course, but fundamentally trust your team.
It really is the solution to everything. A shitty coder who communicates well will do better in a corporate setting than a good coder who doesn't communicate.
My advice to you:
1. Put serious effort into Slack (or whatever your company uses). It is just as much a part of the job as writing code
2. "You don't get a second chance to make a first impression." I'm not saying you should definitely change companies, but you should seriously consider it, as you are now going to have to put in a ton of effort to regain trust. There is a good chance that you'll have a better ROI just putting in that effort at a new job instead - if you kick ass in your first 6 months to a year, you will enter into a flywheel of being well regarded which makes you more effective, which makes you more well regarded.
I’m afraid the boss’ boss was talking with the wrong part of your team, in that his criticism really seems made for your boss, not you? That said, you were not treated like a novice at all, being given a fair share of high-level feedback. Take it as a nudge to improve and do better, without thinking too much: it will be your manager’s job to assess your output fairly.
The 'bother the professor' part is key. With new teammates, I want them to reach out if they're on a project I'm leading. If things look like they're going well - then it's great to get positive feedback. If not, better to change direction early (lost work due to changing requirements).
While changing requirements are outside of your control, clearly the consequences affect you, however unfairly. It's a skill to predict what might change and which parts of the project could end up being wasted time, and you will develop it with experience. I think being in continuing regular communication with your manager and team members as others are suggesting is also a good idea and partially for indirect reasons, because you might pick up on some clues of what these things outside your control may end up affecting how your performance is perceived.
I don't doubt that bitcoin miners use a lot of energy, but I hesitate to trust a source that doesn't know the difference between power and energy. Also, they're lying about the energy consumption of Sweden, which actually uses 645.7 TW/yr as of 2012 [0]. They number they quote is actually the electricity consumption of Sweden [1], which is like 5x lower.
[0]: https://www.wolframalpha.com/input/?i=energy+consumption+of+...
[1]: https://www.wolframalpha.com/input/?i=energy+consumption+of+...