What are the basic developer roles?

There are many different types of technical talent. This list is meant to provide a short summary of each to give you a better idea of what the expectations from each role are. Some of these roles can go by other names and we should note that open source developers usually have a diverse array of skills that many not fit in a traditional position. Nonetheless we hope this guide will help you.

Front End Engineer

These engineers are highly comfortable working in HTML, CSS, and JavaScript and know the various APIs that browsers expose. Some front-end engineers also work with Ruby and a few different technologies, but they're primarily geared towards coding for the web including some graphic design work.

Back End Engineer

These engineers focus more on server-side technologies like MySQL for Databases, Python, PHP, JavaScript (NodeJS), Java, C languages, APIs. These engineers are highly focused on data and the communication between the client and the server. They are usually not working on anything graphic design related.

Full Stack Engineer

Full-stack means developers who are comfortable working with both back-end and front-end technologies. These developers most likely work with databases, PHP, HTML, CSS, JavaScript and everything in between. Most full-stack engineers have a specific technology "stack" (group of technologies that go together) that they primarily work with.

UX / UI Developer

User Experience and User Interface Developers are close to front-end engineers, but they are focused less on programming and more on design and implementing design with best practices in mind. These developers can take designs and make them functional in the browser. They also know how to engage end-users and have insights into marketing, SEO, and communication.

UX / UI Designer

User Experience and User Interface Designers are graphic designers who may have some familiarity with HTML/CSS, but they're primarily focused on the content, graphics, look, feel, and marketing funnels (click experiences) of the website or platform. They're usually skilled artists, and know the psychology of what makes people attracted to certain website features.

Database Admin

DB Administrators are specialized software professionals who know the in's and out's of setting up, managing, storing, and organizing databases. They have knowledge of MySQL, SQL, RDBMS, and operating systems like Windows, and Linux.

Dev Ops

DevOps is the practice of operations and development engineers participating together in the entire support and product release lifecycle, from design through the production process to troubleshooting and database management.

Solutions Engineer / Solutions Architect

Solutions Engineers and Architects work closely with clients on coming up with the highly technical, but initial estimate of how to build a technology. They are often relied up during both pre-sales and post-sales implementation work, and have a myriad of skills as full-stack developers.

Mobile Developer

Mobile developers primarily come in two forms: iOS and Android. IOS developers must know Apple HIG , Xcode, UI Kit, the iOS developer tools, as well as of pure knowledge of Objective-C programming. Android developers must know Java, SDKs, Databases, APIs, and XML.

Developer Advocate

A developer advocate is someone who's primary responsibility is to make it easy for developers to use a platform. They can come from various backgrounds from sales engineers, product managers, to community managers. They must know the ins and outs of the specific software they are evangilizing, but they are often geared towards community and advocacy rather than heavy engineering.

Sales Engineer

Sales Engineers are similar to solution architects, but they are primarily focused on pre-sales activity and usually join the sales team on external facing communication and travel. Sales engineers may not touch production level code, but are adept at many languages.

Community Engineer

This type of engineers is unique to the open source community. They are technical employees who have experience coding, and working directly with developers and end-users on answering questions, doing QA work, integrating code, and working patiently with distributed teams to complete projects collectively. The technical skills of community engineer depends on the product, but many of these professionals are well versed in web technologies.

Next Step: