Software Engineer 2 - Java
, , Full-time
POSITION SUMMARY:
Capable of implementing significant portions of code based on well-defined requirements, adhering to established standards of quality for documentation and coding. Interacts well with a group, requiring some direction from manager and senior team members. Able to identify and act upon issues and problems that arise.
JOB REQUIREMENTS:
- Four year college degree in Computer Science or equivalent experience.
- Strong Fundamentals in Data Structures and Algorithms
- Conversant about Internet technologies, communication protocols, and techniques.
- Conversant about database methodologies and database systems.
- Willingness to learn new platforms, as needed.
- Produced at least one large-scale commercial product/system.
- Experienced in micro-services.
-
A solid understanding of any of following technologies with knowledge of debugging techniques and maintenance.
-
Java, Spring-Boot, Hibernate
-
Knowledge/Experience of Node.JS/Python
-
Tomcat, Nginx, Apache
-
Kafka, ActiveMQ, eMQTT
-
MySQL, MongoDB, Cassandra, ES
- Experience in applying knowledge of good coding practices and fundamental computer science principles.
- Ability to work in a team and take direction well.
- Self-motivated and responds to supervision. Asks relevant questions.
- Can independently plan tasks and estimate their completion.
- Can adapt to changing conditions.
- Writes correct and clean code with guidance; consistently follows stated best practices.
- Participates in the technical design of features with guidance.
- Rarely makes the same mistake twice, begins to focus on attaining expertise in one or more areas (eg, Java/JS/Python/iOS development, performance best practices, efficient use of data stores, messaging, etc).
- Learns quickly and makes steady progress without the need for constant significant feedback from more senior engineers.
- Makes steady progress on tasks; knows when to ask for help in order to get themselves unblocked.
- Able to own small-to-medium features from technical design through completion.
- Capable of prioritizing tasks; avoid getting caught up in unimportant tasks.
- Self-sufficient in at least one large area of the codebase, with a high-level understanding of other components.
- Capable of providing on-call support for their area including systems that they are not familiar with.
- Gives timely, helpful feedback to peers and managers.
- Communicates assumptions and gets clarification on tasks up front to minimize the need for rework.
- Solicits feedback from others and is eager to find ways to improve.
- Understands how their work fits into the larger product and identifies problems with requirements.
- Practices writing test cases and documentations.
- Takes ownership of end to end delivery.