I do whatever needs to be done! On a more serious note - I do whatever needs to be done. At the moment I am a part of core team which means I can be allocated anywhere where the business priority is at the moment. It’s casual to give me some urgent things to do. Most often those things were needed to be done yesterday. In a nutshell I write code, talk to people, help them solve problems, advice in technical solutions, give guidelines, try to ask relevant questions. My code/talk split is fluctuating from 30/70 to 80/20. I still write code (which I love). It’s hard to explain what a typical day looks like, because most of them are not that typical, but usually I have a standup (meeting with the team where we share updates and plans for the day), some other meetings (ad-hoc or planned) and some time for writing code.
Back when I was considering joining Eskimi the company was working on a Social network. I was intrigued by the scale (in terms of servers, data, users) and was eager to learn about scaling and bigger projects as my previous experience was working on websites that nobody was using (which sucked a lot since when I was working on code I knew that most likely the website will have 2 visits/day and it was hard to see excited clients when I knew how representative websites were barely visited). I had a goal to come and get experience working on massive scale projects and here I am - still learning :-)
Growth: we always strive to do more and better and it is extremely rewarding when we achieve it. Back when we started DSP we had a goal to handle 1000 ad auctions per second and that was a big deal! Now are handling hundreds of times more load. Data size - we had large DB on Eskimi Social, but nothing close to what we have now. I had to learn a lot when we were quickly building the product which evolved into multiple other products and from technical perspective it’s huge growth: new technologies, new ways of working with existing technologies, more servers, more auctions, more people, higher goals, faster auction processing time, making things more effective (costs savings) - it never stops and it does not look like it’s ever going to.
Uncertainty: I never know what the day (or night) will bring. Sometimes things break. Sometimes they break during the night. Sometimes they break on the 5th day of the party. Sometimes they break while we are fixing them. Then the agility of business: a shiny profitable new idea can land anytime and we want to implement it. We decide that we need a new datacenter or we decide to improve existing flow. Or we decide something else. I had difficulty to explain my casual day and that is because it is not that casual as things are evolving fast - I can never be certain that my day will go according to the plan.
Opportunity: we started small, we grew, we’re going to continue to do so. New products were created and I’m sure we’ll create more. I am sure we will grow even more and with growth we sometimes have technical problems to deal with. Sometimes we can prepare, sometimes the growth catches us unprepared and then we have to adjust quickly to ensure business continuity. There are lots of opportunities for learning and extending ones knowledge.
Learning: recently with Vytas we did a podcast and he was surprised that I am still learning. In computer science field this never ends - new technologies arise, new ways of working arise, we have to adapt in order to survive and flourish. I get to learn everyday and it’s fantastic! After all it’s we who gather the knowledge and can use it. It’s like going to the gym where after every training session you come out just a little stronger - same here. After most of the days you come back after work with something new that you explored and learned - be it an algorithm, new technology, failed or successful problem-solving with a teammate.
Get it done.
I have joined Eskimi as a developer. I was given a new project to work on. I delivered it, we had it for a few weeks and decided to ditch it. Then I was moved to work on Eskimi Social. I had to learn a lot. In the beginning it was exhausted - there were so many new things to learn and so many things to do and it was very challenging to deliver on the agreed deadlines. Even though I joined as a developer the position was very demanding as I had to learn to manage/configure servers, fix production issues even had to defend our servers from DDOS attack. We kept working on Social for a few years and eventually things became pretty easy and less challenging. I was considering my next steps when I was assigned to work on some weird ad-buying task. After initial research we understood that the technology that we know as a team was not a right fit for the task, so we agreed to explore other options. Then I learned a new language and applied that for the ad-buying task which turned out to be our DSP. I had multiple titles while working on DSP, but the most evolving things were a bunch of technologies and first touches on people management. I always wanted to be the best developer, but there I am - writing code, hiring people, talking to them, looking at their code and working together on the product. It is surely not how I saw my career, but I like it the way it is.
Challenges. Team. Product (both the technical thing and people).