- Обо мне
-
- Стоимость работы:
- от 800 руб. за час
- Профессиональный опыт:
- более 10 лет
- Форма собственности:
- Физ. лицо
- Способы оплаты:
- наличный расчёт, безналичный расчёт
За 10 лет практики в системном и прикладном программировании освоены все этапы разработки ПО: от проектирования до выпуска приложения, его поддержки и обновления. Для работы предпочитаю использовать Sublime Text, git, make, CLANG (для стат. анализа). Языки программирования (по убыванию опыта) С, С++, Visual Basic, Bash, Python (для вспомогательных задач). Основные языки С, С++. Интересным будет получение опыта разработки на Java, Object-C.
Профессиональные навыки- умение писать хороший, структурированный, оформленный код;
- владение инструментами разработки, сборки, отладки: gcc, makefiles, gdb, jtag, Sublime Text;
- умение вести проект в git, redmine;
- умение оптимизировать код: по скорости, размеру программы, объему используемой памяти;
- способность разобраться в чужом исходном коде, внести необходимые изменения, провести рефакторинг. Опыт поддержки legacy кода.
- способность разобраться с особенностями конкретного процессора, контроллера, компилятора. Чтение ассемблерного кода;
- опыт самостоятельного поиска и исправления сложных багов, в т.ч. гейзенбагов;
- умение автоматизировать рутинные процессы разработки ПО (bash, python, visual basic для excel);
- понимание битовой арифметики, математики указателей;
- знание стандартных алгоритмов и структур данных;
- знание паттернов программирования;
- экспертное знание структуры MPEG-TS, PSI/SI, TR101290;
- знание протоколов UART, USB, TCP/IP (TCP, UDP, SNMP, HTTP) разработка прикладных протоколов обмена на базе TCP/UDP. Умение реализовать обмен между ПК и внешними устройствами.
- умение разрабатывать сложные многопоточные приложения. Понимание инструментов и принципов синхронизации потоков;
- разработка сетевых приложений клиент/сервер;
- знание базы данных sqlite, опыт восстановления поврежденных БД;
- понимание структуры ОС Linux, концепции ядра;
- знание библиотеки визуальных компонентов VLC, IDE от CodeGear/Embarcadero RAD Studio 2009/XE7;
- умение разрабатывать графические интерфейс пользователя: графики, диаграммы, редакторы.
- опыт работы с одноплатными ПК: Armbian, Nanopi, Allwinner H3.
Чем именно я занимался более подробно:
Системное программирование:
- Разработан анализатор MPEG-TS потоков на С под DSP Bfackfin без ОС. Особенность разработки состояла в использовании DSP на пределе возможностей как по производительности, так и по использованию памяти. Проект дал большой опыт в оптимизации кода: по скорости, размеру кода, объему требуемой памяти. Получено глубокое знание структуры MPEG-TS, стандартов формирования, обработки и проверки MPEG-TS.
- Разработан модуль управления анализатором со стороны CPU (FreeRTOS, Fujitsu) на С. Управление через UART по собственному протоколу.
- Участие в разработке графического интерфейса анализатора MPEG-TS потоков.
- Участие в разработке фреймворка на C под ОС FreeRTOS. Разработка различных модулей, предназначенных для использования другими программистами: вспомогательных подсистем, api для работы с файлами собственного формата, обработка результатов измерений, GUI компоненты, пользовательские режимы.
- Разработка ПО для систем под управлением процессоров Analog Devices, Fujitsu.
- Поддержка и рефакторинг чужого кода.
- Разработка Windows приложений для работы с измерительным оборудованием
- Управление измерительными приборами по UART, USB (libusb, ftdi, vcp), TCP, UDP, SNMP, разработка и реализация собственных протоколов управления. В том числе для серверных приложений сбора данных с приборов и мониторинга.
- Обновление ПО приборов и прикладных приложений по HTTP, USB, UART.
- Разработка GUI: графики и диаграммы (в основном прорисовка с нуля на TCanvas), редакторы параметров измерений, формирование отчетов, дублирование функционала прибора, сохранение/загрузка в файлы результатов измерений, WEB интерфейс для серверных программ. Использовался в основном фреймворк от Borland, CodeGear, Embarcadero, библиотека графических компонентов VLC.
- Разработка системы удаленного мониторинга 24/7, сбора и обработка информации с приборов по TCP/UDP. Сервер, desktop приложение под Windows, оповещение по email, БД SQLite, WEB интерфейс для просмотра.
- Установка драйверов в Windows: написание inf, цифровая подпись, автоматизация установки.
- Локализация приложений: английский, европейские языки, китайский. Разработка своей системы локализации приложений, работа с переводчиками.
- Проектирование и использование базы данных SQLite.
- Создание установочных программ: Inno Setup, CreateInstall.
- Разработка и внедрение системы автоматического обновления ПО по протоколу HTTP.
- Разработка системы публикации прикладного ПО и программ измерительных приборов.
- Разработка вспомогательных программ для производства и контроля выпускаемой продукции.
- Поддержка legacy кода и приложений, использование и рефакторинг чужого кода, ребрендинг приложений (OEM).
- Общение с клиентами, заказчиками (в т.ч. иностранными JDSU/VIAVI(США), Laycey (Автралия), Vector (Польша) ).
- Написание документации: руководства пользователя для клиентский приложений
- Отзывы
Нет отзывов