Are you... gatekeeping a mental illness you don't have? :)
I'm a software engineer with ADHD. I've been diagnosed by doctors, psychologists, and even imagery (SPECT scans). I work at a big tech company, and I'm very senior and well paid.
They're totally compatible. It's not easy, but by adulthood most of us have a lot of skills to compensate, and sometimes medication.
I'd liken focus with my ADHD to holding a firehouse - it's actually incredibly powerful, but difficult to control.
> I'd liken focus with my ADHD to holding a firehouse - it's actually incredibly powerful, but difficult to control.
Controlling the hyper focus can be hard. I liken my experience of adhd to learning horse riding and being given an unruly stallion for a brain while everyone else got well trained if slower horses. Except no one told you and blame you for not "wanting to work hard enough".
Yea, um, nothing wrong with mentoring and teaching but when management wants me to turn things out on a dime at the same time. Not happening. That junior is getting MINIMAL possible attention for me to work on what ultimately keeps my job not theirs.
Is that really true? Maybe some, but I don’t know about “many”. I’d imagine when most people start on their dev career, they don’t imagine their dream job to be “teaching,” they imagine it to be coding. I think you’d have a tough time getting responses for a “senior engineer” job ad that says you’ll actually be a full time mentor.
This route exists, it's called training and you can earn even more doing that. Absolutely doable, but it's a long road to get there (salary- and lifestyle wise).
What evidence do you have to demonstrate the power of your invention? Is it usable, can you build a business around it and sell it?
I've got a lot of experience w/ the technology stacks used by big tech companies - a lot of time the value of things is not the idea but the execution and implementation.
Which says " At design time we had concerns about Kafka’s I/O model and its lack of strong durability guarantees‐a non-starter for an application like a distributed transaction log[3]"
Seems reasonable, right?
Except "[3] Kafka addressed these durability concerns in version 0.8"
So they built a whole thing, because they didn't bother to ask or say "hey, if we help fix the durability, would that we welcome?" or even "do you guys have a plan and timeline to fix it?"
That's .... not great.
Now, maybe there are other reasons, but they aren't elucidated in this blog post :P.
Even then, my general view would be "did you approach the community and discuss your concerns or just dismiss them out of hand as infeasible", mainly because my experience is that if you do this, you often find they have exactly the same set of concerns/goals, and just need more resources to make it happen.
The desire to build shiny objects is very large. Outside of the paper plans of engineering teams, these things rarely end up up more shiny than what already exists or will be built by the time you are done.
Arguably there are benefits to developing in-house expertise, and no better way to develop expertise than to architect and build a solution end-to-end. Twitter now has several domain experts on staff who can continue maintaining DistributedLog and/or weigh its benefits against Kafka's and make more informed decisions going forward.
Not saying that they couldn't have worked more closely with Kafka's team in the first place, but, hey, now we have two Kafkaesque log services instead of just one. Seems like a win to me.
> Arguably there are benefits to developing in-house expertise, and no better way to develop expertise than to architect and build a solution end-to-end
There are also drawbacks to consider: Those experts might just decide to leave and then you have an in-house solution that you have basically no chance to find experts on. At least with an open source solution you may have an easier time.
Contributing to other open source projects is very different than to open source your project. NIH is one of the worst problem of open source : companies are spending a lot of money to dev new software instead of improving existing one.
Sometimes you need to let talented engineers build things from the ground up, because it's good for them, makes them happy, and stops them from going to work somewhere else. Keeping people with the skills to solve these types of problems around and happy is also great for recruiting and for helping your less capable engineers learn and grow.
Sure, but duplicating Kafka? How many man-months did they put into building this, proving it out, and dealing with fallout from any bugs or production issues?
What's the point of retaining an engineer who's doing nothing for the business but re-inventing existing successful software?
"Sometimes you need to let talented engineers build things from the ground up, because it's good for them, makes them happy, and stops them from going to work somewhere else. "
actually, trying to let people do work you don't need done, in order to keep them happy, is a pretty rookie manager mistake.
If they aren't passionate about it, and you can't persuade them to do the things you need doing, they aren't the right person for the job.
That is always true, even if they were the right person in the past.
Your goal in that case should be to try find stuff the company needs done that they want to do, and push them to work on that. But if you find nothing, ...
You've already got context, know the stack, whatever.
They might be happy to have a known contributor solve some problem or project for them.