Database Engineer
Oak Brook, IL
Considered to be a software development engineer who designs, develops, and maintains database systems related to enterprise software applications. Demonstrates expertise with relational database systems concepts, practices, and procedures. Relies on experience and judgment to plan and accomplish goals. Has technical leadership capabilities. Performs a variety of tasks. Typically reports to a manager. A certain degree of creativity and latitude is required.
Responsibilities
- Understand requirements and acceptance criteria for each feature. Possess product knowledge within one or more components of a software system.
- Provide input into the functional design of software components based on experience and product knowledge.
- Actively participate in the technical design of software components. Use experience to help translate requirements into technical designs and tasks.
- Provide estimates on assigned tasks.
- Independently write quality database systems code, (tables, indexes, triggers, stored procedures, queries, scripts, etc.), that is simple, reliable, scalable, reusable and is optimized for performance.
- Independently provide database administration and support to all application development databases.
- Independently develop and execute automated unit/integration tests for the code that is written. May assist QA and Product Management to define acceptance tests. Verify that code written passes acceptance tests.
- Check in working and tested database systems code into source control and monitor continuous integration. Validate that each Release Management build contains all checked in code prior to the build being release to quality assurance. Maintain and contribute to source code build systems.
- Analyze and fix moderate to complex problems during product development and customer support. Document and communicate results appropriately.
- Work and communicate in a cross-functional team environment comprised of software engineers, user experience designers, product managers, quality assurance engineers, technical writers, customer support representatives, product implementation consultants, etc.
- Proactively provide status, raise issues, and communicate necessary information to your manager and/or appropriate team members on a regular basis.
- Document all deliverables for communication to development, quality assurance, documentation, support & consulting teams.
- Participate in code reviews of other team members to ensure adherence to coding standards and team processes and procedures.
- Actively explore methods and tools to improve database systems and the overall development process.
- Participate in the recruiting process as needed.
- Provide mentoring and leadership to less experienced database engineers.
Experience/Skills
- BS degree in Engineering, Computer Science, Management of Information Systems, or similar disciplines.
- 5+ years experience as a Database Systems Developer (coding, tuning, optimizing, unit testing, planning and design). Experience with Microsoft SQL Server is a must.
- Experience in the development of complex and large software systems.
- Experience with Agile practices a plus (test-driven development, incremental design/refactoring, continuous integration)
- End-to-end software development life cycle (SDLC) experience within a commercial software product company a plus
- Experience with Object Oriented software development a plus.
- Excellent verbal and written communication skills.
- Proven analytical, planning, problem solving and decision-making skills and excellent attention to detail.
- Highly self-motivated and organized with desire to learn and apply new techniques in a fast paced environment.
- Desire and ability to learn and apply new skills and technologies quickly