Software engineer, web
Aktualisiert am 20.08.2020
Profil
Freiberufler / Selbstständiger
Verfügbar ab: 20.08.2020
Verfügbar zu: 100%
davon vor Ort: 100%
English
fluent
German
ein bisschen
Russian
native

Einsatzorte

Einsatzorte

Berlin (+50km) Berlin (+50km)
nicht möglich

Projekte

Projekte

5 Monate
2020-01 - 2020-05

Client applications and tools for autonomous driving platform

Senior software engineer TypeScript JavaScript React ...
Senior software engineer

Ree Technology develops semi-autonomous vehicles, which can be controlled by a remote driver. I have architected and built the entire range of interfaces and tools for their driving platform. The emphasis was on high performance, low latency, and a stable 60 FPS frame rate. The other key requirements were future-proof architecture and extensibility. The tech stack based on HTML and Javascript on top of CEF was selected for the ease of prototyping and UI building as compared to other possible choices. The system consists primarily of:

  • Remote control station's interface that consisted of video streams from multiple cameras in the car displayed on several monitors around the driver, as well as an overlay with both the regular dashboard and ADAS indicators to assist the driver: projection of the vehicle's trajectory on the road, longitudinal and latitudinal g-forces, pedals pressure, proximity warning indicators, high latency warnings. (CEF application for Linux desktop, WebGL).
  • Secondary system with the touch-screen controls that included a 3D city map with the car selection menu, a car navigation system with a 3D map and real-time route plotting and re-calculation. (CEF application for Linux desktop, WebGL).
  • Vehicle telemetry real-time data visualization. (A regular web application, d3.js).
  • Vehicle hardware calibration tools, most notably camera calibration tools to ensure the correct projection of the vehicle's trajectory on the road. (CEF application for Linux desktop).
  • Fleet management application. (A regular web app).

To reuse the code between the applications, the project was organized as a monorepo on top of yarn workspaces with multiple individual packages. The language is Typescript; CEF applications use native web components with shadow DOM to render the UI since compatibility is not an issue. Regular web apps use React. Most of the applications use a mix of in-house and 3rd party APIs and receive real-time updates over WebSockets. Certain parts utilize WebGL: maps, vehicle trajectory overlay. The project also makes extensive use of the automatic code generation from OpenAPI/Swagger spec files due to the API complexity and the high number of endpoints.

I wrote a lot of documentation to allow the team to extend the system easily after my contract was over. I also helped the team members, most of whom had little experience with Javascript development, catch up to speed by supervising their work, and performing extensive code reviews.

TypeScript JavaScript React Chromium Embedded Framework WebGL
Ree Technology GmbH
1 Jahr 9 Monate
2017-11 - 2019-07

WYSIWYG data visualization tool

Senior software engineer React Redux Redux Observable ...
Senior software engineer

Myinfomonitor provides solutions that help aggregate and visualize manufacturing and operational data in real-time to facilitate the transition to Industry 4.0. I have architected and developed the client-side part of the low-code/no-code platform that allows the users to construct informational dashboards and describe their behavior logic using a visual DSL. The main requirement was to give the users the freedom to go beyond a limited set of pre-defined widgets and to let them design and animate virtually anything. To allow that, I developed a full-featured graphical editor using the mxGraph library (draw.io's open-source engine) that allowed the users to draw and manipulate SVG shapes. The system has undo/redo and copy/paste functionality. The dashboard content can be imported from and exported into a file, along with the data subscription settings and the visualization logic. To let the users describe the visualization rules and apply them to the drawn shapes and text, I have developed a custom DSL based on Google Blockly. I have also added a set of pre-programmed widgets to account for the most common scenarios, like displaying an area map with the dynamic markers, drawing a chart with the live data, or adding a simple table with numbers. Javascript and HTML/CSS editors were integrated into the UI to allow describing the logic with plain Javascript (executed in a sandboxed environment of an iframe) to give the advanced and technical users more control over the system's behavior. The users could subscribe to multiple data sources and receive live updates over the Websockets. The system is live, and multiple production plants in Europe are using it.

Technology stack:

  • Javascript
  • mxGraph
  • React
  • Redux
  • d3.js
React Redux Redux Observable Websockets JWT OAuth JavaScript rxjs SVG
Myinfomonitor
Tampere, Finland
4 Monate
2017-09 - 2017-12

Real time messaging and voice/video calls web application

Senior software engineer JavaScript TypeScript Angular ...
Senior software engineer

Upwork is the world's largest freelance marketplace and collaboration platform with a complex architecture where the front-end part consists of multiple single-page applications. The communication section is a large and essential part of the platform. At that time, the platform's codebase consisted mainly of the legacy code in Angular 1.x that needed refactoring to meet the new standards of performance. Vue.js was selected as the new tool, partly due to the syntax similarities. The microfrontends architecture was adopted, and both Angular 1.x and Vue.js coexisted in the UI, to allow the incremental refactoring and upgrades. My team and I have refactored the messaging section that uses Websockets to send and receive messages and have added the voice and video call functionality based on WebRTC API.

Technology stack:

  • Javascript, Typescript
  • Angular 1.x
  • Vue.js
  • WebRTC
JavaScript TypeScript Angular Vue
Upwork
Santa Clara, CA, USA
1 Jahr 6 Monate
2016-05 - 2017-10

Cloud secure data room solution

Senior software engineer Javascript Typescript Angular 1.x ...
Senior software engineer

Drooms offers its clients a digital version of what's known as a data room - a secure physical room where multiple stakeholders involved in the due diligence process collectively work on sensitive legal documents, generally during mergers and acquisitions or corporate restructurings. The system stores the files in the cloud, and the clients access them using a web-based Angular SPA or a native desktop client consisting of the same SPA running on top of CEF. Multiple users can collaborate on the documents in real-time, their client applications receiving updates over Websockets, and each change undergoes a multi-stage approval process defined in the workflow manager. The team has inherited a large amount of legacy code that had to be refactored by transitioning to Angular 2.x while moving forward by adding new functionality. The major features that my team and I have developed or refactored are:

  • A full-featured file manager with copy/cut/paste functionality.
  • A messaging system.
  • Automatic translations overlayed on top of the original document.
  • Collaborative editing/commenting on the documents in the cloud.
  • Full-text search across the documents.
  • Advanced user permission management system.
  • Workflow manager.
  • Two-factor authentication.
  • Multiple dashboards with access and activity statistics visualized.

Technology stack:

  • Javascript, Typescript
  • Angular 1.x
  • Angular 2+
  • CEF
  • d3.js
Javascript Typescript Angular 1.x Angular 2+ Websockets JWT Chromium Embedded Framework D3.js
Drooms GmbH
Frankfurt Am Main, Germany)

Aus- und Weiterbildung

Aus- und Weiterbildung

1997

Plekhanov Russian University of Economics
Master's degree, Economics

Kompetenzen

Kompetenzen

Produkte / Standards / Erfahrungen / Methoden

AWS
OAuth

Programmiersprachen

Angular
Angular 1.x
Angular 2+
Canvas
Chromium Embedded Framework
D3.js
JavaScript
React
Redux
Redux Observable
Redux Saga
rxjs
SVG
Typescript
Vue
Vue.js

Datenkommunikation

JWT
Websockets

Einsatzorte

Einsatzorte

Berlin (+50km) Berlin (+50km)
nicht möglich

Projekte

Projekte

5 Monate
2020-01 - 2020-05

Client applications and tools for autonomous driving platform

Senior software engineer TypeScript JavaScript React ...
Senior software engineer

Ree Technology develops semi-autonomous vehicles, which can be controlled by a remote driver. I have architected and built the entire range of interfaces and tools for their driving platform. The emphasis was on high performance, low latency, and a stable 60 FPS frame rate. The other key requirements were future-proof architecture and extensibility. The tech stack based on HTML and Javascript on top of CEF was selected for the ease of prototyping and UI building as compared to other possible choices. The system consists primarily of:

  • Remote control station's interface that consisted of video streams from multiple cameras in the car displayed on several monitors around the driver, as well as an overlay with both the regular dashboard and ADAS indicators to assist the driver: projection of the vehicle's trajectory on the road, longitudinal and latitudinal g-forces, pedals pressure, proximity warning indicators, high latency warnings. (CEF application for Linux desktop, WebGL).
  • Secondary system with the touch-screen controls that included a 3D city map with the car selection menu, a car navigation system with a 3D map and real-time route plotting and re-calculation. (CEF application for Linux desktop, WebGL).
  • Vehicle telemetry real-time data visualization. (A regular web application, d3.js).
  • Vehicle hardware calibration tools, most notably camera calibration tools to ensure the correct projection of the vehicle's trajectory on the road. (CEF application for Linux desktop).
  • Fleet management application. (A regular web app).

To reuse the code between the applications, the project was organized as a monorepo on top of yarn workspaces with multiple individual packages. The language is Typescript; CEF applications use native web components with shadow DOM to render the UI since compatibility is not an issue. Regular web apps use React. Most of the applications use a mix of in-house and 3rd party APIs and receive real-time updates over WebSockets. Certain parts utilize WebGL: maps, vehicle trajectory overlay. The project also makes extensive use of the automatic code generation from OpenAPI/Swagger spec files due to the API complexity and the high number of endpoints.

I wrote a lot of documentation to allow the team to extend the system easily after my contract was over. I also helped the team members, most of whom had little experience with Javascript development, catch up to speed by supervising their work, and performing extensive code reviews.

TypeScript JavaScript React Chromium Embedded Framework WebGL
Ree Technology GmbH
1 Jahr 9 Monate
2017-11 - 2019-07

WYSIWYG data visualization tool

Senior software engineer React Redux Redux Observable ...
Senior software engineer

Myinfomonitor provides solutions that help aggregate and visualize manufacturing and operational data in real-time to facilitate the transition to Industry 4.0. I have architected and developed the client-side part of the low-code/no-code platform that allows the users to construct informational dashboards and describe their behavior logic using a visual DSL. The main requirement was to give the users the freedom to go beyond a limited set of pre-defined widgets and to let them design and animate virtually anything. To allow that, I developed a full-featured graphical editor using the mxGraph library (draw.io's open-source engine) that allowed the users to draw and manipulate SVG shapes. The system has undo/redo and copy/paste functionality. The dashboard content can be imported from and exported into a file, along with the data subscription settings and the visualization logic. To let the users describe the visualization rules and apply them to the drawn shapes and text, I have developed a custom DSL based on Google Blockly. I have also added a set of pre-programmed widgets to account for the most common scenarios, like displaying an area map with the dynamic markers, drawing a chart with the live data, or adding a simple table with numbers. Javascript and HTML/CSS editors were integrated into the UI to allow describing the logic with plain Javascript (executed in a sandboxed environment of an iframe) to give the advanced and technical users more control over the system's behavior. The users could subscribe to multiple data sources and receive live updates over the Websockets. The system is live, and multiple production plants in Europe are using it.

Technology stack:

  • Javascript
  • mxGraph
  • React
  • Redux
  • d3.js
React Redux Redux Observable Websockets JWT OAuth JavaScript rxjs SVG
Myinfomonitor
Tampere, Finland
4 Monate
2017-09 - 2017-12

Real time messaging and voice/video calls web application

Senior software engineer JavaScript TypeScript Angular ...
Senior software engineer

Upwork is the world's largest freelance marketplace and collaboration platform with a complex architecture where the front-end part consists of multiple single-page applications. The communication section is a large and essential part of the platform. At that time, the platform's codebase consisted mainly of the legacy code in Angular 1.x that needed refactoring to meet the new standards of performance. Vue.js was selected as the new tool, partly due to the syntax similarities. The microfrontends architecture was adopted, and both Angular 1.x and Vue.js coexisted in the UI, to allow the incremental refactoring and upgrades. My team and I have refactored the messaging section that uses Websockets to send and receive messages and have added the voice and video call functionality based on WebRTC API.

Technology stack:

  • Javascript, Typescript
  • Angular 1.x
  • Vue.js
  • WebRTC
JavaScript TypeScript Angular Vue
Upwork
Santa Clara, CA, USA
1 Jahr 6 Monate
2016-05 - 2017-10

Cloud secure data room solution

Senior software engineer Javascript Typescript Angular 1.x ...
Senior software engineer

Drooms offers its clients a digital version of what's known as a data room - a secure physical room where multiple stakeholders involved in the due diligence process collectively work on sensitive legal documents, generally during mergers and acquisitions or corporate restructurings. The system stores the files in the cloud, and the clients access them using a web-based Angular SPA or a native desktop client consisting of the same SPA running on top of CEF. Multiple users can collaborate on the documents in real-time, their client applications receiving updates over Websockets, and each change undergoes a multi-stage approval process defined in the workflow manager. The team has inherited a large amount of legacy code that had to be refactored by transitioning to Angular 2.x while moving forward by adding new functionality. The major features that my team and I have developed or refactored are:

  • A full-featured file manager with copy/cut/paste functionality.
  • A messaging system.
  • Automatic translations overlayed on top of the original document.
  • Collaborative editing/commenting on the documents in the cloud.
  • Full-text search across the documents.
  • Advanced user permission management system.
  • Workflow manager.
  • Two-factor authentication.
  • Multiple dashboards with access and activity statistics visualized.

Technology stack:

  • Javascript, Typescript
  • Angular 1.x
  • Angular 2+
  • CEF
  • d3.js
Javascript Typescript Angular 1.x Angular 2+ Websockets JWT Chromium Embedded Framework D3.js
Drooms GmbH
Frankfurt Am Main, Germany)

Aus- und Weiterbildung

Aus- und Weiterbildung

1997

Plekhanov Russian University of Economics
Master's degree, Economics

Kompetenzen

Kompetenzen

Produkte / Standards / Erfahrungen / Methoden

AWS
OAuth

Programmiersprachen

Angular
Angular 1.x
Angular 2+
Canvas
Chromium Embedded Framework
D3.js
JavaScript
React
Redux
Redux Observable
Redux Saga
rxjs
SVG
Typescript
Vue
Vue.js

Datenkommunikation

JWT
Websockets

Vertrauen Sie auf Randstad

Im Bereich Freelancing
Im Bereich Arbeitnehmerüberlassung / Personalvermittlung

Fragen?

Rufen Sie uns an +49 89 500316-300 oder schreiben Sie uns:

Das Freelancer-Portal

Direktester geht's nicht! Ganz einfach Freelancer finden und direkt Kontakt aufnehmen.