At Awingu we created a workspace in the browser that enables end-users to get access to RDP and Web applications, as well as files served using CIFS/SMB behind the corporate firewall using only a standard browser from any device they choose. Think of opening your browser and getting access to a full-blown Windows desktop, or specific applications without the windows shell around it.
Our product is delivered to the customer as a self-contained virtual machine image that they can deploy in their own datacenter or on a cloud of their choosing.
It is only managed through a web interface and customers do not have ssh access.
During the pandemic, the simple use and deployment of our solution enabled lots of companies to provide access to their employee’s on-site desktops through the browser from their personal computer at home.
We are looking for an experienced backend software engineer to improve the product further. You’ll be working on adding new features and improving the reliability and performance of the solution. Mostly on the backend side, but you are welcome to work on the frontend side of things as well if you want to.
An API in Python/Django
An RDP Gateway in Java
A browser UI in Angular with application rendering on an HTML5 canvas
An application that must be installed on the end-user device if they want smartcard redirection to the streamed application, written in C
Proxy / Load balancing with Nginx
Support for internal PostgreSQL db or external PostgreSQL and MS SQL Server / Azure SQL
Orchestration using saltstack
Many other supporting services such as memcached, graphite, logstash, django-q workers
Everything running on Ubuntu
Build/Test/Deploy pipelines using Jenkins
Mercurial version control but likely switching to Git soon
Experience with any of these is of course a plus, but not required.
Good foundational knowledge about Linux, networking, databases, security, etc.
Ability to learn and to delve into topics you are not familiar with (protocol specifications, debugging production issues, unfamiliar programming languages/libraries)
Ability to work independently, but knowing when to ask for help
Quality focused mindset (e.g. writing robust code that can handle unexpected errors, anticipating issues, optimizing performance)
Fresh ideas about the architecture/development process
Some familiarity with Microsoft technologies (Active Directory, RDP, SMB/CIFS) would be great but is not required.
A challenging environment with lots of opportunities to learn
Strong impact on architecture/product decisions
The opportunity to grow as a person and as an engineer and take more responsibilities
A competitive compensation package