Job Summary:
Our company is currently seeking an experienced Lead Software Engineer. The successful candidate will work alongside the Software Architect to apply their broad knowledge of modern web-based technologies in designing, modifying, developing and implementing software solutions to address complex business issues, as well as providing technical leadership within the development department. The candidate will work throughout the software development life cycle and perform in a utility capacity to create, design, code, debug, maintain, test, implement and validate applications with a broad understanding of a variety of languages and architectures. Analyze existing applications or formulate logic for new applications, procedures, flowcharting, coding and debugging programs; maintain and utilize application and programming documents; recommend changes in development, maintenance and system standards; create appropriate deliverables and develop application implementation plans throughout the life cycle in a flexible development environment. This is an excellent career opportunity for a professional with an impressive software development background and excellent interpersonal skills.
Responsibilities and Duties:
- Analyze the needs of the user
- Design, test and develop the software to meet those needs
- Recommend upgrades for existing systems and programs
- Providing clear instructions to the project team
- Develop separate elements of a software that work well in the program as a whole
- Implement high-quality code in an agile, test-driven development environment
- Create detailed software development plans and assign tasks to team members
- Scope development effort, and provide reliable resource and timeline estimates
- Perform performance and scalability analysis as needed
- Create various diagrams, flowcharts and models that illustrate the type of code needed for programmers
- Ensure continued functionality of a program during maintenance and testing of software
- Document each aspect of a system or application as a reference for future upgrades and maintenance
- Identify and resolve issues that arise during the design, testing and maintenance processes
- Revisit the development process to fix bugs or address client or consumer concerns
- Strong initiative to find ways to improve solutions, systems, and processes
- Coach and mentor development staff
Required Experience:
- 5-8 years of full-stack software engineering experience, designing and building software applications and complex software projects including mobile development
- 3+ years of prior experience in a technical leadership position
- 3+ years experience in a cloud environment, DevOps, System Design and Programming
- 3+ years of experience in multiple Programming Languages, Frameworks, Database Management, Web Application Development, Security, Microservices and Open Source Technologies
- Experience in UML Development & Modelling (Behavioral & Structural / Forward & Backward Design)
- Experience with Public Cloud Computing (IaaS/SaaS/PaaS/CaaS/FaaS)
- Experience with implementing and operating large scale applications on AWS
- Experience building Multi-Tenant SaaS systems
- Experience with DevOps practices and modern CI/CD deployment models
- Experience with source control management systems and continuous integration/deployment environments
- Experience with automated testing (TDD/BDD/ATDD)
- Experience with multi-threading and concurrency
- Experience with debugging, performance profiling and optimization
- Understanding of Software Architecture and Design (SOA/EAI/ESB/EDA/DDD)
- Understanding of Agile / Scrum Methodology
- Understanding of Restful Architectures
- Understanding of Object-Oriented and Service-Oriented application development techniques and theories
- Understanding of Jira Software / Confluence / Bitbucket / Sourcetree / Bamboo / Fisheye / Crucible
Required Technical Skills:
- Full Stack C#.NET (Core/Framework) or Full Stack Java Developer
- Javascript/CSS3/HTML5/Node.JS
- Node.js MVC Frameworks (Angular.js/React.js)
- API (RESTful APIs/API Communications)
- Database SQL/NoSQL/PostgreSQL/MongoDB/ORM(Sequelize/Mongoose)
- Non-Blocking I/O or Asynchronous Programming
- Workflow Automations (Grunt/Gulp)
- Authentication/Authorization/Encryption (Bcrypt)
- Error Handling Skills
- UML
Required Certifications:
- AWS Certified DevOps Engineer - Professional
- AWS Certified Solutions Architect – Professional
Required Education:
- Bachelors or Masters Degree in Computer Engineering, Software Engineering or Computer Science
Required Documentation Skills:
- System Documentation
- Process Documentation
- User Documentation