You are here

Computer Science Engineering Success Stories

About me:Michael Abbott photo
Michael Abbott
B.S. in Computer Science and Engineering (2017)
Capital One, Richmond, VA

Describe your overall duties/responsibilities as a Software Engineer:
As a software engineer, I'm currently working on an internal website that is written in Angular and Bootstrap. I'm responsible for the user experience and the product's appearance. However, the projects change and I go wherever I can contribute the greatest value. There's a lot of other opportunities at my company, and within the next year or even next few months, I may move on to other projects involving task automation with CI/CD pipelines, back end or full stack development, or even machine learning with something like scikit-learn.

Explain the skills/abilities that are required for being successful in your role: 
Be proficient at Googling. Don't re-invent the wheel. Most of the time, your problem has been solved before. Computer Science is a fantastic field in which many people put a lot of time and effort into creating high quality content and resources -- and they put it out on the internet for free!
   
Be an eager learner. A good developer knows how to write an algorithm; a great developer uses an algorithm written by somebody else. This is why database products like MySQL, SQLite, and Hadoop exist. It's hard to get into the habit of using other people's code after you've spent 4 years re-inventing the wheel, but a great developer reads more than they write.
   
Be an entrepreneur. After graduation, you aren't writing sorting algorithms anymore, you're writing products. If companies solely cared about how fast their products run, they'd all be written in Assembly!

What advice would you give to students who are considering majoring in Computer Science and Engineering:
Never depend on others for success. Getting your first internship is very challenging. I gave up on it my freshman year and decided I wasn't going to let someone in a suit keep me from doing something awesome over the summer. So, I made a videogame and published it to the Google Play Store. The day after I published it, I actually had an interview. Naturally, I showed off the videogame I had just published, and it turned out to be such a selling point that it got me that internship, my next 2 internships, and possibly my current full-time job.

Create a personal project -- and complete it! This follows along with my advice from my previous point. You have to stand out to your interviewers. You have to offer some kind of experience that nobody else can offer. You have to work on a project that isn't another implementation of bubble sort. Sure the FEH robotics project helped a lot, but that videogame that I published helped significantly more. Also, this is fairly obvious, but it needs to be stated: you can't show off a project if it isn't done. You may have a million great ideas (and I know I do), but they won't impress anybody until they're materialized. The concept of a "Minimum Viable Product" is something that'll help you with this.

Be an entrepreneur. You can write the best software in the world, but it won't mean anything if nobody uses it. People have to know about your software. Sometimes, people have to know about it... in the right way. This is called marketing.


About me:Anna Baker photo
Anna Baker
B.S. in Computer Science and Engineering (2015)
Red Hat, New York, NY

Describe your overall duties/responsibilities as a Middleware Consultant: 
In summary, I am a client-facing software engineer.  I work with different clients on short-term or long-term projects building middleware applications for DevOps, Continuous Integration, or Cloud-based development projects.  The work changes based on the project, which is a huge reason why I love my job.  Many of our consultants travel non-stop, but since I'm located in NYC, most of our projects are local and don't require a ton of travel.

Explain the skills/abilities that are required for being successful in your role: 
Having a thorough understanding of Java is pretty important.  In addition, the projects are always changing and so are the technologies.  It's imperative that you are willing to study and keep your knowledge up-to-date.  Most importantly, since this is a client-facing role, excellent soft skills are a must.

What advice would you give to students who are considering majoring in Computer Science and Engineering:
Be realistic when you enroll in classes.  CSE is very hard (although I'm sure other students have had differing experiences).  You can be the most intelligent person in the class, but it still requires a pretty hefty amount of (wo)man-hours.  Also, I wish I had followed this advice myself, but GO TO YOUR PROFESSOR'S OFFICE HOURS! 


About me:Winnie Li headshot
Winnie Li
B.S. in Computer Science and Engineering (2017)
Microsoft, San Francisco, CA

Describe your overall duties/responsibilities as a Product Manager:
I'm working as a Product Manager on the Microsoft's Mobile Center team, which is a suite of mobile development tools aimed at streamlining the DevOps cycle for developers to build, distribute, test and analyze mobile apps. Overall my role is to set vision, strategy, and define "what" needs to be built. I'm also responsible for advocating for our users and translating their needs into product features and specifications.

Explain the skills/abilities that are required for being successful in your role:
Being a PM is a highly collaborative role so having soft/interpersonal skills is definitely important. On a day-to-day basis, I'm working with engineers, designers, sales, and marketing staff, so I need to be able to work and communicate effectively with people from different backgrounds. This also means having strong leadership skills and the ability to lead a team without authority. It's important to be able to earn the respect and rally a team behind an idea by having research and data to back it up and by influencing with a strategic vision.

Another important skill is having a strong design and product sense. It is the PM's job to define "what" needs to be built and what features need to be prioritized. This means understanding how to talk to our users and understand their pain points. It's crucial to be empathetically focused on the user when thinking about design but also being able to balance those needs with the company's internal strategy and engineering constraints as well.
   
Finally, having a strong technical background is not always required for a PM role but working in a tech company on developer products, it's very important to understand the product on an implementation level. Understanding "how" things are built (not just "what" needs to be built) helps you understand various technical constraints and helps establish a stronger and more productive relationship with the engineering team.

What advice would you give to students who are considering majoring in Computer Science and Engineering?
Explore different opportunities and options within computer science and get involved! Join a student organization, participate in research, attend hackathons, work on side projects, etc. All these activities enhance your classroom experience and allow you to learn different skills and build relationships that can help you grow and advance your goals. Computer science is such a versatile field where you can work in practically any industry so make sure you try new things - even things that might make you uncomfortable.
   
Also don’t be afraid to ask questions. It can be very intimidating when a lot of people in the field seem like they have years and years of experience in programming but it's important to understand that people are here to help you learn. Go to office hours, ask questions in class, and take advantage of all the resources here on campus.


About me:
Gwen MacDonald
B.S. in Computer Science and Engineering (2013)
Impact, Columbus, OH

Describe your overall duties/responsibilities as a Big Data Software Engineer:
I primarily work on the back end of one of my company's products. My main responsibilities are to design, code, write tests, QA, and deploy improvements and new features. The tech stack I work with is mostly Scala, Java, HBase, Spark, etc. I work with several other developers, sometimes pairing with one of them on a task. The team has an agile methodology and we meet three times a week for update meetings. I am also on an on-call rotation for high level incidents.

Explain the skills/abilities that are required for being successful in your role:
My role requires experience with the tech stack and other systems of course. But besides the obvious, the most important skill is learning new things on the job. Whether it's something I just don't know how to do or something I can just do better, being able to learn from developers around me and others outside the company is essential because developers around the world are constantly coming up with new solutions. Communication and cooperation with teammates is also essential to avoid throwing out unusable or duplicated work. Having an eye for detail is really helpful when debugging as well.

What advice would you give to students who are considering majoring in Computer Science and Engineering?
Being a software engineer can be stressful when things aren't working, but it's also very rewarding to see something you built come to life. If that excites you, then you should consider software engineering. Also, for current computer engineering students, don't disregard topics you think won't matter once you graduate. For example, I was very surprised how often Big O notation comes up.


About me:Tyler Moore photo
Tyler Moore
B.S. in Computer Science and Engineering (2016)
Amazon, Seattle, WA

Describe your overall duties/responsibilities as a Software Development Engineer:
Broadly speaking, our team is responsible for the availability and uptime of the Amazon retail website. When there is an outage, our team is often one of the first ones to detect it and respond. We build large scale systems to detect, notify, and mitigate outages during all stages of development. Within the team, I'm a software engineer responsible for developing and maintaining one of our team's tools which specifically tracks and relates fatals across thousands of real-time service logs.

Explain the skills/abilities that are required for being successful in your role:
Speaking specifically to my team within Amazon, strong back end development skills are a must. Amazon runs on a micro-services architecture and interaction with other backend services is incorporated in most development efforts. We are also entirely built on top of AWS services. While you can pick up many of these on the go, knowing how to use AWS EC2, Lambda, DynamoDB, IAM, S3, CloudWatch, and ElasticSearch is a plus. We also do a variety of front end development, mostly around the AngularJS framework. Beyond technical skills, Amazon has a strong culture of ownership and having a bias for action. There is plenty of support to help you learn along the way, but you're expected to be able to dive deep into your role and continuously improve your ability to operate independently and to provide the best customer experience possible.

What advice would you give to students who are considering majoring in Computer Science and Engineering?
Never hold yourself back because you think you need to learn more before you're ready to build something or to go after an internship. It never hurts to give it a try! There are plenty of wonderful resources to help you get hands on experience with new languages, frameworks, or anything development related. Consider online academies like Treehouse, CodeSchool, or Lynda, or even a summer coding bootcamp like Horizons or Hack Reactor. If you're applying for computer science internships, do some research into technical interviews (Cracking the Coding Interview is a great introduction). I walked into one after switching from another major terribly unprepared because I didn't realize how much different they would be from the traditional behavioral interview. Lastly, have fun! The computer science curriculum is demanding, but it's important that you enjoy your college experience outside of the classroom as well. Take time to step away from difficult assignments and refresh your mind. It'll help get them done in the long run and it'll be a better overall experience for you too.


About me:
Ayush Kalani photoAyush Kalani
B.S. in Computer Science and Engineering (2016)
JP Morgan Chase, Columbus, OH

Describe your overall duties/responsibilities as an Application Developer: 
As a developer, I will work in application design and development. Facilitate development, support to the QA team and peer/code reviews, incorporate security requirements into design/development, and provide input to information/data flow. Comply with project life cycle methodology and adhere to IT control policies and guidelines. Incorporate corporate architectural standards into application design specifications. 

Explain the skills/abilities that are required for being successful in your role:

Hands-on experience with RDBMS, shell scripting, SDLC and web services is required. You need to possess strong programming skills in java, javascript, xml ,and sql. Also, it’s important to display strong communication and problem solving skills.

What advice would you give to students who are considering majoring in Computer Science and Engineering?
Take part in hackathons and join CSE related clubs like ACM-W or Open Source Club to gain more knowledge and understanding of CSE field. Begin early on in your first year and look for companies which target freshmen like Microsoft's Explore Internship Program. Go to career fairs and register with ECS to network with different companies.


About me:Harsh Shah photo
Harsh Shah
B.Tech. in Computer Science and Engineering, Vellore Institute of Technology (2012)
M.S. in Computer Science and Engineering (2015)
Uber, San Francisco, CA

Describe your overall duties/responsibilities as a Software Engineer:
I work as a backend engineer on Uber's Customer Obsession Engineering team. My team builds user facing products as well as internal tools that are required to run Uber support. My responsibilities include architecting and developing some of these systems and making sure they can scale with the company's growth. I work on a daily basis with other engineers, product managers and designers.

Explain the skills/abilities that are required for being successful in your role:
I think skills pertaining to specific technologies and databases can be picked up as a part of the job. What's more important to succeed as a software engineer is having good knowledge of software design principles and understanding the efficiency of the code you write. This gets more and more critical with the scale at which your software needs to operate. Last but not the least, communication is a skill that's invaluable no matter what your role. As a software engineer, it is important to be able to explain and communicate your thoughts and ideas to your teammates and your stakeholders.

What advice would you give to students who are considering majoring in Computer Science and Engineering?
Build software. No amount of studying for tests/classes can match how much you learn about building software by actually trying to build a side project. You will run into limitations of different technologies, understand what design patterns are good and bad when you screw up, learn why efficiency of your code is important and stumble upon scaling issues. To top it off, in a couple years, you will have a large portfolio of tools/apps you developed to show off and talk about at job interviews.


About me:Mark Vlcek headshot
Mark Vlcek
B.S. in Computer Science and Engineering (2012)
Cisco Systems, Inc., San Jose, CA

Describe your overall duties/responsibilities as an Information Security Engineer/Investigator:
As a member of the Computer Security Incident Response Team (CSIRT) within the Information Security (InfoSec) organization, I partake in monitoring and investigations of any cybersecurity incidents that occur on Cisco networks or devices. I also write tools & scripts that help improve our security posture in the cloud (AWS, OpenStack, etc.).

Explain the skills/abilities that are required for being successful in your role:
The ability to work well with others across all regions around the globe, programming/scripting, cloud platform familiarity, and an understanding of the cybersecurity threat landscape as it evolves each and every day are all necessary for being successful.

What advice would you give to students who are considering majoring in Computer Science and Engineering?
To students considering majoring in Computer Science & Engineering (or similar), I would suggest that you look into the many different career paths that the field offers and try to pick one or a few that would interest you the most (programming, DevOps, program/project management, management, networking, SysAdmin, security, etc.). Then, focus on the skills that that/those specific job(s) require(s). There are tons of fields and focus areas within the broader scope of the tech industry and each requires different areas of expertise. Don't overwhelm yourself thinking that you need to master everything from low-level firmware development to enterprise platform architecture, just focus on what you love with goals to always be learning something new and relevant!


About me:
Ramya Ravishankar
M.S. in Computer Science and Engineering (2017)
Expedia, Chicago, IL

Describe your overall duties/responsibilities as a Software Development Engineer:
I work in Expedia's Analytics team for its Lodging Partners. As a Software Development Engineer in the team, my job is to design and develop maintainable software. I primarily work on the backend microservices but since my team also creates the UI, I have been involved in front-end development as well. The tech stack I currently work with is Spring, Java, MongoDB, Spark, React and Redux.

Explain the skills/abilities that are required for being successful in your role:
A solid understanding of OOPS concepts is a must. Technology changes fast, so having a good foundation ensures that you can learn languages and specific frameworks that may be required on the job. Analyzing the problem and the various possible solutions to make a call on the best solution is important.
   
Communication is an understated necessity. Listening mindfully and asking clarifying questions is critical to understanding what you are doing and making sure you are actually building the right product.

What advice would you give to students who are considering majoring in Computer Science and Engineering?
Don't let the stress of the courses get to you! Building software is fun and definitely something that will keep you excited. If you are having difficulties starting to code, pick a case that you want to solve and take it from there. And, remember you always have a friend in Google and stackoverflow to help you out!   


About me:Samarth Savanur photo
Samarth Savanur
M.S. in Computer Science and Engineering (2016)
Intel Corp., Hillsboro, OR

Describe your overall duties/responsibilities as a Software Development Engineer:
I currently work as a Software Engineer in the Department of Automated Manufacturing Operations and Execution Controls inside the Logic Technology Development Division. My responsibilities include automating the tools by owning few on them for the next generation Intel chips.

Explain the skills/abilities that are required for being successful in your role:
Software Development Engineering, Object Oriented Design/Development, Data Structure Techniques, Algorithm Design/Development, Rational Database Design (SQL), Software Quality/Debug/Test/Validation, and Data Mining Algorithms.

What advice would you give to students who are considering majoring in Computer Science and Engineering?
Be well versed with the basics of Data Structures and Programming. Also, be sure to possess a solid understanding of algorithms. You will need to be able to come up with the right algorithm, given a problem. It’s important to have OOPS, JAVA, and Python skills.