- Dealing with a Low-Quality Engineering Culture at Big Tech
- Inside the Longest Atlassian Outage of All Time
- A CTO’s Guide to Remote Compensation Strategies
12:17 Hi folks,I’d like to share a summary of an article that I have just read on The Pragmatic Engineer newsletter titled Dealing with a Low-Quality Engineering Culture at Big Tech that aims to give an answer to the following question;
“Q: I’ve joined a FAANG company (one of Facebook, Apple, Amazon, Netflix and Google.). I was hoping to learn more best practices and to improve my engineering skills.“But a few months in, I’m shocked by the engineering culture. The team I joined has the worst codebase I’ve seen. No unit tests, poor naming, code reviews non-existent, and the build takes 30 minutes. My manager is uninterested in my suggestions to improve things. What can I do? Help!” – a disillusioned software engineer
The article covers the following topics:
- Big Tech expectations vs reality.
- Reasons for lower engineering standards.
- Handling the initial shock.
- Improving the engineering culture.
- Advice to avoid surprises when joining a new company.
#knowledgesharingBig Tech expectations vs reality
- Large companies are not one “unit,” as most people imagine.
- A large company can be defined as a collection of “bubbles” or “startups”.
- Each “bubble” or “startup” is different; different dynamics, maturity, seniority, momentum, …
- Teams can be categorised on the following groups:
- Stable senior team.
- Newly formed team
- Junior team
- Overworked team
- Toxic team
- “The manager’s about to be fired” team
- All these teams and situations occur in large tech companies. When joining a big company, you could find yourself in any one of them.
Reasons for lower engineering standards.
- The product maturity and the phase on the lifecycle;
- Prototyping phase
- Product before product-market fit (PMF).
- A product fighting for survival
- Aggressive growth.
- A “cash cow” product which is risky to change
- A product to be sunset
- The team dynamics
- An engineering manager who does not understand modern engineering practices.
- The tension between product and technology is not well balanced.
- No senior / experienced engineers
- Team stretched too thinly
- Outages don’t have much business impact
- Ever-changing requirements
- Deadlines set outside the team
- Pressure to move on to the next thing
- The key engineer left
- The organization dynamics
- M&A; Acquisitions, merges, de-mrerges
- Misaligned leadership incentives
- Engineering quality doesn’t help with promotions
- Different engineering quality bars in teams across the company
Handling the initial shock
- Know that it’s normal to feel disappointed about how poor things look from the inside
- Don’t start fixing things on day one, start by shipping things on day one
- Learn about the history of your team
- Ask your teammates for their thoughts on the engineering quality.
- Talk to engineers outside your immediate team
Improving the engineering culture
- Pick up the rhythm of the team and gain people’s trust
- Start with a small change instead of going all-in on improving practices
- Explain and show the positive impact of the improvements
- Add engineering excellence work to the backlog
- Be flexible in your approach
- Build up a reputation of getting things done while improving quality
Advice for avoiding surprises in your new job
- Reverse interview your future manager and also a future teammate (read more)
newsletter.pragmaticengineer.comDealing with a Low-Quality Engineering Culture at Big TechBig Tech expectations vs reality, handling the initial shock, and improving the engineering culture. (19 kB)https://newsletter.pragmaticengineer.com/p/low-quality-eng-culture?token=eyJ1c2VyX2lkIjo1NTMyMDA0MCwicG9zdF9pZCI6NTIwODMwMzksIl8iOiJyOUF2UCIsImlhdCI6MTY0OTc4MTIxNiwiZXhwIjoxNjQ5Nzg0ODE2LCJpc3MiOiJwdWItNDU4NzA5Iiwic3ViIjoicG9zdC1yZWFjdGlvbiJ9.No134ik29jnFAv2AP9-wO3YqWbxJRf_pLWwL3DX0TM0&s=r12:18
Hello!I’d like to share a summary of an article that I have just read on The Pragmatic Engineer newsletter titled Inside the Longest Atlassian Outage of All Time.As I guess you know Atlassian is in the middle of a 9-days outage, where 400 companies and anywhere from 50,000 to 400,000 users had no access to JIRA, Confluence, OpsGenie, JIRA Status page, and other Atlassian Cloud services.The article covers:
- Atlassian communication with customers and community
- Incident Timeline
- The cause of the outage
- What Atlassian customers are saying
- Impact on Atlassian’s business
- Learnings from this Outage
#knowledgesharingAtlassian communication with customers and community
- Atlassian has gone silent about this incident. It took 8 days for executives to acknowledge the outage. (read more)
- Communication with their affected customers was not better.
- While se radio silent, it was a trending topic on twitter, hacker news, reddit, etc.
Incident Timeline
- Day 1 (Monday, 4th of April)
- JIRA, Confluence, OpsGenie, and other Atlassian sites stop working at some companies.
- Day 2 (Tuesday, 5th of April)
- Atlassian notices the incident and starts tracking it on their status page, where posted several updates.
- They close the day by saying “We will provide more detail as we progress through resolution”.
- Day 3 (Wednesday, 6th April)
- More updates without relevant information
- Day 4 (Thursday, 7th April)
- Atlassian acknowledges the issue on twitter and provides some light details.
- Days 5-8 (Thursday 9th April – Sunday 11th April)
- More updates without relevant information
- Day 9 (Tuesday, 12th April)
- Atlassian sends mass communication to customers; “…we estimate the rebuilding effort to last for up to 2 more weeks.”
- Is the first time that an executive acknowledges the issues from Atlassian
The cause of the outage
- A script that was supposed to delete all customer data from a deprecated plugin accidentally deleted all customer data for anyone using this plugin.
- On How Atlassian Does Resilience they can restore data deleted in a matter of hours. Why is taking so long?
- Atlassian can, indeed, restore all data to a checkpoint in a matter of hours.
- However, if they did this, while the impacted ~400 companies would get back all their data, everyone else would lose all data committed since that point
- So now each customer’s data needs to be selectively restored. Atlassian has no tools to do this in bulk
What Atlassian customers are saying
- The biggest complaint from all customers has been the poor communication from Atlassian
- The impact of the outage has been large for those relying on OpsGenie (“PagerDutty for Atlassian”)
- Most of them said they won’t leave the Atlassian stack as long as they don’t lose data. Because moving is complex.
- They expect some compensation credits.
- Atlassian use to offer:
- 99 – 99.9%: 10% discount
- 95-99%: 25% discount
- Below 95%: 50% discount
- They are not on ~70% uptime
Impact on Atlassian’s business
- Atlassian claims the customers impacted were “only” 0.18% of its customer base at 400 companies
- The biggest impact of this outage is not in lost revenue: it is reputational damage
- Atlassian’s competitors are sure to win from this fumble
Learnings from this Outage
- For incident handling:
- Have a runbook for disaster recovery and black swan events
- Follow your own runbook of disaster recovery
- Communicate directly and transparently
- Speak your customer’s language
- An executive taking public ownership of the outage
- Reach out directly to customers, and talk to them
- Avoid status updates that say nothing
- Avoid radio silence
- To prevent incidents:
- Have a rollback plan for all migrations and deprecations
- Do dry-runs of migrations and deprecations
- Do not delete data from production
(edited) newsletter.pragmaticengineer.comThe Scoop: Inside the Longest Atlassian Outage of All TimeHundreds of companies have no access to JIRA, Confluence and Atlassian Cloud. What can engineering teams learn from the poor handling of this outage? (13 kB)https://newsletter.pragmaticengineer.com/p/scoop-atlassian
Hello friends!I’d like to share a summary of an article that I have just read on The Pragmatic Engineer newsletter titled A CTO’s Guide to Remote Compensation Strategies that aims to give an answer to the following question;
Q: “I’m the CTO of a Series A startup, and I’m leveraging our remote culture to attract engineers from larger companies. However, despite being well-funded, we don’t have the budget to compete on salaries with unicorns and Big Tech.
What are my options to hire good engineers, within a reasonable salary budget?”
The article is mostly written by Sergio Pereira, who has great experience working with remote teams and shares his knowledge at Remote Work Academy. It covers the following topics:
- The status of remote work
- Remote work compensation
- Benchmarks for remote salaries
- Author’s takeaways
#knowledgesharingThe status of remote work
- Accelerated by the pandemic there have been explosive growth of remote work since 2020, and it is here to stay. (read more)
- Business as usual has been abruptly disrupted without clear processes for remote work. This includes a compensation strategy.
- This disruption coincides with the hottest tech hiring market ever; Google is offering almost $500K in total compensation for staff engineers in the Bay area.
- Some post-pandemic observations:
- Most Big Tech companies move back to the office.
- Most startups are remote-first.
- Most employees want to work remote.
- As a result, many engineers leave Big Tech and join smaller startups, so they can continue working remote.
Remote work compensation
- There are two schools (both viable) of thought emerging about remote compensation:
- Salaries indexed on location (mostly adopted by medium to large-sized companies)
- Pros:
- Frugality
- Competitive in expensive talent pools
- Cons:
- Unpopular with existing employees who relocate
- More difficult to retain talent in lower cost countries
- Tensions within the team
- Added complexity of keeping up with regional salary dynamics
- Equal salary for the same role regardless of location (mostly adopted by startups)
- Pros:
- Equality and fairnessCons
- Transparency about salary in job descriptions
- Attract the very best talent from lower-cost regions
- Cons:
- Higher overall cost
- Uncompetitive approach in expensive cities
- Salary is equal, but currency, taxes, and holiday time, and even other conditions (in Belgium it’s close to impossible to hire someone full-time without offering a company car), are location-indexed. There are different approahes here; 1/ equal cost to the company 2/ equal gross salaries.
Benchmark remote salaries
- Salary becnhmarks is becoming very complex complex; they have historically been subject to local dynamics, and remote work is changinh this dramatically. (On salary benchmarks I wrote an article couple of months ago; Benchmarks are challenging… today)
- Now founders and CTOs are trying to make sense of global salaries, it is a common conversation between them (This is a booming niche that will be big business soon).
- Companies doing location-indexed salaries are most actively looking for salary benchmark data (Usually, they can easily build a deep enough pool of talent in lower cost countries).
Author’s Takeaways
- Most engineers prefer to work remote, and will naturally gravitate toward companies that offer them.
- If you’re a startup, consider equal salaries for similar roles
- Location-indexed salaries can make sense if you’re a larger company, or very cost-sensitive.
- To hire the best available talent use equal salaries for equal roles and index your salary bands to high paying companies in the San Francisco Bay Area (the highest salaries in tech)
(edited) newsletter.pragmaticengineer.comA CTO’s Guide to Remote Compensation StrategiesUnderstanding the benefits and drawbacks of location-indexed and location-independent salaries, with numbers. (14 kB)https://newsletter.pragmaticengineer.com/p/remote-compensation-stratgiesMonday, 2 May
Hi folks.I just want to share a 2min-read (so, no tl;dr needed this time) that @joao.alves shared with me today. This article titled 20 Things I’ve Learned as a Systems (Over) Thinker condenses very well some of my intuitions.
#knowledgesharing
cutlefish.substack.com20 Things I’ve Learned as a Systems (Over) ThinkerThis list has received positive feedback. It seems to have struck a nerve. Sending it to coincide with Monday morning to help folks navigate their week. Take care of yourself. Your brain is working overtime—all the time. Practice “radical” recovery. (90 kB)https://cutlefish.substack.com/p/20-things-ive-learned-as-a-systems
3Friday, 13 May
Hello everybody!Today I do not come the summary of any article, but with a summary of the Current economic situation in the technological landscape. As you may have seen, during the last month the financial markets have been on a strong downtrend which has hit special tech companies; the NASDAD has fallen about 30% from the last all-time-high.I am covering the following topics:
- Where does the value of a company come from?
- What is happening?
- Companies at real risk
- My takeaways
Where does the value of a company come from?
- From a macro point of view, and beyond the daily fluctuations, there are two factors that impact the value of a company; 1/ expected future earnings. 2/ banking interest rates.
- Higher expected future earnings affects possitively the valation of a company, while higher interest rates affects negatively, because they represents the “price of time and risk”.
- The effect of banking interest rates is significantly higher in growth and hypergrowth companies, which expect to increase their profits much further over time.
What is happening?
- Most companies are revising their expected future earnings downwards due to macroeconomic reasons, while central banks are increasing the interest rates in order to counteract the expansionary money policies of the recent years and beat inflation. Both facts penalize specially growth and hypergrowth companies.
- Investors, aware of these dynamics, are moving money towards assets whose profitability is more stable and closer in time (i.e. Cocacola shares, real state, etc).
- A lot of money is moving out of the NASDAQ very fast and we can see crazy falls (from the last alll-time-high); Peloton (-92%), Shopify(-82%), Coinbase (-82%), Netflix (-75%), Datadog (-54%), and much more.
Companies at real risk
- Expansionary monetary policies lead companies to make poor decisions in their spending structure.
- This has happened recently especially in hypergrowth companies with “infinite” funding; They committed to payments based on upcoming expected funding rounds, which from now will be much more difficult for them to get.
- We are already seeing bankruptcy cases, such as FAST, which went from being valued at close to $500M to shutting down all operations in just few days.
My takeaways
- Keynesian policies dumb down money and it moves uncritically towards projects that don’t add value (and never will). This is, in part, what causes business cycles.
- Something similar has already happened in the past with the .COM bubble, when many companies disappeared.
- Adevinta’s talent acquisition strategy could focus efforts on identifying which are the startups that will need investment rounds in 2022 or 2023 to survive. The talent should jump out of there at some point.
- There are a few tougher years ahead for the tech space. We’ve been living in a bubble oblivious to the real world, but there are a few tougher years ahead for the tech space. Even the CEO of Uber has already warned of this in an email sent to the entire company.
I hope you find this interesting! #knowledgesharing (edited)
2
4
1
2
1 reply19 days agoView threadWednesday, 25 May
Hi folks!I’d like to share a summary some interesting ideas about Not Knowing, Not Being Able, Not Wanting from the article Bye CODE, Adiós SEAT, Tschüss VW written by Carlos Buenosvinos, former CEO and CTO @ SEAT:CODE.The article introduces the following concepts on a transformation. I found it very relevant for Adevinta.
- Not Knowing is about not having the skills to make something happen. Internal experts who understand the business goals and choose the right amount of technology (no more, no less) are very needed. External consultancies do not fix this, due to perverse incentives, and lack of know-how retention and dots connected.
- Not Being Able is about knowing how-to but having blockers. Two roles are necessary; Sponsors and Rebels. Rebels don’t care about processes and rules, while Sponsors are the ones who protect the Rebels and encourage them to “break things”.
- Not Wanting is about knowing how-to, being able to, but having not the motivation to do so, due to different reason; fear of loosing the job, willingness to keep the power and influence, or thinking “this is not gonna happen”.
Thus, the author’s recommendation to make things happen is; Look for a sponsor, find some rebels knowing how-to, being able to, and wanting to.I hope you find this interesting! #knowledgesharing
MediumBye CODE, Adiós SEAT, Tschüss VWAfter 3 amazing years of such a great adventure as CEO and CTO of SEAT:CODE, it’s time for me to move on. Let me share some thoughts.Reading time5 min read25 Mayhttps://blog.carlosbuenosvinos.com/bye-code-adi%C3%B3s-seat-tsch%C3%BCss-vw-23bc8a4c45a1
2Monday, 30 May
Albert Puigsech19:30 Hi Friends!During last week’s Q&A of asyncronous was slightly stated on some questions and on the chat. Some people may ask What the heck is asynchronous communication, so I come with answer of this question; mostly based on this article but also others:I will cover the following topics:
- Why and What is asynchronous?
- Asynchronous vs Synchronous
- How to go asynchronous?
- Becoming a better writer
Why and What of asynchronous?
- The pandemic has forced several companies to work remotely, algunos estudios han mostrado mejoras en la productividad. (1 2 3) The reasons are unclear.
- Gain back time (and sanity) by avoiding rush hour commutes?
- Avoid distractions of the office?
- Regain sense of control on life scheduling and work-life balance?
- Adaptation of a few workflows to be more asynchronous?
- …
- The hypothesis of this (and many other articles) is that asynchronous pays an important role and “Teams who try to go remote without putting in place tools, workflows, and norms for asynchronous communication will fail”.
- Some definitions:
- Asynchronous communication is when you send a message without expecting an immediate response.
- Synchronous – or real-time – communication is when you send a message and the recipient processes the information and responds immediately.
Asynchronous and Synchronous
- The problem with real-time, all-the-time communication
- It pushes people to spend a large part of their worktime in meetings.
- It leads to constant interruptions.
- It prioritizes being connected over being productive.
- It creates unnecessary stress.
- It leads to lower quality discussions and sub-optimal solutions.
- The benefits of asynchronous communication
- Control over the workday leads to happier and more productive employees.
- Async incentivizes higher-quality communication over knee-jerk responses.
- Better planning leads to less stress.
- Deep work becomes the default.
- Documentation and greater transparency become automatic.
- Collaboration across time zones is seamless.
- It puts in-office and remote employees on the same footing.
- Synchronous communication should be the exception, not the rule. But not everything can be asynchronous, you need syncronous too:
- You want to build rapport with people (e.g., a 1-on-1 or team meeting)
- You need to provide critical feedback or discuss other sensitive topics.
- You have a lot of unknowns and you want to brainstorm different ideas and solutions.
- There are a lot of moving variables and you want to bring everyone on the same page quickly.
- You need to manage a crisis that requires immediate attention.
How to go asynchronous?
- Things you can do individually
- Overcomunicate. When sending a message, include as much information as possible.
- Plan ahead to give people time to read and process your message.
- Say no to unnecesary meetings. Ask to resolve things through documents, slack or email.
- If a meeting occurs, document it well for those who have not attended.
- Book time for Email, Slack, etc, and turn off notifications.
- Use a waiting box, where you put everything you are waiting for response.
- Always check your document sharing settings, to avoid people needing to request access and create delays.
- Things you can do as a team leader
- Promote writing and communication as core skills to master.
- Evaluate people based on their output and results, not how responsive they are or the number of hours they work.
- Abolish required work hours or the requirements to come into an office.
- Emphasize trust, organization, independence, and accountability.
- Adopt a Direct Responsible Individual (DRI) model for management and decision-making.
- Set reasonable, team-wide expectations for acceptable response times.
- Make transparency and documentation a priority.
- Use tools that promote transparency, deep work, and async communication.
- For communication-heavy roles like tech support or client services, implement a rotating coverage system.
- Have communication channels for emergencies.
Becoming a better writer
- Strong writing skills are a baseline for an effective asynchronous communication, specially on larger organizations where messages reach a bigger audience.
- Tips & tricks for editing:
- Break it into readable chunks and avoid an off-putting wall of text.
- Remove unnecessary and distracting elements.
- Use shorter sentences.
- Check grammar (I personally use Gammarly for that).
- Use bullet points or numbering where they make sense.
- Use bolding to make documents easy to scan.
- When necesary use visuals, not only words.
- Value the reader’s time more than your own (text will be written once, but read many times).
- Tips & tricks for getting feedback:
- Ask for feedback from colleagues on emails, documents and other writing.
- Ask people directed questions (instead of “can you give me feedback?“. ask “How easy to read did you find this? What is one improvement you’d suggest?” and/or “What resonated the most? And what part did you find redundant?“.
- Tips & tricks to improve how you write:
- Observe great writing, and copy them.
- Read fiction
- Find and save some of the best professional writing you come across at work and outside work, etc)
- Build Writing Habits
- Teach yourself touch typing if you do not yet type without looking (A recommendation I got from @roi.martin is “typingclub helps on learning and monkeytype helps on practicing”)
- Define writing activities where you commit to editing and seeking feedback (write weekly updates, project summaries, volunteer to take meeting notes, summaries of articles for your colleagues
, etc).
I hope you find this interesting! #knowledgesharing (edited)
The Async NewsletterWhat is asynchronous communication? Plus, how to implement itAnd what you can do to start implementing it, whether you’re an individual contributor or a team leader.Written byAmir Salihefendic17 May(Not automatically expanded because 3 MB is too large. You can expand it anyway or open it in a new window.)