Live data from Hacker News

What is a Full Stack developer? (2012)

laurencegellert.com

81–90 of 124 posts

Re: What is a Full Stack developer? (2012)

#81

To me, a Full Stack developer takes responsibility for the full stack. When a problem arises, she doesn't say: * It's a database problem. Call the dbas. * It's a network problem. Call the network folks. * It's an app server problem. Call the ops team. * It's a user interface problem. Call the UI team. A Full Stack developer first says, 'This is my problem until I can locate the problem and possibly identify someone m…

That's not the definition of full stack I've ever heard of before.

To me, full stack means front end + back end -- can write good CSS and can write good queries. Knows how JavaScript's "this" works, and can intelligently converse about data sharding.

Database administration, network problems, app servers -- these are most certainly NOT part of a full-stack developer's knowledge, any more than fixing the oven in the company cafeteria. And I wouldn't want a full-stack develop touching the company's network configuration or trying to do database administration on high-load production servers under any circumstances -- there are very good reasons that those are left to specialists in these areas.

Of course, it's possible you could have someone who does both full stack and DBA, or full stack and knows a lot about networks, but that has nothing to do with full stack. The "stack" web developers are talking about is, for example, LAMP -- Linux, Apache, MySQL, PHP (or pick your own stack), and it's about being proficient in all the layers of that stack, when writing applications -- not running servers or networks.

Re: What is a Full Stack developer? (2012)

#82
tl;dr: I've seen so much quibbling about what a full stack engineer really is, and it often seems to conclude with the idea that a "true" full stack engineer doesn't exist. It's not that we don't exist. It's that the actual market for us is tiny.

In terms of layers of abstraction I've worked professionally from one step above the silicon (digital/analog circuit design and FPGAs) to domanin-specific language design. I refer to myself as a "seriously full stack" software developer.

As an example I once wrote a device management framework which would allow you, in a short single line of C, to expose a REST interface to a getter function and a setter function for an arbitrary value to a device's management page. The management page would query the device's embedded HTTP server for its configuration schema (generated with the help of type info and "hint" flags from that single line of C), and render a very pretty, very usable hierarchy of AJAX forms to administer the device.

This was written to serve as a configuration mechanism for a computer vision sensor (networked or individual units) for which I helped design the circuit (both logic and power), ported uBoot, ported the Linux kernel, ported the Angström distribution userspace (not as much effort as it sounds thanks to OpenEmbedded), wrote and/or debugged a myriad of drivers (camera, NAND flash, filesystem), designed the application-level architecture, helped with vision algorithm optimization, integrated MPEG4 video streaming, and built all of the (surprisingly snazzy) user interfaces.

I did this work over the course of a year as a member of a core 4-person team with additional help from 8-10 other people who served in various shared support roles. As teammates we all had our unique preferences, talents, and thought processes, but only our Electrical Engineer was somewhat specialized.

The problem for people like me is that it's exceedingly rare that I get to actually flex my true generalist muscle. I'd bet anything that the team on which I worked was faster and far cheaper than any larger, more specialized team competing in the same space. But how many companies are actually willing to take the risk on a team like this? Of those companies, how hard is it for them to put together this kind of team? How many really have the leadership talent necessary to do so?

Edits:

Restructured so I'm making my overall point in the first paragraph rather than the last

Re: What is a Full Stack developer? (2012)

#83

Personal experience is the best. I work alone. I get the business requirements from the Client. I decide on the hardware i.e. the hosting provider, the OS, the web server. I can install and configure Debian, apache, MySQL, Perl and PHP. I use my own web framework. I write my own HTML/CSS. Realize this sounds quite narcissist, but IMO, I am a full stack web developer. :)

This is totally what I see as a full stack dev also.

Speak to client about their problem. Understand 100% of what needs to be done in solving that problem. You can usually do 90% your self or write requirements / wireframes for the other 10% (I usually stay away from design).

Get paid.

I think its great to be a full stack dev.

On the other hand you can build your own MVP's

Re: What is a Full Stack developer? (2012)

#84

"Full stack" is just a re-fusion of the "front-end" and "back-end" web developer separation that was already tired. Something about "the geeks" not having aesthetic sense and "the backend" being too "hard" for "the designers".

It's much deeper than that. A full-stack "backend" developer also understands networking and how to fully use HTTP headers as they were designed (or maybe even stretch things a bit as necessary). They understand that even though their ORM tool makes it easy to individually fetch a dozen objects from one database table, the particular method they are writing right now, will get heavily called in production and they sh…

So now there's full-stack and non-full-stack backend developers too? And a non-full-stack BE developer doesn't know how to deal with HTTP headers and ORM?

My main point was that the separation into these buckets is strained already.

Good, well-rounded developers should know the full ecosystem they're operating in. Some will always be better at and more interested in something, other in other things, that's no surprise, but we don't need to invent a stream of vague titles.

Re: What is a Full Stack developer? (2012)

#85

Earlier quoted context omitted.

Full stack developers have definitely been watered down over the years. In addition to your list you had to know all the electrical engineering behind the hardware. Further you at least needed a minor in chemistry. I scoff at someone who calls themselves "full stack" developer and couldn't even draw the silicon molecule. I just don't trust someone to write my web app who doesn't understand how electrons move. Kids th…

I just don't trust someone to write my web app who doesn't understand how electrons move. Fuckin' magnets. How do they work?

Note to self: Dont hire a pair of clowns to build a web app, if they answer "miracles" to that question

Re: What is a Full Stack developer? (2012)

#86

To me, a Full Stack developer takes responsibility for the full stack. When a problem arises, she doesn't say: * It's a database problem. Call the dbas. * It's a network problem. Call the network folks. * It's an app server problem. Call the ops team. * It's a user interface problem. Call the UI team. A Full Stack developer first says, 'This is my problem until I can locate the problem and possibly identify someone m…

To me that is the definition of an "application support" person, not a developer.

Re: What is a Full Stack developer? (2012)

#87
Can they do...

Requirements analysis?

Project management?

Ui and ux design?

~~~~~~~~~~~

Front end web code (html, css and js)?

Backend programming in one or more of the following (java, php, ruby, c#, python, node.js, etc)?

Do they know how to optimise and profile code written in the chosen language?

Write SQL queries without the help of a framework, can they do (somewhat) advanced things in SQL like sub queries and left joins, do they know how to optimise the db and the queries?

Do they know how to install and configure the OS and the tech stack (http server, database/datastore service, memcached, load balancer, language runtime)?

~~~~~~~~~~~~

Do they know how to write native system code?

Do they know how to write hardware drivers?

...etc, etc, etc

To me you are a full stack developer if you can do all the things between the two lines in my list above. Some people extend those lines further up and further down. But to me if you can do the things in between the lines well, you are full stack

Re: What is a Full Stack developer? (2012)

#88

To me, a Full Stack developer takes responsibility for the full stack. When a problem arises, she doesn't say: * It's a database problem. Call the dbas. * It's a network problem. Call the network folks. * It's an app server problem. Call the ops team. * It's a user interface problem. Call the UI team. A Full Stack developer first says, 'This is my problem until I can locate the problem and possibly identify someone m…

That's not the definition of full stack I've ever heard of before. To me, full stack means front end + back end -- can write good CSS and can write good queries. Knows how JavaScript's "this" works, and can intelligently converse about data sharding. Database administration, network problems, app servers -- these are most certainly NOT part of a full-stack developer's knowledge, any more than fixing the oven in the c…

If the stack, LAMP in this case, is Linux, Apache, MySQL, and PHP/Python? Why shouldn't you need to know about running servers, configuring databases, or other stuff to be a full stack developer?

Linux is the operating system of your server, you should know how to use it. Apache is your web server, you should know how to set it up and configure it. The same for your database MySQL. Obviously you had better know PHP(Python if that's what your P stands for) to develop any software.

I think you're mixing up Full Stack developer with Application developer. The application developer would take PHP and connect to a database to make the application and that's normally that. The full stack developer would set up the servers, configure them, create the application, deploy it, and all that jazz.

I'm not saying one is better than the other. You get more flexibility with a full stack developer but you can get more expertise with an application developer. It all boils down to the opportunity cost of having someone who can do everything well or 2-3 people should all be experts at their part of the puzzle.

Re: What is a Full Stack developer? (2012)

#90

To me, a Full Stack developer takes responsibility for the full stack. When a problem arises, she doesn't say: * It's a database problem. Call the dbas. * It's a network problem. Call the network folks. * It's an app server problem. Call the ops team. * It's a user interface problem. Call the UI team. A Full Stack developer first says, 'This is my problem until I can locate the problem and possibly identify someone m…

That's not the definition of full stack I've ever heard of before. To me, full stack means front end + back end -- can write good CSS and can write good queries. Knows how JavaScript's "this" works, and can intelligently converse about data sharding. Database administration, network problems, app servers -- these are most certainly NOT part of a full-stack developer's knowledge, any more than fixing the oven in the c…

And for a majority of the startups represented on HN, I'm willing to bet they don't have dedicated network guys, heavily-loaded production servers, let alone a dedicated DBA. As a company grows, the responsibility (and hopefully expertise) of a single employee narrows.

To me, "full-stack" means: You can do everything because we're a small startup.

Post reply on HN