Senior Software Engineer
A Senior Software Developer is responsible for all aspects of the development and delivery of applications. This person will need to:
- Be able to understand the SDLC model and what their specific activities are in designing and then delivering a solid, robust application
- Understand how to develop and enforce coding standards and source code development standards
- Design and develop code that is clean, understandable, maintainable and solid
- Design, develop and implement solid test plans to accurately test the application code, functions, modules and program
- Develop and maintain detailed and accurate documentation per all project standards
Core Job Responsibilities:
- Design, develop and deliver applications to include: architecture design, prototyping of concepts to proof of concept, development of coding standards, design and development of source code and test plans, code and module design, development and testing, application debugging, design and implementation of code that follows efficient design techniques and code development that meets and exceeds the intent of the design of the application.
- Build software primarily using C# on .NET 4.5+ in addition to HTML, CSS, and JQuery.
- Lend support to various business and technology teams as necessary during delivery to ensure solid, scalable, robust solutions.
- Be able to clearly communicate complex technical designs and solutions in clear, concise and easily readable format by both technical and non-technical personnel
- Communicate effectively in both verbal (i.e. day-to-day discussions, team meetings) and written (requirements and design specifications) form, as well as have an overall ability to be clear and concise in all communications
- Accurately determine, assign, track and manage project task, activity, documentation, and time information
- Accurately assess the risks associated with each solution design / project
- Support the development of team members from a professional and technical level
- Gain the skills necessary to be a full-stack engineer if not already possessed
- Mentor other team members while remaining open to others ideas
- Effectively manage multiple priorities of a team of software developers
- Perform additional job-related duties as requested
Required Skills & Abilities:
We are looking for individuals who love building software. You should have experience, but also be willing to stretch and learn new things.
- Thorough working knowledge of the application design and development processes, methodologies and their direct implementation to application projects with the .NET Framework 3.5 and above
- Strong programming, code development, code debugging and testing skills, troubleshooting skills, and experience with the .NET development environment and multi-tiered architectures
Experience in developing and executing a software implementation plan
- Experience with SQL and software interactions with databases such as Oracle and SQL Server
- Experience with unit testing using tools such as NUnit/Visual Studio Unit tests.
- Strong decision making and problem solving skills (i.e. design, debugging and testing)
- Accept ownership of not just your own work, but the overall project/code base
- Consider that testing is an important discipline while writing software
- Solid experience with OOP and software design principles/approaches
Education / Experience:
- Bachelor’s degree in Computer Science, Software Engineering or related equivalent experience
- At least 5 years of experience in software development using object-oriented languages.
- Relevant combination of education and experience.
- Microsoft .NET Certifications (desired, but not essential)