Forwarded from C# (C Sharp) programming
Индекс TIOBE подвел итоги года: звание «Язык 2025 года» досталось C#, который показал рекордный рост популярности (+2.94%)? однако в общем зачете он по-прежнему занимает 5-ю строчку. Абсолютным лидером остается Python с 22.61% долей рынка.
В первой пятерке произошли перестановки: язык C поднялся на 2 место, сместив C++ на 4-ю позицию; 3 место досталось Java, а R вернулся в топ-10. Провал года - Go, который неожиданно сдал позиции, опустившись сразу на 16-е место.
Индекс оценивает популярность технологий на основе поисковых запросов, активности комьюнити и количества обучающих материалов.
https://www.tiobe.com/tiobe-index/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥4👍2👎1🤩1🤣1
This media is not supported in your browser
VIEW IN TELEGRAM
DOOM запустили… в наушниках. И да - на них реально можно играть 😱
Один энтузиаст портировал легендарный Doom на PineBuds Pro. Почему именно они?
Потому что это одни из немногих наушников с open-source прошивкой, плюс внутри стоит достаточно бодрый чип, чтобы после пары хардкорных модификаций вытянуть игру аж на 18 FPS.
Но самое безумное даже не это.
У наушников, внезапно, нет экрана. Поэтому разработчик пошёл ещё дальше и сделал сайт Doombuds, через который можно удалённо подключиться к наушникам и играть в Doom прямо из браузера.
Да, ты буквально играешь в шутер, который крутится внутри гарнитуры у тебя в ушах.
Понедельник для продуктивности явно отменяется.
Если уровень безумия у тебя достаточный и хочется повторить этот подвиг - весь код открыт и лежит на GitHub : https://github.com/arin-s/DOOMBuds
Один энтузиаст портировал легендарный Doom на PineBuds Pro. Почему именно они?
Потому что это одни из немногих наушников с open-source прошивкой, плюс внутри стоит достаточно бодрый чип, чтобы после пары хардкорных модификаций вытянуть игру аж на 18 FPS.
Но самое безумное даже не это.
У наушников, внезапно, нет экрана. Поэтому разработчик пошёл ещё дальше и сделал сайт Doombuds, через который можно удалённо подключиться к наушникам и играть в Doom прямо из браузера.
Да, ты буквально играешь в шутер, который крутится внутри гарнитуры у тебя в ушах.
Понедельник для продуктивности явно отменяется.
Если уровень безумия у тебя достаточный и хочется повторить этот подвиг - весь код открыт и лежит на GitHub : https://github.com/arin-s/DOOMBuds
❤5👍5🔥4
Автор работал над системой, которая выросла с нуля до более чем миллиона пользователей. Без сложных модных архитектур на старте и без преждевременного оверинжиниринга. Только последовательная эволюция под реальные нагрузки.
В начале всё было максимально просто:
Одно приложение - одна база данных.
И этого было достаточно.
Проблемы появились не в коде. Узким местом стала база данных. Архитектура развивалась шаг за шагом, решая конкретные проблемы по мере их появления.
1️⃣ Старт - один основной инстанс
Использовался один primary-инстанс PostgreSQL. Минимум инфраструктуры, низкие расходы и полный фокус на продукте.
Главная мысль этого этапа - не строить "архитектуру уровня Netflix" для проекта с десятками пользователей.
2️⃣ Разделение чтений - Read Replicas
Когда резко вырос read-трафик:
- Primary обрабатывал только записи
- Реплики обрабатывали SELECT-запросы
- Балансировщик распределял чтения
Кодовая база почти не менялась - менялась маршрутизация трафика.
Результат - база перестала быть узким местом из-за чтений.
3️⃣ Проблема соединений - добавление pgBouncer
При росте числа пользователей упёрлись не в CPU, а в количество соединений.
Каждое соединение к базе - это память и ресурсы. Тысячи коннектов начали "душить" систему.
Решение - connection pooling через pgBouncer:
- Меньше реальных соединений к БД
- Выше пропускная способность
- Меньше сбоев под нагрузкой
4️⃣ Масштабирование через кэш
Чтобы выдержать 1M+ пользователей, стало критично не обращаться к базе за каждым запросом.
Добавили Redis как слой кэширования:
- Часто используемые данные отдавались из кэша
- База перестала быть единственной точкой нагрузки
- Задержки заметно снизились
Именно на этом этапе начинается настоящее масштабирование.
Главный урок
На каждом этапе решалась текущая проблема, а не гипотетическая задача будущего.
| Проблема | Решение |
|---------|---------|
| Много чтений | Read Replicas |
| Слишком много соединений | Пул соединений |
| База перегружена запросами | Кэш |
| Сложная инфраструктура | Не добавлялась без реальной необходимости |Приложение существует, чтобы поддерживать бизнес.
Если бизнес-модель не работает, никакое масштабирование не спасёт.
Масштабирование - это не про технологии ради технологий.
Это про внедрение решений в тот момент, когда они действительно нужны.
milanjovanovic.tech/blog/scaling-monoliths-a-practical-guide-for-growing-systems
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🔥4🥰1
🔥 Полезная подборка каналов только код, практика и самые передовые инструменты, которые используют разработчики прямо сейчас.👇
🖥 ИИ: t.me/ai_machinelearning_big_data
🖥 Python: t.me/pythonl
🖥 Linux: t.me/linuxacademiya
🖥 C++ t.me/cpluspluc
🖥 Docker: t.me/DevopsDocker
🖥 Хакинг: t.me/linuxkalii
🖥 Devops: t.me/DevOPSitsec
👣 Golang: t.me/Golang_google
🖥 Аналитика: t.me/data_analysis_ml
🖥 Javascript: t.me/javascriptv
🖥 C#: t.me/csharp_ci
🖥 Java: t.me/javatg
🖥 Базы данных: t.me/sqlhub
👣 Rust: t.me/rust_code
🤖 Технологии: t.me/machineint
💰 Экономика и инвестиции в ИИ t.me/financeStable
💼 Актуальные вакансии: t.me/addlist/_zyy_jQ_QUsyM2Vi
🖥 Chatgpt бот в тг: t.me/Chatgpturbobot
📚 Бесплатные ит-книги: https://t.me/addlist/HwywK4fErd8wYzQy
🖥 Подборка по Golang: https://t.me/addlist/MUtJEeJSxeY2YTFi
⚡️ Лучшие ИИ ресурсы: https://t.me/addlist/2Ls-snqEeytkMDgy
Самое лучшее в этом: ты учишься даже тогда, когда “нет времени, просто потому что читаешь правильную ленту.
💰 Экономика и инвестиции в ИИ t.me/financeStable
💼 Актуальные вакансии: t.me/addlist/_zyy_jQ_QUsyM2Vi
📚 Бесплатные ит-книги: https://t.me/addlist/HwywK4fErd8wYzQy
⚡️ Лучшие ИИ ресурсы: https://t.me/addlist/2Ls-snqEeytkMDgy
Самое лучшее в этом: ты учишься даже тогда, когда “нет времени, просто потому что читаешь правильную ленту.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1
Как сделать defer в C через cleanup-паттерн
В Go есть `defer`. В C - нет. Но это не значит, что нельзя получить тот же эффект.
Главная проблема в C - ресурсы:
- забыли закрыть файл
- не освободили память
- не закрыли сокет
- утечки и баги в error-path
Хитрый приём - использовать единый блок очистки через `goto cleanup`. Это самый надёжный способ имитировать defer в C.
Идея:
- ресурсы выделяются по шагам
- при ошибке — переход в cleanup
- в конце — освобождаем всё в одном месте
Так код становится безопаснее и проще для поддержки.
Пример:
Почему это хороший паттерн:
- нет дублирования освобождения ресурсов
- все error-path’ы безопасны
- легко добавлять новые ресурсы
- стандартная практика в системном C (ядро Linux использует тот же подход)
Главная идея: в C «defer» — это дисциплина структуры кода.
https://antonz.org/defer-in-c/
В Go есть `defer`. В C - нет. Но это не значит, что нельзя получить тот же эффект.
Главная проблема в C - ресурсы:
- забыли закрыть файл
- не освободили память
- не закрыли сокет
- утечки и баги в error-path
Хитрый приём - использовать единый блок очистки через `goto cleanup`. Это самый надёжный способ имитировать defer в C.
Идея:
- ресурсы выделяются по шагам
- при ошибке — переход в cleanup
- в конце — освобождаем всё в одном месте
Так код становится безопаснее и проще для поддержки.
Пример:
#include <stdio.h>
#include <stdlib.h>
int process_file(const char* path) {
FILE* file = NULL;
char* buffer = NULL;
int result = -1;
file = fopen(path, "r");
if (!file) goto cleanup;
buffer = malloc(1024);
if (!buffer) goto cleanup;
// работа с файлом
fread(buffer, 1, 1024, file);
result = 0; // успех
cleanup:
if (buffer) free(buffer);
if (file) fclose(file);
return result;
}
Почему это хороший паттерн:
- нет дублирования освобождения ресурсов
- все error-path’ы безопасны
- легко добавлять новые ресурсы
- стандартная практика в системном C (ядро Linux использует тот же подход)
Главная идея: в C «defer» — это дисциплина структуры кода.
https://antonz.org/defer-in-c/
❤4👍3
🛠️ Утилита вывода для C++ на Windows
WCout предлагает простой и последовательный способ форматирования текста и чисел в C++ с использованием единого синтаксиса. Он поддерживает вывод в буфер обмена, мемо и строки, а также использует стандартные Win32 API для работы в любых Windows IDE. Удобный синтаксис позволяет легко различать команды и пользовательские данные.
🚀 Основные моменты:
- Единый синтаксис
- Поддержка диалоговых функций с несколькими параметрами
- Нет необходимости в сторонних библиотеках
- Легко интегрируется в проекты через
- Полная документация с примерами доступна в PDF
📌 GitHub: https://github.com/pinardmichel14-sudo/WCoutSrc
#cpp
WCout предлагает простой и последовательный способ форматирования текста и чисел в C++ с использованием единого синтаксиса. Он поддерживает вывод в буфер обмена, мемо и строки, а также использует стандартные Win32 API для работы в любых Windows IDE. Удобный синтаксис позволяет легко различать команды и пользовательские данные.
🚀 Основные моменты:
- Единый синтаксис
<< / >> для форматирования и вывода- Поддержка диалоговых функций с несколькими параметрами
- Нет необходимости в сторонних библиотеках
- Легко интегрируется в проекты через
.cpp и .h файлы- Полная документация с примерами доступна в PDF
📌 GitHub: https://github.com/pinardmichel14-sudo/WCoutSrc
#cpp
❤6
🧩 Эффективная реализация строк в C++20
Этот репозиторий предлагает современный класс строк для C++, который минимизирует управление временем жизни и поддерживает различные кодировки. Он сочетает в себе семантику владения и представления, обеспечивая высокую производительность без лишних аллокаций.
🚀 Основные моменты:
- Поддержка SSO и COW для оптимизации памяти.
- Настраиваемый размер для малых строк.
- Совместимость с различными кодировками.
- Планы по добавлению поддержки Unicode.
- Оптимизирован для 64-битных платформ.
📌 GitHub: https://github.com/Mjz86/String
#cpp
Этот репозиторий предлагает современный класс строк для C++, который минимизирует управление временем жизни и поддерживает различные кодировки. Он сочетает в себе семантику владения и представления, обеспечивая высокую производительность без лишних аллокаций.
🚀 Основные моменты:
- Поддержка SSO и COW для оптимизации памяти.
- Настраиваемый размер для малых строк.
- Совместимость с различными кодировками.
- Планы по добавлению поддержки Unicode.
- Оптимизирован для 64-битных платформ.
📌 GitHub: https://github.com/Mjz86/String
#cpp
GitHub
GitHub - Mjz86/String: A C++20 string implementation , with constexpr friendly design, SSO optimized, COW optimized, unicode…
A C++20 string implementation , with constexpr friendly design, SSO optimized, COW optimized, unicode and encoding awareness, string viewer, and with custom allocators - Mjz86/String
❤4👍3
Языки программирования и их инструкции импорта
🐍 Python - import module
☕ Java - import package.Class;
⚡ C - #include <stdio.h>
🛠️ C++ - #include <iostream>
🌐 JavaScript - import module from "module"
🛠️ C# - using Namespace;
🐹 Go - import "package"
🦀 Rust - use crate::module;
🐘 PHP - require "file.php";
💎 Ruby - require "library"
🐪 Kotlin - import package.Class
🍎 Swift - import Module
🔷 TypeScript - import {x} from "module"
🧮 R - library(package)
🐚 Bash - source file.sh
🧱 Dart - import 'package:lib/lib.dart';
🎯 Scala - import package.Class
🐼 Groovy - import package.Class
🧠 Julia - using Module
🔧 Assembly (x86 Linux) - %include "file.inc"
🐍 Python полезные ресурсы 🚀Max
@pythonl
🐍 Python - import module
☕ Java - import package.Class;
⚡ C - #include <stdio.h>
🛠️ C++ - #include <iostream>
🌐 JavaScript - import module from "module"
🛠️ C# - using Namespace;
🐹 Go - import "package"
🦀 Rust - use crate::module;
🐘 PHP - require "file.php";
💎 Ruby - require "library"
🐪 Kotlin - import package.Class
🍎 Swift - import Module
🔷 TypeScript - import {x} from "module"
🧮 R - library(package)
🐚 Bash - source file.sh
🧱 Dart - import 'package:lib/lib.dart';
🎯 Scala - import package.Class
🐼 Groovy - import package.Class
🧠 Julia - using Module
🔧 Assembly (x86 Linux) - %include "file.inc"
🐍 Python полезные ресурсы 🚀Max
@pythonl
❤8👍1
🚀 Высокопроизводительный парсер FastParseX
FastParseX — это мощный C++ парсер для CSV, логов и бинарных данных, оптимизированный для высокой пропускной способности и минимальных затрат. Идеально подходит для интеграции в ресурсоемкие пайплайны данных.
🚀 Основные моменты:
- Поддержка параллельного парсинга и многопоточности
- Модули для CSV, логов и бинарных данных
- Поддержка экспорта в Arrow и Parquet
- Высокая производительность до 8 ГБ/с для параллельного парсинга
- Встроенные инструменты профилирования и статистики
📌 GitHub: https://github.com/FastParseX-dev/FastParseX
#cpp
FastParseX — это мощный C++ парсер для CSV, логов и бинарных данных, оптимизированный для высокой пропускной способности и минимальных затрат. Идеально подходит для интеграции в ресурсоемкие пайплайны данных.
🚀 Основные моменты:
- Поддержка параллельного парсинга и многопоточности
- Модули для CSV, логов и бинарных данных
- Поддержка экспорта в Arrow и Parquet
- Высокая производительность до 8 ГБ/с для параллельного парсинга
- Встроенные инструменты профилирования и статистики
📌 GitHub: https://github.com/FastParseX-dev/FastParseX
#cpp
GitHub
GitHub - FastParseX-dev/FastParseX: High-performance C++ parser for CSV, logs, and binary data (mmap, parallel, Arrow/Parquet)
High-performance C++ parser for CSV, logs, and binary data (mmap, parallel, Arrow/Parquet) - FastParseX-dev/FastParseX
❤6
This media is not supported in your browser
VIEW IN TELEGRAM
FTXUI
Простая кроссплатформенная библиотека C++ для пользовательских интерфейсов на базе терминала!
• Функциональный стиль
• Простой и элегантный синтаксис
• Создаваемые консольные UI поддерживают навигацию с помощью клавиатуры и мыши
• Поддержка UTF8
• Поддержка анимации
• Поддержка рисования
• Нет зависимостей
• Кроссплатформенность: Linux/MacOS, WebAssembly, Windows
https://github.com/ArthurSonzogni/FTXUI
Простая кроссплатформенная библиотека C++ для пользовательских интерфейсов на базе терминала!
• Функциональный стиль
• Простой и элегантный синтаксис
• Создаваемые консольные UI поддерживают навигацию с помощью клавиатуры и мыши
• Поддержка UTF8
• Поддержка анимации
• Поддержка рисования
• Нет зависимостей
• Кроссплатформенность: Linux/MacOS, WebAssembly, Windows
https://github.com/ArthurSonzogni/FTXUI
❤6🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🐦 Flappy Bird на Си: Вес APK < 100 Килобайт! 🚀
В сентябре 2024 года, увидев Flappy Bird на C# в дискорд-канале Raylib, я решил попробовать реализовать эту игру на Си для Android с весом APK менее 100 КБ. 🚀
Идея казалась безумной, но спортивный интерес взял верх. 💪
https://github.com/VadimBoev/FlappyBird
#cpp #programming
В сентябре 2024 года, увидев Flappy Bird на C# в дискорд-канале Raylib, я решил попробовать реализовать эту игру на Си для Android с весом APK менее 100 КБ. 🚀
Идея казалась безумной, но спортивный интерес взял верх. 💪
https://github.com/VadimBoev/FlappyBird
#cpp #programming
❤3👏3🔥2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
QML и Widgets в одном проекте: решение без костылей
Разработка приложения для настольных или встраиваемых платформ часто упирается в выбор между Qt Widgets и Qt Quick для создания интерфейса. У каждого подхода свои плюсы и минусы. Qt как гибкий фреймворк позволяет комбинировать их разными способами, а выбор способа интеграции этих API зависит от того, чего вы хотите добиться. В этой статье я покажу, как отображать окна Qt Widgets в приложении, написанном преимущественно на Qt Quick.
https://www.kdab.com/display-widget-windows-in-qt-quick-applications/
Разработка приложения для настольных или встраиваемых платформ часто упирается в выбор между Qt Widgets и Qt Quick для создания интерфейса. У каждого подхода свои плюсы и минусы. Qt как гибкий фреймворк позволяет комбинировать их разными способами, а выбор способа интеграции этих API зависит от того, чего вы хотите добиться. В этой статье я покажу, как отображать окна Qt Widgets в приложении, написанном преимущественно на Qt Quick.
https://www.kdab.com/display-widget-windows-in-qt-quick-applications/
🧩 Коллекция пользовательских аллокаторов на C++
oo-alloc предлагает набор специализированных аллокаторов для C++, оптимизированных под разные сценарии использования. Каждый аллокатор имеет свои особенности, влияющие на производительность, такие как временные сложности и накладные расходы. Выбор правильного аллокатора может значительно улучшить эффективность работы с памятью.
🚀Основные моменты:
- Поддержка различных типов аллокаторов: Arena, Stack, Pool и др.
- Оптимизация под разные паттерны доступа и жизненные циклы объектов.
- Простота использования с минимальными накладными расходами.
📌 GitHub: https://github.com/nihiL7331/oo-alloc
#cpp
oo-alloc предлагает набор специализированных аллокаторов для C++, оптимизированных под разные сценарии использования. Каждый аллокатор имеет свои особенности, влияющие на производительность, такие как временные сложности и накладные расходы. Выбор правильного аллокатора может значительно улучшить эффективность работы с памятью.
🚀Основные моменты:
- Поддержка различных типов аллокаторов: Arena, Stack, Pool и др.
- Оптимизация под разные паттерны доступа и жизненные циклы объектов.
- Простота использования с минимальными накладными расходами.
📌 GitHub: https://github.com/nihiL7331/oo-alloc
#cpp
GitHub
GitHub - nihiL7331/oo-alloc: An object-oriented memory allocation library written in C++20.
An object-oriented memory allocation library written in C++20. - nihiL7331/oo-alloc
❤3👍1
Представьте: через четыре месяца вы открываете чужой .NET-проект и читаете его как книгу.
IServiceCollection не вызывает ступора.
async Task<IActionResult> пишется на автомате. Вы точно знаете, почему EF Core сгенерировал именно такой SQL - и как переписать запрос, чтобы он летал.Это не фантазия. Это результат после 16 модулей, в которых каждая концепция объясняется через код и закрепляется практикой.
ООП, SOLID, LINQ, async/await, DI, EF Core, ASP.NET Core, Docker, Kubernetes - всё, что казалось магией, станет рабочим инструментом.А бонусом - портфолио проектов: от CLI-утилит и REST API до собственного SaaS с multi-tenancy, JWT и деплоем в Kubernetes под TLS.
Скидка - 58% доступна 48 часов: https://stepik.org/a/282984/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1🔥1
Media is too big
VIEW IN TELEGRAM
Сборка C++ проектов. CMAKE. Game Engine серии
0:00:00 - Введение
0:01:32 - Пишем мини игру. FightClub
0:17:03 - MSBUILD
0:19:20 - Собственный build скрипт
0:26:52 - Build системы. Теория
0:34:17 - CMAKE
1:28:00 - Автоматизация CMAKE команд
источник
0:00:00 - Введение
0:01:32 - Пишем мини игру. FightClub
0:17:03 - MSBUILD
0:19:20 - Собственный build скрипт
0:26:52 - Build системы. Теория
0:34:17 - CMAKE
1:28:00 - Автоматизация CMAKE команд
источник
🔥3❤2👍2
Как в MIT учат операционным системам
В MIT студентам дают готовое маленькое ядро xv6 и просят его дорабатывать.
Что такое xv6:
Учебная версия Unix, всего ~6000 строк на C
Создана по мотивам Unix 1975 года, но переписана под современные процессоры
Внутри есть всё настоящее: процессы, системные вызовы, память, файловая система
Настолько компактна, что её можно прочитать целиком за выходные
Вместо чтения теории про ОС ты разбираешь и меняешь живой код ядра — и только так понимаешь, как операционные системы устроены на самом деле.
pdos.csail.mit.edu/6.828/2025/
В MIT студентам дают готовое маленькое ядро xv6 и просят его дорабатывать.
Что такое xv6:
Учебная версия Unix, всего ~6000 строк на C
Создана по мотивам Unix 1975 года, но переписана под современные процессоры
Внутри есть всё настоящее: процессы, системные вызовы, память, файловая система
Настолько компактна, что её можно прочитать целиком за выходные
Вместо чтения теории про ОС ты разбираешь и меняешь живой код ядра — и только так понимаешь, как операционные системы устроены на самом деле.
pdos.csail.mit.edu/6.828/2025/
🔥10❤5👍4
📊 Минималистичная графовая база данных на C++17
TGDB — это простая графовая база данных, реализованная как статическая библиотека. Она поддерживает фиксированные узлы и индексные указатели, обеспечивая схему без схемы и работу с базовыми типами данных. База данных позволяет эффективно создавать и извлекать объекты с свойствами.
🚀Основные моменты:
- Унифицированный тип узла размером 56 байт.
- Поддержка встроенных типов: int, double, std::string.
- Двусторонние ссылки между узлами.
- Дисковая устойчивость через mmap.
- Быстрый локальный обход и глобальный поиск.
📌 GitHub: https://github.com/LincolnCox29/TrueGraphDataBase
#cpp
TGDB — это простая графовая база данных, реализованная как статическая библиотека. Она поддерживает фиксированные узлы и индексные указатели, обеспечивая схему без схемы и работу с базовыми типами данных. База данных позволяет эффективно создавать и извлекать объекты с свойствами.
🚀Основные моменты:
- Унифицированный тип узла размером 56 байт.
- Поддержка встроенных типов: int, double, std::string.
- Двусторонние ссылки между узлами.
- Дисковая устойчивость через mmap.
- Быстрый локальный обход и глобальный поиск.
📌 GitHub: https://github.com/LincolnCox29/TrueGraphDataBase
#cpp
🔥3❤2👍1
Практическое руководство по росту в C#-разработке. Материал собран для тех, кто хочет получить инженерную глубину, а не просто накликать CRUD по туториалам.
Здесь последовательность изучения, лучшие практики, ресурсы и трезвый разбор того, как работать с ИИ-инструментами и оставаться востребованным.
https://github.com/Develp10/Csharp_Roadmap/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍2🔥1
C++ разработчики в 2ГИС
Сейчас открыто две вакансии в разные команды:
— Middle C++ Developer в команду Transport Core
Делаем транспортный движок 2ГИС: маршруты, графы, расчёты и highload-обработку данных.
— Team Lead C++ в команду 3D Карты
Ищем сильного C++ разработчика на роль играющего тренера: часть времени — разработка, остальное — управление небольшой командой, техрешения и развитие процессов.
Важно: опыт именно в графике не обязателен. Если ты сильный плюсовик и хочешь попробовать себя в 3D-направлении — откликайся!
Что общего:
— современный C++
— сложные инженерные задачи
— большие объёмы данных
— сильные команды без лишней бюрократии
Можно удалённо
Вакансии:
Middle C++ Developer — Transport Core
Team Lead C++ — 3D Карты
Другие инженерные инсайты от 2ГИС → в Telegram-канале RnD
Сейчас открыто две вакансии в разные команды:
— Middle C++ Developer в команду Transport Core
Делаем транспортный движок 2ГИС: маршруты, графы, расчёты и highload-обработку данных.
— Team Lead C++ в команду 3D Карты
Ищем сильного C++ разработчика на роль играющего тренера: часть времени — разработка, остальное — управление небольшой командой, техрешения и развитие процессов.
Важно: опыт именно в графике не обязателен. Если ты сильный плюсовик и хочешь попробовать себя в 3D-направлении — откликайся!
Что общего:
— современный C++
— сложные инженерные задачи
— большие объёмы данных
— сильные команды без лишней бюрократии
Можно удалённо
Вакансии:
Middle C++ Developer — Transport Core
Team Lead C++ — 3D Карты
Другие инженерные инсайты от 2ГИС → в Telegram-канале RnD
❤2👍1