Senior Software Engineer C, C++ - Madison, WI
Are you interested in working on big data, NoSQL and cloud systems? We’re looking for a software engineer to work on the core of our platform. You'll work on the team that provides the weather data powering many products used by insurance, digital media, and utilities companies. This data comes from many different sources and formats, and the business needs are constantly evolving. Working on a small, skilled team, you'll provide the code and architecture to meet the business needs.
Design, develop, code, install, debug and test software at an advanced professional level; acting as a subject matter expert for enhancements and new products. Develop software and tools utilizing C/C++ and other languages in support of design, infrastructure and technology platforms, including operating systems, compilers, routers, networks, utilities, databases and Internet-related tools. Determine hardware compatibility and/or influences hardware design.
Responsibilities and Deliverables
- Design, develop, code, install, debug and test diverse, complex C/C++ services from product requirements and designs, while demonstrating advanced professional expertise of data flow through full systems implementation, exercising, up to and including leading others in selecting methods, techniques and evaluation criteria for obtaining results.
- Determine operating feasibility by evaluating analysis, problem definition, requirements, solution development and proposed solutions, and provide alternative solutions as required.
- Partner collaboratively with the business and project team to accomplish tasks/milestones/goals.
- Document and demonstrate solutions by developing documentation, flowcharts, layouts, diagrams, charts, and code comments.
- Improve operations by conducting systems analysis; recommending changes in policy and procedures.
- Provide estimates of work effort and impact of projects and tasks, and provide team leadership, as required.
- Update and distribute job knowledge by studying state-of-the-art development tools, programming techniques and computing equipment.
Qualifications and Experience
- Bachelor's Degree in computer science or related field, or its equivalent.
- 5 years of related experience in full cycle software development with demonstrated achievements and progressive responsibilities.
- Highly proficient and demonstrated advanced technical level software design, debugging, documentation, and testing skills, requiring application of extensive technical knowledge and skills at the subject matter expert level necessary to complete and document projects.
- Comprehensive knowledge of professional software development process and concepts, with the ability to lead and teach others.
- Expert in software architecture. Comfortable with architectural designs and concepts, including concurrency, database design, OO, MVC, performance, scalability and security; prior experience as a software architect is a plus.
- Advanced level proficiency and breadth in C/C++ and at least one additional language.
- Developed and demonstrated proficiency to resolve a wide range of moderately complex business problems and opportunities where analysis of data requires evaluation of identifiable factors.
- Comprehensive and functional network of senior-level internal/external personnel in own area of expertise.
- Demonstrated proficiency and application of business software lifecycle development.
- Excellent and demonstrated communication skills (verbal, written, wiki and white-boarding).
- Comprehensive knowledge of Agile methodology.
- Ability to communicate and coordinate projects in a team leadership capacity.