From the course: Career Clinic: Developer Insights

Janan Siam

- So, I actually wasn't planning to pursue a career in technology or software development, I had only taken an introductory course in college, and I happened to do well in it. So, I got a chance to tutor other students. But, even at that point, I didn't realize that that was my calling. So, I wanted to pursue a career in healthcare and medicine. I took a year off after college before going to medical school, and I worked at a local hospital. And, it was there that I actually got exposed to technology projects. And, I started to realize that it involved a lot of teamwork and collaboration, and solving a problem that impacted people's lives. So, it was a lot of these things that I enjoy and that I consider my strengths. But, I didn't realize that, that's what a career in technology or software development would involve, back when in was college. (laughs) What I really like about it is that you're given this complicated business problem, and you have to solve it through the use of technology. And, what I do is I break it out into all of its pieces, so it allows me to be very methodical and very detailed. And, I enjoy designing systems in the architecture aspect of it, cause I feel that you have to understand the big picture and how the system comes together, and then you can break it out. And, have different people on the team be assigned to each part of it. So, that's one part I like is the design and architecture aspect. And, the other part I really like is just working with the teams and leading teams. And, basically seeing this technical solution come to fruition and seeing it in action, basically. And, the other aspect that I really like about it is, I get to lead teams through the entire software development life cycle. And, I get to work with developers from all around the world. And, I enjoy the mentoring aspect of it, especially for the younger developers that are just starting out. So, not only helping them in terms of growing their technical skills, but really understanding the importance of communication, how they escalate issues to their technical lead or project manager. And, the importance of paying attention to the quality of the software. So, that mentorship and leadership aspect of it is the part that I really enjoy. So, the advice that I would give is whenever you're starting software development, whether you're developing a really large system or just a small feature, always take the time to think through your approach first. I see a lot of developers just try to jump in and start coding. But, I think you have to take a step back and figure out how do you want to approach it, and walk it through the different tiers. So, what do I need to do in the database? What do I need to do in my business logic tier, then your UI? Because, when you go through that process, it helps you better estimate what the level of effort's going to be. And, also you'll start to think of issues that might come up or problems. And, if you can identify those early, that's a lot better than just diving right in and then trying to rework it later. So, that's definitely one thing that I would pass on. And, the other is, always consider yourself the front lines of QA. So, you need to make sure that your software be validated, that it works. So, we know bugs are an inevitable part of the software process, but the more you can make sure that your code works, then that builds trust with your team and with management. And, I think another important thing is really try to understand the business domain or the business problem that you're tryna solve, because, the more you understand it the better your software will be. You'll be able to see if there's any gaps in the business requirements or if you misinterpreted something. And, that also helps you be more invested in what you're building and take pride in it.

Contents