Full-stack developers have a lot to deal with these days: CSS frameworks, frontend MVCs, REST servers, databases, and more. That not including any infrastructure, containerization, and additional operations work. The three end states for full-stack devs are trying to do everything themselves (resulting in poor quality across the board), working endlessly (ending in burnout), or compromising on overall control of everything and augmenting their skills with frameworks and tools. This talk discusses how to best come to terms with relinquishing control and finding good frameworks when it comes to frontend development.
About Brian
I'm a full-stack developer who adopted frontend development out of necessity. I normally work with a Java stack, though I've worked in many other languages as any developer will. Most of my experience is in rapid application development spanning from infrastructure to UI. My hobbies include drinking coffee and finding new open-source projects.
GitHub: https://github.com/TheConnMan
Website: http://theconnman.com/
2. AGENDA
• About Me
• Definition of Full Stack Dev
• Frontend Development
• Ecosystem
• Pressure on Full Stack Devs
• Staying Afloat
• Q & A
3. About Me
• Currently work for Netuitive
• Previously in the government consulting space
• Generally work with Java stacks
• Creator of many side projects, almost all on GitHub
• Primarily a web developer
• Windows user
brian@theconnman.com
http://theconnman.com
https://github.com/TheConnMan
4. FULL STACK DEVELOPER
• Works across multiple (not
necessarily all) layers of the typical
three-tier application stack (UI,
backend server, database)
• Takes part in operations
• Responsible for their own code
throughout the entire development
lifecycle
Integration
Points
Core
Components
Generalist Specialist
Bull Dog
Architect Integrator
True Expert
Me
6. ECOSYSTEM
• Proliferation of JavaScript everything (including server-side JavaScript)
• Recreation of server-side tooling for client-side
• Task runners, dependency management, MVC
• Large number of frontend frameworks (both JavaScript and CSS)
• Precompilers which multiply the number of frontend “languages”
• CoffeeScript, TypeScript, SASS, LESS
• Accelerating increase in full application complexity
7. PRESSURES ON FULL STACK DEVS
• Frontend development is moving too quickly
• Increasing amount of ground to cover
• Movement from creating software to integrating software
• Pressure to specialize, especially in larger organizations
…So what do we do?
8. STAYING AFLOAT
• Regularly reevaluate, but don’t expand, your core tool stack
• Climb on the bandwagon carefully
• Use a small number of mature frameworks
• CSS: Don’t
• Practice good frontend hygiene
• Take ownership of everything you build and learn from it
• Others?
• Self Awareness – Figure out your strengths and weaknesses
9. MY TOOL STACK
• Frontend Framework – AngularJS
• CSS Framework – Semantic UI
• Frontend Dependency Management – Bower
• Backend – Grails
• DB - MySQL
• Editor – Atom/IntelliJ IDEA
• Build Server – Jenkins
• Deployment – Docker and AWS Elastic Beanstalk
• Source Control - GitHub
10. MY TOOL STACK
• Frontend Framework – AngularJS
• CSS Framework – Semantic UI
• Frontend Dependency Management – Bower
• Backend – Grails
• DB - MySQL
• Editor – Atom/IntelliJ IDEA
• Build Server – Jenkins
• Deployment – Docker and AWS Elastic Beanstalk
• Source Control - GitHub
But what about [insert hottest
new JavaScript thing here]?