Solace Systems


Junior Software Engineer

Kanata, Ontario
Entry Level

Solace Systems is looking for Junior/New Grad Software Engineers to develop software for our portfolio of message routers.

Solace Systems is the world leader in high-performance hardware-based message routing. Message routing allows application layer messages to be routed through a wide area network based on a topic which is distributed as part of the message itself.

Message routers differ significantly from the IP routers of today which route based on fixed sized addresses attached to all incoming messages. Instead message routers look at a variable-sized “topic” to determine which end nodes are interested in it and then routes the message accordingly. Message routing has existed for some time and forms the basis of much of the communications in finance, government, and cloud computing.

However; a revolution is underway. ‘Big Data’, ‘Internet of Things’, ‘Software as a Service’: these are not just buzz words; data is the currency of the future. Message rates have been increasing exponentially for the last decade and show no sign of decelerating. Solace Systems was the first company to move the core message routing into our own purposefully-built and patented hardware. This has resulted in performance increases 10 to 100 times greater than legacy software solutions. And the world took notice.

Solace Systems’ hardware changed the message routing space forever.  Now, we are taking our world-class solution to the virtual environment.  In July of 2015 Solace Systems introduced the Virtual Message Router, a product poised to push messaging routing into the cloud and beyond.  We are looking for visionary software designers excited to tackle the challenges presented in this new world.

Our technology is revolutionary. Our team is world class. And the possibilities are limited only by your imagination. So come join our winning team – you will not be disappointed!

The successful candidate will be responsible for the design, implementation, and testing of software features for our portfolio of message routers. The ability to develop software in C/C++ in a Linux environment is a must. An understanding of real-time embedded software concepts such as message passing, mutexes and synchronization variables, multi-process and multi-threaded applications is also required. A strong background and understanding of networking principles, cloud environments, and virtual technologies is also an asset.

The following are the must have requirements for the position:

  • B.S. degree or higher in Software/Computer/Electrical Engineering, Computer Science or similar field
  • Exceptionally bright and talented with a passion for learning and software development
  • Experience with a Linux/GNU/x86/C/C++ development environment with strong analytical and object-oriented programming skills
  • Familiarization with multi-threaded applications and concurrent programming techniques
  • Great team player who is willing to help out wherever and whenever they can

In addition experience in one or more of the following areas is desirable:

  • Knowledge of network programming and protocols (e.g. TCP/IP, Berkley sockets interface)
  • Knowledge of  virtualization technologies (hypervisors, Linux containers, Docker)

Experience in cloud environments (Amazone Web Services, Google Compute Engine, Microsoft Azure, Cloud Foundry)

How to Apply