Job Description
The Software Engineer will perform complex software design tasks and technical analysis on the new generation, highly scalable and highly performant order management system, which drives significant revenue for the client. This role will act as a subject matter expert on the order management system server-side modules, provide mentorship for junior developers, liaise with developers from other teams, and ensure development practices align with company best practices and policies.
Responsibilities:
- Perform product design and troubleshooting exercises of extremely high complexity, requiring extensive research and analysis.
- Work closely with and support developers from other teams that integrate with the order management system.
- Lead system design and specification development, program logic and flow-charting, testing, debugging, and documentation.
- Make complex design choices to be used by development teams.
- Lead moderate to highly complex programming tasks, providing review and documentation.
- Analyze problems and recommend solutions.
- Act as a key contributor in client/technology interactions for technology solutions.
- Interface with Enterprise Architecture & Infrastructure teams on strategic designs and initiatives.
- Lead troubleshooting of complex problems in development and production environments, ensuring timely resolution.
- Mentor junior engineers/developers, serve as an SME, and direct/assign development tasks.
Required Skills:
- 5+ years of Java, J2EE, and web/internet-based programming experience (client and server side)
- 5+ years of experience with OOA/OOD, distributed systems/software, real-time processing, relational database systems, messaging systems
- Experience with concurrency & multi-threading
- Experience with scaling, Java Garbage Collection, and performance tuning preferred
- Deep understanding of data structures, algorithms, and design patterns (GoF)
- Experience with agile, test-driven development
- Experience with Unix/Linux
- Experience with build, deploy, and test automation tools (Ant, Gradle, Maven, Jenkins, TeamCity, Junit, TestNG, JaCoCo, or similar)
- Demonstrated experience working with core business logic within applications
- Experience in developing APIs and Frameworks
- Excellent written and verbal communication skills
Preferred Skills:
- Experience with application development frameworks (Spring, Hibernate, JSF, or similar)
- Experience with compilers or DSLs preferred
Education:
- Bachelor’s degree in Computer Science (required)