Congratulations on having already couple of years of experience at your age. I've been on the same boat 10 years ago.
As for 10, 15, 20 years of experience: As long as you make sure it's actual 10 years instead of 1 year repeated 10 times you mostly gain awareness and intuition for engineering on a higher level of abstraction as well as the place of technology in a broader business context.
Ruby, Django, MVC, Elixir, TS, React, Vue, functional programming, immutability... specific things, tools, technologies, approaches are becoming less important. The experience is getting transferable and you learn when it makes sense to code the Rails way in Django.
Slowly "I'm going to learn React/Vue so I can do front-end" will become "I have to do front-end so I'm going to use React/Vue". When choosing technology you'll realize that the "job" in "finding the best for the job" is not just delivering the solution. It's making sure the solution is easily maintainable for years. In that timescale stack homogeneity, hiring strategy etc sometimes become even more important than the tech fit. You might think serverless is the way to go for your new task. But is it really worth to introduce go lambdas to the system when you already have 20 ruby devs?
I recommend early switch from "I'm an engineer, let me know what to code" to "I'm here to grow the product/business, let me see what I can do". No one pays for delivering code, companies pay to to solve business problems. The problems you solve don't have to be contained to those that come with your job description and the solutions doesn't have involve technology. No matter the aspect of the inner workings of a company (or life in general), everything can always be improved. Identify the things, suggest/provide solutions and you'll be both satisfied and rewarded.
Of course there's always some feedback loop between items in the sequence but for given scope it's a good idea to minimize it.
Or in other words:
Pick a scope/feature/project, let's say proof of concept for your initiative. It seems like your problem description is robust enough so let's skip to Product solution.
It's a good investment to define everything you can define before stating actual implementation. If you still have some questions to answer then get the answers if that's possible. People have the tendency to leave the "unimportant" details for later but there's no gain in that. You have to spend the time sooner or later anyway. Better to do it sooner because sometimes the "unimportant" detail forces you to go back and rework bigger part of your solution.
Have your entities defined, user stories, UX mock-ups ready before working on technical solution.
Have a technical solution described and validated before you start implementation.
This way you mitigate the risk of being forced to go back to previous steps wasting time or being stuck with sub-optimal solutions.
So regarding the parent comment. If you know enough from the users/market research/cogitating to be reasonably sure about the next step then execute it. Once you get there it's time to continue the research with what you already have in mind.
Otherwise you risk getting stuck in an endless loop of tweaking and changing decisions without reaching tangible milestones.
Let's skip the top countries like those in Scandinavia, Japan, Singapore, Germany and Switzerland.
Belarus, Latvia, Lithuania, Poland, Serbia, Bosnia and Herzegovina are all above USA.
Other people in the thread gave solid advice and things to consider about how to handle that within the company.
Obviously it might not be valid choice for you but I'll expand on an idea of changing companies by describing some of my experience within a company of which management showed unique level of integrity.
The company was Base CRM (now Zendesk Sell). I joined quite early in my career and the company life and it definitely shaped me as a professional.
There was no need to talk much about values because the management clearly lived by them. Transparency and constructive, direct communication was the core. I've never felt out of loop, employees were treated like partners when it comes to access to information. There was rarely a need to ask questions because any piece of information that might be of interest to anyone was proactively presented. Whether the situation was great or not I've never felt something is hidden me. Even when there was a need to make cuts including parting ways with some people I believe most of the company didn't feel angry or frustrated as we had the full context on a daily basis and really felt that they've done what they can to do right by everyone.
I've felt safe delivering constructive feedback directly to everyone, even management. When I made a mistake to discuss something I didn't like in CTO's behaviour to executive closer to my team the reaction was honest and clear: "Yeeaah, but why are coming with this to me?". We've quickly resolved the issue with the CTO directly afterwards.
I'm terribly lucky and grateful to have had a chance to grow in such environment. It taught me that even if the company is not so small it still can be flat in practice, with no visible politics, everyone committed to finding best possible solutions for given problems as long as the management share a common set of values and have common goals.
I assume you raised through the ranks because of your contributions and not by politics. You grew vertically on the professional field. Surely there's enough of things you've done you're proud of and would be solid points on your resume. Maybe at some point it would be a good idea to also grow horizontally by finding a leadership position in some other company.
Feel free to shoot me an email if you are interested in more details or... anything. :)
* Performance (e.g. challenges, obstacles, short/long term goals, feedback, productivity)
* Professional development & engagement (e.g. professional goals, training, engagement, coaching)
* Contribution to company growth (e.g. process improvement, supporting colleagues, training pilot/ buddy programs, any other activities)
* Things done / achievements since last 1on1
* Feedback for the manager (e.g. what he/she could have done better/differently since last 1:1, what you/the team is missing)
In summary: What can be done for you, the team and company aside from just "correct individual contribution".
Try to avoid discussing things related to lifecycle of ongoing projects. Those should be handled within your team's standard execution flow. If there's need to talk more on a 1:1 then probably you have a gap there.
Of course in an ideal world in a company that supports ongoing feedback and people are not afraid to raise any issues on a daily basis it should be just: "Hey, do you have anything to talk about? - Nope, everything we discussed on a daily basis. - Ok, same here".
In the real world, there are always things which "there's never a good time for" and periodical check-up is useful for that just like a team retrospective.
Good point about feedback for the manager, I forgot to mention it. Depends on how well you get along with your manager, but I went as far as to say "you were joking about thing X (usually hiring/firing/PTO/performance etc. topics) which I didn't like".
Yes, I realize not all of us have the luxury of being part of organization where direct, open, constructive feedback whether it's positive or negative is just a thing people do. (Many organizations will boast about values but not live them. If you live them there's no need to even talk about them.)
1:1 or not, good manager should not only make everyone safe with giving him/her and everyone feedback but also ask for it if he/she takes the responsibility of taking care of the people seriously.
Even if that's not a part of the culture then it seems to me it makes sense to try to be the leading example (with a clear, expressed explicitly if needed intent of doing this to make everyone's life and cooperation better) if it doesn't put your job at jeopardy.
However, if it is, maybe it's worth considering what future lies ahead for you in the company? This of course depends on personal goals.
I'm not saying "open development" is not important but your message reads like its dismissive of people with different goals.
I'm a developer, I might create some tool for my needs and share it with others. I've got other income sources so there's no need for me to charge money for it. I just put it on GitHub as the easiest thing I can do to allow others benefit from it.
In some sense I would be open source developer. I don't care about "open development" though, I don't spend time pondering about software philosophy and its place in the world.
If there's a will to donate some money to me so I can justify spending some more time on the tool to make it more accessible in any way then I want the simplest way for both sides to facilitate the transaction.
Same goes for me being on the other side. I see a library I'd like to use, I believe author(s) made a good job, I'd like the library to be maintained, I want to pay for that with as little traction as possible. I don't care if the author created the library because he believes in "free software" or was simply bored and again, GitHub was the most convenient channel to share.
The same way I don't care what philosophy lies beneath music producer's work and what tools do we use while I'm paying him for his tutorials as long as it works for both of us.
That's fine and all. I'm not really involved in that side of things (consuming/producing open source libraries) and I think that side of open source is working fine, albeit it could be better (like most things).
What I'm mainly thinking about, is the running infrastructure. The live servers that are serving requests and providing a service to open source developers.
Some of these services are just nice to have.
Others are services we 100% depend on to get anything done nowadays.
The npm Inc registry is a good example. Imagine that the registry disappears tomorrow. Probably most JS developers would struggle until a alternative becomes clear and most people migrate there.
But just having the risk of having for-profit companies run these pieces of critical open source infrastructure, is a big risk for me as a open source developer.
This open source infrastructure is what I'm scared about, because we basically have no good solutions yet, for running open source infrastructure.
I understand that and that's why I haven't said there's anything wrong with your opinion or that I disagree.
Yes, we'd all love to have our tools (repository, package hosting, CIs, ...) both satisfying our needs and be free of whims of for-profit companies.
Some of us simply don't care that much as long as what we have now works and I just wanted to append that to the conversation.
That's why I only said that your messagereads like... and not assumed you really believe the service is bad in overall just because it's bad within scope of one aspect that's close to your heart. :)
It opens with following conclusion:
There were only 3 bottom-level motivators where it comes to achieving grand things in human history:
* Survival
* Wealth
* Praise of deity
There are things people still do that span generations to satisfy the first 2 drivers (like Norway being cautious about its oil reserves or overall push towards clean energy and mitigating climate change, China's investment in its own and Africa's infrastructure).
People simply got smart enough not to throw monumental amount of effort and resources to please a deity. Of course that's a massive simplification as then there's a question if the organisation that "wrote the check" really did that purely because of the spiritual beliefs of their own or their people.
Though religion has certainly been in decline, people still build great things for religious reasons. The Sagrada Familia is the most obvious example.
But there have also been great things achieved for other reasons, like the moon landings or the ISS. Is that survival? Wealth? Or does it count as something we believe in?
You're right. I should've put "For the most part" before the last paragraph.
When it comes to the moon landing or the ISS... Of course you can say that's because we're explorers. The moon landing was pure survival (don't let the commies win), ISS is research and maybe the researchers put in the effort for a sense of discovery but the money comes from governments and it flows mostly because of a promise of economic or military advancement.
I'm not a cynic in that regard. I love the architecture of religious monuments, I love the fact that we as a species achieved magnificent things like reaching the moon or discovering how black holes work. You can appreciate all of that without kidding yourself about where the money comes from.
My guess is no one will look back and say "Huh, he was right".
The only thing that probably is going to happen is "Huh, why isn't that delivered?" and then they will look everywhere but on the fact that it was, at least partially, just a stupid idea in the first place.
Of course I don't know the exact situation so it's more of a thought on what happens in general in the industry.
At the risk of a totally uncalled-for derail into politics - this is a hilariously apt description of Brexit. It makes me want to reanalyze the entire situation from a project-management perspective. It suggests a possibly illuminating metaphor: party leaders = management + sales, the electorate = the customer, and representatives = developers and engineers.
I mentioned the absolute minimum so there's no excuse. At the same time, even a robotic, automated reply is infinitely more than nothing.