Duties: Develop innovative software solutions, focusing on design, development, and technical troubleshooting, while employing creative approaches to solve complex problems. Collaborate closely with strategy and product teams to define the detailed engineering tasks necessary to achieve project objectives. Produce architecture and design documentation for complex applications, ensuring that software development adheres to design constraints. Evaluate user needs and software requirements to assess the feasibility of designs within time and budget limitations. Write secure, high-quality production code and conduct thorough code reviews. Improve existing software by fixing errors, adapting it to new hardware, upgrading interfaces, and enhancing performance. Communicate effectively with senior stakeholders, executive directors, and managing directors to ensure timely delivery of quality software. QUALIFICATIONS: Minimum education and experience required: Master's degree in Applied Computer Science, Computer Science, Computer Engineering, or related field of study plus 5 years of experience in the job offered or as Software Engineer, Architect, System Engineer, or related occupation. The employer will alternatively accept a Bachelor's degree in Applied Computer Science, Computer Science, Computer Engineering, or related field of study plus 7 years of experience in the job offered or as Software Engineer, Architect, System Engineer, or related occupation. Skills Required: This position requires five (5) years of experience with the following: developing applications using JAVA and J2EE, Python, Jython and Groovy; designing and developing enterprise-level applications using frameworks such as Spring, Hibernate, Apache Camel, and Grails; developing robust REST APIs; working with SQL and NoSQL databases including Oracle and Cassandra; designing and developing applications based on microservices and event-driven architecture; utilizing Apache Kafka for designing, implementing, and managing real-time data streaming solutions for availability and scalability in distributed systems; writing automated tests and performing unit, integration, and performance testing. This position requires any amount of experience with the following: utilizing public cloud services such as Microsoft Azure; working with enterprise application servers such as WebSphere Application Server (WAS), JBOSS, and Tomcat; utilizing Docker for containerization and Kubernetes for orchestration to manage and deploy scalable applications in cloud environments; working with code review tools such as Crucible and Fisheye; utilizing quality gate tools such as Sonar to ensure code quality and compliance; utilizing version control systems including GIT and TortoiseSVN for code management and collaboration; working with IDE tools such as IntelliJ IDEA and Eclipse; utilizing Apache Maven for build automation and project management, handling dependencies and compiling code; working with Jenkins and Bamboo for continuous integration and deployment, automating build, test, and deployment processes.
Stand Out From the Crowd
Upload your resume and get instant feedback on how well it matches this job.
Job Type
Full-time
Career Level
Mid Level