Tag Archives: Enova

Team and teamwork

For the past couple of weeks I’ve been asked multiple times the same question I though I’ve answered a long time ago: Hettie, why do you want to have a database developer on each quad? Won’t it be better, if you just have a team of database developers, and if there is a need in the database work, you would dispatch a developer to a project?

I was so sure I’ve written about it already, but I’ve just looked over all the “people” tags and didn’t find anything… so I guess, I just always meant to write about it, and never did :).

In short: if a squad does not have a database developer, it becomes much more difficult for the squad members to realize they actually need some database work. Since the database is “a backend of backend”, many potential problems which can occur are not recognized as “db problems” or “db tasks”.

On the other hand, when a database developer is indeed a member of the squad, when he or she is present starting from the very first design sessions, when (s)he understands the project/product needs, the better solutions can be introduced from the very beginning, potential problems could be resolved before they occur.

It’s very rarely that “an outsider”, “a consultant”, which a database developer can become if (s)he won’t be a squad member, can grasp all small details about project. I personally do not believe in “theoretically correct solution”. In the overwhelming majority of cases the solution should be tailored for a particular case. The foreign keys and other constraints and functional dependencies are originated in the real world, not in the database. Not always, but in most cases you can’t just look at the database schema and say, whether it is “right” or “wrong”. And that’s where a database developer on a team matters – to do things right. Right away.


Leave a comment

Filed under Team and teamwork

One year as a “Head of Data”

This happened a year ago – I’ve became a Technical Lead for the database development in the SE department. It has been a memorable year, indeed…

Last week I’ve presented a talk about this one year – what I was planning to do, what I’ve done, and what I am going to do in the next year and in the next two years. While I was preparing this talk, I’ve talked to all the squad leads, asking them, what I am doing right, what I am doing wrong, what they want me to do more, and what they want me to do less… I’ve also reviewed my first presentation in my new role, which I’ve delivered in the beginning of August last year.

You know, what was the most surprising? Every day through all this year I had a feeling, that I am not doing enough, that just like Alice in the Wonderland, I am running and running just for the sake of staying on the same place, and sometimes really falling behind. But when I looked at this my last year presentation, when I’ve started to go item by item on what was done, I’ve said to myself: wow! I actually did something!

I feel that my most important accomplishment over this year is the fact, that everybody just forgot, what was the most pressing problem a year ago. I’ve asked a number of my coworkers: do you remember, what was the most important problem for me a year ago? Do you remember, what everybody expected me to resolve? And nobody can recall!

And this is really good – because the most pressing problem a year ago was to “teach” the database developers and application developers to work together, to be collaborative, do not use the terms “us” and “them” (I really hate when people say this!) And yes, these days the database developer had blended into the software development squads so well, that nobody remember there was ever a problem.

There are many other things we’ve accomplished over the past year; as many of the lead application developers mentioned to me “now we are much better in dealing with the data, we know what to do, and what not to do”. The quality of SO development increased drastically, and the application developers know when to call for db dev advice, and are not afraid of this “whole bunch of SQL code”. We increased the amount and quality of testing. We made significant progress in fighting the Object-relational Impedance Mismatch.

And as usual – still a long way to go! But now I am pretty confident – we can do it. We have ton’s of cool stuff in works, and we have amazing people. As I’ve already mentioned a couple of weeks ago, I am going to showcase so of the work completed by my coworkers (since they are not doing it themselves :)). Stay tuned!

Leave a comment

Filed under Companies, People

I am featured in the Huffington Post

This interview was recorded in October, and I was told it will be published sometime in the beginning of January, so by mid-February I almost forgot about it. But here it is – in today’s Huffington Post Women in Business section.

I will be honest – am shamelessly proud of this publication, and I really hope that it will help me to promote my ideas at work, and to accomplish all these great and wonderful things I am dreaming about:)


Filed under news, People

What happens at the Hour of Optimization

I’ve being bragging about our “Hour of optimization” for a while, and now I want to talk about it in more details.

The original idea was that I will try to allocate some time for random optimizations: since people were coming to me with all sorts of optimization questions for a while, and a question could pop up in a chat at the most inconvenient time, like 5 PM on Friday, I’ve decided to have some “office hours”. This attempt was an epic fail, because literally nobody would come with their questions at that time, and everybody continued to bring me their questions at any other day/time of the week.

Then I’ve decided, since I already have this hour on my schedule, and since we’ve got so many newly hired database developers, to use this hour to show some optimization techniques, and how they can be applied for our tasks. This idea was definitely more productive, and I felt like people are learning something. On the other hand I knew that listening to the great optimization stories is not enough, that in order to master any optimization techniques you need to apply it at least ones.

So I’ve started to contemplate making other people talk at the Hour of optimization. First I’ve begun to approach those people about whom I knew for sure they performed some cool optimization task during the week. I’ve started to ask them to talk about these tasks – no formal presentation, just a conversation, and please show your code. After each of those presentations I’ve tried to initiate some exchange of opinions, some discussion: which technique was used, did we talk about it during my tuning classes, did we use it somewhere else recently? I liked it a lot when almost everybody started to participate. I’ve also started to invite people from other departments, since I’ve learned that many optimizations are going on all over the place 🙂

After some time I didn’t even need to know for sure that “somebody did something”. I was just asking: who would like to talk at the next Hour of optimization? Sometimes it’s even better: a developer may approach me and say: I have something for our optimization hour!

Yes, one can say that that’s a job of a database developer – to optimize queries. But I think it’s extremely important to reflect on your work, to think about the patterns you are using, to connect the current problems with the previous similar ones. Also, it gives the new database developers this feeling of almost visible growth of experience. We are definitely growing our database developers on the fertilized soil!

Leave a comment

Filed under SQL, Team and teamwork, Workplace

My company, new hires and the culture of learning

In course of the past six months we’ve hires six new database developers. Actually, we’ve hired seven, and the seventh person will start tomorrow.

On one hand, I am absolutely excited about that. I am excited, that finally we are going to have enough staff to do all this database work I was dreaming about, and didn’t dare to suggest, because I knew we didn’t have a bandwidth for it… But at the same time having that many new people presented certain challenges. Some of our new people were coming straight from college, some did have several years of industrial experience, but with different databases, not postgres. How you onboard that many new people? How you ensure they’ve got Enova culture? That they are not overwhelmed? How you set the realistic expectations?

I believe, one of the most important things is to help people to immerse into the culture of constant learning. Learning is not about just reading the books and finding stuff online, but most importantly – about asking questions, sharing you knowledge, learning from other people successes an failures.

I absolutely love how our weekly “Hour of optimization” has turned out. I love it that for the past several weeks it’s not just me presenting, but mostly our new database developers present their work. I love that everybody are involved in discussions.

Last week I started to think about making this blog a platform for sharing all database developers achievements. We’ll see how it goes! Don’t be surprised if you’ll see some posts in this blog, which are not written by me!

Leave a comment

Filed under Companies, People, Workplace

The vision of data for 2015

On Friday I’ve delivered a talk about the Data Vision for 2015, about the objectives of the database developers for the year. To be honest, I was freaking out, and almost nobody realized I was. When I asked some people after the talk “how was it”, the people would respond “great as usual”, and practically nobody realized it was actually unusual, because I never ever spoke on such a topic before.

It seems pretty easy – I know exactly what I consider the most important goals for the database development. Whenever I talk to the other database developers, or to my director, or to my squad members – I am saying something to the effect “I really wish we could always to “this”! I want “that” to be done each time we deploy new code!” But when you have 45 minutes and a hundred people listening, somehow you become mute…

Overall I think it all went well. One of the most important thing which I hope had reached the audience was, that the database development should be tightly integrated with the application development. Where exactly is the borderline, depends solely on the efficiency of the solution provided, not on any presumptions of “how it should be done”. And in order to achieve it, we should be able to speak each other’s language.

A database developer should be able to read the application code, which invokes the function (s)he wrote, and to understand, how it will be used. Sometimes we, the database developers, really do not realize, what exactly causes the problems, and we think that the application developers are just difficult and do not understand there benefits. On the other hand, the application developers tend to react nervously, when “the parts of business logic” are disappearing in “this long SQL code”, while they are absolutely capable to read this code and understand what’s going on.

So, one of my biggest goals for this year is to make our development process really integrated. And really flexible. In all possible meanings 🙂

Leave a comment

Filed under Companies, Data management, Systems, talks

We are still hiring!

Today when I met with one of our new hires, he mentioned that he read my database blog even before he joined Enova. These are great news for me, because now I hope that may be more people are silently reading my blog, and may be, some of them will be interested to know, that we are still hiring!

Our recruiters ask us to post this link to our blogs, which I am doing with great pleasure.

Job Description
Database Developers report to one of our Engineering Managers, and work with production databases and software that serve thousands of customers per day around the world.

Our Database Development Team:
Each member constructs our core data repository for the business, feeding all other functions, and directly supporting Enova’s web applications. Projects can vary greatly, be it simply improving our databases, frameworks, and applications; or designing new subsystems to support 3rd party integration. We have a passion for data and quality and are seeking others who share our enthusiasm.

We are constantly driven to work harder and learn new things not from some top-down initiative, but from the feeling that we owe it to our peers to keep up with their growth. We have passionate debates about technology with consensus in solutions, flexible team structures, an irrelevance of title in problem solving, and a desire to Do The Right Thing.

As a Database Developer you will quickly have your code in our production databases and applications and be responsible for significant projects impacting the business, while designing and implementing significant database subsystems. To get ramped up in a timely fashion, you’ll go through a 30-day intensive training program where you are paired with a mentor to learn through interaction, lecture, and literature. No one grows as fast as the teacher, so once you’re settled in you can expect to be called upon to mentor others, including future new hires.

We speak this language:
We work with the absolute cutting edge of database technology. Our tools include PostgreSQL, psql, pgAdmin, bash, your favorite editor, and custom in house frameworks—plus . As a solid performer and contributor to the team, you can expect to attend national conferences, networking with core contributors to the PostgreSQL database community and further enhancing your skill set.

This is where YOU come in:
As a Database Developer you will:
Work in a full-stack team on business-critical projects.
Challenge decisions about the data we need to collect and leverage.
Work with Stakeholders and other teams on building the right solution.
Create schema, data structure, and design components for storage of critical assets.
Build tools that others use to keep ahead of the industry and competition.

You’re right for this job if you:

Have a Bachelor’s Degree in Electrical Engineering or Masters Degree in Computer Science or equivalent
Are a self-starter with a passion for databases
Have 1-5 years experience in a PostgreSQL, Oracle, or Sybase database environment
Have a solid understanding of SQL and database design
Have proven experience designing a transactional database in 3rd normal form
Have experience in a production database environment
Have experience with a stored procedure language
Have UNIX or Linux experience

Kudos to you if you:
Have experience working with PostgreSQL
Know Ruby on Rails
Know Perl, Python, or C
Have experience leading a team

Are you there? I need you!

Leave a comment

Filed under Companies