What are the responsibilities and job description for the Software Engineer, Product Engineering position at Flock Freight?
We’re looking for a motivated, collaborative software engineer to join the team responsible for building and deploying our platform and web/mobile applications used by thousands of customers. Our team is made up of a small group of engineers who are passionate about creating innovative solutions built with modern technology. As a member of this team, your talent and expertise will influence the best practices, design patterns, and technologies that we use to deliver the best customer experience. You will have the opportunity to learn, grow, and make a real impact while working alongside experienced engineers.
Responsibilities
- Build, test, and maintain web applications using Java, React, and Typescript.
- Develop RESTful API Endpoints, ensuring high performance, scalability, and maintainability.
- Collaborate with cross-functional teams to design and implement new features.
- Write clean, well-documented, maintainable, and efficient code using modern frameworks and best practices.
- Debug and troubleshoot issues across the full stack.
- Create and maintain documentation of systems and application components.
- Utilize SQL and relational database tools to manage and persist application state.
- Make recommendations regarding the development of new code, reuse or refactoring of existing code, and use of 3rd party and/or open-source frameworks.
- Participate in code reviews and contribute to continuous improvement.
- Participate in scheduled on-call rotations.
Requirements
- Bachelor's degree in Computer Science, Software Engineering, or a related field (or equivalent experience)
- Experience with Java for back-end development
- Experience with React and TypeScript or other web development technologies
- Understanding of data modeling, and database development
- Understanding of data structures, client/server architecture, scaling and design trade-offs
- Experience using Git, modern IDEs and build/deployment tools (e.g. Maven, Docker)
- Exceptional problem-solving, analysis, decomposition, and communication skills
- Assimilating new information, understanding complex topics, and using judgement to make sound technical decisions
- End-to-end debugging, performance tuning, and monitoring