How statistics are calculated
We count how many offers each candidate received and for what salary. For example, if a BIM (Building Information Modelling) developer with API 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.
Trending BIM (Building Information Modelling) tech & tools in 2024
BIM (Building Information Modelling)
BIM (Building Information Modelling)
Building Information Modelling (BIM) is the modern way of managing all the information required for a construction project with a single, structured, digital 3D model, through to the demolition of a building. The most important aspect of BIM is that it is not only a model but structured data relating to every component of the building through to when it is eventually demolished. BIM facilitates the flow of information throughout the various stages of a construction project.
Key Features of BIM:
Extensive Component Information: Unlike the simple meshes of 3D modelling, BIM models include extensive embedded metadata – e.g. a modelled wall could have properties such as the building materials, paint specification, manufacturing cost, etc, which can be used to automatically generate material bills and verify element compatibility.
Interdisciplinary Collaboration: BIM allows for greater collaboration between architects, engineers, and the construction team as part of the building process. Everyone creates the model, and every element is checked accordingly to allow designers to build under budget and schedule.
Interoperability with Industry Software: The leading software for BIM, Autodesk Revit, has come to become synonymous with BIM, as it has been adopted by the industry and is now the de-facto industry leader. Using Revit a great deal of detail can be modeled of specific architectural and structural elements such as walls, floors, and pipework with greater accuracy.
Usage Across Industries: BIM was first used in architecture and structural engineering, but it is now becoming more apparent across industries within civil engineering and construction. It is most suited for commercial construction where it can help verify estimates and help contractors install various systems.
Lifecycle Management: One key part of BIM for Facility Management is the holistic management of the lifecycle of a building. That is, not only is construction information provided, but also maintenance, operation, and demolition information. This ensures the whole lifecycle is managed effectively, and ensures that all of the relevant project information is available to those who need it, at the appropriate stage of the project.
Operational Uses of BIM:
Design and Pre-Construction.Modelling is completed by architects and engineers for each discipline in the digital realm, and used to generate drawing and specifications for construction.
Construction and Fabrication. Contractors use artefactual models, the specialised fabrication models, which shape the work of construction, to help coordinate the fitting together of the myriad components.
Post-construction. The as-built BIM models guide facility managers and maintenance crews during the running and management of the building, offering a point of reference that improves the speed and accuracy of renovation or repair work.
What is there in the future?
Finally, BIM is becoming part of the solution to more global urban and infrastructural challenges by integrating BIM with Geographic Information Systems (GIS) – a new elevation, sometimes called City Information Modeling (CIM), that extends the benefits of BIM from the level of the building to the level of the city. These benefits will help solve some daunting problems, such as how to design a city where traffic flows freely but vehicles have minimal carbon footprints, how to maintain networks, and how to make healthcare more accessible.
With the expected massive influx of urban populations by 2050, the role of digital models in urban planning and management is set to become more central than ever, and BIM and CIM more important tools for the construction and civil engineering sectors.
Where is API used?
Matchmaking in Gaming Galaxies
- APIs are cupid's arrows for gamers, connecting player-seeking missiles across servers faster than you can say "lag".
Tweet Storm Forecasting
- Ever wonder how social media platforms don't implode with viral content? APIs juggle those 280 characters so your feed doesn't turn into a digital black hole.
Weather Wizards
- Weather apps conjure forecasts using APIs as crystal balls, so you can know if you're singing in the rain or getting a tan.
Travel Time Machines
- Travel sites teleport you to Bali or Boston with a few clicks, all thanks to APIs working as virtual tour guides in the background.
API Alternatives
Webhooks
Webhooks are user-defined HTTP callbacks that are triggered by specific events. They deliver data to other applications in real-time, unlike APIs, which require polling.
Example: GitHub webhook sending commit data to a CI tool.
# Example webhook URL setup in Python using Flask
@app.route('/webhook', methods=['POST'])
def webhook_handler():
data = json.loads(request.data)
# Handle webhook data here
return 'Success', 200
- Real-time data transfer.
- Reduced server load.
- Better for specific event responses.
- Dependent on external service uptime.
- Limited by the number of triggers.
- Less control over data retrieval.
Message Queues
Message queues provide asynchronous communication between different system components, ensuring that tasks are processed at a manageable rate without loss of data.
Example: RabbitMQ managing load between microservices.
# Example of sending a message using RabbitMQ in Python
channel.basic_publish(exchange='',
routing_key='task_queue',
body='Hello World!',
properties=pika.BasicProperties(
delivery_mode = 2, # make message persistent
))
- Decouples components.
- Resilient to component failures.
- Scalable communication system.
- Complexity in setup and maintenance.
- May introduce latency.
- Monitoring of message processing needed.
Server-Sent Events (SSE)
SSEs allow servers to push data to the client over HTTP without polling. Unlike WebSockets, SSEs are unidirectional, server to client.
Example: Real-time notifications in a web application.
# A simple SSE example in JavaScript
const evtSource = new EventSource("sse");
evtSource.onmessage = function(event) {
console.log("New message:", event.data);
}
- Simple server-side push mechanism.
- No need for a special protocol.
- Lower overhead than WebSockets.
- Only supports text data.
- Unidirectional communication.
- Not supported by all browsers.
Quick Facts about API
The Origins of SOAP
Believe it or not, SOAP – which stands for Simple Object Access Protocol – isn't about keeping your code squeaky clean! Invented in 1998 by Dave Winer and others at Microsoft, it became a groundbreaking way for programs to play nice over the internet. This envelope-wrapped messaging protocol was like Harry Potter’s owl post for computers, minus the feathers. SOAP was the first of its kind, setting the stage for web services as we know them!
REST: The Cool Kid on the Block
Fast-forward to 2000, and the world met REST (Representational State Transfer) thanks to Roy Fielding's doctoral dissertation. Unlike its SOAPy predecessor, REST was the “chill” protocol that used standard HTTP methods like GET, POST, PUT, and DELETE. It was like going from flip phone texting to instant messaging—everyone wanted to REST because it made web communications as easy as ordering pizza online.
GET /pizzas HTTP/1.1
Host: example.com
GraphQL: The New Contender
In 2015, Facebook engineers looked at REST and thought, "Hold my data," introducing GraphQL. This query language for APIs turned heads by allowing for precise and flexible data retrieval. Gone were the days of over-fetching or under-fetching data – with GraphQL, it's like telling your fridge exactly what groceries to keep chilled, ensuring you get just what you asked for, nothing more, nothing less.
{
fridgeContents(only: ["milk", "eggs", "cheese"]) {
items {
name
expiryDate
}
}
}
What is the difference between Junior, Middle, Senior and Expert API developer?
Seniority Name | Years of Experience | Average Salary (USD/year) | Responsibilities & Activities |
---|---|---|---|
Junior API Developer | 0-2 | 40,000-70,000 |
|
Middle API Developer | 2-5 | 70,000-100,000 |
|
Senior API Developer | 5-10 | 100,000-130,000 |
|
Expert/Team Lead API Developer | 10+ | 130,000-160,000+ |
|
Top 10 API Related Tech
JavaScript & Node.js
If API development was a kitchen, JavaScript would be the multitasking chef, and Node.js would be the turbo-charged oven. Together, they whip up scrumptious server-side treats. JavaScript's ubiquity in the browser kingdom extends its reign to the server domain with Node.js, enabling developers to speak one language both client-side and server-side. Plus, being non-blocking is like always getting a green light in traffic!
const express = require('express');
const app = express();
app.get('/api/greetings', (req, res) => {
res.send('Hello World!');
});
app.listen(3000, () => {
console.log('API is listening on port 3000');
});
REST & JSON
I'll rest easy while you ingest this – REST (Representational State Transfer) is the maître d' that recommends the finest architectural style for your APIs. Meanwhile, JSON (JavaScript Object Notation) is like the popular kid that everyone understands, making data exchange in APIs smoother than a jazz symphony.
GET /api/books/1 HTTP/1.1
Host: example.com
Accept: application/json
OpenAPI/Swagger
Swagger struts into API Land like it owns the place, because, essentially, it sorta does. As the blueprint master, it ensures every API's design is so slick, other developers can understand your API faster than a teenager texting back "K".
swagger: "2.0"
info:
title: "Book API"
description: "API for managing books"
version: "1.0.0"
host: "example.com"
schemes:
- "https"
paths:
/books:
get:
summary: "List all books"
responses:
200:
description: "A list of books"
schema:
type: "array"
items:
$ref: "#/definitions/Book"
GraphQL
Forget the guesswork, GraphQL lets your clients cherry-pick exactly what they need, like a sushi conveyor belt but for data. Bye-bye overfetching, adios underfetching! It's like having a personal shopper for your data who always grabs what you ask for.
{
books {
title
author
}
}
Docker
Imagine shipping your API in a container so sturdy, it doesn’t care where it’s run. That’s Docker – it encapsulates your API in a cozy container ensuring it works seamlessly in development or production, just like your favorite coffee that tastes the same, no matter the mug.
# A minimal Dockerfile for a Node.js API
FROM node:14
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
CMD [ "node", "server.js" ]
OAuth 2.0
Think of OAuth 2.0 as the bouncer at the club checking IDs. It's basically saying "Prove you have access before you can touch any of these secure resources. And no, knowing the DJ doesn't count." It’s a protocol for authorization that keeps your API as secure as Fort Knox.
Postman
Ever wish for a digital pen pal who never gets tired of your API requests? Enter Postman - the friendly GUI that makes testing your APIs as delightful as getting a letter in the mail, minus the wait. It’s like a Swiss Army knife for poking at APIs.
Redis
Need to cache or store session data at lightning speed? Redis is the hyperactive memory stash for when your API needs to remember something faster than a goldfish. Think of it like a caffeine boost for your API's memory.
Apache Kafka
If your API was at a party, Kafka would be the impeccable networker passing messages around like hot gossip. It excels at handling data streams in real-time, ensuring your API is as informed as the town crier in a bustling market square.
WebSockets
Where traditional HTTP is like sending snail mail, WebSockets let your API have live chats with the server, enabling real-time communication that’s as fast as kids on scooter boards. It keeps the line open, so you can say goodbye to constantly asking, "Are we there yet?"