Sr. Software Engineer - Full Stack
This position designs, develops, tests and maintains software product applications.
- Design, develop, document, test, and debug new and existing software systems and applications.
- Serve as technical expert on development projects.
- Drives full development life cycle including requirements analysis and design.
- Write technical specifications based on conceptual design and stated business requirements.
- Support, maintain, and document software functionality.
- Identify and evaluate new technologies for implementation.
- Analyze code to find causes of errors and revise programs as needed.
- Drive software design meetings and analyze user needs to determine technical requirements.
- Consult with end user to prototype, refine, test, and debug programs to meet needs.
- Complies with all security policies and procedures, to ensure that the highest level of system and data confidentiality, integrity and availability is maintained.
- Ability to use Unix/Linux command line programs and create/edit scripts.
- Able to analyze results of automated deployment scripts and makes modifications.
- Able to prepare detail design documents from requirements.
- Familiar with Reporting tools such as Crystal Reports, Jasper Reports, BIRT, etc.
- General understanding of software environments and network topologies.
- Able to demonstrate OOA/OOD skills.
- Demonstrable understanding of distributed, component based architecture
- Working knowledge of networking and/or telecommunications protocols
- A solid understanding of event driven / asynchronous programming and multi-threading
- Demonstrable technical design skills (UML experience a plus)
- Familiar with TDD/BDD.
- Familiar with SOA framework, web services, etc.
- Competent (5+ years) Java or C# or C++ or Objective-C language programming skills.
- Competent with SQL or PL/SQL and relational database concepts.
- Experience with source code control systems.
- Experience with secure programming techniques is highly desirable
- Able to perform code reviews to ensure the code meets the acceptance criteria.
- 3+ years of experience with web and application servers such as IIS, Apache HTTP/Tomcat, IBM Websphere, Oracle WebLogic, JBoss, GlassFish, etc.
- Experience with other computer languages like C#, Ruby, Python, and PHP is a plus
- Able to maintain test scripts as needed.
- Prepares test strategy, test plan, test cases, and test summary documents.
- Experience with automated functional software testing frameworks, such as Cucumber, Selenium, etc.
- Performs unit, functional, load, user interface, performance, regression and system integration testing on new code or modified code prior to production releases.
- Produce and report project test metrics.
- Possess advanced knowledge of QA/QC techniques; certifications preferred
- Assists new staff on testing techniques and test methodologies
- Responsible for responding to situations in a timely manner, and meeting predetermined deadlines
- Ability to support/maintain existing products and add new features as requested by customers.
- Central point of contact for support of UAT/production applications as needed
- Keen troubleshooting skills across tiers/domains
- Ability to work on multiple projects
- Agile/Lean methodologies experience
- Solid understanding of an iterative software development process
- Able to guide the team to produce estimates for all project activities and tasks.
- Responsible for eliciting user and functional requirements and ensuring they consistent and complete
- Mentor and monitor Software Engineers in the technical aspects of their assignments.
- Education and experience typically obtained through completion of a Bachelor’s Degree in Computer Science and/or 5 or more years of related industry experience.
- 5-7+ years of total professional software development experience
- 4+ years of experience with full-stack development (Java)
- Excellent working knowledge with database technology such as MySQL, Oracle, and Microsoft SQL server.
- Results-oriented with high attention to detail, ability to multi-task, and meet deadlines in a dynamic, fast-paced team environment
- Ability to think in innovative ways to find solutions to problem