Senior Software Engineer II
Job Description
Job Brief:
At PrintMail, our mission is to provide a Better Way. We share a common set of core values – We Value Excellence, We Take Ownership, We Serve Others, We Are Customer Focus and certainly not least, We Have Fun! Come work at PrintMail Solutions and help us provide a Better Way where diverse experiences, backgrounds and perspectives are valued! PrintMail Solutions is proud to be an Equal Employment Opportunity and ADA compliant employer
A Senior Software Engineer is a skilled and experienced software engineer responsible for the detailed design, implementation, and testing of subsystems and system components. A Senior Software Engineer is able to build a wide variety of software subsystems and components efficiently and effectively, given only a requirements specification and constraints. A Senior Software Engineer is able to develop and sustain these subsystems and software components in complex, multi-vendor, multi-platform environments. Tasks may include design, maintenance, and working closely with both internal and external customers.
Responsibilities:
Take initiative in performance, working independently and with groups to effectively accomplish project objectives and engage in the following:
- Interact with fellow software engineers, technical leaders and Product Owners to understand component specifications and recommend changes to facilitate efficient and effective development.
- Interact with representatives of other industrial and government groups to understand and/or recommend data interchange formats, APIs, messaging strategies, application server software, as well as hardware and virtual machine requirements.
- Design and document subsystems and system components consisting of several objects working together to execute an encapsulated function of the larger system.
- Implement and debug subsystems and components.
- Write and execute tests for subsystems and components.
- Participate in integrated test sessions of components and subsystems on test and production servers
- Determine and communicate the implications of system-level decisions on subsystems and components and help determine how best to mitigate or take advantage of these implications.
- Determine and communicate the requirements and capabilities of components within the context of the larger system, project, and team.
- Guide teams in designing, building, testing and deploying changes to existing software.
- Consider the organization’s IT infrastructure when making changes and improvements.
- Support the team’s technical infrastructure (e.g., repository, build and deployment platform, testing frameworks)
- Participate in efforts to share software technology and expertise within the company; mentor junior and aspiring engineers.
- Provides improvements to increase team’s efficacy (e.g. automation, reduction of technical debt)
- Work alongside our business partners to achieve company goals and visions.
- Write code to create single thread, multi-threaded, or user interface event driven applications
- Use source debuggers and visual development environments
- Write, modify, and debug software for client applications
- Design, deploy and support best in class software development processes and tools
- Test and document software for client applications
Required Skills and Experience:
Includes the responsibilities of the Software Development position and individuals having the ability to and competency of performing the tasks from that prior level.
- A bachelor’s degree in Computer Science or equivalent work experience.
- 3 to 4 years of experience independently designing and implementing small or medium-sized software systems and components.
- Working knowledge and experience with coding languages including: C#.NET, ASP.NET, MVC.NET, CSS 3, Entity Framework (EFF), AJAX and related technologies, jQuery
- Successful design and implementation of multiple software components and subsystems.
- Strong attention to detail and ability to multitask
- Ability to communicate the design and implementation of software systems including relevant strengths/weaknesses and reasons for implementation decisions.
- Knowledge and experience of T-SQL and Internet Information Services (IIS)
- Experience working in an Agile SCRUM methodology is a plus.
- Familiarity of multi-threaded applications is a plus
- Experience working with and/or developing REST APIs is a plus.
- Experience in maintaining ASP classic web applications is a plus
Job Type: Full-time
Pay: $130,000.00 per year
Benefits:
- Health insurance
Work Location: Remote