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
Experience Requirements: * Mid-level/Senior * 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 effectively) * 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.