ECI Mark Systems is seeking a talented Software Developer to join our MarkSystems development team to continue to provide the best in customer support to small and medium sized businesses
We have experienced consistent growth during the last decade and our user base requires a lot of our system. Scale, reliability, and innovation keep us learning daily. You will join our server-side team to enhance and maintain our server-side JVM based applications.
Moving forward, the biggest challenge we face is scaling our systems to work with large datasets and high system load. You will help us work on systems that can scale up and down the number of processing nodes as needed and implement rate-limiting to ensure rogue systems do not impact our SLAs for other applications.
Additionally, you will improve the performance of our main data store by adding or changing indexes as appropriate, adding caching functionality where possible and setting up monitoring to catch performance bottlenecks early on.
Culture and Work Environment
As a partially remote team communication is extremely important. There is no chance to drop in on interesting discussions around the water cooler or to see if someone is busy just by glancing at their desk. We have systems to signal busy-ness; regular meetings and stand-ups to disseminate information, frequent one-on-ones to ensure there are no frustrations building up, a code of conduct and a formal complaint process to resolve conflicts early-on.
As a key member of our server-side team, you will specifically be expected to:
Design and build API endpoints for our internal and public APIs
Implement monitoring systems for performance bottlenecks on our main datastore
Determine through performance profiling, where to add caching to our distributed systems and internal interfaces
Monitor the growth of our datasets and assist in creating strategies to address the systems where growth could become an issue
Write effective high-quality code with a focus on performance and maintainability
Create reliable tests and work closely with our QA team for end-to-end testing
You thrive in a self-directed and open work environment. You will not be micro-
managed, no fixed work hours, and no in-office requirements. It is important that
you manage your time well, and you know what you need to do your job well (e.g., what
work hours to pick so you have enough time to communicate with team members
Knowledge of the OOP paradigm, experience with functional programming, and other
approaches is a plus
Experience building complex systems with many moving parts, such as different
protocols, varying restrictions on latency or CAP parameters
Experience building and maintaining CI/CD systems is a bonus
Excellent knowledge of static type systems and compiled languages
Knowledge of various data stores such as SQL, document stores, key-value stores, or
queuing systems, as well as their performance characteristics and scalability issues
Good understanding of caching and cache invalidation strategies
ECI Mark Systems vision is to be the technology hub for home sales in North America by providing a unique combination of remarkable software and expert services. To achieve our vision, we need great developers. That is why we have created a great work environment, encouraging self-direction, personal development, and teamwork.