8

I'm a software developer with 10 years of experience, and I'm working in a small company (~8 people) all younger and with less experience than me (except my boss). We work mostly in B2B consulting other companies about their systems.

I've come to a point where I think I reached my professional limits in this place and I feel like I'm stuck in a spot where I'm "the best" and the only one experienced enough to push forward the knowledge we have in the team. I don't want to sound arrogant, because my problem is exactly this one: I'm the best here but I know I'm not supergood, I know I have a lot of things to learn and I know I make daily mistakes but... I have no day-to-day comparison whatsover. Who is supposed to "make me better"? As of now my only source of improvement is courses (online or not), youtube videos, blog analysis etc... but it's really hard to do it all by myself and moreover "learning alone" is not the same as learning with more people. I don't mean to disrespect my collegues, they're nice and good at what they do, just not as experienced and not as eager as I am.

I really would like to avoid leaving the company since all my collegues are nice, I like my current professional position, I like the location etc... but, is there any other way? Someone with similar experiences... how did you manage? To whom did you ask help?

  • 5
    Why not contribute code to active open source projects and get feedback? – Jishan Jan 12 at 17:12
  • 2
    This is one reason why I always like to surround myself with people smarter than I am. – fubar Jan 13 at 2:38
8

Ultimately, you are responsible for your own development, regardless of your situation. When you find yourself as the most experienced person on the team, that doesn't have to mean that learning opportunities are done - instead, it may just mean that your tactics have to change. Here are some things I've tried in the past that worked in different situations:

  • Find a professional group, online forum, or other networking opportunity around a subject you're interested in. Early in my career, I worked on software for maintenance management systems. I found an email listserv (I'm dating myself a bit, but I'm sure there are modern equivalents) for people that used those packages and joined it. It was eye opening - suddenly, instead of being the big fish in a small pond, I was learning from much bigger fish - and I had a chance to help people who were newer, which is a good learning experience in and of itself.
  • Find an open source project you're interested in, and contribute to it. Get feedback on your contributions. You may even be "lucky" and find a project that's so relevant for your employer that they're happy to subsidize your involvement by letting you contribute on work time. Early in my career, I found an open source project that bolted on to one of those systems my firm consulted for, and I was spending a few hundred hours a year writing code for it, on my employer's clock. Open source projects are a great opportunity to learn no matter your employer, because you can just about always find a project with active people who are more experienced than you.
  • Don't give up on the idea of learning from your peers. Even though you're the most experienced and most knowledgeable, there are absolutely going to be things they know that you don't. You may miss those things if you assume they're not there. And even if there aren't many opportunities for them to teach you things, you can learn by teaching. I've often found that when I have to explain my own (perfectly good) code out loud, it forces me to think about things I take for granted, and sometimes I end up making "perfectly good" even better.
  • Look for opportunities that are adjacent to your actual skill set. If your work is mostly writing code, consider learning about other aspects of the systems you're working on (implementation, infrastructure, user training, etc). Learning about adjacent activities can challenge the way you think about the software you're writing.
  • Focus on technical debt. Writing good software is a good skill set, but writing software that is sustainable and will outlast your own involvement is even better. If you're in a position where you leaving would significantly impact your employer, then consider focusing on learning opportunities that help you solve that problem. This is an easy one to "sell" to your bosses, since you're basically building them a safety net.
  • Learn to learn on your own! Yes it's hard work and feels inefficient, but ultimately, you need to be able to develop yourself, by yourself, or else you'll always be at the mercy of others.
  • Go back to school. And it doesn't have to be for an ever-escalating set of higher and higher degrees at name brand universities. Software development and other technology topics have become so pervasive, they've percolated down to community colleges, vocational schools, and other perhaps not-as-prestigious higher ed programs. If you've been out of formal education for a while (or have never had formal education in your field), there are surely methods, subjects, and techniques being taught now that you haven't been exposed to. Even just auditing a low-level course could be a great learning opportunity, and getting involved in classes that focus on teamwork can help you overcome your "learning is easier with other people" obstacle.
  • Teach in a formal setting. It's likely that there are a lot of local educational institutions just clamoring for experienced people to teach (see above bullet!) Teaching is a great way to give back to your community, and even though teaching doesn't inherently force you to learn brand new things, you will almost certainly find that your students challenge your material in a way that helps you refine it - which is an excellent learning process. You may even have students that know more than you do about the subject you're teaching. And you'll almost certainly end up in a network of other teachers and experts, from whom you will likely have many good learning opportunities.
  • 2
    I would add, go back to school and teach something you know. Possibly a local college is looking for adjunct faculty. The pay is low, but teaching a technical topic can greatly improve your mastery of it, not to mention your communications / presentation / empathy skills. Also, great resume material. – O. Jones Jan 13 at 15:28
  • Great suggestion, and one that I've found valuable myself! I'll edit that in. – dwizum Jan 13 at 15:29
4

I really would like to avoid leaving the company

Great, as moving to another company is not guaranteed to solve your problem anyway.

is there any other way?

Absolutely! What is screaming at me from your post is that if you were to get rode over by a bus tomorrow, the company will be in serious trouble, even if they can find a replacement relatively fast, the transition phase wouldn't be pretty.

But luckily the bus factor, and your issue, both have the same solution - the company needs to hire another you. For that person, it will be not only to be important to have all the knowledge and skills to carry the job but also to be assertive and confident enough to stand up to your views and ideas when they are potentially wrong.

While I understand that the suggestion of hiring a person may be a tough sell, to me the idea that the company relies just on one unchallenged person for the knowledge-driven is insane, uncertain and just plain dangerous. I mean, with all due respect, how does anyone, even you, know that what you propose is correct, without having at least as competent review it? You really don't.

And presenting it like that to the boss should make it easier to find the needed money, as those people usually are pricy. If you can't find enough money for full-time, even part-time would help greatly, as you still will have someone to bounce ideas/solutions off and keep up to date on all the things that are being developed. So when you go on vacation or get rode over by the bus, the person is in a position to completely cover your duties.

  • 2
    "hire more" seems like an inefficient answer to the bus problem (what about knowledge sharing, better documentation, better redundancy built into systems) - and I'm not really even sure from reading the question that the bus problem truly exists in the first place. For all we know, the underlings could carry on fine, and the company has the right resources to do the work at hand without hiring another person. – dwizum Jan 13 at 14:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.