Sebastian Crisan joined Facebook headquarters in Menlo Park, California as a Software Engineer Intern in July 2013 and works in the newsfeed ads team. He has previously worked as a Software Development Engineer Intern at Microsoft’s headquarters in Redmond, Washington during the summer of 2012. Sebastian holds a degree in software engineering obtained from the Technical University of Cluj-Napoca.
I first started programming in high school and I quickly became very passionate about programming contests. It is certainly one of the most demanded professions and has a huge potential for the future, so I decided to pursue a career in software engineering. This career also fits my analytical, structural, and conceptual thinking styles.
It's the impact you can have and to know that millions of people use the features you hardly worked on. Here at Facebook we measure almost everything on the scale of millions, and even billions. Even a small change can have a big echo. It's the thrill of building something, of empowering a computer system with a bit of our intelligence. So if we can build the right product we can significantly contribute to a more open and connected world.
While I took a lot of important courses such as fundamental algorithms, operating systems, computer architecture, distributed systems, or artificial intelligence, there will be always things you can only learn in the field. This is where the importance of internships comes in. Education helped me in several key aspects, but form my experience, at any company you would go, the first few months are for learning. Each company has its own culture, processes and practices. At Facebook we favor speed, impact, and assuming risks. The challenging part of the internship is to combine learning with productivity, in a short period of time. In computing, the technology evolves extremely fast that’s why is important to have a solid foundation which you can apply in any context. I think this is the area where education helped me the most.
IT has become so ubiquitous so that even if you don't work in IT, you're going deal with computers in some way so it’s worth understanding it. In my opinion there are several aspects a student should focus on and not lose any chance and any moment to do so. The student life brings many opportunities that must be exploited at their full potential. My advice would to pursue as many internships as they can, build a solid professional network, invest in their education, work on outstanding projects, take advantage of free online courses, and participate in programming competitions.
While it is very important to have a high technical expertise, I always try to see the big picture, and understand the full context and how the pieces of the puzzle fit together.
Probably, the most important thing is to be able to keep learning continuously. IT is a very dynamic industry and as a software engineer you constantly step on a changing landscape. They should strive to build a solid foundation in order to be able to pick up any new technology and become productive pretty fast.
Forget about fear and do not let yourself be intimidated by big challenges – break them down into small pieces. We are discovering new dimensions of computing by applying software engineering techniques in many domains in a creative way as no one has ever done before. Never be afraid of pushing boundaries, adopt a hacker philosophy. This will eventually translates into bigger opportunities, bigger challenges but also bigger risks. Problems may seem unapproachable at first sight, but as you break them into smaller pieces and solve them step by step everything becomes clearer. Sometimes you hit your destination without even knowing the path you had taken.
Have a sense of getting things done, because the product you ship to the customer matters in the end. Also, learn to take decisions. Software engineering is most of the times a matter of identifying and understanding trade-offs and taking the right decision.