Lead Software Engineer

Software Architecture Open, Any

Position at Smarsh

Sr. Java Software Engineer will design and code backend software on business-critical data-centric enterprise applications. Design, implement, and support interfaces between system applications and identify and implement improvements in existing services, including optimizations. Work closely with cross-discipline team members from the definition of functional and non-functional requirements through ongoing operational support. Work closely with the Architecture team and others to transform the platform components.

Principal Responsibilities

Become a tactical member of the team. Design and implement quality solutions under limited guidance.
• Build defined features to contribute value to the software codebase for a high-volume system.
• Investigate and fix bugs.
• Write automated unit tests.
• Maintain documentation to share knowledge.
• Participate in all Agile ceremonies and meetings (Kanban)
• Track work in ticketing system (JIRA)
• Participate in Pull Request reviews.


5+ years programming skills in Java.
• Strong analytical and problem solving skills.
• Strong communication and collaboration skills.
• Strong Spring skills.
• Multi-functional team collaboration
• Fault-tolerant design & maintenance
• Knowledge and understanding of modern software programming/engineering.
• Product delivery lifecycle - requirement refinement through ops
• Git
• Build tools - prefer Maven or Gradle Desirable
• Experience working the .NET/C#.
• Kafka
• Memcached, Redis, or other networked cache
• ActiveMQ or other standard queuing frameworks
• Back end development - large scale data-centric applications
• Linux, scripting & admin
• Docker