SWE
The SWE or Software Engineer is the traditional developer role. SWEs write functional code that ships to users. They create design documentation, design data structures and overall architecture and spend the vast majority of their time writing and reviewing code.
- SWEs write a lot of test code including test driven design, unit tests and, as we explain in future posts, participate in the construction of small, medium and large tests. SWEs own quality for everything they touch whether they wrote it, fixed it or modified it.
- Feature focused
SETI
Salary
The SETI or Software Engineer, Tools and Infrastructure is also a developer role except their focus is on testability. They review designs and look closely at code quality and risk.
- They refactor code to make it more testable. SETs write unit testing frameworks and automation. They are a partner in the SWE code base but are more concerned with increasing quality and test coverage than adding new features or increasing performance.
- SETIs primarily focus on tooling and infrastructure that is intended to optimize the development, testing, and release processes.
- They allow SWEs to develop high quality software as fast as possible
- You improve the engineering productivity of the team
- Make tools to help the team debug better and write great code
- Bridging gap between development community and test organization
SWE v.s. SETI
-
Both engineers writing software, debugging, code reviews
-
SETI software is designed to test v. SWE software designed to send an email
-
SETI software can affect multiple products
- If a framework can impact gmail, it also may be used in Chrome, Apps, etc
-
SETIs focus on the product on the product as a whole
- If you are working on Chrome, you need to make sure the product as a whole is improved
- A framework
-
What do you think SETI’s at Google do?
- Software Engineers that are vetted in every single product area
- 1 SETI for every 10 SWEs
- The software/tools they create is how developers can push to release faster while keeping the highest code quality
- Debugging tools
- Data analytics framework that can show inefficiencies in the coding process
-
What’s the difference between a SWE and SETI?
- Although both code, SWEs clients are the millions of Google users and they focus on building new features whereas SETIs’ clients are the tens of thousands of Google Engineers as they build the framework for Google Engineers to build more sophisticated code.
- each has their own challenges
SETI projects
-
Open source
- Espresso (Android test tool)
- EarlGrey (iOS test tool)
- Martian proxy (http/https proxy)
- Checkers (python test framework)
-
Internal
- Integration testing infrastructure
- Fuzzing tools
- A/B testing tools
- Using machine learning to optimize tests
SETI equivalents in industry:
- SDET @ MSFT, AMZN
- Release Engineer @ FB
- Platform team @ FB, Dropbox, Twitter
- Software Engineer @ small company
TE
The TE or Test Engineer is the exact reverse of the SET. It is a a role that puts testing first and development second. Many Google TEs spend a good deal of their time writing code in the form of automation scripts and code that drives usage scenarios and even mimics a user. They also organize the testing work of SWEs and SETIs, interpret test results and drive test execution, particular in the late stages of a project as the push toward release intensifies. TEs are product experts, quality advisers and analyzers of risk.
- 50-60% coding
- a mix of coding and testing
- writing automation scripts
- creating and organizing test strategies
- working hand in hand with developers