Previous Entry Share Next Entry
A Few Skills Needed to Maintain a Modern JS Framework
2008 Headshot
unwiredben

While working on my talk at this year's OSCON, I brainstormed a list of skills that I used in my day-to-day job of keeping the Enyo JS framework going. It got to be a lot larger than I thought:

  • know JavaScript front and back
  • track evolving work in the JS standards world
  • follow interesting techniques from other libraries and tools
  • watch interesting language work that can build on JS (CoffeeScript, TypeScript)
  • plan future direction of your own library
  • understand web browser implementation
  • be aware of quirks and differences between common web browsers and versions
  • understand CSS
  • follow interesting work in CSS standards
  • follow new developments in applications of CSS
  • watch development of tools to enhance styles
  • understand algorithmic complexity
  • understand memory allocation systems
  • be an expert of profiling systems for CPU and memory usage
  • develop your own tools
  • have a working knowledge of front-end build systems
  • understand language minification
  • understand node.js for its use in building tools
  • understand HTTP and follow future HTTP work
  • understand XmlHttpRequest, its various versions
  • understand cross-domain issues and be able to specify how to handle them from client & server
  • understand WebSockets and follow its work
  • understand web security issues and be able to audit your code for problems
  • understand code coverage tools
  • understand test frameworks and testing strategies
  • understand and use continuous integration systems
  • have a good working knowledge of current GPU hardware and its capabilities
  • have a knowledge of Linux systems and how to measure whole-system performance
  • understand the DOM rendering, layout, and painting loop for WebKit
  • have good personal skills
  • be interested in helping other developers with their problems
  • have knowledge of social software systems (forums)
  • have expertise on version control software
  • have expertise on using GitHub to manage a software project
  • have expertise on usign JIRA to manage issue management
  • understand compilers and the limits of what a JIT system in your JS engine can do
  • have working knowledge of various coding standards and defendable opinions
No wonder I feel like I don't have much free time!

?

Log in