What is The Opportunity? At Oracle Utilities (Opower) we have built the most robust and effective consumer behavioral demand response (BDR) platform available today. Collectively we have cut peak electricity usage at our partners by up to 5%, saving money and abating thousands of pounds of carbon pollution by delivering personalized, targeted customer messages and insights via email, voice, and SMS. We have big ideas for our product and platform. We want to expand our offering to serve dozens of new utility partners across the country, thereby sending millions of additional personalized communications each day. And we want to provide a more transparent and richer operational experience for our utility customers to make running our programs simpler and more effective.
What Are Your Responsibilities? Our big plans present us with a number of big challenges, and we need an engineer capable of taking on the responsibility to solve them. This means somebody who is comfortable with complex distributed systems and large, data-driven batch processes. You will be on a team of engineers responsible for the application implementation, including writing Java code in a complex distributed Spring batch application that interacts with dozens of restful microservices to generate and deliver millions of communications daily. You will implement the Behavioral Demand Response product improvements and be hands-on when it comes to writing code, and cooperate with other engineers within the organization to define the next generation of our communication platform.
We also need a team player; a dependable individual contributor who is passionate about engineering best practices and committed to both providing mentorship and learning from the rest of the team. This may mean refactoring others' code, collaborating on code reviews and providing feedback and support to the rest of the team, and evangelizing software do's and don'ts across the tribe and in the software guilds that pique your interest. Since our existing stack is heavily based on Java / Spring, JAX-RS & MySQL, you are passionate about the JVM and relational databases. And because our platforms are cloud SaaS products, agile release processes and distributed systems and protocols are a part of everyday life, and something you feel comfortable with.
What About You?
- You are a passionate & experienced Java engineer, comfortable with complex distributed system design and data-driven batch processes. Ideally you have 3 years of professional software development experience, or your educational background and history contributing to software projects supports your skill set.
- You are comfortable with relational databases, are familiar with MySQL, and understand a query plan and how to optimize your application's data store.
- You are a collaborative and inquisitive team player with strong interpersonal skills who can communicate effectively in small, cross-functional teams. You are a loyal and supportive mentor for other engineers with less experience than you and listener to engineers with more experience than you, and are comfortable with professional growth via pair programming and constructive feedback in code reviews.
- You have solid and dependable skills in computer science and algorithms; and you understand how algorithmic complexity impacts how to solve problems with large data sets.
What Do We Do? What does Oracle Utilities (Opower) do? We're applying cutting edge computer science to one of humanity's greatest challenges: Energy. Our utility customers around the world give us energy usage data for tens of millions of their customers which we then analyze and aggregate using the latest software technologies to motivate consumers to use less energy. We use the right tools for each element of our broad solution set so all engineer get exposure to our entire portfolio, from Java Spring to Ruby on Rails, from Hadoop to MySQL to ElasticSearch, from large batch processes to rich web apps. We're looking for someone as passionate about our mission and process as we are!Qualifications:
Analyze, design develop, troubleshoot and debug software programs for commercial or end user applications. Writes code, completes programming and performs testing and debugging of applications.
As a member of the software engineering division, you will perform high-level design based on provided external specifications. Specify, design and implement minor changes to existing software architecture. Build highly complex enhancements and resolve complex bugs. Build and execute unit tests and unit plans. Review integration and regression test plans created by QA. Communicate with QA and porting engineering as necessary to discuss minor changes to product functionality and to ensure quality and consistency across specific products.
Duties and tasks are varied and complex needing independent judgment. Fully competent in own area of expertise. May have project lead role and or supervise lower level personnel. BS or MS degree or equivalent experience relevant to functional area. 4 years of software engineering or related experience.Oracle is an Equal Employment Opportunity Employer. All qualified applicants will receive consideration for employment without regard to race, color, religion, sex, national origin, sexual orientation, gender identity, disability and protected veterans status or any other characteristic protected by law.
A little about us:
Oracle is shifting the complexity from IT, moving it out of the enterprise by engineering hardware and software to work together—in the cloud.