Role Basics: What is Engineering?
Engineers build products.
Flavors of Engineering roles:
Front-end engineers focus on what you see and interact with on your screen. Backend engineers focus on logic that powers what you see. Full stack engineers focus on doing it all. Data engineers work with large amounts of data. Growth engineers work in fast-cycle growth teams.
Example Engineering projects:
Every part of every software product you’ve ever used. The home page, signup experience, search algorithm, purchase button, A/B testing infrastructure… and everything else that happens in the background to make it all happen.
Common activities in Engineering:
- Writing code for new features
- Finding the right open source library or third-party tool to save time
- Searching stack overflow for someone who’s solved your particular problem before
- Refactor code
- Write automated tests
- Debugging — figuring out what’s causing bugs and how to fix them
- Velocity — scope of features built in a dev sprint
- Product performance, depending on feature — e.g. latency/load time, retention
- Code quality
Entry jobs pay $60-150K. If you like the work and are skilled enough to get competitive jobs, Engineering is the most lucrative function in tech.
Engineering career path:
Great. If you love engineering, you can become a technical specialist. Or you can become an Engineering Manager, Product Manager or eventually lead a business.
How accessible are Engineering jobs?
- Time to learn. Takes 1-2 years and 2,000+ hours to become competitive for your first job.
- Selectivity. Very selective. But Engineering is also very transparent — it’s easier to test if you’re great, so (while they help) formal credentials are less important than other roles.
- Ease of working remote. Easy. Because of the cost of hiring in tech hubs and isolated nature of engineering work, many companies hire remote engineers.
Job Requirements: What you need to be competitive for Engineering roles?
Key skills for Engineering:
- Understanding of basic coding concepts.
- Understanding of concepts related to the kind of engineering role you’re applying for.
- Experience in the relevant software languages.
- Ability to create features and overall projects that are similar to what is required in the role.
Professional background for Engineering:
Any. But must learn relevant skills and create a portfolio that proves capability.
Prior accomplishments to be competitive for Engineering:
Has created a portfolio of learning and original projects that demonstrates capability to build things and solve problems relevant to the job.
Personal characteristics for success in Engineering:
- Enjoys building things.
- Systematic thinker.
- Enjoys difficult, focused work.
- Very analytical.
- Likes XKCD 🤓❤️.
Key Engineering concepts and resources:
- Reddit post on how to know if you’ll enjoy engineering
- Whether to use a bootcamp or teach yourself
- How to learn to be a coder, step by step
- What languages to learn first
- Tutorials for different projects
- Landscape of engineering jobs
- Basic computer science knowledge you need to know
- How to ace your coding interview