Backend Engineer
- IT, Software development, System Engineering Jobs
Description
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.
Our technology stack consists of…
- 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.
What we look for in the ideal candidate
- 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.
Hard Skills
- Systems administration
- Operating systems
- Network administration
- Software development
- Product development
Soft Skills
- Communication
- Leadership
- Strategic thinker
- Skilled Collaborator
- Competitive
We offer
- 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