Job Openings
Software Engineer
About the job Software Engineer
Job brief
We are seeking a Software Engineer to execute the full lifecycle of the product development by programming well-designed, efficient, and testable code that meets specifications.
The Principal Software Engineer (Tech Lead) is responsible for all aspects of the full-stack software development process within the project. This includes planning, estimation, research, architecture, organization, tactical, and strategic planning. As a thought leader, we invite Principal Software Engineers to bring experience to execute, mentor and grow our current development team.
What You Will Do
- Provide direction for the team's technical activities, including technical communications, architectural decisions, code reviews, developer training, and complex prototyping.
- Produce, document, and review estimates of upcoming work, taking into account various risk factors, team expertise, and past performance, including comparisons of various possible architectures
- Maintain constant expertise on advancements in software engineering, the evolution and status of internal systems, internet trends, competitor activities, and client industry changes; sufficient to make informed decisions on all technical matters.
- Drive the technical side of the pre-production stage of software development, including requirements gathering, change management, and the documentation of software designs to ensure quality in the design of large-scale high-complexity projects, scalable frameworks, and reusable platforms.
- Ensure the technical team follows best practices and defined processes, including the creation, refinement, documentation, and standardization of new processes and procedures to produce repeatable results.
- Plan and oversee detailed assignments for junior staff in each sprint to ensure project success, nurture constant staff growth, deliver on long-term objectives, balance workloads, produce measurable progress on deliverables, ensure quality, and incrementally improve internal systems.
- Develop subject matter expertise (SME) in client environments, with an understanding of the client's industry, required technical architectures, and data structures. Becoming the lead technical communicator with client representatives for both business and technical contacts
- Position team to deliver on future growth, including ascertaining the team's current strengths, weakness, and opportunities, managing team resourcing, and hiring, maintaining awareness and expertise on opportunities to expand, share, or improve internal systems, identify and neutralize future threats to team performance and profit, and improve internal processes
What we definitely need:
- Knowledge of Javascript and Node-based frameworks such as React, Gatsby, Vue, Next.js, and Express
- Significant experience with public cloud platforms such as AWS, Azure, or GCP
- Strong understanding of database services, including SQL, Postgres, and MongoDB
- Successful history of project planning, estimation, architecture, and prototyping
- 7+ years of experience developing, deploying and supporting multiple applications in a production environment
- Working within a team structure demonstrating leadership, counsel, and supervision of a group of 3-6 employees to achieve goals contributing to successful projects and the growth of the organization
Nice to haves:
- Bachelor of Science in CS or MIS
- Technical certifications are a plus
- Experience with C#, .Net Core, MVC
- Involvement in mobile application development using both native and hybrid technologies with iOS (Swift/Objective-C), Android (Java), React Native, and Xamarin
- Experience with Agile and Scrum methodology best practices