Job Purpose : This role is responsible for our primary stack of .NET and a broad array of other technologies to deliver our products.
We use C#, ASP.NET, Web API and Windows Services and SQL Server as our main data store. On the client side, we are using HTML, CSS, jQuery, Vue.
js and Bootstrap to create responsive interfaces. As a Senior Engineer you will be focused tactically on various projects.
We have a heterogeneous environment that includes some very legacy applications with more modern web solutions. Our flagship product (Guestrev) includes a C++ codebase that is 15+ years old and which is not going away in fact, we are probably going to be adding functionality to it.
I have found that standard full-stack developers whose experience is solely in Microsoft ASP.NET solutions can have trouble navigating and getting accustomed to the RevCloud software ecosystem.
Job Responsibilities : Essential Functions :
Collaborate with other developers and engineers to design, build, and maintain applications
Determine operational feasibility by evaluating analysis, problem definition, requirements, solution development and proposed solutions
Build applications for various platforms using common frameworks, including .Net
Write clean, testable code using .NET programming languages utilizing in-depth development, technical and design expertise in .
NET, ASP.NET, C# and SQL-Server
Contribute and conduct development tests including but not exclusive to unit, integration and system level
Follows company software development standards and best practices
Develop technical specifications
Estimates development tasks based on the appropriate business constraints
Review and refactor code
Document development and operational procedures
Reviews and validates implementations of self and others to ensure they meet requirements and match the specifications
Mentors and supports junior developers’ work
Enforces and evolves software development standards and best practices
Troubleshoot software issues
Provide on-call support as necessaryHere is a sampling of the things we routinely have to deal with :
Legacy C++ code that does not follow any modern patterns it’s enterprise software from circa 2005 that uses desktop clients, a windows service on the backend, etc.
There are also console applications that perform complex data science. We have a home-grown batch scheduler and other windows services, all in C++.
Several flavors of ASP.NET WebAPI services on several .NET platforms, including framework and net core.
Web applications written in ASP.NET MVC on .NET framework with Razor and jQuery, in Vue.js calling API services, and one app that is written in some older ASP technology that predates MVC.
Extensive use of SSIS in several products, and SSRS in one product.
An integrations code base, with most implemented in C#, but some in C++. This supports our integrations with customers’ third-party systems.
The C# uses home grown design patterns and is not structured in a way that a full-stack MVC developer can jump right in and understand how it works.
Our current development effort for Guestrev’s web UI (a redo of the UI, replacing the older MVC based site) is being done in Vue.
js with net core C# API’s and Dapper ORM, with a mixture of Azure-hosted serverless webapps and some hosted services in our production data center.
Requirements : Required Education and Experience :
Bachelor’s degree or equivalent combination of education and experience
At least 5-8 years professional experience in all stages of definition, design, implementation, testing, and deployment of web-based software solutions
At least mid-level experience, preferably senior, but exposure to a variety of environments is a must
C++ is a must.
Ability to navigate a complex and heterogeneous software ecosystem is a must. The candidate is going to be asked to learn several products and supporting services and needs to be ready for that.
It’s not a job working only on one major new development effort.
Ability to quickly debug unfamiliar codebases in a support role is a must.
Hands on experience using testing frameworks (i.e. NUnit, Visual Studio, xUnit, etc.) and TDD
Experience with Agile (Scrum) Software Development Process and methodologies
Experience with database management and security a plus
Experience with source control such as git or git hub and branching / merging best practices
Experience migrating or working with C++, SSIS or SSRS code is a plus
Communication skillsPreferred Education and Experience :
Master’s degree or higherExpected Competencies :
Detailed oriented with strong organizational skills
Ability to pay attention to programming style and neatness
Strong English communication skills, both written and verbal
Ability to train, mentor junior colleagues with patience with tangible results