Senior Java Developer
Location: Remote (US East Coast prefer)
Duration: 15 Weeks
Job Description
Requirements
5+ years of Java development experience
Bachelor’s degree in computer science, engineering, or a related field
Extensive knowledge of Java development. This includes the whole process, from the first line of code to implementation in the production environment
Deep knowledge of operating systems including but not limited to
Proficiency with writing automated tests in JUnit, Espresso, Mocha, Jest, Enzyme, XCTest, etc.
Proficiency in Java, with a good understanding of its ecosystems
Sound knowledge of Object-Oriented Programming (OOP) Patterns and Concepts
Familiarity with different design and architectural patterns
Skill for writing reusable Java libraries
Knowhow of Java concurrency patterns
Good understanding of the concepts of MVC (Model-View-Controller) Pattern, JDBC (Java Database Connectivity), and RESTful web services
Experience in working with popular web application frameworks like Play and Spark
Relevant Knowledge of Java GUI frameworks like Swing, SWT, and AWT according to project requirements
Ability to write clean, readable Java code
Extensive knowledge of class loading mechanism in Java
Experience in handling external and embedded databases such as Oracle, MS SQL, etc.
Understanding basic design principles behind a scalable application
Skilled at creating database schemas that characterize and support business processes
Basic knowledge of JVM (Java Virtual Machine), its drawbacks, weaknesses, and workarounds
Implementing automated testing platforms and unit tests
In-depth knowledge of code versioning tools, for instance, Git
Understanding of building tools like Ant, Maven, Gradle, etc.
Expertise in continuous integration
Experience in Java Server Pages (JSP) and servlets, Web frameworks like Struts and Spring
Web Technologies like HTML, JavaScript, CSS, JQuery
Abstract classes and interfaces
Constructors, lists, maps, sets
File IO and serialization, Exceptions, and Generics
Java Keywords like static, volatile, synchronized, transient, etc
Multithreading and Synchronization
Experience with profiling and debugging Java-based applications and products
Experience integrating with backend systems preferred such as ERPs, WMS, OMS, etc.
Solid knowledge of performance Improvement best practices
Experience in a similar role would be advantageous
Willingness to build professional relationships with staff and clients
Excellent communication, motivational, and interpersonal skills
Responsibilities
Participate in internal and external meetings to gather the business requirements and suggest solutions
Support the entire application lifecycle (concept, design, test, release, and support)
Analyze the business requirements and suggest the best practice to apply the business requirements
Design the new or existing Java-based backend process modules, especially system integration APIs
Write clean code to produce fully functional backend processes and frontend UI modules
Develop a new system of frontend UI and API by referring to the current SMS and FMS system
Write unit, integration, and production test scenarios
Troubleshoot and debug to optimize application performance
Liaise with the development team to identify and plan new features
Ensure the developed modules comply with Samsung SDS quality assurance standards
Research and suggest new API products, applications, and protocols
Be an individual contributor when it comes to designing and developing frameworks and critical pieces of code which have a wider impact
Create detailed technical plans for the execution and implementation of projects
Be available to answer technical questions, clarifications, and clear obstacles for the team
Being transparent with the team about challenges, failures, and successes
Writing development progress reports