Profile picture

Career Advice About Startups

Videos and discussions from Taro to grow your tech career.

Data Engineer at Financial Company profile pic
Data Engineer at Financial CompanyPosted October 27, 2022

Fighting Perfectionism as a Software Engineer (and getting important stuff done).

I’ve come to realize more and more that the greatest thing holding me back by far as a software engineer has been perfectionism. By perfectionism, I mean the mental attitude that says that what I have done isn’t good enough so I need to spend more time on it, or that I’m not ready to do something. This attitude is pretty much the opposite of Meta’s “Move fast and break things”. Here are a few of the ways that this mindset has hobbled me throughout my career: University (I studied Engineering): thinking I had to read the textbook and do all the assigned questions. My GPA suffered. In reality, my time would have been better spent doing past tests/exams and forming better friendships and study groups with other students to learn what was most valuable to know. I’m speaking from both a GPA-maximizing viewpoint, but also from a long-term viewpoint in the case of better relationships with classmates. Immediate Post-University: Thinking that my coding skills weren’t good enough and that I needed to do a 6-month bootcamp which I did. Hindsight is 20/20, but getting my first job and working from there would probably have been better. First job: Struggling with moving fast. I was at a tiny (<10 people) start-up and they wanted speed. I struggled with the pace they wanted because of things like writing formulaic unit tests that didn’t add much value and needing to constantly walk through my code with a debugger. I do believe that this particular company had unrealistic, unhealthy expectations for a newbie, but I also believe I could have moved faster. General learning: Prioritizing online courses over side projects. Job Hunting: Aiming to get done 150 interview questions before applying, rather than applying and doing mock interviews from the get-go. I believe perfectionism is particularly harmful in tech compared to other industries since things change so fast. Maybe this is better answered by a life coach or therapist, but what are some things I can do to limit the pernicious effects of this mindset?

279 Views
3 Comments
Senior Software Engineer at Series C Startup profile pic
Senior Software Engineer at Series C StartupPosted April 15, 2023

How can I safely plan a difficult project for which I have little context?

Context:- My team is going to work on a new project which involves upgrading a service and migrating/enabling all of the dependents to use the new service. This service provides a business critical functionality for our teams and the new version attempts to solve a lot of high impact pain points with the previous version. We have just inherited this service and none of us have worked with it or any of its dependents before. We have some support from the previous team that worked on this project but only in a consultation capacity. This is a project that has been attempted multiple times by various teams over the years - unsuccessfully or with little progress. My perception is that it's going to be a difficult project with low-moderate chances of success. There is a lot documentation but most of it is somewhat outdated. There are a lot of PRs as well but these are for the unsuccessful attempts so I'm not sure how impactful it would be to go through them. The plans for the previous attempts only had internal milestones for the team and a single big-bang completion milestone for stakeholders. Questions:- How can I identify smaller, independent high-level milestones that are relevant for external stakeholders? How can I come up with broad estimates and capacity requirements for the external and internal milestones if I'm not clear on what these milestones would require for completion? How can I think about de-risking this attempt of the project and improving the probability of success?

269 Views
2 Comments
Mid-Level Software Engineer at Taro Community profile pic
Mid-Level Software Engineer at Taro CommunityPosted September 10, 2023

Youngest and least experienced in team but high-potential, how to avoid the "least impactful projects" trap?

I am a middle backend engineer with 2 years of experience. I recently joined a very new startup(< 2 years) where my friend is my manager. He/she is a principal software engineer with 10+ years of experience. In the team, there are 2 other senior software engineers, each is 4 years older than me with 7-8 years of experience. When my friend invited me and interviewed me to join the company, he/she said that I might not be a senior yet, but he/she's sure that I will get to senior really soon because I have a habit of learning consistently. Even though I only have 2 years of software engineering experience, I had previous 3 years of tech experience so I already know how to navigate company politics, communication, and have that business intuition. Also, in my previous company, I was the 1st backend engineer who had to build the codebase and infrastructure from scratch, so I am pretty confident that I am not a junior anymore. However, I understand that I still lack experience and knowledge on how to build clean code and how to build reliable and fault-tolerant system, and I feel like I could learn it from my manager, that's why I joined the current company. The 1st senior engineer is pretty chill, he/she looks like he/she is not very ambitious to get impactful projects and looks like he/she's just happy to have a job to support his family. Besides, he/she joined the company 8 months earlier so I guess he/she already has some context. The 2nd senior engineer joined at the same time as me, and he/she looks pretty competitive. I feel like he/she's constantly sizing himself up against me and he/she's always making some little undermining comments such as "Are you used to code pairing? You look like you can't code", "Let me help you use a terminal", etc. Basically these comments are very subtle and masked as jokes or him trying to help me, but I sense that he/she's actually a bit intimidated by me. My manager has a concept of "pairing", where he/she will split the team into 2 groups, and each group will work on a project for some time and then he/she will rotate it. In the 1st rotation, I was paired with the 1st senior and I did probably 70-80% of the project, but I was happy to do it because I learned a ton and my manager, during the 1-1 said that I was doing great and he/she told me he/she felt that the 1st senior is an underperformer. Despite this, I specifically let the 1st senior gave presentation of the project to the stakeholders because I felt that he/she helped me to onboard to the company so I'm ok with it. The 2nd senior was paired with the manager and I felt that they did project that is much larger in scope and impact compared to me and the 1st senior. It means that now the 2nd senior has much more context than me. Right now I'm being paired with my manager, and the 2nd senior is paired with the 1st senior and I feel like I'm starting to get some context, but I'm just worried that when it comes time for me to get paired with the 2nd senior, he/she will hoard all the impactful projects and context and I will be stuck with really small scope. How to avoid the "rich gets richer, poor gets poorer" scheme? Thank you

246 Views
2 Comments
Senior Software Engineer at Grab profile pic
Senior Software Engineer at GrabPosted September 9, 2022

What kind of organisations should a person join at different points in their career?

Part 1: Before Joining an organisation How can one identify the best kind of organisation to join at different point in one's career? I understand that the advice to this question may not be a prescription for all, but how can one identify places that would help them to maximize their learning and growth. For several other people, different parameters may be important for them as well such as work-life balance. Personally, I feel that WLB is dependent on a person more than that on the organisation. Thoughts? Quite often we feel that growth may be fast paced at startups, but there can be startups that do and don't promote the growth of a person. Given that there is no list out there to check, how can one make the best suited decisions for their career, not landing at a place they should not be at? What kind of research can a person do before joining an organisation?


Part 2: After joining an organisation Given that a person has joined an organisation, what are the kind of signals that they can identify to see whether the organisation is supportive of their career growth and is indeed the right place to be, for them? On several anonymous portals, there are people from the organisation that will talk poorly about an organisation when things are not going good for them. Managers can quite often paint a really rosy picture about the place. How do you identify the honest signal from the noise all around? If you find an organisation not good for you after you join there, how quick is it too quick to leave? How much time should you spend there before you can make a judgement about the same?

231 Views
6 Comments
Junior Engineer at Startups profile pic
Junior Engineer at StartupsPosted July 22, 2024

Appropriate to share standardized terminology proposal?

I'm a junior SWE at a small company which does not have a lot of standardized culture or process. A lot of inaccurate / non-standard terms get thrown around (for example, we call the entirety of one of our older apps the "backend" because of the way our repo is structured) and I've found that this has caused confusion in meetings, especially with new engineers being onboarded. Even though something like this usually only causes a 10-second confusion which is cleared up with follow-up questions, it feels like such an unnecessary inefficiency that could be easily resolved. Also, in general, I believe this can leak into situation where repercussions are worse like client-facing or investor-facing meetings, where for example a manager might call the old app the "backend" to a client, leaving them confused and thus unaligned on what's going on. I typically wouldn't care about something of this scope as a junior, but it seems to me that the entire org would benefit from something like this, and that nobody else has addressed it nor will address it. So I've drafted a proposal for standardized terminology, with suggestions for specific terms to use and specific terms to deprecate in our company vernacular. My question is whether it's appropriate to submit this proposal to my managers. It feels necessary but also not be my place / come across as aggressive. Of course it is hard to answer this question without knowing the specific company culture, but nonetheless, I would like to hear thoughts from seniors about how something like this would come across when coming from a junior.

219 Views
1 Comment