Develop software solutions by studying information needs, conferring with users, studying systems flow, data usage, and work processes, investigating problem areas, and following the software development lifecycle.
Implement well-designed, testable, and efficient codes according to project requirements and adhere to coding standards, guidelines, quality procedures, and schedules.
Lead software projects from scoping requirements through actual launch and implementation.
Collaborate with team members on analysis, design reviews, and testing.
Document and demonstrate solutions by developing documentation, flowcharts, layouts, diagrams, charts, code comments, and clear code.
Perform thorough unit testing and support in resolving defects while ensuring proper documentation of all activities.
Complete peer-to-peer code reviews and improve operations by conducting systems analysis and recommending changes in policies and procedures.
Provide inputs and assist in the preparation of high-level designs.
Protect operations by keeping information confidential.
What do I need to succeed?
MUST HAVE:
Bachelor’s degree in computer science or software or systems engineering.
6+ years of working experience as a Software Engineer with a consistent track record of delivery, preferably in an agile environment.
Experience using Eclipse, Maven, and source control (SVN, Git).
Well-versed in JAVA, J2EE, Spring Boot, design patterns, Web Services, REST-based APIs, Apache Kafka, schema registry, Apache Nifi.
Must have client-facing experience.
Clear and concise verbal communication skills and the ability to communicate with all levels of an organization, both internally and externally.
Strong interpersonal skills with the ability to foster team collaboration.
Be proactive with a strong desire to learn.
Strong analytical thinking and problem-solving skills with the ability to create innovative solutions.
Ability to work across multiple project areas and manage competing responsibilities simultaneously.
Strong knowledge of and experience with object oriented and functional design patterns.
Knowledge of and experience with PostgreSQL database
Create coding and design guidelines to be used throughout our applications;
Develop and maintain Java applications in the development and test environments.
Strong knowledge of and experience with JSON packages and schemas.
Knowledge of and familiarity with Java build systems, i.e. Maven
Strong critical thinking, decision-making, problem-solving, and attention to detail skills.
NICE TO HAVE:
Automation testing experience (JUnit).
Application development experience in a large enterprise IT environment.
Application development experience in an Agile environment using TDD and BDD.