Full Stack DeveloperInventory Source is a small SaaS based company with passionate team members. OurHQ is located at Jacksonville Beach, Florida and our team spans across several countries.Developers that work at Inventory Source generally interact directly with our productteam on major initiatives and contribute directly to the success of our company and our users.Tasks presented often allow for creative freedom and iterative development to be championedto completion.We are looking for candidates to contribute to a newly launched product that leveragesVue, Java, PostgreSQL and elastic services hosted in AWS. Applicable candidates should haveexperience working with these technologies and be able to meet the expectations below.
Our Full Stack Developers
- Analyze and Interpret Requirements
- Review requirements and determining best way to implement technically
- Can identify gaps in a requirement and consult with stakeholder for info
- Make logical assumptions where possible to move forward and prevent delays
- Develop API Endpoints
- Build new and modify existing Java API endpoints (Spring Boot)
- Write queries in JOOQ to retrieve or manipulate relevant DB records
- JOOQ is an ORM that is similarly structured as plain SQL
- Develop UI Components
- Create new views and reusable components in a SPA (VueJS)
- Understand Computed Properties, JS Life-Cycle Hooks, VueX
- Consider UX and implement refined experiences (with and without mock-ups)
- Consider Data Transfer and Usage Methodologies
- Know when to paginate when interacting with large sets of data
- Know when to attach to existing endpoints vs creating new ones
- Only require the necessary data for each operation or component
- Understand Event Driven Concepts
- Understand that specific data is available during specific events and what
functionality may or may not be feasible given this accessibility
- Learn our domains' events and data structures around these events
- Independently Research Unknowns
- When facing a gap in understanding (whether internal or external) - able to
research these functionalities to fill their gap in understanding
- Looping in correct resource when necessary
- Define the 'right' question to ask in order to properly understand this gap
- Architect Code for Fault Tolerance, Testability & Intuitiveness
- Understand how to structure code so that it can be unit tested, isolated, and has
clear inputs / outputs (interfaces) to enforce this isolation
- Handle code exceptions elegantly and understand the difference between 'fatal',
'error', and 'warning' exceptions and how these impact the process at hand
- Document Code Workflows
- Create workflow diagrams, concise documentation, and/or clear comments so
other team members can understand unique functionality they build
- Mentor Less Experienced Developers
- Perform code reviews and suggest improvements to other developers'
implementations
- Fend off Analysis Paralysis
- Able to effectively balance analysis against progress in order to produce tangible
results in a timely manner
Required Skills
['API', 'AWS', 'AWS Services', 'Advanced SQL', 'Analysis', 'Angular 2', 'Balance Analysis', 'Cloud Hosting', 'Code Reviews', 'Computer Science', 'Data Structures', 'Data Transfer', 'Dependency Injection', 'Dependency Management', 'Develop UI', 'Fault Tolerance', 'Front-End Framework', 'Git', 'Gradle', 'Intuitiveness', 'JUnit', 'Java', 'Java API', 'Less', 'Maven', 'Mockito', 'MongoDB', 'ORM', 'Passionate', 'PostgreSQL', 'Professional Development', 'Research', 'SOLR', 'SQL', 'SaaS', 'Software Engineering', 'Spring Boot', 'UX', 'Unit Testing', 'Vue', 'Workflow Diagrams']Additional InformationEducation: bachelors Qualification Criteria:
Qualifications
Bachelor's degree in Computer Science / Software EngineeringExperience working in a professional development environment with Java and aFront-End framework like Angular 2, Vue, or ReactLed or were a Senior contributor to the development of at least one (1) project
Technical Concepts That Should Be Understood
○Dependency Injection○Unit Testing (JUnit, Mockito)○Dependency Management (Maven, Gradle)○Abstracting code structurally (DRY programming)○Big(O) - Memory and Time complexities○Git (branching & handling merge conflicts)○Deployment concepts○SQL - Selects, Updates, Inserts, Joins
Experience With Some Of The Following Areas Is Preferred
○Spring Boot○JOOQ○SOLR, MongoDB, ElasticCache○AWS services' and/or other Cloud Hosting providers' solutions○Advanced SQL - complex queries, indices, triggers, etc.○I/O, Network, and DB bottlenecks