Software Engineer • Former Employee
Pros: The mission:
I loved the main goal of the company, which is lowering international banking costs to minimum possible levels while being transparent on fees and waiting times. It is a worthy task, and they have millions of real users with real problems.
About company structure:
The company is a fast-growing ex-startup, with a mixture of startup and corporate. Hierarchically speaking, it has a flat structure with tribes organized around many consisting teams. All these teams have KPIs to push.
Good part of company structure:
Since it is not yet corporate, there is still flexibility: people can work on stuff they know best, as opposed to only the things in their contract. Also, there is a lot of trust and openness to recommendations outside of your own team.
Good part of engineering culture:
* Lots of smart and world-class level engineers
* A lot of freedom in doing things
* Teams own their process, so no outdated processes to block you
* People can be convinced with reasoning; no bottleneck architects
* Engineers are treated as partners in the product, not just workers
* A chance to talk to the customers, customer support, and OPS as a participant! In my previous company, I could not talk with either of them, so it is a great opportunity to have some ideas
* The CEO picks up the phone to solve customer issues time to time, which shows that the company really wants to be customer-centric.
The best type of employee for the company (in engineering):
* Senior level; has to know how to weigh pros and cons
* Has a lot of willpower to tackle lots of threads and lack of direction (i.e., "I don't know, solve it!")
* Willing to do non-engineering tasks (gathering product requirements, assessing design, discussing team KPIs, etc.)
* Does not fear to decide and risk
* Has the necessary people- and verbal skills to voice criticism in a solely positive way
Cons: Mostly there are two sources of issue with the company: one is having autonomous teams in a flat structure _at scale_, which is a very new concept with not so many ready solutions. The second issue is coming from the fact TransferWise is being an ex-startup with breakneck growth; there was no time tackling them. So in detail:
Negative consequences of autonomy:
* Anything under a KPI gets better and possibly modern as well; anything not measured or easily measurable is not really solved.
* That means that problems outside the responsibility of a team are solved very late or not at all; usually these are the really hard problems.
* There is a cult of the Messiah Employee, who would be a person who can find time, energy, and willpower outside of day-to-day feature work to fix these cross-team really hard problems.
Negative consequences of being an ex-startup:
* The company did not invest in people skills; leads don't know how to solve interpersonal conflicts, so they just lay off people; nor are there employees who can intervene in these.
* There are senior product managers who make decisions over guesses or their own ideas, regardless of the team investing in data analysis and UX beforehand.
* Certain areas like data engineering are surprisingly unprofessional, and a lot depends on the coding skills of a given team's data analysts; the quality varies team by team.
* There is a lot of legacy code that is not tackled, and there is no human resource to do it (scaling issue); also, there are product managers who do not want to hear about these problems, consequently there is a lot of guerrilla engineering tackling tech debt.
* There are many questionable team leads who might have great technical knowledge but are really not mature enough or ready to tackle human issues.
* People are expected to be fine with not-so-great compensation; however, really hard issues require really valuable people who, in turn, might know their price.