Medium Software Engineer
Princeton University Bachelor's Degree, Computer Science; Certificate in Classical Studies
Current Time 0:00
/
Duration Time -:-
Progress: NaN%

How did you get to where you are today? What is your story? What incidents and experiences shaped your career path?

Summarized By: Arushi Chaudhary on Wed Sep 04 2019
As a software engineer, I didn't learn about programming until I was in college. During my freshman year in college I took an introductory programming course. I was going to be a chemical engineer that was my plan when I started out. It was like programming so much I switched my major, I also didn't like chemical engineering that much. So I switched Major from chemical engineering into a different major like financial engineering for a bit. I realized I enjoyed programming more than anything else. So I switched into a computer science major at the midway of my sophomore year of college. From there I really worked on getting technical internships. I was able to get a product management internship at the end of my sophomore summer than my junior summer interned at Pandora like the online radio company. I think that was like the year 2016 and now I am a software engineer full time at Medium. I've been here for about a year and a half a little more than that they started off in 2017. A lot of what I think brought me here is a combination of having good training. When I was in college taking a lot of programming courses and being very proactive in interview stuff. I was definitely always on the interview grinds. Talking to companies and trying to make sure I got myself prepared for interviews for my junior summer. Then doing the same thing for my senior fall of college. Just making sure I got a bunch of interviews over and over again, to set myself to get this job and then I've been here ever since.

What are the responsibilities and decisions that you handle at work? What are your working hours like?

Summarized By: Arushi Chaudhary on Wed Sep 04 2019
I normally get to the office around like nine o'clock or nine-thirty then leave at six or six-thirty and that's pretty chill. I'll talk about responsibilities and decisions. I would say maybe on a good week, sixty percent of my time will be coding. We have a lot of product to do for a given given month. I try to spend a lot of time on the grind and get stuff done. I always have some meetings that we have to get in sync with other teams about what work we're doing that effect of a team, things like that. What was that role model? Are we hitting our key results for the quarter? that kind of stuff. So a lot of meetings are about how we're doing as a team and how we can keep moving in the future. Then the remaining forty percent is probably taking interviews. Medium is a company that is growing pretty quickly right now. I just came out of an interview actually so a lot of what I have to do is interview other people. I have to ask them questions like are they fit for the Organization? Are they technically capable? and I think there'll be other weeks where that changes that maybe we'll have more meetings because that's the way the week is will be suddenly trim to swap with interviews and that will be rough. A lot of the time I can spend might be to work coding which is good like I enjoy coding most and I want to contribute with the technical standpoint in terms of decisions. I wouldn't say I'm a super junior engineer. I do have a pretty strong voice in the technical implantation of things on what we would call if I see an individual contributor. Most decisions I make around are about how we influence something, why we implement it or what props I think we should pursue, why certain things might want to prioritize talking to my product manager about that. I think there's another set of people that make more people decisions, like where we're looking to hire, what teams will get the next hire and things like that. Who we're trying to promote things like that's a more of a commander decision. The decision for the managers and for me, it's more about purely technical decisions. Like what we're trying to blend in the best and most efficient way

What tools (software programs, frameworks, models, algorithms, languages) do you use at work? Do you prefer certain tools more than the others? Why?

Summarized By: Arushi Chaudhary on Wed Sep 04 2019
I think languages are an important part of no matter what you’re doing, the languages we primarily use node so JavaScript, in addition to node right now a lot of go too, go have a lot of advantages over node in terms of performance like those multi-threaded nodes is type safety good. We use to go in a lot of our more micro servicing stuff, for node I wouldn't say legacy coded medium but historically has been more of a node monolithic service. We're trying to spend that more to go services, which is kind of like in vogue right now but go is a really nice language, I really enjoy it. For data pipeline stuff slash machine learning thing we use a lot Scala so the Scala stuff is basically heavy-duty computation and building off of that, I can talk more about the framework to use so especially in Scala rely heavily on spark for handling very large data sets and medium we have the easily million or two people coming today to this site so it's a lot of data we gather and to be able to use that to make the most informed decisions we're using very high-pressure Scala jobs that rely heavily on a spark, what's it called, parallel computing and things like that. In addition to that, I'm trying to think mediums also primarily Amazon Web services an AWS shop which means that all the databases we use live in AWS include things like Dynamo DB which is a no sequel database. There's RDS which is a relational database system which is my sequel database and Amazon hosts. Cashing stuff we use RDS for a lot for that very high performing with the memory cache system. There's also for a notification email stuff, there's SQS Simple Queue service, which we use to basically, let's say, I want to send an email out on medium. You'd emit an event, sending emails to this user that goes to a queue we have different servers there. Pulling those queues every few seconds or so are many time to second rather and then you pull the event off the queue. You sent it to a different server that will then process whatever you want to do for that particular event and send email out to the user. Think about queuing systems like SQS like how those queues function and here’s the last thing I will address. One thing I found about being professional software engineer, I don't use many of the algorithms that I learned in school I thought I would. I've never seen a red-black tree after I left college. I don't think about this sorting algorithm over that sorting algorithm the vast majority of time, but the closer I come to that I feel do I want to use the staples order or not because order may matter in some cases, more than others but I would say it's more around the data structure usage like it's obviously very useful to know how hashing works or how a lister to works but not a lot of them popped up in my daily life. A good question. So most our machine learning stuff is in Scala. AWS going back to the U. S. there's a service called Stagemaker that provides libraries and a bunch of languages, scala included, reading test different algorithm HG boost is straight out of the box. We don't use PyTorch I don't think TensorFlow supports or maybe it does support Scala I haven't checked at all but we want to use more python for machine learning stuff but we haven't gotten around to that yet. We've been playing around with some notebooks and stuff to use python but all of the machine we’ve been using for production were trained to be around Scala job but as we invest more machine learning which were definitely doing as a recognitions company. We're going to start playing around with what was provided out of the box by AWS. There's a lot of different algorithms to try there and it was about understanding the map. I'm the way a neural network, for example, is important but it's still for us more about having production ideas like how can we be constantly training different algorithms in a safe and easily understandable way. I'm trying to think, I'm a little bit aloof from the NLP part of what we've been doing. I know in the past, we've been using word evictors and try to extract some more understanding of stories based on just the raw text. I'm not quite in touch with how those efforts have been doing but we have had efforts around that just how do we like a lot of the ranking model we use more metadata and we're still delving into what can we do to just use raw post text to represent to understand what's going on but I think we're still making advancements on how that’s going to work and it's still an ongoing process for us.  

What things do you like about your job? Were there any pleasant surprises?

Summarized By: Arushi Chaudhary on Wed Sep 04 2019
I think the cool thing about working in Medium is that I am able to affect a lot of people very quickly. We have a lot of users, we have millions of people coming in per day. This means that if I want to try something like, I think this recommendation app is really good. Let's try it on a few users and so you can see the results like that. It's really cool to be working on a platform to touch a lot of people's lives. When you think of different strategies something that might be cool like different machines. I think back in December I wanted to try this updated ranking model algorithm, this ranking model that we had trained and it turns out it was super successful. It happened really quickly and it took a few days for statistical significance to have happened. Working at such huge platforms is a huge region is going to try different things really easily and that's a lot of fun. Pleasant surprises definitely the scale at which you affect people I wasn't expecting it was really cool. Then you'll hear about from writers or from readers just the feeling of someone writing reviews, you'd be like I love this platform or you call me to get my writing out there to the world. I'm super thankful for that. Like knowing you're making a difference in people's lives is something I never appreciated. Not Still, writing coaches for school was like a personal accomplishment. It's really great to understand like everyday content and building a platform is doing the right thing for people in the world and that means a lot to me.

What are the job titles of people you routinely work with? What strategies or approaches did you find to be effective in working with them?

Summarized By: Arushi Chaudhary on Wed Sep 04 2019
I'm an engineer writing code is what I'm paid to do. I work a lot with my product manager who is responsible for picking my projects. We have a bunch of projects we all want to do like a bunch of cool things you could do at the site. The product manager is prioritizing them being like, Here are the matters you want to move for the quarter for the year. We're going to pick these ten projects for this quarter because these are most impactful in these ways, we made back and forth in why these projects were chosen. Ultimately, the job that managers have is to understand what gets prioritized. I have an engineering manager who is responsible for making sure that all their direct reporters are happy, productive, doing well on the team. They feel they should maximize productivity. So my manager and I have a check-in every week being like, how are things going? Are you happy? What could we improve like? Are you growing up as fast as you want to? those kinds of questions. I am on a pretty small team. There's one other engineer and me. We communicate very closely like she and we are like, Who gets what projects like maybe she wants to do something that I'm not very good at and vice versa. Day to day I'm mostly working with the product manager, engineering manager and fellow engineers. Sometimes I work for the editorial team. I think depending on what team you work on, you may work for the editorial team because they are responsible for choosing the content we get. Figuring out what content getting commission. What content we will showcase on the platform for our purposes of the business side of medium. I think in my particular role I don't interfere with the editorial team as much.

What major challenges do you face in your job? Can you discuss a few accomplishments, and challenges that you overcame and felt proud of?

Summarized By: Arushi Chaudhary on Wed Sep 04 2019
I think my favorite challenge to face in a given time scale when you have millions of people to the site per day. if you even are a little bit more like if you're five percent more inefficient with fetching data that could have very large implications on what happens across the site. So for context on medium, we want to figure out the list of recommended best stories and in one of our services like the Daily Digest was in our email newsletter. We were trying to figure out how do we get more old stories in a better way. We were meant to this new recommendation strategy that it's super well, we had AB test running, and that was showing this as a great strategy. But were running it for five percent of users only and it very clearly would not scale to hundred percent users. So we had to basically think about how do we tear this down, start over again, input the exact same thing. In the way they will scale to you talking like six million people per day. The whole product took I think like a month and a half two months. It was kind of insane but we really did crush it. It pushed metrics in a huge way. That was probably my favorite thing that I've gotten to do so far. Leading the project, communicating which key stakeholders and understanding the results gaining to touch a lot of different parts of what it means to lead the project. It was the most impactful product I worked on. The problem with scale is like how do we take it from five percent to one hundred percent. It was something we worked on all the time. I am much more used to now thinking about what scaleability looks like in production. You get used to provisioning more instances of something than you need to make sure you don't tank your firms in the middle of the night. For example like eight of you will have a model live on a certain number of servers and you make a request that server in the given time, you could overload that server and then everything breaks. So how do you make sure you have enough service provision to handle your request? They think you're the kind of problems. There's something I really enjoy doing and we continue to grow as a platform.

What was the hiring process like for your job? What were the roles of people who interviewed you? What questions were asked and how did you answer them?

Summarized By: Arushi Chaudhary on Wed Sep 04 2019
The hiring process for us is once you get in contact with the recruiter someone reaches out to you. You normally have a phone screen and then from the phone screen if you pass you move on to the on-site. For me that was pretty much it. It was like a phone screen, on-site then offer. One thing I see in the industry is like people worry about how you get the brains to the questions, like the classic gamble like how many windows are in Seattle or something like that. I don't think those questions are helpful to the job. At Medium, I feel if we do the job and I'm asking questions, they're simply never parted. There is nothing you'll need on the job given day. So immediately ask how do you implement this game you won't be asked any red-black or something like esoteric. Somebody requires, here's how to use a hash map here's how to use AQ or lister show that I can use different data structures in a way. That's a big part of our interview process like showing you have acknowledged instructors you can use them to solve efficiently and then analyze your solution and see like, can you come back with improved interest implementation. So it's no one's trying to trick you it is more about can you be proactive in solving problems? How do you work through tricky challenges? Do you need all the help? Do you have a lot of grit? you push through hard points in your interview.

What are some future career path(s) for you? What skills, certificates, or experiences do you plan on acquiring?

Summarized By: Arushi Chaudhary on Wed Sep 04 2019
For me the big question is always like do I want to learn to manage people be more of an engineering manager type or do I want to be a super-efficient individual contributor? I'm still not sure yet. I'm going to enter in the summer and try to learn about what people managing is like. I think those are two very general career paths that would go down. In terms of skills it's always good to brush up like I want to make sure you get more database scalability. Like machine learning working there I think their skills are always going to be machine learning something people talk about Artificial Intelligence a lot like, it's the hot new thing. I think having understanding business anyhow, Machine learning works is going to be huge, at least for the next few years. Knowing how to just there's a huge need to understand how to communicate things to stakeholders like communicate people every given time. So whatever kind of role I can take right after I have to talk you up with my progress, talk you up with my direct reports progress and make sure everything was going on something, I want to make sure I build on. I am not thinking about going back to school for pursuing a master's or Ph.D. something. I don't see that happening any time soon.

What are various starting positions and salaries in your domain? What are typical career paths after these starting positions?

Summarized By: Arushi Chaudhary on Wed Sep 04 2019
I'm not really at liberty to discuss medium starting salaries. Something I really want to talk about with candidates. From what I know it really depends on partially the cities. Depending on like the South I think the south is different. If you're in Iowa for service or in New York City that has a very different starting salaries. It is adjusted for the cost of living for software engineering from a nice standing there pretty high across the board even if you live in small places. Probably at least like I don't know of anyone making less than 60k but that's just my experience. I don't know what it's like around the country around the world. I think for career path a better understanding where I think a lot of engineers still pick various domains to specialize in like some people to specialize in IOS development and android development might be very good at that path. For someone like me, like database engineering, recommendation engineering I think about a lot of things I'd want to specialize in my career. But I think one main thing is what we call T-shaped like having your specialized thing. Like you're a super great IOS engineer or like super great database engineer but having a working knowledge of everything else of all other things. Like maybe I don't know everything about ML, but I know something like I'm functional in that or maybe my functional mobile but I know a little bit about react. So making sure you have a specialization but you can do other things decently is important for any industry but particularly for engineering.

What was the hiring process like for your job? What were the roles of people who interviewed you? What questions were asked and how did you answer them?

Based on experience at: Software Engineering Intern, TABu App
Summarized By: Arushi Chaudhary on Wed Sep 04 2019
I think for that position it was more of a small thing interview in summer. There were like two people in the starting and I joined for a bit. I think my other positions were more formal. You start out talking to the engineering hiring manager, you do seem to give like coding challenge or you have a Coding interview. They listen to your technical skills and then after that maybe there is one more stage and they make an offer or they just give you the offer directly. I would say for most internships or for the internship I've had it's only been like one call and then offer or no offer. So that call would only be like technical based like they'll ask, show me how you coach or anything about design problems, things like that and then moving on to the final stage where they're making offerings on the spot.

What prompted you to pick this program? What other programs or Universities did you consider? What did you like about the program?

Based on experience at: Bachelor's Degree, Computer Science; Certificate in Classical Studies, Princeton University
Summarized By: Arushi Chaudhary on Wed Sep 04 2019
Princeton was really prime because it had a really great engineering program and a really great classical program. I was only interested in Latin and Greek when I was in high school so the fact that you get both the same university but by both, I mean engineering and classical studies was a big boon for me. It was close to home, I grew up in New York City so Princeton is maybe an hour away if you drive slowly so being able to hop back and forth when I felt like it was tight. Just really strong academics and a really fun place to be at, friends have gone there and raved about it so it was a pretty neat choice when it came down to it. In terms of university, it's been a while honestly I was applying to college almost seven years ago. Now other schools in the area which I don't remember from the top of my head what my list was like but other schools that could balance like engineering and labor it's too big for me. I knew I was going to want to pursue a degree or go to a school that could both feed my engineering needs and also feed my desire just three things and has a good kind of culture around literature so those are the big thing in high school going to college.  

How did the program prepare you for your career? (This may include courses, advising, career resources, career events, class visits, networking and so on).

Based on experience at: Bachelor's Degree, Computer Science; Certificate in Classical Studies, Princeton University
Summarized By: Arushi Chaudhary on Wed Sep 04 2019
I learned how to code in college that's obviously huge for being a software engineer. The other big thing probably with networking opportunities was like having constant career fairs every year. They're probably two or three huge career fairs every year where I was able just to get face time with companies and just asked are you hiring, you have internships. So that was really key for me, talking to recruiters as much as possible and trying to figure out which companies were down to hire me, which ones that was a fit for my career but it more came down to how much I was willing to just go out there and talk to people and be like Are you hiring or can you give me a chance to apply to this internship.