Full stack developer at IoT era

Since Facebook’s Carlos Bueno wrote the canonical article about the full stack in 2010, there has been no shortage of posts trying to define it. For a time, Facebook allegedly only hired “full-stack developers.” That probably wasn’t quite true, even if they thought it was.

Is it reasonable to expect mere mortals to have mastery over every facet of the development stack? Probably not, but Facebook can ask for it. And many other companies also have job descriptions for software engineers mention “full-stack programmer”

It seems as though everyone in tech today is infatuated with the full-stack developer. Full-stack developers are talked about and wanted nowdays because Developers who understand the whole stack are going to build better applications. What does the term “full-stack programmer” mean? Shoud I put my defensive tendencies on high alert when I hear that magic phrase?

Full stack developer definitions

Wait, Wait… What is a Full-stack Web Developer After All? article says that a full-stack web developer is someone who has honed skills in both front-end web design/development and back-end/server coding.

As a full-stack programmer, you certainly need to understand the platform on which the real front end of your application is running. In web development the term full-stack means developers who are comfortable working with both back-end and front-end technologies. The browser end is typically HTML+CSS+JavaScriot and the back-end  could be now-ancient LAMP stack (Linux, Apache, MySQL, Perl) or more up to date MEAN stack (Mongo, Express, Angular, and Node) or something else. To be more specific, it means that the developer can work with databases, PHP, HTML, CSS, JavaScript and everything in between, also, venturing as far as converting Photoshop designs to front-end code.

Outside the traditional web development the stack is somewhat different. A full stack developer developing mobile applications needs to know both the software system running on the smart phone (native app or web app) and the back-end running in the cloud.

Full-stack die-hards would consider a full-stack developer to have specialized knowledge in all stages of software development. Thus, a full-stack developer would be proficient, if not fluent, in:

  • Server, network, and hosting environment
  • Relational and nonrelational databases
  • How to interact with APIs and the external world
  • User interface and user experience
  • Quality assurance
  • Security concerns throughout the program
  • Understanding customer and business needs

Other Pieces of the Puzzle:

  1. Ability to write quality unit tests.
  2. Understanding of repeatable automated processes for building the application, testing it, documenting it, and deploying it at scale.
  3. An awareness of security concerns is important, as each layer presents its own possible vulnerabilities.

Is this possible in Web 2.0? Or in the era of mobile apps? In a TechCrunch article, Peter Yared made the argument that “it’s becoming virtually impossible for a single developer to program across the modern full stack.” It’s virtually impossible to be a true full-stack developer that knows all those areas very well. Is it reasonable to expect mere mortals to have mastery over every facet of the development stack? Probably not, but Facebook can ask for it.To me, a Full Stack Developer is someone with familiarity in each layer, if not mastery in many and a genuine interest in all software technology.

How skilled are you in each discipline? The basics of the languages/frameworks we learn today can often be picked up in a matter of hours: we simply download some code and start hacking through tutorials and demo code. You do not become expert in shoer time, but om this way you can learn enough for many needs.Nowadays programmers must know a range of technologies across multiple platforms in order to do good work. A full-stack developer doesn’t need to master all of the areas and technologies he needs to work it, because that just makes it nearly impossible, he just needs to be comfortable working with those technologies, and that’s a lot too.

A “full-stack programmer” is a generalist, someone who can create a non-trivial application by themselvesYou can count on a full-stack web developer to design, code, implement and maintain a fully functional modern interactive website on his/her own.

People who develop broad skills also tend to develop a good mental model of how different layers of a system behave. This turns out to be especially valuable for performance & optimization work. These skill sets in combination would help in becoming a system integrator or system architect.

Basically when people are asking for a full-stack programmer they’re looking for the all-singing, all-dancing technical wizard. Or at least someone who won’t complain too much when asked to do some work outside their normal comfort zone.

Perhaps most respectable about all people who claim to be full-stack, is that is conveys ambition and persistance. The ideal developer should be willing to have a go at learning anything, but also acknowledge when they need help from a specialist in the team.

Good developers who are familiar with the entire stack know how to make life easier for those around them. If smart people use their heads and their hearts, a better product gets built in less time.

Full stack challenged

Full stack may have been possible in the Web 2.0 era, but a new generation of startups is emerging, pushing the limits of virtually all areas of software. From machine intelligence to predictive push computing to data analytics to mobile/wearable and more, it’s becoming virtually impossible for a single developer to program across the modern full stack.

There are very many layers in modern stacks. Stacks are a lot bigger than what they used to be, and being able to claim one has acquired refined skills at every layer of web development is certainly not a small claim.  It means a person who can work with databases, servers, systems engineering, and client work. Depending on what kind of client is needed that can mean a mobile stack, web stack, or native applications. And some posts really push “full-stack” developer into Unicorn  territory: Laurence Gellert writes that it “goes beyond being a senior engineer,” asks for “familiarity in each layer, if not mastery.”

We are in the midst of a rapid shift to more complicated technologies that, as in days gone by, require experts at each tier.  In this brave new world, it is critical to have at least one person with at least a functional understanding of each of the composite parts who is also capable of connecting various tiers and working with each expert so that a feature can actually be deliveredWelcome, full stack integrators, in addition to engineers with deep technical skills in particular areas.

A new breed of developer: the un-stack developer article points out that the “stack” typically refers to developing for modern applications: Web and mobile. But what happens when you’re developing for desktop apps, legacy application or embedded system?

Un-stack developers look at a given stack and figure out how to write code that solves problems up and down and across it — especially in startups. The un-stack developer uses only the stack technologies that make sense for their software project. Thus, it’s entirely conceivable that a single person can add features across all parts of the chosen stack. This new breed also doesn’t necessarily have an “advanced level of knowledge” of the technologies in the stack.

Let me be clear: an advanced developer is not the same as a good developer. Certainly every good developer should have advanced skills, but not every developer with advanced skills in technologies is a good developer for a startup. Rather, startups need nimble coders with the kind of education that trains them to learn quickly, test often, and get an idea out the door quickly.

The lesson for startups is that you often don’t know what you are going to need until you finish iterating. The truth is that most software developments don’t need the full stack. And even if the installation requires a full stack, it doesn’t always require an advanced developer in all technologies of the stack, especially if you are a startup. Good developers can write code and architect systems both for the current state and the unknown future. Given the speed of change at which all companies, from startups to enterprise, operate, developers need to keep reading and never stop innovating and learning new technologies — so that they can develop simple solutions that work well and endure.

 

What would be a Full Stack Web developer in IoT era?

Full stack developer for IoT would need even wider knowledge on the stack than web era full stack developer. In addition to what a full stack web developer need to know, a full stacks IoT developer needs to know embedded systems development, a large set communications technologies, networking protocols, M2M/IoT communication protocols, sensor technology, typical “maker” technologies (3D printing, proto-board prototyping, Arduino, etc.)  and electronics design. If your IoT application involves wireless communications (they usually include), understanding basics of RF technology would be very useful. In industrial IoT applications understanding of legacy industrial protocols is often needed when devices need to communicate with industrial automation devices.

Solid C/C++ programming language fundamentals is important in most embedded systems applications. A few years of working with real-time embedded microprocessor and microcontroller systems is good. Experience working and troubleshooting HW/SW systems is essential. Knowledge on several scripting languages is good to have, because embedded IoT applications use nowadays more and more parts that are implemented using scripting languages (Python, Perl, Ruby, Bash, Lua, PHP  etc.).

There is also need to know how to do Full life cycle development – design, code, test and release new products, add cool software functionality to existing products, and work with the team to take our products to the next level.

In addition to this the full stack IoT developer needs to understand the involved processes. With this I mean that the developer needs to have understanding on the physical process the IoT device is measuring and/or controlling. In addition the developer need needs to understand the business processes and needs of the companies working on the field the product is aimed to.

Full stack developer IoT era description could be something like this: Full stack engineer with broad skills, experiences and enthusiasm from hardware to software, from engineering to operation, from infrastructure to applications. Good at finding and solving problem. Love to learn, fast to learn. Love designing and building elegant, powerful and inspiring products. Experience in Embedded system, Network protocol, IoT, Web Application Front-end and Back-end, DevOps.

Who needs full stack developers?

Is there truly a need for engineers that have exposure to all these skill sets? Large and small companies two completely different environments, but it seems that both of them need “full-stack developers.

For a time, Facebook allegedly only hired “full-stack developers.” But large traditional companies typically hire people to work in only one area: they tend to separate embedded engineers by disciplines such as firmware, hardware, interface software, and PCB layout. Very large and profitable companies may gather experts from each field in their team. But even in them , it is critical to have at least one person with at least a functional understanding of each of the composite parts who is also capable of connecting various tiers and working with each expert. These skill sets in combination would help in becoming a system integrator or system architect.

Smaller companies and startups NEED full-stack developers. Especially it important for early hire for the team as work typically involves multiple hats. Basically when people are asking for a full-stack programmer they’re looking for the all-singing, all-dancing technical wizard. Or at least someone who won’t complain too much when asked to do some work outside their normal comfort zone. Developers are often forced to acquire new skills when the resources simply aren’t available. In the smaller companies engineering people usually get involved in everything: hardware design , PCB layout, firmware design, hardware/firmware testing of said board, and hardware design/layout/firmware design for production test equipment for high-volume manufacturing. You do need the skills to pull it off. At later time when company has grown these skill sets in combination would help in becoming a system integrator or system architect.

If you know that you need a full-stack developer, there is one problem in getting it: The changes of of finding a really good full stack developer is low. Really good full stack developers are rare, and usually well employed. And when you are looking for talented full stack developer, you need to be careful who you employ, because real multi-skilled developers are often lost in a sea of douchebags, claiming they know it all. You need to know how you separate real full stack wizard from someone who just claims to be such.

 

Sources:

What is a Full Stack developer?

Full-stack developers

The Myth of the Full-stack Developer

The Full Stack, Part I

The Rise And Fall Of The Full Stack Developer

What is a Full-Stack Developer?

The full stack developer is dead, long live the un-stack developer

Being a Full Stack Developer

Wait, Wait… What is a Full-stack Web Developer After All?

Embedded Software Developer – “full stack” embedded hacker to build products

Software Engineer / Full Stack Web developer – IoT / M2M

Is it worth it to go full stack as an embedded engineer?

Wenjie Zhang Embedded software developer with full stack skill

11 Comments

  1. Tomi Engdahl says:

    Stack Overflow:
    Stack Overflow user survey: 92% male, 41.8% self-taught, 54.5% use Javascript, 32.4% are full-stack web developers, 9.1% mobile developers

    2015
    Developer Survey
    http://stackoverflow.com/research/developer-survey-2015

    Reply
  2. Tomi Engdahl says:

    Increase Your Engineering Value in Just 20 Minutes a Day
    http://www.eetimes.com/author.asp?section_id=31&doc_id=1327556&

    Twenty minutes is how much time commercials fill in an hour-long TV show. Why not take 20 minutes a day to increase your value as an engineer.

    In my latest quest to improve your abilities as an engineer, I explained how to create prototype circuits at home. As I was developing my own prototype, I went through my storage unit to pull out some of my parts and reference boards. This encounter produced some gems from my past that inspired me to write a blog about increasing your overall value as an engineer.

    My goal is to increase your value in only twenty minutes a day.

    Bettering your engineering skills involves both the physical circuit evaluation and solving equations. As it turns out, you can probably do both for an investment of under $100. Really?

    I’m a power engineer. I’m expected to 100% efficiency at no cost. Of course you’ll settle for high efficiency at some cost.

    Solving equations is a great way to improve your value. The time spent designing in most engineering jobs is 5-10%. Or at least that was my experience at larger corporations. That number increased at startups but not much considering I developed web pages, marketing plans, business plans….etc. With such a little amount of time invested, you can quickly lose your skills. This happened to me when I decided to go back to graduate school after three and a half years in industry.

    How to Increase Your Engineering Value in Just 20 Minutes a Day
    http://www.planetanalog.com/author.asp?section_id=3319&doc_id=564035&

    As for the physical part of improving your value, life is so unfair. Components have shrunk to the point where us fifty somethings can’t even see the darn things. Further frustrating you is the inability to get a scope probe on the lead let alone hook it with the probe. As a final blow, who wants to spend tens of thousands of dollars outfitting a lab? Fear not my friends. El Cheapo to the rescue.

    The best way to solve the dilemma of the physical circuit is to invest in the old style plugin breadboard with leaded components. I know what you’re thinking, good luck finding one and then purchasing the components individually let along finding leaded ones.

    My solution for a physical lab platform is in the form of the Radio Shack Electronics Learning Lab
    Prior to financial strangulation by divorce and cheaper labor, I intended to get one of these for each of my sons.

    Perhaps you are thinking, “Big deal getting me a thirty dollar circuit that I have to analyze with a kbucks silly scope.”

    As it turns out, there are several smartphone applications such as Oscilloscope Pro (See Reference 6) which turn your phone into an oscilloscope. Perform a google search and you will find both Android and iPhone applications to suit your needs. Just remember, there are voltage limitations to adhere to unless you wish to fry your phone.

    Like oscilloscopes, digital multimeters (DMMs) have really come down in price. Walmart has DMMs (See Reference 8) for under $10.

    In addition to smartphone-based oscilloscope applications, you can find some neat little signal generators too. Some versions have PWM capability.

    Reply
  3. Tomi Engdahl says:

    ‘T-shaped’ developers are the new normal
    Don’t go chasing waterfalls
    http://www.theregister.co.uk/2015/11/02/t_shaped_developers_are_the_new_normal/

    When I joined QA nearly eight years ago I did so in a time of wonderfully ordered roles and responsibilities. It was a world of web developers, designer, application programmers and database administrators. Each sat in their own little area worrying about only their little part of the puzzle with clear definitions of responsibility.

    This venerable model heralded the age of web and app development, but it also contained the seeds of its own destruction, creating a world of silos, isolated and closed knowledge – a world of “not my problem”.

    As these complex systems have matured the effort, and the risks, to change a product have become significant and difficult to achieve. As this era, and the solutions built around it, draws to an end, something new awaits.

    The modern developer requires clear methodologies to work with, a supportive organisational culture and tools that automate the simple tasks. This cultural change does not just apply to software developers – business leaders drive this change and provide the tools for their organisation to thrive.

    With Windows 10 comes the end of the full product upgrade – from now on small iterative changes will be the norm

    A more agile way of working

    The Agile, Lean and DevOps movements are the cornerstone of the new generation of developers. Technologically adept professionals want the ability to self-manage, define priorities and work in a fluid way.

    Agile allows us to create efficient metrics, openness and accountability.

    Lean allows us to explore the work that has gone before, destroying bottlenecks in our systems. The new upstart DevOps use tools and organisational change to create scalable services and products, taming change and integration, where all stakeholders are expected to understand part of each other’s role.

    This is the world where every problem is your problem. To succeed the team needs everyone all in, sharing responsibility, success and failure.

    Work like a ninja

    To achieve this way of working you need a more rounded IT professional, or what the industry refers to as T-shaped developer. A T-shaped developer has one or more deep skill-sets of knowledge complemented with broad generalist knowledge across an entire solution.

    Sometime known as full-stack developers, these rounded individuals are the most in-demand devs – in a modern world that wants staff who can do front end, can make middleware sing and utilise the terminal on their chosen operating system like a ninja, and knows how to test.

    Almost all of these new devs work in the world of open source – the closed shop shrink-wrapped products of the Microsoft and Adobe heyday draws to a close – and public open source solutions, software and services rise to replace them. The developers of today cut their teeth on Linux and OS X and they use languages like SCALA, Python and Ruby, instead of .NET and Java.

    Rapid change

    This phase of machine-led, digital development is one of rapid change – many organisations are conducting root and branch reviews across their entire skill set.

    Reply
  4. Tomi Engdahl says:

    Tips to get funding for your IoT product idea
    http://www.edn.com/electronics-blogs/now-hear-this/4440828/Tips-to-get-funding-for-your-IoT-product-idea?_mc=NL_EDN_EDT_EDN_funfriday_20151113&cid=NL_EDN_EDT_EDN_funfriday_20151113&elq=74710de12abe4c128ce1c3aaeded0962&elqCampaignId=25729&elqaid=29300&elqat=1&elqTrackId=0a8477667da0442fa30d62c5d2acf57c

    At ARM TechCon 2015, Eric Klein offered his perspectives during a keynote on what venture capitalists are looking to fund in IoT as well as some of the technology challenges that are slowing down innovation. Klein is a partner in Lemnos Labs, an early-stage hardware investment fund based in San Francisco, CA.

    Klein shared what ideas have been overdone in the consumer market: smart watches, step counters, smart home hubs, thermostats, and anything that helps you grow “food” in your homes. Frankly, venture capitalists (VCs) are looking for new ideas in the consumer market.

    So what kinds of ideas are most likely to get funded? Products for the industrial/enterprise market are very appealing to VCs. Klein shared what is getting VCs excited in the IoT industrial/enterprise market saying, “Businesses will pay for efficiency gains.” He gave an example of a waste management company that could reduce its fleet of trucks by 1/3 just by adding sensors to dumpsters. Klein added, “There are multi-billion and trillion dollar opportunities still untapped.” These are the kinds of products that VCs are getting behind—ones that can significantly drive down costs and/or add revenue opportunities. Another reason to consider a product in this market: enterprise and commercial companies have money to pay for your product.

    Klein closed his talk with a list of what VCs look for in the projects they fund:

    Team, team, team: smart passionate folks who believe in the idea so much it is contagious
    Understanding of the target market value chain: what part of the dollar are you going to get
    Proven ability to create a physical product and complex systems: what have you made
    Plan to get to profitable unit economics: have a clear path to opportunity

    Perhaps the biggest challenge to the IoT entrepreneur is not the “big idea” or even funding, but instead it is the lack of toolkits to help link the IoT device into a network, analyze the data, and keep it secure. IoT entrepreneurs are forced to become network, data, and security architect experts. “Without these tool chains,” Klein said, “it’s no wonder why they fail.”

    Reply
  5. Tomi Engdahl says:

    Are You a Superprogrammer?
    http://www.eetimes.com/author.asp?section_id=182&doc_id=1328277&
    Unless we have a quantitative understanding of our profession it will be more art than science.
    http://www.embedded.com/electronics-blogs/break-points/4440844/Are-you-a-superprogrammer-
    “Good” is a hard metric to define. Is it lines of code per hour? Is it completed projects per year? What about defect rate?

    Reply
  6. Tomi Engdahl says:

    The full stackoverflow developer
    https://www.christianheilmann.com/2015/07/17/the-full-stackoverflow-developer/

    Full Stack Overflow developers work almost entirely by copying and pasting code from Stack Overflow instead of understanding what they are doing. Instead of researching a topic, they go there first to ask a question hoping people will just give them the result.

    Reply
  7. Tomi Engdahl says:

    Does the Internet Make You Stupid?
    http://hackaday.com/2015/12/08/does-the-internet-make-you-stupid/

    A recent post by [Christian Heilmann] is one of several I’ve read lately talking about how Web sites–Stack Overflow, in particular–are breeding a new kind of developer. The kind of developer that simply copies and pastes example code or schematics with no real understanding of what’s going on. His conclusion is that developers who don’t fully understand what they are doing will become disinterested and burn out. He’s talking about software developers, but I think you could extend the argument to developers of all kinds, including hardware hackers. He concluded that–at least while learning–you stick to the old ways of doing things.

    There’s two things that are slightly different today: First, everyone has easy access to lots of examples. You don’t have to go find a book (possibly at a library), search through it, and find one or two examples. A quick Google will find dozens or hundreds of examples.

    The second thing that is different is that there are places exist like Stack Overflow where you don’t even have to go looking. You can simply ask, “How do I do X?” and you will get answers from someone. It might be wrong. You might not understand it. But you’ll probably get some kind of answer.

    I suspect the hacker community does this less than the general population. We want to build our own things, even when it sometimes doesn’t make a lot of sense. ​But even so, most of us draw the line somewhere. Do you really want to develop a BSP and port Linux to every board you build, or do you buy a Raspberry PI or BeagleBone?

    However, if you don’t have that hacker mentality–and not everyone doing hardware and software development today does–grabbing something off the shelf is a big win. In the workplace, in particular, this is encouraged even though it isn’t always the best idea. I think the problem is we are in a period of transition. The Internet has fundamentally changed how we work, but how we teach people hasn’t fully caught up.

    Being an engineer or designer or creator years ago meant you had to know how to solve tough problems. Sometimes that took research and part of that skill was knowing where you had a high likelihood of finding information on a particular topic. Being a research savvy problem solver (and a hacker, by our definition of the word, nearly always fits that description) still has value, of course. But it isn’t as valuable as it used to be. We need to learn (and teach) a new skill: using Internet research. Off hand, I’d say this has several key components:

    Formulating a relevant query
    Asking relevant, complete, and reasonable questions
    Evaluating the relative merit of what you find
    Adapting what you find to suit your exact problem

    Adapting Answers

    No answer is likely to meet your requirements completely. In fact, I often see people badly struggle badly to make something fit when it would have been easier to do new development (or use a different tool). Reuse is often a good thing, but it isn’t always. Ideally, you will fully understand something before you use it so you can fit it to your exact situation.

    Ban the Internet?

    I like to think most of us are smart enough not to cheat ourselves. You know that if you cheat your way through a class, you aren’t really getting benefit out of it, and I would imagine that anyone motivated enough to build projects on their own are going to take time to understand what they reuse, and that’s great. It gets more complicated when you have an external entity (like a boss or a teacher) pressuring you.

    However, I think reusing things from the Internet is part of the new landscape and it won’t go away.

    So when [Christian] talks about the “full Stack Overflow Developer,” I think he’s missing the point. The developer that can effectively mine the Internet for possible solutions, evaluate them, and adapt them is going to win. We just need to get people in that mindset and tp stop blindly reusing things we don’t understand. We should teach handling Internet-based reuse as yet another tool that you need to master.

    Reply
  8. Tomi Engdahl says:

    Being a Full Stack Developer
    http://www.sitepoint.com/full-stack-developer/

    What does a full-stack developer mean?

    The term full-stack means developers who are comfortable working with both back-end and front-end technologies.

    To be more specific, it means that the developer can work with databases, PHP, HTML, CSS, JavaScript and everything in between, also, venturing as far as converting Photoshop designs to front-end code.

    A full-stack developer doesn’t need to master all of the areas and technologies he needs to work it, because that just makes it nearly impossible, he just needs to be comfortable working with those technologies, and that’s a lot too.

    Reply
  9. Tomi Engdahl says:

    Full-Stack Web Developer
    https://www.carlosja.com/full-stack-web-developer/

    What is a Full-Stack Developer?

    The term full-stack means developers who are comfortable working with both front-end and back-end technologies, and to be a bit more specific; it means a developer has a full understanding all aspects of creating a web site or web application such as databases, PHP, HTML, CSS, JavaScript and some may even get into Graphic Design and Digital Marketing.

    So to go back to the question I’m always asked. What do I like to do best? Everything.

    Full Stack developer have a specialized knowledge in all stages of software development, and design projects.

    Reply
  10. Tomi Engdahl says:

    3 Web Dev Careers Decoded: Front-End vs Back-End vs Full Stack
    http://blog.udacity.com/2014/12/front-end-vs-back-end-vs-full-stack-web-developers.html

    You open a new browser tab, type in a URL, and press enter. The site loads instantly. It nearly takes your breath away with its ultra-clean layout, well-constructed pages, and impressive visuals.

    The people responsible for every part of that experience? Web developers.

    As of November 2014, the Internet contains more than 680 million pages. And counting. Talk about some serious job security for web developers, the people responsible for coding, building, analyzing, and maintaining all those websites.

    Websites are now a critical component for any business to stay competitive. And as web development trends and best practices change practically with the season, there’s no shortage of work for developers.

    If you’ve dabbled in HTML, JavaScript, or maybe a little Python, but you’re not quite sure which path to venture out on, this handy breakdown is for you.

    Front-End Developer

    The front end of a website is the part that users interact with. Everything that you see when you’re navigating around the Internet, from fonts and colors to dropdown menus and sliders, is a combo of HTML, CSS, and JavaScript being controlled by your computer’s browser.

    front-end devs must be adept at three main languages: HTML, CSS, and Javascript programming.

    Back-End Developer

    So what makes the front end of a website possible? Where is all that data stored? This is where the back end comes in. The back end of a website consists of a server, an application, and a database. A back-end developer builds and maintains the technology that powers those components which, together, enable the user-facing side of the website to even exist in the first place.

    In order to make the server, application, and database communicate with each other, back-end devs use server-side languages like PHP, Ruby, Python, Java, and .Net to build an application, and tools like MySQL, Oracle, and SQL Server to find, save, or change data and serve it back to the user in front-end code. Job openings for back-end developers often also call for experience with PHP frameworks like Zend, Symfony, and CakePHP; experience with version control software like SVN, CVS, or Git; and experience with Linux as a development and deployment system.

    Full Stack Developer

    There’s often not a black-and-white distinction between front-end and back-end development. “Front-end developers often need to learn those additional back-end skills, and vice versa, especially in the current economy where marketing is thinly resourced,” said Matranga. “Developers need some of that cross-discipline. Oftentimes, you have to be a generalist.”

    Full stack developers are jacks-of-all-trades.

    Enter: the full stack developer. The role was popularized four years ago by Facebook’s engineering department. The idea is that a full stack developer can work cross-functionally on the full “stack” of technology, i.e. both the front end and back end. Full stack developers offer the full package.

    “Working on both the server side and client side professionally opens more opportunities,”

    Full stack developers work, like back-end devs, on the server side of web programming, but they can also fluently speak the front-end languages that control how content looks on a site’s user-facing side. They’re jacks-of-all-trades.

    Regardless of the specific tools, dependent on the project or client at hand, full stack developers should be knowledgeable in every level of how the web works: setting up and configuring Linux servers, writing server-side APIs, diving into the client-side JavaScript powering an application, and turning a “design eye” to the CSS.

    Using these tools, full stack developers need to be able to immediately identify the client- and server-side responsibilities of a solution and articulate the pros and cons of various solutions.

    Reply
  11. Tomi Engdahl says:

    Reimagining the Full-Stack Developer
    http://www.skilledup.com/articles/reimagining-the-full-stack-developer

    Demand for the almighty full-stack developer is diminishing within the web development market, but that might not be a bad thing. As technologies become more complex, it is becoming increasingly beneficial for companies to take on someone who specializes in one area.

    The full-stack web developer is a jack-of-all-trades, experienced in handling all steps of web development from the back-end or server side to the front-end or design side.

    Yet only 3% of the web development job market is looking for a full-stack developer, while front-end developers, who handle the user’s interface of a site, are the most desirable at 20%, according to data SkilledUp collected from a dataset of more than 28 million online job postings from May 2013 to September 2014.

    Breaking Down the Stack

    It was once fairly easy to be a full-stack developer in the market, but stacks are a lot bigger and harder to keep up with than they used to be. Rather than being well-versed in everything, full-stack developers risk being spread too thin.

    “From a hiring perspective, it’s much easier to target a single technology — Ruby on Rails or AngularJS — than trying to find the complete package of a full-stack developer who meets all requirements,” said Cooper McGoodwin, project manager at Dolphin Micro, a web development company.

    Change is Constant

    Device manufacturers are moving at a rapid pace to outmaneuver each other, making it unbelievable to be a full-stack developer, said Sean Allen, director of product strategy at OutSystems, an enterprise Rapid Application Delivery platform provider.

    “[Full-stack developers] perpetuate a myth that the unicorn not only exists, but that they can keep up … with the churn of technology,” he said.

    “Having a greater understanding of the entire codebase really helps you understand how your project fits in, even if it’s limited. That is very helpful, so you can understand how the changes you are making affects the rest of the app,” Galant said.“We may need any one of our engineers to tackle any kind of project, from front end to back end to DevOps, etc.”

    Reply

Leave a Comment

Your email address will not be published. Required fields are marked *

*

*