Description
About the Product & Company:
FileCloud is a hyper-secure EFSS (enterprise file sync and share) platform that provides industry leading compliance, data governance, data leak protection, data retention and digital rights management capabilities. FileCloud is a leader in content governance and collaboration for unstructured data, trusted and used worldwide across Global 1000 enterprises, educational institutions, government organizations, and service providers. In addition to its enterprise file sharing solution, FileCloud’s product portfolio also includes Signority (acquired in May 2024), a Canadian-based e-signature and document workflow platform. We are currently expanding our team as we grow and improve FileCloud.
Key Responsibilities:
- Develop and maintain the Electron main process / TypeScript backend, including IPC between main and renderer processes, integration with gRPC services that talk to C++ and Swift backends, and robust error handling, logging, and diagnostics.
- Build responsive, modular UIs using Vue 3, vue-router, and state management (e.g., Pinia(preferred) or Vuex).
- Work with electron-builder and related tooling to create installers for Windows (e.g., EXE/MSI/MSIX) and macOS (DMG/PKG), implement and maintain auto-update mechanisms, and handle code signing and notarization for both platforms.
- Collaborate with C++ (Windows) and Swift (macOS) team members to define gRPC APIs, understand native behavior, and debug cross-process issues.
- Contribute to Microsoft Office integration projects, especially Outlook and Office add-ins (Office.js, manifests, deployment) and interactions between the desktop client and Office or related web services.
- Ensure high code quality through unit and integration tests, code reviews, and adherence to coding standards (TypeScript + Vue).
- Participate in architectural and design discussions to improve modularity, testability, and performance.
- Diagnose and resolve platform-specific issues on Windows and macOS, including file system nuances, OS integration, and performance bottlenecks.
- Over time, take ownership of specific parts of the system (modules, features, or domains), becoming the primary point of contact and decision-maker for those areas.
Key Skills & Experience:
Programming Languages & Frameworks
- Strong proficiency in TypeScript (preferred over plain JavaScript), including types, generics, strict typing, and good type modelling.
- Solid experience with Vue (ideally Vue 3) in production environments.
- Experience with state management in Vue using Pinia or Vuex (either is acceptable).
Electron.js & Desktop Development
- Solid understanding of main vs renderer processes, IPC patterns, preload scripts, and security considerations.
- Hands-on experience with electron-builder or similar tooling: creating installers for Windows (EXE/MSI/MSIX) and macOS (DMG/PKG), handling auto-update mechanisms, and performing code signing and notarization on Windows and macOS.
gRPC & Backend Integration
- Experience integrating with backend services via gRPC or a similar typed API / RPC technology (e.g., REST + OpenAPI/Swagger, GraphQL, Thrift).
- Willingness and ability to quickly learn and use gRPC in day-to-day work: working with.proto files, using generated client stubs, and handling errors, timeouts, and connectivity issues.
- Ability to collaborate with teams developing native backends in C++ and Swift (reading code is a plus but not required as a primary language).
Web & Frontend Fundamentals
- Strong understanding of HTML/CSS and modern web development best practices.
- Experience with vue-router, form handling, validation, and component-based design.
- Familiarity with i18n libraries (e.g., vue-i18n) and common Vue ecosystem tools.
Tooling & Quality
- Experience with Git and collaborative workflows (branches, pull requests, code reviews).
- Practical experience writing unit and integration tests for TypeScript/Vue/Electron code.
- Familiarity with linting and formatting tools (e.g., ESLint, Prettier) and enforcing coding standards.
Cross-Platform
- Hands-on experience developing and debugging on both Windows and macOS.
- Ability to work independently and effectively with our remote global team.
- Strong communication skills in English, both written and spoken.
Mindset
- Strong sense of ownership and accountability for the quality and maintainability of your code.
- Ability to think through edge cases, failure modes, and user experience.
- Comfortable collaborating with cross-functional teams (development, QA, product, etc.).
Preferred Qualifications
- Experience building Outlook or Office add-ins using Office.js, including manifest configuration, deployment, and authentication flows.
- Ability to read or make small changes in C++ (Windows) or Swift (macOS).
- Understanding of filesystem and OS-level concepts (file watchers, permissions, symlinks, etc.).
- Familiarity with logging, monitoring, and crash