Profile picture

Career Advice About Startups

Videos and discussions from Taro to grow your tech career.

What do mobile testing strategies look like at top tech companies?

Senior Software Engineer at Series E Startup profile pic
Senior Software Engineer at Series E Startup

I work in as an iOS engineer. My current company is a startup that's scaling up fast. In classic startup fashion, testing was historically not a top priority here. As a consequence, we struggle with lots of manual QAing and low code confidence when modifying pieces of poorly tested legacy code.

This has improved in the past year simply by unit testing every new piece of code by default and by introducing unit tests in legacy code as we touch it, boy scouting style.

At this point, I think we need to step it up and I'm looking forward to formalising a testing strategy for our mobile team.

Here are some ideas I have:

  • In the realm of unit tests:
    • I want to introduce API contract tests because our back-end API lacks documentation. In these tests we'd unit test the way we build our requests to API endpoints, and we'd have a sample JSON response from the server to test that the app can parse it into our data models as expected.
    • I want to introduce localisation tests because our app supports many languages but we are always manually testing localisation. In these tests, we'd assert that the outputs of our formatting logic are the ones we want for different locales.
  • In the realm of user interface tests:
    • I want to introduce snapshot testing, because right now the only way we can test that our views are rendered as expected for different view configurations (for example RTL vs LTR, empty content, loading content, content in verbose languages, etc.) is manually.
    • I want to introduce UI tests (sparingly, only for key flows) because we have no e2e tests. Currently, key flows are tested manually and frequently to prevent regressions, which takes lots of time.

What other testing strategies can I propose to establish some standard we can use to further improve our code confidence, reduce bugs, and rely more on automated testing?

How do the top tier tech companies approach mobile testing?

Show more
Posted a year ago
11.7K Views
4 Comments

How to manage a team towards high performance?

Anonymous User at Taro Community profile pic
Anonymous User at Taro Community

I've done a lot of research on how to be a good manager, but now do I just "trust the process" or how do I ensure we are a high performance team over the next half?

I'm a newish EM at a Series-B start up of 150 people, ~25 engineers. So far I have positive feedback from my manager and reports that I am empathetic and supportive. What my manager is telling me now though is that we need to see results. Productivity and performance seem OK in my first months but it is too soon to really see my impact. My manager noted that since we have scaled up from 4 engineers to 25 and gone mostly remote over 3 years there may be a loss of a sense of urgency and the feeling of impact per dev. We are also split into many teams with a smaller scope per team.

The temptation when asked to "get results" might be to ask for constant updates from developers and punish them when fake hard deadlines are given and missed (we are a B2C company so there are rarely actual deadlines). So how do I motivate my team to work hard in a healthy sustainable way? How do I measure the progress and reward them fairly while creating a team focused culture and not one that is competitive and individualist?

Below are some of the management ideas I'm using/working towards. I have lots of room to learn how to do each better, so advice on which to prioritize my effort at improving first would be great in addition to notes on what's missing and what seems off on the list:

Individual attention

  • Working with each individual to set SMART goals for the next half
  • Working with each individual to figure out what motivates them, and do that
  • Figuring out what learning each person wants to do and giving them support there
  • Regular, timely feedback (positive and negative)
  • 1:1s where I do a lot of listening, help remove blocker
  • Shielding from outside distraction and unhelpful pressures

Team culture

  • Creating a lowercase-a agile mindset: people are first and it is ok to fail and we learn from our mistakes. We can fail gracefully by making small, quick launches where we get frequent feedback from the users, and feedback from coworkers on how we are succeeding/failing
  • Making the team effective first, efficient second: 5 wrong things done in a quarter are worse than 2 right things that move the needle
  • Setting team OKRs for the next half that the team wants to accomplish
  • Encouraging team work on tasks, pair programming, positive code review culture, etc
  • Improving the process to make it effective and fun around how the flow of work happens between planning, selecting tasks, marking things as done and tested
  • Team demos with stakeholders to show off results and get feedback

Bonus questions about motivation: In 1:1s how do you figure out what motivates someone since they might not say extrinsic things like money even if that is what they are working for, or the opposite they might be happy at their level and just like the work they do with a good work life balance but might not say that directly either. Also if there is a team of 5 where 2 want money and 3 love the work for itself, how do you tailor their experience to that? The first two will still want fun/interesting work and the second three still want to get promoted and compensated fairly.

Thanks!

Show more
Posted 2 years ago
4.4K Views
5 Comments

What makes a staff engineer from a technical perspective?

Anonymous User at Taro Community profile pic
Anonymous User at Taro Community

I have about 5 YOE and trying to grow from Senior -> Staff engineer but noticing that the path is taking longer than I'd hope.

This is the case whether I try to speak to other companies and ask about interviewing at that level or try to grow within my own company.

Within my own company: Requirements unclear, seems to be more time based (just keep on shipping). Since we're on the smaller side, we don't have a clearly defined structure like FAANG.

Externally: Due to the YOE, usually discussion of Staff isn't even an option even though I think I'm doing Staff level work. In fact, they usually decline the idea before even having a chance to explain what I'm working on.

The projects I'm working on span the entire org (startup), I have multiple mentees, and org-wide impact. I will be honest and say that I don't think the projects I work on are necessarily insanely technically complex (not going out to millions of users, dealing with hyper concurrency issues, or needing to deal with large scalability issues), but they do have a large amount of scope and senior+ level management required to run them.

I think from the project management perspective, I have things nailed down pretty well.

So I wonder if I'm either missing...

  • YOE - Just some sort of arbitrary minimum that is being placed across the board for certain levels to be achieved
  • Technical expertise - I definitely admit that I'm not necessarily INSANELY technical. For example, I can admit gaps like: I don't know how to design a concurrent document editing system like Google docs, or I wouldn't be able to write a live streaming service without reading up on the proper documentation and understanding better how those systems work. Are things like this a requirement to be a staff engineer? To just be more aware or know right away how various systems like this are designed, without needing to do research beforehand?

I'm essentially trying to understand what my gaps might be, and the technical aspect is one I'm unsure about how relevant it is.

Would appreciate any thoughts, especially from Staff+ engineers, maybe sharing what they feel makes them a Staff vs a Senior and how much technical skills play a role vs other elements.

Show more
Posted 2 years ago
3.1K Views
3 Comments

How to know if the founder is legit?

Mid-Level Software Engineer at Taro Community profile pic
Mid-Level Software Engineer at Taro Community

I've recently been approached by a startup founder and asked to complete a take-home quiz, which I did. It looks like the founder is leaning towards offering me the Head of Technology position. However, I have a few concerns and questions.

  1. How can I assess if the founder is someone good to work with?

    From my initial conversations, I've noticed a few things about the founder:

    • They come across as overly confident, almost to the point of being condescending. Is this a common trait among founders, or should it be a red flag?
    • They strongly believe the product will be successful. I think this is a positive trait for a founder, but I'd like to get your opinions.
    • They think all backend jobs will be obsolete in two years due to AI. While speculation is fine, I believe there should be a balance with reasonableness.
    • They talk more about the history of AWS, the life of Elon Musk, and famous quotes rather than focusing on their own product.
    • They tend to underestimate the complexity of engineering feats. For example, they think developing services like DynamoDB and S3 was easy for Amazon because of their large workforce, which I find undermines the actual engineering challenges.
  2. How can I determine if the startup is likely to succeed?

    • What aspects should I be looking at?
    • What questions should I be asking the founder or team?

Any insights or advice would be greatly appreciated!

Show more
Posted 5 months ago
3.1K Views
3 Comments

Meta / Facebook Team Matching - How to find the best team? (E4)

Mid-Level Software Engineer at Series A Startup profile pic
Mid-Level Software Engineer at Series A Startup

I'm moving forward to team matching at Meta for E4 and wanted to ask the community if they had any suggestions for teams with the strongest potential for growth, especially for the New York office.

The recruiter gave me the following survey. I stated I'd be more of a "Product - Generalist" role. Would also be curious to learn more about "Systems - Generalist" as I did the System Design interview as well.

In general from what I've seen, there's a decent amount of opportunity in Instagram, Whatsapp, and Reality Labs (from product announcements and earnings calls). I've also been told to avoid monetization as it's difficult to make an impact there.

Would appreciate any advice or suggestions! Also would appreciate tips on what questions to ask Hiring Managers to assess how they grow E4s.

What is your role? (select the one that applies)

  • Systems - Generalist
  • Product - Generalist

What type of work motivates you the most? (select all that apply)

  • Infra: Scaling challenges
  • UX: Building user experiences
  • Growth: Top of line impact
  • Integrity: Ensuring platform safety
  • Social Impact: Progressing positive change on key social issues

Who do you want to build products for? (select all that apply)

  • Consumers: External, individual users of the Meta family of apps
  • Businesses: External business account users of Meta family of products
  • Meta Employees: Users of internal tools
  • Developers: Internal and external engineers using Meta developer products and APIs

Please select which Meta Pillar(s) you’d be interested in joining? (select all that apply)

  • Family of Apps: Enable optimized enforcement and support of account integrity to foster safe and meaningful communities.
  • Monetization: Empower people and businesses to succeed in the global economy
  • Gen AI: bring the transformative potential of generative AI to people and businesses
  • Reality Labs: build tools that help people feel connected anytime, anywhere

How would you rank your preference in terms of products? (feel free to use numbers)

  • Facebook App
  • Monetization
  • Privacy
  • Messenger
  • Instagram
  • WhatsApp
  • Reality Labs (AR/VR)
Show more
Posted a year ago
3.1K Views
2 Comments