HACKER Q&A
📣 flavianh

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


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?


  👤 zkirill Accepted Answer ✓
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!


👤 zmxz
You can't "create" 10x engineer. You either have work ethic or you don't. If you have the work ethic, if you're disciplined, if you genuinely enjoy programming and the feature/software you work on - then you have the capacity to be better than engineers who enter this line of work purely and only for the money.

That's what makes the difference. And no company can make you like the software you're making, to be disciplined if you don't train yourself so and to genuinely like and enjoy what you produce. It'd be equivalent to brainwashing.


👤 yogini
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.


👤 gorbachev
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.


👤 rqtwteye
The companies I have worked at did nothing to train people to become better. It was all about being lucky to have a manager or lead who mentored people. A lot of people have these programs on paper but I haven’t seen them implemented effectively.

I strongly believe if you want to make it in this industry you have be self motivated to educate yourself and develop relationships with potential mentors. Nothing will come from your employer.


👤 BatteryMountain
No training in over 3 years via company channels, all self-driven & self paid & after hours.

👤 sweaty
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 `{}`. 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.


👤 ManlyBread
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.


👤 switch007
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


👤 theshrike79
We have an in-house psychologist who does regular _confidential_ 1:1 chats with people. More often if they need.

The difference between them and a run-of-the-mill external psych is that they can actually influence company policy (for real - hiring them was the CEOs idea). They also know the company and the people there, which helps a lot in understanding people's chemistry and habits.

In addition the company reimburses for all external training courses taken which you can even in some way say are connected to what you are doing - or want to do at work.

Does this make everyone 10x? Nope. Has it made a huge difference in the way I work? Yes.


👤 misja111
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.


👤 arvindamirtaa
By having no pure managers.

Everyone who is a manager actively makes independent contributions for a not-insignificant portion of their work-week.

So, when we have 1-on-1s with them, we can actually discuss improvement avenues from the same vantage point. Not some spreadsheet pushing manager who has no clue how to measure engineer-productivity or performance.

When they do code reviews, their comments serve as an important learning opportunity, pointing out good practices/conventions, etc.

And finally, when you disagree, it's backed by the validity of your points as 2 engineers, rather than their authority as a manager vs you, their direct report.


👤 randomdata
> 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.


👤 austin-cheney
* 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


👤 mytailorisrich
Companies simply don't. If you want to become a "10x engineer" you have to have the ability and the drive yourself.

👤 hardware2win
Companies cant create 10x.

It is the people who make themselves 10x


👤 bitwize
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.


👤 whiddershins
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.


👤 pipingdog
I wish people would stop using the "10x" term, as it is meaningless. Nobody can articulate what x is or even what units x should be in. I won't even start--and nor should I need to--on "engineer."

The value of a person engaged in software development is highly context dependent. In the last year as an "engineer" in my previous role, I made a single code commit. A one line configuration change as part of an ops rotation. When I announced I was leaving, my supervisor (and his supervisor) was sad. They threw me a party with a customized cake. How was my contribution being measured? I wasn't managing people. I wasn't coding. But I had "built" multiple products.

Someone once asked me "how do you explain to your parents what it is you do at work?" I replied "I can't even explain it to my boss."

People regarded as 10x in one situation will enter another situation and appear to fail miserably.


👤 jerjerjer
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.


👤 bovermyer
"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.


👤 danwee
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).


👤 impoppy
>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.


👤 _bax
Usually developers trained the company

👤 brailsafe
Literally nothing. I've never received any kind of fornal training that wasn't my own pursuit outside of work, even if it stood to benefit my employer. I've received more training at Starbucks than any job doing programming. Except for 2 days of Agile training at a corporate gig, which was obviously worthless.

👤 crispyambulance
To use the term "10x" and have it actually mean something requires recognizing that's it's an exceedingly rare phenomena.

It's one of those things that is so rare that there is little in common across actual 10xers. To cherry pick any aspects of "common" 10xer backgrounds and try to apply these to "grow" a 10xer makes about as much sense, in the business domain, as finding out what Warren Buffet eats for breakfast and then doing the same expecting some kind of results-- or maybe wearing turtlenecks like Steve Jobs (people have tried).

It it far more realistic, I think, to simply strive-for and train-for valuable skills/capabilities, to seek out effective people around you and learn from them at a "ground-level" and solve problems collaboratively and thus learn their approaches, developing an intuition of how to proceed against challenges.


👤 SuoDuanDao
Not sure how well my company does at this - our software division is quite small - but I think more than training the special sauce is a high-trust environment. I think that mostly because while I've never seen a 1X programmer become a 10X programmer, I have seen the reverse when trust between colleagues soured.

Here's my reasoning why the reverse would work also: Most comments on here that acknowledge the 10X programmer is a real phenomenon agree it's not about speed of writing but understanding the business's needs and finding the optimal solution, not coding the obvious one 10X as quickly. That requires a workplace where people feel safe thinking outside the box.

Much of this idea comes from this speech by John Cleese: https://www.youtube.com/watch?v=Pb5oIIPO62g


👤 cies
Move to better tech: going from building apps on Drupal to Ruby on Rails got a big team to understand what they were doing (MVC, web applications, migrations, DDD, fat-model, separating concerns, REPL-based development, deployments-wihtout-migrations in one command, ssh, and more).

Then going from Groovy to Kotlin (using types in your advantage, functional-style where it makes sense, IDE comprehension of code, fear-less refactoring).

Now we are using Elm to replace some brittle React/Litelements/jQuery mess (sum-types, strong typing, currying, etc.)

Also I believe we should regularly discuss bad code examples, code style improvements and evolving the processes. We do this in a "retro" session at least once a month.

One of the best thing I learned is to accept to be a "bad programmer", hence I like strong typing, defensive coding styles, and smart IDEs.


👤 Aeolun
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.


👤 SideburnsOfDoom
The "individual 10x engineer" who stands out among their peers is a bit of a myth. And a bit of a useless thing, the team's performance matters so much more than one individual on it - in fact it's possible to make the team less effective overall by e.g. raising 10x the usual rate of PRs and waiting for others to deal with them.

"great teams make great engineers", not vice versa

https://www.youtube.com/watch?v=XppRCB99djw&list=PLuAItjWV4p...


👤 ranting-moth
I have worked with a "10x" engineer.

How do you think a team of ordinary (1x) engineers will function if you add a 10x engineer to it?

I'm my case it was like putting a car driving 100 mph where the speed limit is 10 mph. A disaster.

I think that a 10x engineer could work alone in isolation.

Base in my experience a 10x engine would also not function in a team of other 10x engineers. You need to have complete disregard for what others think and do if it's anything like my experience.


👤 Maxburn
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.


👤 thuanmem
I think I've trained myself to become better, by proactive in picking task, asking question and reading business requirements. It helps me know a lot of techninals and non-techinal things.

👤 eigart
Very interesting thread, and something I’ve wondered about. My (very profitable) employer does very little. I get conference attendance every 3rd year and whatever management think is valuable knowledge to share internally (random coworker doing a talk on something they’re good at).

After having looked for opportunities for a while, I suspect being independent/in a co-op, or at least in a very employee oriented/owned shop is required to take care of your own long term development.


👤 atonse
As a developer/business owner who cares deeply about our staff’s long term growth, I started reading this thread looking for ideas we could use.

Right now our strategy is some combination of mentoring/pairing time, teaching concepts and how to apply them, encouraging devs to take ownership of their work and rewarding them by having them present their work to clients.

Is it working? Staff seems generally happy with that way of doing things but we aren’t measuring it.

Will continue to look for ideas here.


👤 iamwpj
This is one of the grossest series of discussions on work and life that I've ever seen. OP, please stop shilling for corporations. 10x isn't real and training for any end is completely subjective person to person when it comes to technical skills. Do a good job on whatever you do and focus on improving things while accomplishing your goals both in work and personal life.

👤 Existenceblinks
Most of them won't. In 2022-2023, that's not going to happen. 2011-2015 was a good time companies were helping workforce grow together by willing to train engineers who are eager to learn.

Today? You need 5 years of specific tools to get a job. 10 years of total experience. There are exceptions as always..


👤 PopGreene
If you want to create 10x engineers, be sure to start with 10x management, a 10x culture, 10x hardware and software resources, and a 10x physical environment. Otherwise, you may not be able to recognize the 10x engineers you have because they won't be able to do 10x work.

👤 Am4TIfIsER0ppos
> how companies create 10x engineers

They don't. All the ones I can think of appeared before getting paid. I'd hesitate to say they are born but they're certainly not made in the corporate world.

Also to answer your first question: my company isn't.


👤 Akronymus
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)

👤 quickthrower2
Working as a team. Pairing on tasks and learning on the job goes a long way.

👤 smcleod
I'd take a 1x engineer over a 10x any day of the week https://1x.engineer/

👤 ultra_nick
Ours is requiring everyone to take security, Docker, and web development classes.

It's about 10 years late, but it's an improvement...


👤 readerbaza
1. companies don't "create" engineers, if they could...10x would be the new 1x

2. let people have time to spike WHILE working


👤 dncornholio
10x's don't waste time to things like trainings.

👤 mirekrusin
£1k and 1 week training allowance per year

👤 peterkelly
10x engineers create themselves.