How statistics are calculated
We count how many offers each candidate received and for what salary. For example, if a Support developer with Ruby with a salary of $4,500 received 10 offers, then we would count him 10 times. If there were no offers, then he would not get into the statistics either.
The graph column is the total number of offers. This is not the number of vacancies, but an indicator of the level of demand. The more offers there are, the more companies try to hire such a specialist. 5k+ includes candidates with salaries >= $5,000 and < $5,500.
Median Salary Expectation – the weighted average of the market offer in the selected specialization, that is, the most frequent job offers for the selected specialization received by candidates. We do not count accepted or rejected offers.
Support
What is a Support Developer?
A support developer is a person who provides technical support assistance for customers or other users of a software product or service, solving technical challenges, fixing bugs, improving performance and implementing enhancements, as well as communicating with customers and with other developers, while also communicating their needs and problems and documenting solutions.
What skills does a support developer need?
The technical skills required of a support developer include:
- Programming capability in Python, Java, C#, or Ruby
- Web development in HTML, CSS, JavaScript, or PHP
- Database administration in SQL, MongoDB, or Firebase
- Software testing including unit testing, integration testing, and automation testing
- Debugging tools such as Chrome DevTools, Visual Studio Code, or Postman
A support developer needs to bring soft skills to the table as well, including:
- Communication: Write well, concisely, and appropriately in emails, chat messages, or documentation
- Customer service: Be empathetic, courteous, patient, and kind to users
- Problem-solving: Analyse, investigate, and resolve problems
- Teamwork: Collaborate, share knowledge, and learn from peers
- Managing time and priorities
What tools does a support developer use?
A support developer can utilise a multitude of tools depending on the product or service they’re supporting, including:
- Ticketing systems (Zendesk, Jira, ServiceNow etc.) to manage customer requests and track progress
- Version control systems (Git, SVN, Mercurial etc.) to manage changes to code, collaborating with others’ changes
- Code editors (Visual Studio Code, Sublime Text, Atom etc.) for writing and editing code
- Code repositories (GitHub, Bitbucket, GitLab, etc.) to store and share code
- Code review tools (Code Climate, Codacy, SonarQube, etc.) to check the quality of the code written adhering to the coding standards
- Deployment tools (Heroku, AWS, Azure etc.) to deploy or push code to servers or cloud environments
How does a support developer work?
As a support developer, you typically work in a team with other developers, testers, and project managers. The work process typically involves:
- Getting a ticket with a problem or a request for a feature
- Replicating the problem or verifying the request on a local or test environment
- Understanding why or how that problem is there or determining the feasibility of that feature request
- Developing a solution or enhancing existing functionality while adhering to specifications and standards
- Testing it to make sure it works as expected without creating any new errors
- Deploying the solution or enhancement to a production or live environment
- Updating the ticket with the resolution or confirmation to close it
- Documenting the solution or enhancement and providing it to the customer or users
How can a support developer advance their career?
Developers can advance their career through various tracks, such as:
- Senior Support Developer: Responsible for mentoring less-experienced support developers and dealing with more complicated and high-priority issues and requests
- Support Engineer: Offers more technical and usually more specialised support for one (or a limited number of) particular products or services
- Software Developer: Focuses more on designing and developing new software products or services from a design/developer perspective
- Software Engineer: Applies more general and comprehensive engineering practices to software
- Software Architect: Plans, manages, oversees, and coordinates the bigger picture of software products or services
Where is Ruby used?
Ruby Utilization Rundown
Web Slinging with Rails
- Heads up, Spider-Man! Rails, Ruby's sidekick, weaves complex web applications faster than you can say "Great Scott!"
DevOps' Swiss Army Knife
- Chefs kiss for Ruby in DevOps! Crafting server recipes with Chef for automated setup that’s as tasty as grandma's Sunday dinner.
Gem-studded Scripts
- It's a scripting jewel box! Automating mundane tasks with Ruby is like finding precious gems in your couch cushions.
Game of Objects
- In the game of coding, you either win or bug fix. Ruby's object-oriented prowess makes it a key player on the coding battlefield.
Ruby Alternatives
Python
Python is a high-level, interpreted scripting language known for its simplicity and readability which promotes rapid development. It's widely used for web development, data analysis, AI, and scripting.
# Python sample code for a simple HTTP server
from http.server import HTTPServer, BaseHTTPRequestHandler
class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.end_headers()
self.wfile.write(b'Hello, Python!')
httpd = HTTPServer(('localhost', 8000), SimpleHTTPRequestHandler)
httpd.serve_forever()
- Readable syntax eases maintenance and collaboration.
- Extensive standard library and third-party modules.
- Slower execution than compiled languages due to being interpreted.
- Dynamic typing can introduce runtime errors.
- Highly versatile, suitable for various types of projects.
JavaScript
JavaScript is a dynamic, high-level scripting language primarily used for creating interactive web applications. It runs on the client side within the user's web browser.
// JavaScript example for a simple alert
document.addEventListener('DOMContentLoaded', (event) => {
alert('Hello, JavaScript!');
});
- Ubiquitous on the web, supported by all modern browsers.
- Asynchronous programming with callbacks and promises.
- Can result in complex code due to callback chains.
- Some find the dynamic typing system to be error-prone.
- Enables interactive client-side web applications.
Go (Golang)
Go, or Golang, is a statically typed, compiled programming language designed at Google. It's known for its simplicity, concurrency support, and performance.
// Go sample code for a concurrent HTTP server
package main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "Hello, Golang!")
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
- Fast execution and compilation speed.
- Concise syntax and powerful standard library.
- Lacks some features found in other languages, like generics (though coming in Go 1.18).
- Small ecosystem compared to more mature languages.
- Built-in concurrency model with goroutines.
Quick Facts about Ruby
Ruby: The Jewel of Programming Languages
Once upon a time in 1995, Yukihiro "Matz" Matsumoto decided to blend the best parts of his favorite languages and, voila! Ruby was born! Like a mad scientist, Matz concocted this language to be both productive and fun, a true friend to the weary programmer. Ruby operates on the principle of POLA (Principle of Least Astonishment), aiming to be your predictable companion, so you're never left scratching your head wondering, "What the heck just happened?"
# Ruby aims to be simple and readable:
5.times { print "We <3 Ruby! " }
Revolutionizing the Scene with Rails
Fast forward to 2004 and a virtual bomb drops in the form of Ruby on Rails, an open-source web framework that shook the earth beneath every web developer's feet. Created by David Heinemeier Hansson, Rails screamed, "Convention over Configuration!" and automated the mundane tasks, transforming web development from a chore to a playground. Goodbye, repetitive code! Hello, building complex websites before your coffee even gets cold!
# Scaffold your way to a complete app in minutes:
rails generate scaffold HighFive giver:string receiver:string
Gems: Ruby’s Sparkling Library Treasures
In the Ruby world, you'll find a glittering trove known as "gems." These little bundles of code joy let programmers easily share functionality and solve common problems without reinventing the wheel. It's like having a personal code genie at your fingertips. Just whisper "bundle install," and a genie pops out to grant all your app's wishes.
# Magic command to install your project dependencies:
bundle install
What is the difference between Junior, Middle, Senior and Expert Ruby developer?
Seniority Name | Years of Experience | Average Salary (USD/year) | Responsibilities & Activities |
---|---|---|---|
Junior Ruby Developer | 0-2 | 50,000 - 70,000 |
|
Middle Ruby Developer | 2-5 | 70,000 - 100,000 |
|
Senior Ruby Developer | 5+ | 100,000 - 130,000 |
|
Expert/Team Lead | 8+ | 130,000 - 160,000+ |
|
Top 10 Ruby Related Tech
Ruby Language
The crème de la coder crème, Ruby is a snazzy programming language that reads like English and a Saturday morning cartoon had a baby. With a focus on simplicity and productivity, it's the Maserati of programming – sleek, efficient, and a smooth ride from start to finish. Just roll in, whip up a killer app, and you're the hero – cape optional.
def hello_world
puts 'Hello World!'
end
hello_world
Rails (Ruby on Rails)
Rails, not to be confused with the things trains amble on, is a full-stack web framework that's more beloved than grandma's cookies. It's all about convention over configuration, meaning you write less code and have more time for ping pong. With Rails, you'll be crafting dazzling web applications quicker than binge-watching a season of "The Mandalorian."
rails new my_awesome_app
RSpec
RSpec is the Sherlock Holmes of testing frameworks for Ruby, helping you to sniff out code crimes before they become a problem. It's all about behavior-driven development (BDD) - talking through your problems, but with code. Ensure your app is as solid as a diamond and just as sparkly.
describe 'An ideal sandwich' do
it 'is delicious' do
expect(sandwich.taste).to eq('delicious')
end
end
RubyGems
Imagine a candy store where all the sugary treats are free, and you've basically got RubyGems. It's a package manager that gives you access to a trove of gems, i.e., libraries, that'll add pizzazz to your projects without reinventing the wheel – or the sugary treat.
gem install nokogiri
Sinatra
Sinatra is Rails' cool, minimalist cousin that doesn't try to do it all – it's a DSL for quickly creating web applications with less fuss and more saxophone solos. When Rails is a Swiss Army knife, Sinatra is that one really good screwdriver you can't live without.
require 'sinatra'
get '/' do
'Put your hands up for Detroit!'
end
Capistrano
Capistrano is the magical elf that does the dirty work of deploying web applications for you – it's like FedEx for your code. One command, and it's sent off to the server, letting you kick back and feast on code instead of worrying about pesky deployment details.
# Deploy with capistrano
cap production deploy
Pry
Pry is the secret agent toolkit for Ruby, a powerful alternative to the IRB (the usual Ruby console). With Pry, you can sneak inside your running program like a ninja and start poking around, fixing bugs, and running code like the charming developer-spy you are.
binding.pry
# Now you’re in the matrix!
Homebrew
Homebrew, known as The Missing Package Manager for macOS (or Linux), lets you easily install all those fancy Ruby-related techs without breaking a sweat. It's like having a personal robot that fetches your tools – just say the word, and voilà, it's there.
brew install ruby
SQLite3 / PostgreSQL
Need a place to stash all your app's secrets? SQLite3 is like a diary with a lock, perfect for small projects, while PostgreSQL is like the vault where banks keep their gold bars – robust, secure, and ready for big data. Both of them get along with Ruby like peanut butter and jelly.
# In a Sinatra app using SQLite3
get '/show/:id' do
@mydata = DB.execute('SELECT * FROM mytable WHERE id = ?', params[:id]).first
erb :show
end
Vim/VSCode/Sublime Text
Nope, these aren't trendy new LA nightclubs – they're text editors where you'll forge your Ruby masterpieces. Vim, the seasoned veteran that you control like a wizard; VSCode, the jack-of-all-trades with a plugin for everything; and Sublime Text, the speedster that makes editing code feel like you're racing a sports car on the Autobahn.
# Sublime Text magic - multi-cursor editing!
# Hold down the Cmd (or Ctrl) key, click in all the places you want a cursor, and then start typing.