Responsible for analyzing, designing, debugging, and/or modifying software; or evaluating, developing, modifying, and coding software programs to support programming needs. Maintain and enhance existing code with a focus on implementation. Collaborate with and assist team of engineers in writing functional, design, and user interface specifications. Follow the software lifecycle process when developing software. Help identify solutions to problems encountered in the software cycle.
- Play a key role within each phase of the software development lifecycle.
- Work in complex technology environments across many disciplines of information technology including creating responsive, highly performant web applications, developing services that run on clustered environments, microservices architecture, Cloud technologies (preferably AWS), application architecture for maximum performance on both web and backend, Operating Systems - Mac and Linux, Performance Management and Capacity Planning, Monitoring and Metrics dashboards; and providing interfaces that allow us to take information securely.
- Write front-end MVC Code and middle-tier Node code; ensure that every coding path is unit tested and nearly bug-free.
- Use appropriate logging solutions (like Sumologic, Splunk) to assist in troubleshooting production issues.
- Rapidly address issues and fix defects discovered during deployment.
- Develop high-quality applications, and mentor other developers, providing technical direction on application architecture. Utilize development methodologies including SCRUM/Agile, test-driven development, and tools such as Webstorm, Postman, Atlassian Suite, and Git/Subversion.
- Gather and document technical requirements and specifications.
- Version control systems such as Git, Subversion, and Perforce.
- Design and architect web-based systems in and cloud platforms (like AWS), data integration/architecture with external vendors (such as Twilio, Sendgrid), data transformation and delivery systems, and enterprise integration systems.
- Database technologies such as Oracle, MySQL, Redis, and NoSQL (Mongo preferred).
- Using different development methodologies including SCRUM/Agile, and test-driven development.
- Gathering and documenting technical requirements and specifications.
- Using automation tools for quality and process such as Mocha, Jest, and NYC (Istanbul) for writing functional tests, code coverage tools, continuous integration, and delivery systems like Jenkins.
- Disciplines of information technology including Service Oriented Architecture (SOA), Optimum Web Application design for maximum performance, Operating Systems: Mac and Linux, Performance Management and Capacity Planning, Application Program Interfaces (APIs), Messaging Software and Interoperability Techniques and Standards.
- Developing applications on cloud platforms like AWS, OpenStack, and Google App Engine.