Intermediate Software Engineer

Company description

Virgil Systems is a rapidly growing network technology company. At Virgil Systems, you will be part of an experienced global team that is changing how the world communicates. Our team members have developed technology for global technology companies, governments, and open-source communities. We utilize an innovative approach which leverages unique data encoding and distributed routing to create a communication and storage system capable of withstanding and recovering from catastrophic data losses.  

We provide industry-leading security, reliability and trust so that our stakeholders and society can prosper from the unprecedented growth of devices, critical services and economic activity dependent on legacy and next generation networks (5G/IoT). Our flagship product is the Virgil Integrity™ Network (VIN™) - a middleware Digital Infrastructure Solution deployable across all network types and workflows. We are currently expanding our technical team for core product development and specialized deployments with existing and new partners.  

Join us on our journey. 

Position overview

This position will be remote. Depending on need, this role will be fully dedicated to support a deployment project or core product development. The following are responsibilities associated with this position in both functions: 

  • Determine operational feasibility by evaluating analysis, problem definition, requirements, solution development, and proposed solutions

  • Document and demonstrate solutions by developing documentation, flowcharts, layouts, diagrams, charts, code comments and clear code

  • Prepare and install solutions by determining and designing system specifications, standards, and programming

  • Improve operations by conducting systems analysis; recommending changes in policies and procedures

  • Obtain and license software by obtaining required information from vendors; recommending purchases; testing and approving products

  • Update job knowledge by studying state-of-the-art development tools, programming techniques, and computing equipment; participating in educational opportunities; reading professional publications; maintaining personal networks; participating in professional organizations

  • Protect operations by keeping information confidential

  • Provide information by collecting, analyzing, and summarizing development and service issues

  • Accomplish engineering and organization mission by completing related results as needed

  • Develop software solutions by studying information needs; conferring with users; studying systems flow, data usage, and work processes; investigating problem areas; following the software development lifecycle 

Required skills and experience

The following are necessary skills and expertise for this role: 

  • Bachelor’s and/or Master’s degree in Computer Science, Computer Engineering or related technical discipline  

  • 2+ years of relevant experience 

  • Proficiency in C++ and object-oriented design skills 

  • Application architecture and design patterns 

  • Experience with the full software development lifecycle, from conception, architecture definition, detailed design, scoping, planning, implementation, testing to documentation, delivery and maintenance 

  • Knowledge of professional software engineering and best practices for the full software development life cycle, including coding standards, code reviews, source control management, build processes, testing, and operations 

  • Experience in development of distributed/scalable systems and high-volume transaction applications 

  • Ability to perform a variety of standard software engineering tasks including software design, debugging, documentation, and testing 

  •  Ability to follow instructions and work in a team environment 

  • Excellent verbal communication skills. 

  • Good problem-solving skills 

  • Attention to detail 

  • Strong understanding of software requirements, development fundamentals, and the development process 

Desired skills and experience

The following are nice-to-have skills and expertise for this role: 

  • Experience with design patterns and UML 

  • Experience building solutions with a microservices architecture 

  • Experience building Web Services and REST APIs 

  • Experience with Infrastructure-as-a-service platforms (Amazon Web Services, Rackspace, Hewlett-Packard Enterprise, Citrix, Eucalyptus, VMware, etc.) 

  • Experience with asynchronous, multithreaded, and distributed systems 

  • Experience deploying, scaling, and building solutions for cloud-based applications Experience developing and testing data structures and algorithms

Why Virgil? 

Positive global impact: Virgil Systems is building the future of secure, reliable and trusted communications technology. Our purpose is to make the world a safer and more prosperous place by providing the ability for our customers and society to trust their data and networks without compromising on performance.  

Personal impact: As an early team-member, you will have a key role in helping to shape the organization by working on innovative technology, defining our culture, and driving our success. 

Diversity, Inclusiveness, and Independence: As a trusted member of our team, you will have the ability to work when and where you want to enable you to flourish personally and professionally.  

Company culture, challenging projects and personal growth: At Virgil Systems we value integrity, curiosity, adaptability, and optimism.    If you are passionate about technology, self-improvement, and generating value for clients and society, Virgil Systems is the place for you.  

We value the wellness of our team members and encourage continuous personal and professional development as an integral part of our company’s growth.    

As an equal opportunity employer that benefits from the diversity of our global team, we encourage applicants from all backgrounds and life experiences to apply.

How to apply: send your resume, Github and a cover letter to [email protected]