A Software Developer or Engineer designs or improves computer software. Oversees the entire software development process. Analyzes customer or user needs, designs programs, writes code or instructs computer programmers, tests design, and documents programs. May assist with upgrades or maintenance. May specialize in the design of computer applications or computer systems.
Develop and maintain software using programming concepts and software development processes. Work conforming to agreed procedures and standards. Create software in accordance with agreed stories, technical and functional design specifications. Conduct research and analysis as required to deliver projects and assignments. Understand the core concepts of software design and architecture. Have the desire and aptitude to grow and learn new skills in the field of software development and design. Use and develop time management skills to deliver work to agreed timescales. Provide and contribute to the creation of ballpark and detailed build estimates for a development task. Contribute to the creation or review of technical documentation and other project artifacts as needed. Proactively keep managers and superiors informed about the status of their work, especially regarding risks, issues, assumptions, and dependencies. When required, will contribute to the problem solving, troubleshooting, and debugging of software on production and non-production environments. May provide 24-hour support through participation in the developer on-call rotation (may require assistance from others depending on knowledge and experience). May also be asked to provide after-hours, weekend, and holiday production support when called upon.
SKILLS & CERTIFICATIONS
Skill evaluation: Behavioral (80%); Coding & Technical Challenges (80%) Solid knowledge of programming languages, data structures, algorithms, and software development patterns. Professional experience in reading, developing, and troubleshooting software in languages such as:
BASIC, C, C
#, Java, JavaScript, Python, and SQL; and with markup languages such as HTML and XML. Ability to translate and develop logic from technical specifications. Knowledge and experience of developing computer software and can demonstrate knowledge of related concepts, practices, and processes. Ability to understand business needs for assigned projects. Possesses knowledge of aspects of computer technology outside of software development, including hardware, networking, operating systems, and database management systems. Possesses good verbal and written communication skills, as applied to both technical and non-technical subject matter. Able to work effectively as part of a team or individually. Knowledge of one-or-more software development methodologies (e.g., Waterfall, Scrum). Knowledge or experience of multi-value databases or NoSQL databases preferred. Knowledge or experience of working with organizations that implement a distribution model preferred. Developer I Bachelors degree in Computer Science or related field -or- in lieu of degree 4+ years of relevant experience. Development experience in reading, developing, and troubleshooting software in languages such as:
BASIC, C, C
#, Java, JavaScript, Python, and SQL; and with markup languages such as HTML and XML. Developer II Responsible for single-handedly being able to create solutions and to support other team members in their development and design efforts. Define and document flow-chart logic, dataflow, and UML diagrams. Suggest changes and improvements where necessary to aid growth and scalability. Continue to learn and apply complex development, architecture, and design concepts relative to other systems. Demonstrate a good understanding of business concepts, business rules, data flow and database structures of supported systems. Provide specification, flow charts and/or pseudo-code for designs of new or updates to applications. Maintain growing understanding of mouser's software systems. Requirements Bachelors degree in Computer Science or related field. 2+ years Development experience required. For internal candidates, experience can be a combination of internal and external experience. Ability to work on multiple priorities and projects, seeking guidance where relevant. Ability to understand and apply new technologies. Understanding of and ability to use Object Oriented programming and UML. Knowledge or experience of working with organizations that implement a distribution model preferred. Strong understanding of the core concepts of software design and architecture. Strong planning and organizational skills.