Category Archives: Team and teamwork

My Team Anniversary

Exactly one year ago, my team became three times bigger. So today is not only the first anniversary for my co-workers Sudheer and Tejas but also the first anniversary of the Braviant database team.

Thank you guys for doing an outstanding job!

img_3088

Advertisements

2 Comments

Filed under Companies, People, Team and teamwork

New features are available in the bitemporal repo – and I am so happy about it!

I Really hope that most of my follows know something about the pg_bitemporal project, because if you didn’t hear about it, you won’t be able to share my excitement!

We started to build our bitemporal library for PostgreSQL about four years ago, it was merely a “proof of concept”, and Chad Slaughter, who initiated all this work, knowing my work habits way too well, was re-iterating again and again – do not optimize it yet!

Well, I didn’t, but then I’ve joined Braviant Holdings, and a year later I was granted a permission to use our bitemporal framework in production. Some of the performance flaws became apparent even during the test run, and I was able to fix them. Later, while we were using it in production more and more, I’ve come up with new functions, UPDATE_SELECT and CORRECT_SELECT, since we actually needed them, and since the bitemporal operations were supposed to behave the same way as regular database operations.

About three weeks ago we had a very important release, which along with addressing multiple business needs, included some significant changes on the technical side. One of the consequences was, that it significantly increased the traffic on our new planform, and as a result we started to see some timeouts.

Although these timeouts were pretty rare, we saw them as a problem. I personally pledged the system will remain scalable, and now I couldn’t just go with “bitemporal updates are slow”. Yes, the execution time was at 2 to 3 seconds most of the time, but sometimes it would spike, and our microservices have a hard timeout at 10 seconds.

Some time ago I’ve already mentioned in this blog, how thankful I am for those timeouts! Nothing else foster innovation more than a necessity to address performance problems immediately, because they have a direct impact on production.

This time around I was 99.9% sure that the periodic slowness happens during the remote query, which is a part of the problematic function. Turned out, though, that this 0.01% was the case, and together with our DB team we were able to determine, that the problematic statement was the last UPDATE in the bitemporal update function. If you’d ask me a week before that, I would say, that I am not going to address the bitemporal performance for the next several months, but I had no choice.

Thanks to Boris Novikov, who helped me immensely in testing and verifying several different approaches, and eventually identified the best one, and to Chad Slaughter, who was merging my commits from 7-30 AM to 9-30 PM, so that the master branch of the bitemporal library would have the latest updates by the time of the release, and thanks to our amazing QA team, who had to run and rerun tests that day multiple times, the new bitemporal functions are now on place. Not only for Braviant Holdings, but for the whole community.

I would also like to mention, that since I was already changing the functions, I’ve fixed one long-overdue issues: all functions have versions, which are PG 10 compliant. We’ve left the old versions there, because some of the are used in the existing production systems but if you are just starting, you can use the new ones.

Check it out at https://github.com/scalegenius/pg_bitemporal

Leave a comment

Filed under news, research, SQL, Team and teamwork

What makes a manager awesome?

Recently I  was asked to submit my “Motivational inventory”. Among other questions there was one which made me think for a while: if I think about the best manager I ever had, what would make him(her) awesome? Here is what I’ve replied.

I was lucky to have several awesome managers,  and I can’t really rank them.  But there was definitely one thing in common for all of them- they were supportive.

They would trust my technical skills and would let me to do things “my way”, even when it was not “like people normally do”.

They would have patience to wait till I reach the desired results, even when I myself didn’t have patience .

They would help to resolve the conflicts between team members, and would make sure there is no bitterness left. It would often require multiple phone conversations, and sometimes felt like marriage counseling :).

They would recognize my achievements and make them visible to the upper management and clients. And they would support and motivate me at the moments when I would feel I am a looser and nothing works.

***

I think that being supportive is the most important role of any manager. Trust, openness, recognition of employees achievements – all of these things can be viewed like forms of support.

Leave a comment

Filed under People, Team and teamwork

February Chicago PUG – what the conversation was about

It’a almost time for our March PUG, and I never blogged about the February one, I guess now it’s as good as any other, especially because  the March PUG is just several days away, and as usual I hope to attract more people to our next event

As for the February PUG,  I really liked it, even though I managed to completely mess up and accidentally cancelled the meetup! I am still not used to the new Meetup editor. Nevertheless, perhaps it was even better, that I’ve made people to re-confirm their participation at the last minute.

I was presenting our most recent work –  a new framework for efficient communications between a database and a web application. My favorite topic; and I was super -excited to share our success. And I was very glad, that one of our application developers decided to stay for the PUG, because very soon all the questions merged into one big question: what did you do to make it happen? What did it take to change the developers mindset? How did we pull it all together?

And my coworker started to describe, how we did it. And I’ve realized, that I almost forgot about many obstacles, which we had overcome. How many things didn’t work from the very beginning. How many “extra miles” we had to walk in both directions.

Answering the comments on one of my previous posts on that topic: it’s just not so easy to write a “matrix” of decisions which would automatically replace the ORM. Most of the time it’s a customized development. If an app developer would always know that method A involves three joins on a database side, and method B pulls the attributes from the same table as  method C… then probably they won’t start using ORM from the very beginning. But the purpose of ORM is to hide these details!

It’s not easy to do things differently, Especially in a small startup. With all the deadlines, and with clear understanding that there is a potential slowdown in development. But we all tried to do the right thing – as a team. I give a credit to myself for coming up with a framework which at the end of the day is easy and convenient to use in the application. And I give even a bigger credit to the whole team for willingness to work through all the issues toward the best solution.

My fellow chicagoans! If by now you feel sorry you missed the February PUG – please consider coming to the March PUG upcoming Wednesday!  Johnathan Katz from Crunchy Data  will be presenting the talk “An Introduction to Using PostgreSQL with Docker & Kubernetes”. We expect another “bridging the gap” event 🙂

Leave a comment

Filed under Companies, Team and teamwork

The best things from 2017 and what I am looking forward to in 2018

When I am talking to people about the year 2017, and what was important, I would repeat over and over: everything I was striving for during my 30+ years of professional career had happened. All wishes have come true. Which would inevitably lead to the question: well, Hettie, what are you going to next then?

And there are plenty and plenty of things I want to do, but first I wanted to reflect on 2017 one more time. I’ve already listed multiple times all our technical accomplishments, all the wonderful things I was able to implement in a real production environment.  But when I look back at what was the best, it is definitely working with our new tech team. As I am reiterating over and over again, “the database is a service”, and whatever we are doing inside the database, can only make any impact, if our results can be utilized by “somebody” – by our end users.

And most of the time our end users are  application developers.  I can’t imagine any serious database development without continuous interaction with the rest of the development team. For years my “golden standard” for the teamwork has been my work for New York Department of Education, where I had a full support of the tech leadership, which helped me to defend my approaches and produce the results I am still happy about.

But what has being going on in the past several months is even better. The way we discuss the user stories. The way we make decisions on what should go into the application, and what – into the database. The way we debug. The way we discuss, what is critical, and what’s not. The willingness of each of the team members “to go extra mile”, to adjust in order to make others job easier. Basically, whatever I could imagine for the teamwork being perfect, is there. 🙂

Being in this industry for 34 years, I know that nothing lasts forever:). I know that every tea,, every organization evolve, and that nothing is granted forever. But I also learned to be thankful for what’s going on right now, and enjoy the moment.

Looking forward to 2018 – I hope that our team will continue to be the most amazing team ever. I am looking forward for the stress -test of our new applications with high data volumes. After all, I was designing the data storage and data access to be super-scalable, and I hope that it will work this way.

I am looking  forward to use the performance data we’ll obtain to improve our bitemporal library, and I already have some ideas of what I exactly I want to do. Actually, I have new technical ideas on almost everything I’ve developed through the last year. I still didn’t get notifications on whether any of the papers I’ve submitted for the next year conferences were accepted,  but I know that both are very good papers :), so even if none will get accepted… I will try for another conference!

 

 

 

 

Leave a comment

Filed under Development and testing, SQL, Systems, Team and teamwork

We are live!!!

This happened yesterday. And immediately after “this” I’ve realized I am so tired – I could not post even a paragraph.

For the past several months the only thing people have heard from me was – “I am busy”. And I was. And yesterday our new product has been launched. Our new website went live, and a first couple of loans got through, and the first loan was funded.

For a couple of our team members that was the first real product launch in their lives. Not for me, but it’s definitely the first time in my life when not only all database design and database code is written by me (or drafted by me), but also everything is based on the new technologies, which were developed with my participation

the other day one person who’ve known me fora while asked me, whether I’ve accomplished everything in my life.

It sure feels pretty close to that :). That “I have nothing left o wish for” – all my wishes have become true. But now comes the next phase – life have to prove, that all the things I believe are scalable, durable, flexible, efficient – indeed are.

I am always saying: a database is a service. Nobody from the “outer world” can see all these cool things. The only thing people will see will be (hopefully!) fast response.

But you know, what’s even more important than “all wishes coming true”? That’s our team, In my 34 years in industry I am positive that’s the best team I ever worked with,  with each and single person being cooperative, flexible, opened to trying new things, diligent, attentive to details… and the list goes on… I’d just summarize it – each and single person in the team understands what the word team means:).

A picture from the launch:

Leave a comment

Filed under Companies, events, news, Team and teamwork

When working remotely does not work

About a week ago this article from Atlantic landed in my Inbox from one of many newsletters.

And now, returning home from just three days of working remotely, I think about how I agree with many of the points this article makes.
In general I am very thankful, that I have an option of working remotely periodically, but only because otherwise I will have to skip work entirely each time I travel.

I’ve always been a great proponent of remote work, arguing that it can be as efficient, as working in the office if not more, using my work with NY Department of Education as an example. But I have to agree with this article: times have changed. And now I have no doubts, that working remotely for me in my current position should be very limited – both to my own benefit and the benefits of the projects I am working on (which, to be honest, is almost the same thing :))

Leave a comment

Filed under publications and discussions, Team and teamwork, Workplace