Taro Logo
3

How to become a top developer in outsourcing company?

Profile picture
Anonymous User at Taro Communitya year ago

Even though starting to work for a big company like Meta, Amazon, Google, etc. I believe is a hard to achieve (I haven't work for) somehow it looks pretty straightforward. Learn for interview, get the job, level up. Yes, I am sure it's hard and not many will do it but still you know what should be done (yes, may don't know how). But let me tell you a different story:

I work in a not that famous country in the EU and non of the top tech companies is there. Actually 90+% of the companies are outsourcing companies. As a SE with 10 years of experience in the outsourcing world I can tell you how it works: you work on a legacy code which is so old and so bad (hundreds of people have tried write code there) you can't see good practice at all, no code reviews (sometimes there is bad it is very rare), no unit tests, performance review is only about client's feedback and so on, you got the point. It's about the money only and nobody cares if you are good or not if the client is happy. In very rare cases I have started something from scratch but all of my colleagues were so bad progmmers like myself that we messed up all. It's a deadlock. After 10 years I realized I am a bad programmer and I've seen so many bad practices that I have no passion to do anything anymore. Now to the questions:

  1. Is it possible to apply best standards in an outsourcing company like those in FAANG and if yes, how?
  2. How can I fill all the gaps I have at the moment? Can I fill all the gaps with side projects only? How can I fill them when nobody will teach me anything new. Nowone will review my code and like @Alex said, they are the main source to learn :) How would I know is the code good or not? Could it be better?

The ultimate goal of my career (and maybe in life) is to fill the gap not only in my skills but to create a company (product based or outsourcing) where everyone who join to have a chance to become a great programmer. But before helping others, I need to help myslelf. This is how I found Taro.

289
7

Discussion

(7 comments)
  • 6
    Profile picture
    Series A Startup
    a year ago

    To briefly answer your questions, even though I've never worked at FAANG companies:

    1. Yes.
    2. All learning is from within and the fundamentals that make you a great software engineer are less technical than you'd been led to believe.

    The secret to growing as a human being is that external transformation requires first an internal transformation. A mindset change of viewing only yourself as being responsible for your career will lead to behavioral changes.

    Think about these three scenarios:

    1. You spent 12 hours of work on an issue and got a working solution. You submit a PR with only a day left before the sprint ends. One of your coworkers looks at your code, thinks it's good enough, but suggests a better solution you haven't thought of. What do you do?
    2. Someone reports a critical bug on your team's chatroom. Five minutes go by and no one responds. What do you do?
    3. It looks like you're going to miss a deadline because someone else's pending changes are blocking you. They seem to be putting out fires and looking productive while you are left looking unproductive waiting on them. What do you do?

    None of them are technical questions but they ask the following: do you care only about doing the bare minimum, or are you willing to do the best job you can? Is it someone else's problem, or is it a problem you can fix? Will someone else determine what you get done, or will you be proactive and decide your performance for yourself? These are all questions that need to be asked in order to find the answers that will lead to personal growth and transformation.

  • 0
    Profile picture
    Anonymous User [OP]
    Taro Community
    a year ago

    Thank you for your answer! Sorry if it looks I am trying to excuse myself with the companies I have worked for. I see your answer is focued on showing me that the cange should come from me. I completely understand that I am responsible for what I am today and I want to improve, otherwise why would I spend my time here.

    I explained what I've seen to show why I can't apply any good practice anywhere. Even when I read and try new staff, I can't apply them at work and eventually I forget everything.

    Still after reading your thread I don't see an actual answer on any of the questions.

  • 3
    Profile picture
    Series A Startup
    a year ago

    Still after reading your thread I don't see an actual answer on any of the questions.

    It seems like you're asking for a "how" solution as though a different engineering process is going to 10x your productivity and ability. The simple answer is that just knowing how FAANG operates is not going to make a person suitable for that company—they select for the behavior they want, they don't necessarily create the behavior themselves.

  • 0
    Profile picture
    Anonymous User [OP]
    Taro Community
    a year ago

    Sorry, I'm still not sure how I can take your advice and concretely apply it to my work to level up my skills. Can you please elaborate? Yes, I know the technical skills are not everything not only in FAANG but for many other companies as well. But I am interested in the techincal part here specifically. I will give you an example:

    You started for an Outsourcing company and when you started working on the first project, you realize that the project is so old that everything is written in the database. 6 months later you look back and you see you've been working on SQL issues and scripts all that time. Imagine if you have to work on such project for years.

    2nd example you started working on the FE of a project written in JS 10 years ago and you see there are hundreds thousands lines of code. No frameworks were using, just jQuery and javasctipt functions everywhere. The code is so messy that every time you make a small change it creates new bugs. Every time you find a bug it turns out there are few more issues around it. You work for months/years on fixing bugs.

    I can give tons of similar examples but I think you got the point. There is nothing about the behavior of the engineers or anything about soft skills. So please, don't change the topic.

    It's about the nature of the Outsourcing. In many cases you start a project which is a complete mess and it's old like your grandpa.

    How can you continue growing in such project?

    How can you continue grow in a company where all the colleagues you are working with are in the same low level of skills? Because the good programmers don't stay in such company for long time. I am sure about this cause I've seen it for years.

  • 3
    Profile picture
    Series A Startup
    a year ago

    It looks you are trying to say something to look smart instead of actually answering on the questions

    I am responding to your question based on what I gathered from it, from my perspective for what it's worth. You are not required to listen or affirm that what I said is useful. Here's my perspective on why I gave my reply based on the content of the question:

    The content I see:

    • "work on a legacy code which is so old and so bad you can't see good practice at all"
    • "no code reviews (sometimes there is bad it is very rare)"
    • "no unit tests"
    • "performance review is only about client's feedback and so on"
    • "It's about the money only and nobody cares if you are good or not if the client is happy"
    • "In very rare cases I have started something from scratch but all of my colleagues were so bad progmmers"
    • "I've seen so many bad practices that I have no passion to do anything anymore"
    • "How can I fill them when nobody will teach me anything new"

    The answers you want:

    • Is it possible to apply best standards in an outsourcing company?
    • How can I fill all the gaps I have at the moment?
  • 7
    Profile picture
    Robinhood, Meta, Course Hero, PayPal
    a year ago

    Sorry, but to me it looks you are trying to say something to look smart instead of actually answering on the questions.

    OP, please be more respectful when engaging with community members who are just trying to help. The startup engineer left a genuinely thoughtful response as evidenced by the likes on their answer. The burden is more on you to get value from what they're saying as you are the one who's seeking guidance, not on them.

    As the first comment from the startup engineer covers, growth is fundamentally about behavior change and mentality, not technical standards and tactics. The 3 scenarios they shared about taking in feedback, fixing bugs, and unblocking yourself are a good litmus test to see if you have the mentality of a strong software engineer. Something tactical you can think about (and maybe share in this thread) is how engineers at your company have reacted to these scenarios.

    Is it possible to apply best standards in an outsourcing company like those in FAANG and if yes, how?

    As the startup engineer mentioned, engineering quality is more dependent on the overall culture and mentality of the engineers, not the standards, tooling, and processes. Stellar technical infra is a byproduct of good engineering culture; you can't flip it and create better engineering culture by adopting whatever technical standards FAANG uses.

    If you want to level up your team's engineering culture, start with changing minds, not standards. Weave that strive for stellar engineering into your own work and behavior to set the example first. From there, your goal is to make it infectious:

    • Be the person that leaves those thoughtful code review comments on other engineers' PRs
    • Be the person that immediately jumps on the crazy new production issue
    • Be the person that talks to the 10 necessary people to untangle that complicated XFN blocker

    Lastly, I highly recommend our masterclass on how to build deep relationships quickly, as this is the most important piece when it comes to changing culture.

  • 7
    Profile picture
    Robinhood, Meta, Course Hero, PayPal
    a year ago

    All that being said, I know a lot of people who have worked in outsourcing companies, and the engineering quality is generally lower due to the nature of the work (pay is not the most competitive, and products are inherently transient).

    I have also worked on bad engineering teams, and what almost always happened is that I tried my best to uplift them but ultimately ended up leaving. It's simply really hard to change culture as an IC unless you are Staff or Principal level at least.

    It's much easier said than done of course, but the best course of action for you here is probably to change companies. To help with that, I recommend:

    In the meantime, you can level up your technical abilities with our masterclass on how to write better code faster.