Tag Archives: Accenture

So you want that dream software engineering job? Here’s what to do.

by Frances Advincula

I was anorexic in high school, and to start over in my efforts of recovery, I ran away to the other side of the world. I ended up turning down a scholarship to a private university and enrolled in a small, new college in Manila for undergrad. My parents rightfully worried I was throwing my future away. I worried about it too, but I think things turned out just fine. I love all the cutting edge things I get to code for Accenture Software now, and I’ve been asked to be interviewed by well-known companies  — Google, Microsoft, Amazon, LinkedIn, Netflix, Fog Creek Software, and hot startups — AirBnb, The Levo League.

Why the sob story? I want to help everyone realize that, no matter what your state is in life, you can still do something proactive to better yourself, to achieve your goals. Yes, you have a shot at the big companies and rising startups even if you didn’t go to Stanford or live in Silicon Valley (although that most certainly helps!). I did it from the other side of the world,  from school in a developing country. You can too.

To help you get started,  I thought I’d share what I did, in hopes that you too, can find your dream femgineering job. You wan’t to  be ready when luck comes knocking, don’t you? 

Perfect your cover letter and resume.
If you are still in school or in an entry-level position, keep your resume to one page. I’ve heard that HR will throw it straight to the trash pile if it’s any longer than that. But anyway, just common sense — practice good grammar, proofread, ask your friends to proofread, etc. And read this article by Joel Spolsky: “Getting Your Resume Read.” It is the best, actionable advice on the topic that I have ever read. Ever.

Build your portfolio of coding projects.
CS theory is great (Automata Theory was one of my absolutest, favoritest subjects), but if you want a software engineer job, you have to show that you can write code. If you don’t have a lot of experience, software school projects are a good thing to list on your resume. But listen, I didn’t even have a GitHub back then, but I had my portfolio –and it served me well. So just imagine how far having GitHub can take you! Oh the places you’ll go!

Get an engineering internship, no matter what.
This is included in Joel Spolsky’s advice to CS students (which you are at a serious disadvantage if you don’t read it). Nothing will teach you how the industry works than a solid internship. You’re gonna be walking the talk by the time it’s over. I actually did mine fulltime for 6 months at Accenture, and I wasn’t the same person afterwards. If you really can’t find a good internship, consider remote ones like Gnome’s Outreach Program for Women.

Have a blog or write for other publications.
Why? Because blogging shows that you are curious and passionate. Blogging shows that you are willing to spend time outside of work/school for the things you care about. Blogging exposes you to new ideas and people who care about those ideas. Blogging forces you to be an expert in something (really, how are you going to write about it if you know squat?). Find organizations you want to write about and shoot the editor a well crafted email, volunteering. The worst case is that they’ll say no. This is how I got to write for a few startups, and even a fashion magazine!

Be Googable.
You are a young person. Social media is expected of us (plus, lots of startups communicate via social media). It’s also a great way to show you care without investing too much time blogging.  A couple of ideas that go beyond Twitter/Facebook/Google+ include:

  1. Pinterest – Make boards about topics you are interested in: UX, Women-in-Tech, Startup Lessons, etc.
  2. Good Reads – Show that you are well-read with software and startup books! Poornima has a great reading list, and check out the Fog Creek Software MBA Program’s reading list.

Sharpen your interview skills.
Tech interviews are hard. You get asked the normal questions and you get grilled in coding problems and alogrithms too. You have to be prepared!

  1. Her Campus’s, 20 Interview Questions and How to Answer Them
  2. Coding Horror’s, Getting the Interview Phone Screen Right
  3. Poornima’s slideshow, Interview Skills & Secrets
  4. Palantir’s 3 Part Series: How to Rock an Algorithms InterviewThe Coding InterviewThe UI Design Interview
  5. Gayle Laakmann McDowell’s book, Cracking the Coding Interview: 150 Programming Questions and Solutions is a really good, and thorough review of CS and programming fundamentals.

To calm your nerves, remember that an interview is two-sided. You are interviewing them too! You are also trying to find out if that company will invest in your learning and if you will fit into its culture (Read “My Interview Questions for Potential Employers“).

One last piece of advice.
Take time to enjoy your last semester too. People told me this, I ignored them, and I very much regret it. This is your last chance to savor your campus, your college friends, and the privilege of not yet fully being in the real world, with bills and rent and performance reviews to worry about. (Oh and it’s also probably not a good idea to take the GRE the same week as your finals, just sayin’.)

 

Frances Advincula writes the series Frances Fridays. Frances recently graduated with a degree in Computer Science and is currently pursuing a masters at Johns Hopkins. She now works as a Software Developer for Accenture Software. A proud geek girl, she’s sure she is the only one who can’t play video games. Tweet her at  @FranAdvincula.

Enhanced by Zemanta

Lean In for Femgineers

by Frances Advincula

Yes, I am writing a post inspired by Sheryl Sandberg’s new book Lean In. I mean, how could I not? The gender disparity is quite possibly the most obvious in the tech industry. Just last week, a software engineer friend brought up that they had no women engineers in their startup!  A cause close to my heart, I could go on and on about how these companies are doing themselves a great disservice (“We Need More Women In Tech, Here’s Why”), but instead, I thought I better stick to what I know best — the musings of a 21 year-old fresh grad software engineer.

In her TED talk “Why We Have Too Few Women Leaders,” which her new book expands on, Sandberg lists three main tips:

1. Sit at the table.

2. Make your partner a real partner.

3. Don’t leave before you leave.

So, I thought why not take those and apply them to the context of a femgineer’s every day life? Let’s start, shall we?

 

Sit at the table.
For me, battling the impostor syndrome is a regular occurrence, and as a young woman in tech, I see a lot of examples of women undervaluing themselves. I know this because I do it all the time, and I should know better. I apologize for broken builds that are not my fault, I assume a build is broken because of me, I don’t challenge opinions in meetings enough. In fact, when someone told me I was the talk of the town, I was shocked. I didn’t even remotely see myself as that, and I still don’t know what they are talking about. Most girl programmers I know feel bad when they can’t solve the problem; they must not be smart enough. But guys? Nah. It’s the code’s fault, or the framework’s fault, or someone else’s fault.

Femgineers of the world, why do we do this to ourselves?! Instead, I challenge us to be aware of the impostor syndrome and recognize it for what it is. And then let’s go on about our day, getting stuff done, thinking about what kind of software engineers we want to be, and proactively making positive choices that build-up our careers.

Choices like…

  • Finding a mentor. Some people differentiate between a mentor and a sponsor, but I will just define it here as someone who can guide you to be where you want to be. Someone who is doing what you want to be doing and can give you guidance and advice to get you there. It’s better by a magnitude if you can find a mentor within your company. I was lucky enough to find one within Accenture, and he has fought for me tooth and nail. Fought for me to be in a big, high profile project. Fought for me to be able to move to the location that I wanted. Fought for me to be in the front lines of UI development. In fact, he was about to hop on a plane with a few other execs, and he asked me if I had anything to say to them. Me. At the bottom of the totem pole suddenly has access to execs? So you get the point. Sheryl Sandberg had Larry Summers. I suggest we find ours.

  • Finding a peer confidante. Having a mentor is great, and having a peer to trudge the waters with makes for a  killer combination. One of my greatest friends also works at Accenture, and she and I have lunch once a week just to talk about what we are going through. Because we are close in age, she understands what I am going through and vice versa. We also feel more comfortable telling each other dreams, failures, insecurities, and worries we might not want to share with our mentors just quite yet. In fact,  take the idea to a new level by hopping on over to LeanIn.org to read about the concept of a Lean In Circle.

  • Developing your voice/confidence. It will be hard at first, especially if you are naturally an introvert like I am. But as one of my favorite TED talk says, “Fake it until you become it.” Start with baby steps, like being more visible. Start replying to group emails and be active with in-house social media. Participate in events that are going on. I volunteered to help with our Software Craftsmanship group and will be helping organize one of our Code Retreats. Now a lot of people outside of our office know who I am. Also remember that the senior guys you are scared of? They love people who are passionate about the work, and passionate people are always curious. Ask questions. Stay updated on the latest technologies so that you can have an opinion. Find something you love, and commit to being an expert in it. Marissa Mayer once said that it’s easy to catch up in tech because things are always changing, or something to that effect (I can’t find the quote now. Darn.) I’m a newbie, but I am now giving training and teaching new developers how to unit test and code with a new framework we are using. Most importantly, always be are aware of your body language and how people are perceiving you. A lot of research say simple things such as sitting up straight and taking up as much space as possible (arms spread apart, resting on a chair versus hands clasped together, on your lap) tricks the brain into being more confident.

  • Paying it forward. Introduce a girl to engineering. Mentor an intern. Give advice to a fellow woman-in-tech. (Two of the younger kids I sort-of mentor told me they are now choosing to pursue computer science because I have inspired them. They said at first they were scared it would be “too hard”, but were encouraged by the thought that if I could do it, so could they!) Write for blogs that support women-in-tech. Doing “seemingly little things” matter. I sent Nilofer Merchant’s HBR article “Three Reasons Why Men Should Read Lean In” to one of my mangers, because I knew she would send it to the right people. She sent it to a lot of the (male-dominated) leadership  and to her brother who heads an IT company and got a lot of positive feedback. Cliché as it may sound, change truly does start with ourselves.

Make your partner a real partner.
Sheryl Sandberg is fighting for a society where women and men equally share household responsibilities, a world where men staying at home raising a family is not considered the exception. That’s great! But what if we aren’t married or have a household or settling down yet? Since it won’t directly apply to us single ladies, I want to take it on a spin.

Date someone who will inspire you and make you want to do better. Date guys who don’t mind that you have to cancel because you have homework overload or had to do overtime at the office. Date guys who help you study for the GMAT. Date guys that push you out of your comfort zone, guys that challenge your decisions, guys that nudge you to take risks. Date guys that are not threatened by, but rather are attracted to, your ambition, passion, and drive.

Again, let’s go as far as saying not letting romantic drama prevalent in a young woman’s life to get in the way of a career. One of my favorite writers Jen Dziura has written articles about this. They’re hilarious, they’re genius, and they’re true.

My favorite, from “Bullish Life: Keep Your Love Life From Ruining Your Actual Life”:

 “By which I mean that the probability that any particular guy will be around for forty years is extremely low. The probability that you will have to go to work for the next forty years is extremely high. So, it would be illogical to allow your romantic life to compromise your career and goals until those probabilities change in a way demonstrable other than by your intuition…” 

She’s good, huh? Here’s another one: “Picking a Boyfriend Who Doesn’t Hold Back Your Career or Bank Account.”

 

Don’t leave before you leave.
Do everything you want to do now while you don’t have that many responsibilities. Work 120 hours for that startup or put in the overtime for the high-visibility project, now, while you don’t have kids, because you can. People scold me that I don’t know what work-life balance means, but I argue that I see work-life balance over a long period of time. I am working like a horse now so I can have a stable, flexible career when I have kids.  In fact, I am doing lots of hard things now because of my “future kids.” Like  pursuing a masters with a fulltime job. Because I know that it will be exponentially harder to do that when I’m trying to raise a family. I know that sounds odd coming from a 21-year old, but you know what smart women do? They plan way ahead.

Don’t just not leave. Aim high, stay passionate, give back, and dive in!

 

Frances Advincula writes the series Frances Fridays. Frances recently graduated with a degree in Computer Science and is currently pursuing a masters at Johns Hopkins. She now works as a Software Developer for Accenture Software. A proud geek girl, she’s sure she is the only one who can’t play video games. Tweet her at  @FranAdvincula.

Enhanced by Zemanta

I Don’t Want to be a Programmer

by Frances Advincula

I am terribly lucky to have a lot of mentors, especially on the team that I am in. They are literally taking the adage “It takes a village to raise a child” to heart. Sadly for us, one of my mentors is leaving the team today in pursuit of other adventures in engineering land. The way the team started to mourn his decision really struck a chord in me. What made him so loved?

I realized that he was not just a programmer — he was a software developer. And I want to grow up to be just like him.

(See how sweet he is?)

According to Erick Sink, here is the difference between the two.

…a “programmer” is someone who does nothing but code new features and [if you’re lucky] fix bugs. They don’t write specs. They don’t write automated test cases. They don’t help keep the automated build system up to date. They don’t help customers work out tough problems. They don’t help write documentation. They don’t help with testing. They don’t even read code. All they do is write new code. In a small ISV, you don’t want any of these people in your company.

Instead of “programmers” (people that specialize in writing code), what you need are “developers” (people who will contribute in multiple ways to make the product successful).

Thus, as part of my goals for 2013, and inspired by my many mentors, I want to be more helpful to my team throughout the entire process, always keeping in mind that great products provide seamless experiences from end-to-end. That includes everything and involves a lot of people! Here are a few reminders I wrote up for myself.

For UX

1.      Suggest things that you think will improve the user experience, but realize that the UX team is the expert in the subject. They breathe this stuff. Their work goes above and beyond colors and graphics; they put real research into their work to make sure the needs of customers get met in the best way possible.

2.      Work closely with them if you are in the front end, and make sure to do so from the beginning. That way, there is less re-work, unlike if you start coding already and visions end up not aligning. Also, because they may be fully aware of what is technically possible or not, make sure you understand the goals behind their design. That way, if you are not agreeing with something, you can suggest something similar that satisfies that goal.

For Documentation

1.      Realize that the doc team may not necessarily speak the same techie mumbo jumbo as you. Make sure that you write good notes for your task in your project management tool. Remember that as the doc team writes release notes for customers, they are usually concerned about tangible changes that should affect what the customer sees. Write your notes accordingly.

2.      Although it deserves another post on its own, never ever make them feel like they are “just doc.” Great documentation is one of those things that go unnoticed when it is really good, but are blatantly annoying when they are bad.

For Managers (Scrum Master, Project Manager, Product Owner, etc.)

1.      Know their style. Some love to be emailed (so they can avoid meetings), and some love meetings (so they don’t drown in a sea of emails). Work with it.

2.      Remember that managers always push for more — that is their job. Therefore, if you cannot do something, speak up. They would rather you say “no” than just keep saying “yes” and not deliver.

3.      Stop whining about meetings; instead, make sure you really need to be there and take responsibility for making it productive.

For Software Architects/Other Developers

1.      Write more functional specs and touch base often. That way, more senior engineers can tell you that you are going down the wrong rabbit hole before you write a lot of code.

2.      If  you are touching their code, especially as a newbie, let them know/ask for a code review before you commit. Of course they will see it in the commit logs, but I like to do this out of respect and to make sure the best code possible is committed.

3.      Be obsessed about your code and take pride in it.  Think about all the ways users can and will interact with it. Brainstorm. Really think about what you are building. Write unit tests, because they force you to really think about the requirements and what goes in — and it’s virtually impossible to unit test bad code, BUT do not rely on them as a silver bullet. Just because the unit test passed doesn’t mean the code is great. (Thank you to my other awesome mentor, Mr. J, for your great advice. I still don’t know how you put up with me!)

4.      Don’t forget to spend time coding what you love, no matter how little time it is. A wise man told me that this is the difference between awesome developers and regular developers, for it will keep your passion roaring!

For QA

1.      Depending on your organization and team, realize that some QA  are super techie and some aren’t. Make sure that you communicate on their terms. Be sure you are clear about what your code changes will affect, in case they need to test more things than what is currently your task/unit of work.

2.      Be patient with all their nitty-gritty questions. Those questions force you to think about what your code does in new ways, and will more closely mimic questions that your customers will potentially ask.

For Release Management/Dev Ops

1.      Find out what they need to know from you when you commit. For instance, on some branches in SVN, if I commit, the RM needs to know if I added or deleted files; otherwise, the installs break.

2.      If your commit breaks the build, fix it as soon as possible. If you like to commit a lot at the end of the day, wait for a successful build before you go home.

In a nutshell, good software developers don’t just write code. We work hand-in-hand with a lot of people to ensure that the code we write turns into a great product that makes people happy, real happy.

Frances Advincula writes the series Frances Fridays.  Frances recently graduated with a degree in Computer Science with specialization in Software Engineering. She now works as a Software Developer for Accenture (Software). A proud geek girl, she’s sure she is the only one who can’t play video games. Follow her random musings at @FranAdvincula.

Enhanced by Zemanta