At Lighthouse Labs, we believe that having incredible teachers is an invaluable part of our students' success. We are lucky to have amazing teachers who are top craftsmen in their field. Like our students, they are gritty, passionate, and from a wide variety of backgrounds. Unlike our students, they have been working as professional developers for over 10 years and are ready to pay that experience forward. We want to take the time to get to know these teachers a little better.

This week we talked to another amazing instructor: Monica Olinescu! Monica is a Senior Instructor at Lighthouse Labs Vancouver. When she’s not teaching at Lighthouse, you may find her solving puzzles at the climbing gym or working on her side project We sat down with Monica to learn what makes her tick:

Where did you work before teaching at Lighthouse Labs?

Before teaching at Lighthouse Labs I was the lead developer at Push Science. Our team was working on improving the customer experience in telecom retail stores by creating a tablet application for sales staff.

What's one cool non-development job you've done?

I had many different part-time jobs during university, but my favourite one by far was when I was a Rock Climbing Instructor at a summer camp. We were working with children between the ages of 4 and 12. Children have so much positive energy! It was great sharing my passion for rock climbing with them and seeing them push their limits.

What do you enjoy doing outside of teaching and coding?

Teaching and coding can both be mentally taxing. I really enjoy winding down at the climbing gym or going for long hikes/outdoor climbing trips on weekends. Vancouver has a lot to offer in that area. Traveling is also something I am really interested in. It is inspiring to see different parts of the world and learn about how people in other parts of the world approach life.

Why did you get into teaching?

I have always been interested in teaching. In high school I was a math tutor and during university I was a TA. The main things I enjoy about teaching are human interaction and seeing people improve. From my own experience as a student I know that learning something new can often raise the question 'can I even do this?'. It is exciting to see people gain confidence as they acquire more knowledge or skills. I also find it very interesting to see the different ways in which people think. With programming, for example, there are many ways in which you can solve a problem. I have often learned from my students.

Tell us about your teaching philosophy.

I think there are two major types of learners: inductive learners and deductive learners. The former prefer to tackle the higher level aspects of a subject, the theory. Then they work on specific examples and apply the theory. This is how math is usually taught. You learn a theorem and then you work on problems where you can apply it.

Deductive learners, like me, prefer to experience different problems first, maybe even try and tackle these problems. Then, when the problem is well understood, the different solutions are also easier to understand.

When teaching programming I like to try and cater to both groups by presenting a problem and lettings students take a stab at solving it. Then, we can work through a few solutions together while discussing the tradeoffs of each approach.

What do you love most about teaching at Lighthouse Labs?

Lighthouse Labs attracts very interesting, hard working people who are not afraid to put their egos aside and push their limits. It is an incredibly inspiring environment.

I also appreciate the opportunity to serve as a mentor to future programmers, especially the many amazing women who join our program.

What is the most rewarding part about teaching at Lighthouse Labs?

Lighthouse Labs is providing an alternative to formal education models where someone has to go through formal stages. Our admissions process - while very stringent - is non-bureaucratic. I've had the pleasure of teaching people with tremendous potential who would not have qualified for traditional programs because they lacked formal training. It is incredibly rewarding to see them succeed.

Why did you first get started with coding?

I've always had a strong curiosity about computers. As a teenager I was lucky to have access to a computer (yes, that was back when most people did not have computers). My uncle was a computer programmer and he was helping my mother maintain the computers she was using for her accounting firm. He installed a Turbo Pascal compiler and gave me a book that got me started. I remember having a lot of fun writing simple programs that drew and animated geometric shapes.

Your first coding project?

My first real coding project was the web application for a ski and snowboard club I was part of. We needed to collect money online for the trips we were organizing. My friend and I created an app that used PayPal to do that, way back in the early days of PayPal.

What open source or side projects are you working on right now?

My main side project right now is, a simple visual feedback tool for designers. The goal is to create a better way for graphic designers to manage design iterations. By improving the communication between designers and their team / clients we can help designers create better work with fewer iterations.

I am also working on, a government transparency search engine where journalists, academics and your average citizen can access information about third party government contracts issued by the Canadian Government. Our current front-end was written by two Lighthouse Labs alumni Irina and Kristen. We are currently in the process of rewriting our 81 scrapers in Ruby. The project is open source on Github. Contributors are welcome. :)

What is your advice for aspiring developers?

The web development ecosystem is changing very rapidly. One of the biggest challenges for aspiring developers will be choosing which technology to learn. My advice would be to focus on gaining a solid understanding of the fundamentals, regardless of the framework / programming language you choose. These fundamentals include test driven development, refactoring skills and learning how to communicate with other people about software.

If you can, try to pair program with more experienced developers.

Work on a side project. It will give you the freedom to explore a technology in depth, at your own pace. It will also give you the confidence that you can create an application from start to finish.

What has been your most memorable moment at Lighthouse Labs so far?

I was working with one of our students on the Contact List application. This is one of our early assignments when students are just getting their feet wet with programming. She was having a really tough time with the assignment. It was early in the program and she confessed that she didn't really know if she can be a programmer. There were tears. I told her it was too early to know and she needs to calm down and push through.

Since she was stressed out I asked her to go for a walk to clear her head. An hour passed and I was starting to worry. She walked back in with a coffee and feeble smile on her face. We threw out the old attempts and she started from scratch. We talked about ways in which we can break down the problem and she got to work. When I went back to check in on her she had made great progress and by the end of the night she finished most of the assignment and had time to refactor it.

Before she left she came up to me and I thought she wanted to ask another question. She reached out her hand and gave me a piece of paper. It was a drawing of a machine that is being fed cats and churns out CSV. To this day every time I look at that drawing it's a reminder of how important it is not to give up.

What's one thing students should know about you before coming to Lighthouse Labs?

I'm a sucker for dark chocolate. I take bribes.