Being a Full-stack Engineer means you have an understanding and can demonstrate competence at all levels of the stack (database/server administration, backend, frontend, architecture, design, marketing, product/user/business sense, and processing), not just one specific layer. When it comes to web or app development, being full stack means you can set up the web servers and database servers, administer those servers, design the information schema, write backend logic for the application (low-level code, middleware, and AI), write frontend logic, write client-side code, design the application's interface, conduct A/B user testing and get user feedback, optimize for search engines, set up internet marketing campaigns, and piece everything together. Essentially, a Full-stack Engineer can single-handedly create and market an application.<p>Full stack knowledge is typically needed and appreciated during the early stages of a startup, but larger companies dislike people with such broad-ranging knowledge and do everything to limit them, box them in, and prevent them from being hired. The typical excuse is that it's not possible to have knowledge that broad and still have strong depth of understanding in each area, but this is absolute garbage. Most idiots in middle management don't like Engineers like these because they'll become too dependent on them (middle management is obsessed with being able to see everyone as expendable, something that is not usually the case with a Full-stack Engineer). Also, a legitimate Full-stack Engineer is rare and special (even though 10-15+ years ago it was the norm to be this way), and management doesn't like people that are special.<p>By the way, while many job postings state they are seeking Full-stack Engineers, the term is usually just an empty buzzword used by management to lure in someone that knows Javascript. They don't believe there is such a thing as a Full-stack Engineer and think anyone claiming themselves to be one is full of it. So, while it's important for many companies (startups, especially) to have people with this skill set, they're still playing the same game of hiring in those that are expendable (no, "specialized"), mediocre (can't handle anyone that's skilled), and compliant (can't handle anyone challenging their authority).<p>I'm a Full-stack Engineer (if I'm not, then that's where I want to be), so I'll share my skill set as an example of what a Full-stack Engineer would know:
- Hardware: VHDL, circuit board design
- Backend: Python, Go, Java, Lua, C/C++, PBASIC, SQL
- Frontend: Javascript, HTML, CSS
- Machine learning knowledge
- Able to set up and maintain servers
- Can create wireframes and design a user interface
- Can set up A/B tests and analyze user feedback
- Can create and optimize internet marketing campaigns (most people don't realize this is almost 100% an engineering and optimization problem)
- Good business and user sense