Ask HN: How is your company training you to become a better developer/engineer?

97 points by flavianh ↗ HN
I’m interested in how companies create 10x engineers. To deepen the discussion, you can cover for example: - What skills - Training frequency - How is your next set of skills decided? Is it personalized? Are you involved in the discussion? - What are the biggest obstacles to your training?

151 comments

[ 3.8 ms ] story [ 248 ms ] thread
Companies simply don't. If you want to become a "10x engineer" you have to have the ability and the drive yourself.
Most don’t, I’m wondering if they should.
The question is whether they can and, if so, whether it is beneficial to them.

As hinted in my previous comment, I don't think they can and I am also not convinced that it would be beneficial to them if they could.

They need good engineers. That is achieved through hiring and compensation policies. Then, it is also beneficial to retain and keep engineers up-to-date through a level of training as needed.

answer is they shouldnt,

the less effort exerted globally by the workers the less expectations will be placed on them by managers. God forbid people find their meaning outside of drudgery on their lords fief.

A large part of being 10x is the motivation. You can't train motivation.
And environment. If you have to attend meetings or don't have an office with a door you can close when you need to, it's a lot more difficult to do deep work.
Working as a team. Pairing on tasks and learning on the job goes a long way.
I found it to be very challenging to deep-dive into harder subjects when doing pairing
Why?

To me, pairing is exhausting, so I don't like to do it too often but I almost always feel more than twice as productive and I feel like I am better able to dig into the hard stuff easier.

Don't get me wrong, pairing has merits. Let me give you an example. I'm in the middle of going through type challenges in Typescript (https://github.com/type-challenges/type-challenges). If I knew absolutely nothing about types, pair-programming would have helped me get started. But some of these challenges teach me important insights about the Typescript typing system that take time to wrap my head around. You don't get this amount of system 2 focus when pair programming because pair programming is (to a large amount) communication.
We can do SANS training as part of a company security program. They’re actually fairly intensive and useful, but it’a hard to make the time when you have so many other things to do.

My previous company had bi-weekly presentations by some engineer on a technical topic they enjoyed.

No training in over 3 years via company channels, all self-driven & self paid & after hours.
My current company tries but does it very poorly.

I work for the so-called "software house". They keep on asking if I want to do a cloud cert yet they don't really provide any course materials nor allow me to take time off to focus on learning. This is a very common pattern for these certs and I've seen the same in other places as well; there's always someone who wants you to get that certificate but you're never really provided with anything to help you reach that goal. It makes it feel like the entire ordeal is pointless to begin with.

Recently the client I work for started moving to Kubernetes, which we did not use previously. It took my company 6 months to organize a Kubernetes course for us. The person who prepared that course was a relatively inexperienced engineer from an another team that never used Kubernetes in production. The engineer himself tried his best but in the end that person was not a very good teacher (which I feel is the natural outcome, this person was not hired to organize course work) and we never moved past the tutorial level knowledge-wise. Personally I got nothing out of attending these sessions aside from the liability of having to work on tasks related to Kubernetes (previously we didn't work on them as it was understood that we have no training, but now that we have "training" we are supposed to pick up that work). I feel like I was tricked.

Don’t worry, your intuition that the cloud cert is useless is spot on.
Unfortunately it's also tied to corporate politics. If I get this useless cert it will get listed as an "accomplishment" which helps in getting a raise / promotion.
Any discussion on why this was an inhouse training? Why not just buy a couple of udemy courses for everyone? For that matter they can just give you a youtube playlist and then have doubt solving sessions. Would have been cheaper than paying an engineer for half a year.
They did it because the company policy is to provide in-house training if possible. At first we were to get it ASAP, but then ASAP became "soon" and "soon" became "6 months". The engineer in question is just a regular engineer, they just handed him the additional responsibility.

Either way, they could have just paid an another company to get us a real course but they'd rather pretend they have competent devs rather than actually have competent devs.

Usually developers trained the company
Now that's a bit too negative. Of course the company provides training, mostly for the unusal internally defined processes and internally developed tools or tool extensions that bend standard tools in a way to fit to internal definitions.
thats true, most devs ask other devs for help
£1k and 1 week training allowance per year
I have been a part of training sessions in my previous organisations, but in my opinion, training will not create a 10x engineers.

Why?

Most of the training sessions I attended or used to happen in my organisation were on very general topics. All these topics can be easily learnt via any other medium like youtube.

Instead, I have seen pair programming or code-reviews making better engineers. The organisation used to change the pair programming partners every sprint making us understand new ways of working every time. Plus reading other's code in code reviews exposes you to new patterns making you better at writing code.

Yup. For almost anything, modeling behavior is far more effective than training. Hiring well and having complex problems to solve is what makes engineers better.
Companies cant create 10x.

It is the people who make themselves 10x

The main help is that any even vaguely job-related training can be fully expensed. Exam fees for certs can be expensed.

> What skills

Currently focusing on the cloud.

> Training frequency

Whatever I want to outside working hours (expensed), 10-15 percent of working time for long term training (over months), 100% of working time for short-term training (say a 5 day course).

> How is your next set of skills decided?

By me and my manager. Long and short term trainings need to be approved by manager, but I never heard of anyone getting denied for that.

> Is it personalized?

> Are you involved in the discussion?

Yes, I need to find and register for the courses myself.

> What are the biggest obstacles to your training?

Lack of time. For AWS - corp policies are very restrictive so it's easier to bankroll my own AWS account for training, rather than use company's accounts.

My current company does tons of training. The devs are trained in project management, team building, project leading.

Individual team members suggest trainings on a topic, and if enough people are interested they schedule a time and do it. We have book clubs, and regular developer discussion group. All of this is encouraged and on company time.

There are also more extensive multi day trainings and certifications I haven’t been part of.

We also have a monthly training stipend which accumulates.

Etc.

If my company wants me to be a project manager, team builder of project leader, they should have hired me to be those things.
I assume some of the skills you're trained on are technical too. Your organization sounds like it does a lot to develop engineers, do you think it's paying off regarding competition or other tech companies?
Well, for one thing it allows a flatter organization, which makes for (imo) a really great quality of life.
So how do you use that training stipend?
I haven’t used it much yet, so I’m not sure. Books, courses.
We hired some Agile consultants and we’re heavily invested in whatever fad the C Suite read in a management book or HBR this week.

I’m expecting awesome results any time now

We also hired some Agile consultants, but a couple of months ago. Unfortunately, it took our C-suite only 3 months to abandon the path of the samurai, erhm, I meant: the path to Agility.

1. The experience

The experience with the consultants was really eye-opening. I will try to describe it below.

Since day one, without having much understanding of how and why we are organized, the consultants started seeing problems, and, oh what coincidence, they had the solutions for every-single-thing that they noticed. They tried to convince us, in no particular order, that our problems were:

- Not following Scrum well enough. That continued until we asked for specifics what part of Scrum we are not following well enough. Surprisingly, they didn't have a ready answer for that and then dropped it.

- Not following SAFE. Scaled Agile For the Enterprise sounded good to our C Suite, but the consultants played themselves by saying they can help us implement it. Our management, just like a gazelle seeing an encroaching predator, avoided the trap.

- Not having Agile coaches on a fulltime payroll. Guess who is an agile coach that can work fulltime for us? That was easy to see through, our C Suite will turn their nose at anything that implies spending more money, so they were naturally immune to that approach.

- Some Miyagi-Do level stuff about communicating better which was a bit fuzzy to me. I guess the Agile coaches have to...communicate better? One can think of that experience as a lesson, and that by communicating badly, surely on purpose, the agile coaches showed us the value of good communication! That is some black-belt level stuff!

2. Cracks begin to show

Things started souring in the 3-rd month, when our management started getting impatient seeing any results in performance. Occupying all your engineering teams for days each week surprisingly had the opposite effect on performance that our C-level hoped for. Then management also got wind of the agile coaches' vision of a "perfect Agile company". According to them, to be Agile (capitalization intentional), each of our teams needed to have:

- A Product Owner

- A Scrum Master (a dedicated person who ONLY does Scrum Master-ing)

- Agile Coach

- Team Lead (responsible for developers' growth)

- Tech Lead (responsible for tech decisions)

- Developers, if the budget allows

While we had only POs and Developers, with rotating Scrum Master role, with one developer being the Tech/Team lead. The prospect of having to hire more people to fill all these Agile roles spooked our C suite to such extent so they completely abandoned the whole Agile idea and let go of the coaches. And just like that, Agility was not spoken about since.

3. The results

Three months later, thousands of $$$ and people spending their time in meetings, the results can speak for themselves:

- we have spent thousands of $$$

- people spent their time in meetings

Based on what you wrote, I think you will see similar exciting results! Onward to Agility!

By giving me enough guidance and help, along with a challenging training project and a pretty tight feedback loop. There's also a pretty generous budget for training, after I am cought up to speed. (Recent switch in what I work with)
I agree that training, in general, is not really effective. You have to actually use the things you've been training for immediately afterwards to gain any benefit. If 2 - 3 weeks go by, you've already forgotten a lot of the training.

How my company is trying to deal with that is by creating a library of self-paced training modules maintained by software engineers, and facilities to help anyone do that. I'm not sure it's going to achieve exactly what the OP is asking about, but I think it's better than alternatives.

We also have a private Stack Exchange server, frequent tech meetups, internal support slack channels and a bunch of other ways to interact with internal platform teams that help quite a bit.

Still, you have to walk the walk and figure things out on your own at the end of the day.

10x's don't waste time to things like trainings.
Fully agree, they learn by doing, nothing beats experience with brain
>What skills?

When I've been through the interview process, it's been very obvious that I have strong backend skills but lack on cloud and DevOps stuff, so that's what I'm focusing on now.

>Training frequency?

As of now, most of my tasks are related to cloud and CI/CD and, to be honest, I'm enjoying it a lot, it's more fun than backend to me as there's plenty of new things to explore and learn. I even feel like I might switch from backend development to Developer Experience Engineer, exploring new ways to make development, testing, deployment and initial setup faster, easier and more enjoyable, since I like to think that I know how developers feel about our current processes and what can be improved.

>How is your next set of skills decided?

I just tell my manager that there is some stuff I'd like to learn and tell them what is it.

>Is it personalized?

Yes.

>Are you involved in the discussion?

I start it.

>What are the biggest obstacles to your training?

Sometimes, when I meet a new task I have no clue how to even approach it, I feel a bit overwhelmed and unmotivated, so I take my time preparing for it and asking around for initial problem study.

I know it's not very productive, but it's an enjoyable pace for me and my company promised me a raise if I get better at cloud, DevOps, Docker and AWS stuff while I'm on my probation.

I always thought the term "10x engineer" was only used in job ads. Nobody I know refers to themselves (or even thinks of themselves) as a "?x engineer", unless it's for marketing purposes in which case you might as well put 100x for good measure.

The "best" engineer in the world would probably tell you that "the only thing that they know is that they know nothing". They may also say that the most valuable thing that they have learned over their career is humility. There is always going to be something new and shiny to learn, things will always be breaking around you, a fake prophet will push today's ideology to sunset yesterday's. The only thing that you can do is to always be resourceful, to grow holistically as a person, and help others grow as well. Avoid any company that tries to distill these virtues inside banal presentations and check-the-box training sessions. It is better to ask an unassuming looking person inside the company if they have grown as a person, who helped them, and whom are they helping do the same. Good luck!

(comment deleted)
The term doesn't come from people calling themselves 10x engineers.

It was from a study that showed vast differences in performance across software engineers, up to 10x.

The study has been criticized somewhat since then but I think the critics miss the point. Regardless if it is 2x or 10x, or somewhere in between, these differences do exist.

I've seen -1x engineers too (and probably have been one).
Don’t be so small minded. I’ve seen -infinity project managers and architects.
I think the -10x engineer is more common, and therefore this type has has more overall impact, than the +10x type.
The suits seem to think it's about how quick they type or how focused they are, but this is of course nonsense. Some engineers have such deep knowledge of their tech stack they avoid making costly mistakes, or use features in their stack that would otherwise get re-implemented in the codebase. This can make them more like 100x developers.

For example, we had slow query performance in Postgres. I (a 1x engineer) couldn't optimise the query, so I suggested building out a caching layer, with an estimate of 2-3 weeks. My colleague (a 10x engineer) used a window function that took about an hour.

Perhaps from their perspective, I'm a -10x engineer.

> It was from a study

In case anybody is curious, here’s the study from 1968:

https://web.eecs.umich.edu/~weimerw/481/readings/productivit...

I thought it was from Peopleware. They claimed they found the result by performing coding wargames among professional programmers in the 80s.

They claim that the best are 10x better than the worst but only 2.5x better than the median. Additionally programmers from the same organizations had very similar performance. I.e. there probably isn't a 10x difference in performance within your company.

The book claims similar distributions when you measure many kinds of human performance, so I wouldn't be surprised if there were many studies that replicated the general idea.

The study was of students, no one has a strong idea of how that actually correlates to professional work.

Myself personally, I don't think it does, not because some people aren't naturally better at programming than others, but because at some point the important decisions are unrelated to programming and are more about systemic decisions at a wholistic level.

I am a 10x engineer. I have the awesome capability to show you that a project is going to cost 10x the time/budget, and why you don’t need it, and should probably focus on the obvious 1x idea.
But if you claim to be a 10x you’d be able to finish their 1x idea in 1/10th of the time wouldn’t you?
It is 1/10th the time of the original idea...
If you can quickly cope with reality and accept some of the surprising stuff out there, I believe then you can be a 10x. Although this makes the scope 2x and you are just 5x then
I always go with 11x engineer. It’s even better than 10x
11x abs…. What are you, crazy? Nobody can work out their abs in 11x.
I don’t mind calling myself a 10x engineer, but it’s of course better when others do so. ;)

Honestly I’m quite tired of this false humility norm. Seems to me it’s mostly about redistributing the fruits of common labors from those that focus on the craft and try to improve their productivity, towards the socially focused “humility experts”. I much prefer working with cocky 10x engineers rather than these humility policing 1x ones…

I think it's a marketing thing. I'd call myself that if i were attending a job interview perhaps and trying to sell myself.

I wouldn't call myself that if I were speaking to a junior developer and helping him with something that's difficult enough to sap his confidence.

The problem in my experience is that cocky attitudes have a tendency to spread and it creates a really difficult work environment.

You also have to take the Dunning-Kruger effect into account, where most developers aren't able to evaluate themselves correctly. In our work we have a tendency to view thing as "right" and "wrong". I often find people with a few years of experience to be the worst. They have enough experience to recognise that they are more knowledgable than juniors, but lack the overall picture.

Some even come out of studies this way, because they are used to being the smartest in their class and have built up their egos. "Why is the old shitty code written this way, they must have been stupid? We need to rewrite it in the framework I read about in the blog last week". Only experience will teach them that things are not that simple. If they are not exposed to the right working environments in their first jobs, they will spread this negativity for years until they (hopefully) grow as persons.

Pro tip: If something looks unnecessarily complex, there may actually be a reason for it. In the case where you need to rewrite/refactor working stable code, don't try to negatively push down others to enhance your own feeling of superiority. Keep the arguments as objective as possible. If you have tracked the code to specific individuals, at least talk to them in private first to get their input instead of assuming you know best.

Thanks for this. There’s too much of me in this than I would like..
Thanks for this. These are all real problems. But why is the solution that I change my behaviour?

This is exactly what I'm tired of: Because other people are assholes with big frail egos who do not understand their place in the world... I have to change? No, they have to change.

Putting this on me just glosses over and prolongs the real problem: That a lot of people with frail big egos need to realize they are not all that and come down to earth.

honestly from reading how you write about yourself, I would immediately drop you into the "thinks more highly of themselves than they ought". Bucket. People who call themselves high performing rarely are in my experience. It's the humble people who learn and grow for the joy of it who truly shine.
Being proud of your abilities and accomplishments is not mutually exclusive with curiosity and joy of learning.

More generally: Your perceived correlations are not necessarily causal relationships.

I agree with this, one of the things I absolutely hate seeing (on this site, no less) is the whole "imposter syndrome". It's basically humble bragging.

This is my strength and I'm absolutely better at it than most. There's lots of things I'm completely inadequate at, this aint one of 'em.

The lie that being humble is a virtue is something you have to unlearn.

In reality if you won’t shout about how great your work is how can you expect anyone else to care about it.

> Honestly I’m quite tired of this false humility norm.

It is a matter of where you focus your humility.

Your accomplishments and deliveries? Absolutely market how they are 10X impacts than the norm. No need to label them "10X" of course. Point out their impacts, and the impact craters on problem spaces label themselves. And thereby you get labeled.

How much you rely upon everyone around you and they in turn rely upon you? Absolutely show humility here. These days, 10X impacts don't happen frequently until entire teams are coordinating together over long periods of time.

The knowledge tree in our industry is effectively infinite in all directions now. No matter how broad your reach, there are always more topics you haven't been exposed to. No matter how deep your "T" stem areas, there is always more depth to plumb even if you are at the cutting edge, for the fundamental limits of physics is the only true bottom of that trench.

Humility is absolutely essential when offering to help others and organically receive help from others to mutually cover everyone's gaps across this functionally infinite canvas of knowledge when taking down objectives together.

> Humility is absolutely essential when offering to help others and organically receive help from others to mutually cover everyone's gaps across this functionally infinite canvas of knowledge when taking down objectives together.

I don't know... Humans have a very strong tendency to promote cultural norms that will make them successful. So the socially focused "humility experts" want to make the game about humility. One of their IMHO less ethical moves is to sabotage others who do not want to play their game.

I'm good at writing software and leading software teams. I want the game to be about that: the software. I have no problem what so ever with people being proud of their work. I'm not going to refuse to help someone because I don't think they are humble enough. It would never even cross my mind. It would defeat the purpose: creating great software.

> One of their IMHO less ethical moves is to sabotage others who do not want to play their game.

Oh, those are straight up assholes in a different clothing of the week. Yeah, once I identify one of those, I route around them if I can, or they find that my teams and I will only work with them on a very formalized, documented in the open, by the book, unfailingly positive and polite basis. If I have to, the juniors I advise will see their work that is unavoidably interfacing with such people championed by other managers and me.

It vastly slows down the delivery velocity around said person, but I've found no other solution when I'm forced to work with them as they're utterly toxic to work with otherwise. Such a person will find the Nash equilibrium adjusts the more they give up said behavior, but in my experience I've never seen one of these types turn completely around (but that might just be a function of only consulting and not sticking around long enough to find out).

A smart 10x engineer would use his special power to do 1/10 the work everyone else does.
As a dumb 10x engineer, I once tried being on the job 1/10th the hours of my colleagues and I still ended up outproducing them by an order of magnitude. I failed to account for the fact that they waste a lot of time doing unrelated tasks, like meetings, leaving only a fraction of their day to get anything done.
how is that dumb of you? even as a salaried employee your time is ultimately what you’re selling to your employer. you just reduced your cost of goods by 10.
Well, I could have also put in 1/10th of the work, not just 1/10th of the hours, and matched their output. Also, I'm just naturally dumb.
lowering the quality effects the perception of the quality of your product. i don’t think it’s smart to do that.

i’m curious if you’re being facetious, though, due to a possible resentment of your co workers. IF you’re doing that, remember you’re just being paid to do YOUR job. management knows who the performers are.

Why would quality be reduced? Producing 1x output can still be of high quality.

What kind of resentment would there be towards my coworkers? I am not sure where feelings would be coming into play at all, let alone ill feelings.

For some of us meetings are 90% of the job.

I mostly integrate with other teams' services. Most of my time is talking with them (in "Meetings") about their API and reading through their documentation.

Code is like 10% of my week, maybe 20-25% if I'm starting with a fresh service.

Mine too these days. Further proof of my dumbness.

It's amusing that we can integrate with open source APIs without any trouble, even when there is often much more complexity involved, without ever talking to the person/people behind it, but as soon as its within a single organization it becomes a game to find pointless busy work to fill the hours.

It’s not pointless, look at all the cross functional work you can put on a few engineers’ perf reviews.
Or they would try to work as much as possible, earning 10-10000x more than everyone else does.
> The "best" engineer in the world would probably tell you that "the only thing that they know is that they know nothing"

This just tells me that the engineer in question is very good, but also has imposter syndrome.

I've been called a 10xer before, and I'm the only one in my company currently at that level. We're a data company first and software second.

Trainings don't work. What does work is pair programming but you have to do this effectively. Say you have 3 buckets, frontend, backend and infrastructure. Ideally, you want to pair someone who has very full infrastructure and backend buckets, with someone who has an overflowing frontend bucket. Mix and match. There's no value in pairing two more backend oriented engineers together.

There's also no value in categorizing things in frontend and backend, if you just have a frontend engineer that throws things over the hedge to the backenders garden, you're going to have a shit shoveling contest and this doesn't work. Of course, you should still have people specialized in certain domains, but you should try to share knowledge within your team as much as possible and try to broaden's people experience instead of having people work on their own little islands. Pair someone with a backend background on a big frontend ticket with an experienced frontender and before you know it you'll have two full stack engineers that'll possibly grow to become a "10x" or whatever that means.

Code reviews are critical and it's important to have someone in your team that carries a big stick and isn't afraid to use it. This is a sensitive thing I've noticed, I've worked at companies where I wasn't the only 10x engineer, and the code reviews there were a joy because I was getting very valuable feedback. It wasn't so much that my code was wrong, but more something like `{} as MyInterface` could also be written as `<MyInterface>{}`. There were a lot of style related comments. What I notice in my current team is that people feel like this is unnecessary, but I always felt like it is valuable when another engineer suggests something like "maybe you could abstract this?" because it introduces a bigger picture that I may not have thought of before. It's very loathsome to carry the big stick, but I feel like if I dont, we're going to go back to the old patterns of not writing tests, not thinking about architecture.. Those kinds of things.

You said a lot of things, many I agree and have experienced as well, but never answered OP. How do you create 10x engineers? Well you can’t. And you probably shouldn’t try. If you’re 10x somewhere it means you’re at a place with a significant (I.e. 10x) skills mismatch between people in the team. It’s not fun for anyone, the company and team become too dependent on you, and you skew any ability to project how long work would take on both sides by your presence.

The best bet for both parties would be they find places “where they belong” - if you consider yourself 10x ie the smartest person in the room, you need to seek a better room for yourself where that’s not the case.

But that is the answer, in that there is no answer :) And agreed, it is always a mismatch. But I do think that with what I said, that'd be the foundation to create a 10x engineer. That's how I became one, because I was matched with people of that skill level and got to work directly together with them for years. And if I'm 10x by my company's standards, go figure how good those guys were ;)
You're right in a way, but you're missing the "10x compared to what?". Consider the 1x baseline as being the median productivity of your development team (which is definitely hard to approximate, but for the sake of the exercise let's take 'value-added tickets per developer' [which excludes bugs/rework]). Then the goal is to do 10x on this median in a reasonable amount of time. Rince and repeat.
Becoming a 10x engineer is more about psychology than it is about IT skills. It is about doing the right thing in the right context, about communication and about planning. Put a 10x engineer in a new company where they use different languages and frameworks, and eventually he/she will become a 10x engineer again.

So I don't see much benefit in training, what works much better is learning by example. Put junior engineers in a team with a 10x engineer and if they are open to it, they can quickly acquire the same mindset. But ofc this only works if the 10x engineer is a good tutor and coach as well.

Also, there needs to be an incentive to be 10x, or at least not a disincentive (like hordes of 1x:ers seeing “brilliant assholes” everywhere).
Expectations also matter. If you expect nothing from people, if you infantilize them, if you spoon feed them everything, if you never expect them to figure something out that is more complicated than what you already explained to them, then you will never get people to be 10x engineers. You will get the worst quality.

Set the expectation right, treat people like adults, expect that the person you are paying and employing as an adult engineer is an adult engineer capable of solving their own problems, and they will figure out how what they need to do to meet expectations and acquire the knowledge they need, whether that be training, or just google, or just looking at existing code.

"10x engineer," in my experience, is typified by "hyper-focused engineer who works 16 hour days 7 days a week and is the darling of upper management."

In my entire career (spanning 20 years by the year, 16 years of active time), I've only met one engineer who astonished me with his prodigious amount of _correct and clean_ output. But the downside was that engineering was his entire life; you couldn't hang out with him, because all he ever wanted to talk about was engineering.

There's a tradeoff for that kind of output.

* Teaching me SQL

* Providing us the training and paying for a cloud vendor certification

* It’s a small company so team discusses all major tactical decisions

* Providing me the opportunity to implement and document a new but super fast approach to architecture that I have developed over the past three years in a personal project

* This is only the second time in my career that I am engaged all day (been in the corporate world nearly 20 years). In prior jobs I went to meetings and maybe did 1 hour of work a day. That was either because task assignment was in competent or because they were not training developers which me a 10x developer only because I do work on personal projects outside the office

It looks like your company is ticking a lot of boxes, they're a keeper for sure. Would you share their name?
I usually don't like the trainings companies provide to engineers to make them grow. The trainings are focused 100% on the tools the company is using (makes sense), but I may not want to learn the hype tools my company is using at the moment, but instead focus on more long-term useful knowledge. For instance:

- my company is using DataDog and they offer us training on that. Well I don't care much about DataDog; I care more about how metrics work and what's behind the curtains (e.g., time-series dbs). Chances are that DataDog will be gone soon or, most probably, it won't be used when I switch companies. So, I prefer to focus on non-hype stuff

- same for specific frameworks we use at work. In one of my past companies we were using Laravel. They offered us training on Laravel... but I just couldn't care less. I don't use Laravel anymore (not even PHP). I would have preferred trainings on more agnostic stuff like architecture/design/algorithms

And like this, tons of similar examples. So, the way I become a better engineer is by studying by myself mostly during working hours but also a bit during my own free time. I read "the classics" (i.e., books every software engineer should read), I keep myself updated with releveant technologies and work on personal projects to solidify my knowledge. It's a win-win for both myself and my current company (even if my company doesn't realize).

I agree; I think we can use others but we're 'recommended' to use Udemy, which seems to me like a cross between the worst of Youtube scream faces et al. and some kind of visa/language/entrance exam cram school. And yes, it's all really specific Here's how to point and click in the AWS (or whatever) console sort of stuff.
> I’m interested in how companies create 10x engineers.

How do professional sports clubs create 10x athletes? I expect the answer is that they don't. They seek out 10x athletes who were most likely born with certain qualities that allow them to stand out above the typical player. It would be a lot simpler for them if they could simply choose any person at random, put them through a training program, and output a star athlete but the world does not appear to work that way.

I imagine engineering isn't a whole lot different.

Dropping me in the middle of a confusing, convoluted code base and tasking me with finding my own way. lol

Seriously, though, even if the code itself has lots of room for improvement, the product is great and the team is competent and laid back; they trust me to take my time and do the right thing, and aren't breathing down my neck to get features out by end of sprint.

So give me the spaghetti code base with a non-toxic work environment where everybody is dedicated to incrementally fixing and improving it, any day.

This is currently my top concerns with my career/job.

Biggest obstacle; time/energy. 40 hours with 10 hours a day invested in the job leave me with zero motivation to further do training. Risking burnout here, I need to get away.

My employer current and past has no problem teaching me what I need to know to do my present job but zero involved in progression, that's 100% on me. Obviously that's their prerogative. They all do generally pay for things I take electively, I just need to figure out what I want to do and figure out when to do it.