Randi Boice is currently a member of Technical Staff with Salesforce as their Lead Developer. Her path as a software engineer evolved from early IT and Support Ops work with LogMeIn implementing systems to squash ticket bugs in record time, cultivating a loyal blog following through Salesforce Girl during her self-taught journey into programming, and eventually being sought after for a brief stint with Facebook, as a first taste of working in Silicon Valley.
In this Codecast, Randi shares key points on operating from a place of relentless initiative, her journey as a non-traditional web developer, unapologetically explains why developers must set healthy boundaries and life priorities early on in their career, and inspires all-around joy for coding as a creative act!
Key Theme » Transformative Drive
Every job that I have been to, regardless of my background, regardless of whatever... I have always been able to get custom niche projects, or be this one-woman team because I’m such a hard worker. I don’t let it stop me, that it’s not my job. I look into things that nobody would think of...Because I keep going after these things, people kind of let you do that. They say, 'hey, this is like a force to be reckoned with, let’s just clear the way and let her do what she’s going to do.' – Randi Boice
"I have always been kind of a "see a need, fill a need" kind of a person. I see a problem, I want to fix it – it doesn’t matter if it’s my problem, or not – that’s what I do."
"You should be able to say ... "sure, let me see if I can do that." Even though it’s going to take you two to three times to do something that’s not in your comfort zone, it’s still going to be help – compared to not doing anything...You don’t know how much you can accomplish if you simply try."
Full Episode » Transcribed
Hello-hello everyone and welcome to the Viking Codecast! I’m Erik Trautman, founder of Viking Code School and this is a fully online, fully immersive program to teach everyone web development from zero to job. Codecasts bring in awesome developers and people who are in the tech industry to teach you, who may or may not be learning how to code or somewhere on that spectrum or one level up, teach you guys what life is like across the curtain, and some interesting stories and telltales of woes, tales of success, and advice. (Laughs)
You'll cry, you'll laugh, it’ll be awesome. (Laughs)
The drama is incredible! So here today with us, we have Randi Boice who comes from a non-traditional background, as well – as many of you do – and has through a very fascinating meandering found her way into Salesforce. She's working with all sorts of interesting tools which are relevant to certainly our immersive students here who are working on their final projects, in sort of a SCRUM-like fashion.
Randi is working in a similar SCRUM-like fashion although, there are some differences which we will highlight. So, first of all thank you everyone for being here with us. Thank you Randi for being here of course, we couldn't do this with out you! Where did you start and how did you get to where you are?
I want to say, first of all in high school I had no idea where I wanted to be! I had likes in photography and art and geology, the gambit. I was like "hey, maybe I’ll be an actor because then I can be all these different people, right?" No – so I picked one. I tried going to college. I went for geology and photography; I couldn’t afford it so after about six months I dropped out. I couldn’t afford the books, so I was failing the homework anyway...
So I got a job working as a florist, I was in landscape construction, basically you name it I did it. I did housekeeping...Eventually I found preschool, I knew that I loved babysitting growing up and I used to do a lot of the preschool and the churches so I went that route. Went and took a class, got certified as a preschool teacher and then right as I was certified, right as everything was falling into place, I had been doing this for about a year. I thought that this was what I was going to do.
Because of that photography thing that I loved, I took pictures in the woods and got bit by a tick. Then I got Lyme disease and after many, many years struggling to figure out what it was, I finally realized it was Lyme disease. But it meant I couldn’t work as a preschool teacher anymore, so my doctor said if I had a desk job I could keep working, because it attacked my joints and I couldn’t walk very well.
Anyways, I realized that I could do this desk job thing, it was OK sitting at the computer it didn’t hurt me so much. So I got a job at LogMeIn, working customer support. Through that, they used Salesforce for their support implementation. I noticed that it was taking a long time to do cases. I've always been kind of a very "see a need, fill a need" kind of a person. I see a problem, I want to fix it – it doesn’t matter if it’s my problem or not – that’s what I do. I've always done that.
Find & solve problems no one else can see.
So I noticed as I was going through these support cases there were all these screen refreshes and all these things and I was like "wow, if we didn’t have this it would probably take a lot less time for me to do a ticket." Literally, the thing that was preventing me from getting tickets done faster, was the UI I was working in. I kept addressing this and saying "hey, guys, look I’m only able to do 100 cases per day because of this. I feel like if we were to make some of these..." (and I suggested a few improvements)..."...I might be able to do this faster."
Build with teams who actively promote your growth.
They didn’t have anybody to do that and they knew I was looking into code and kind of learning on my own and they were like "hey, why don’t we let you try on your own to fix these things." And, so at first, they let me do 50/50. I did half support, half support ops, and would slowly start improving the case flow and learning how to code on the job in Salesforce language. At first, it took me like, a week to do a simple, "open in new window." That took forever and I felt terrible and obviously years later it takes seconds. At the time that was the progress I needed! Thankfully, for me, I was able to work at a job like LogMeIn, where they backed me and they let me have that opportunity to learn on the job and then everything that I came across became a new learning experience. If it was a new API that needed to be connected – eventually I was at that level, it took a few years.
So, I think after the first year of doing that 50/50 thing they let me go full time. I got the case time down from three minutes per ticket to half a minute per ticket. I was able to prove to them, with my own work that I can go from doing roughly about 100 tickets a day to 300, 400, tickets a day. That showed them that hey, there is something to this, so they made me full time as Support Ops, and I worked closely within the support organization because I knew it, I knew all the pain points, it was the best. I could directly see my work affecting everyone around me. I also decided that since I was having trouble while I was learning how to code, I would blog about it. So that’s how I created the Salesforce Girl blog because I figured if I am having trouble, someone else might.
A few years later, I think I had been doing this for about four years, I get a random email in the mail from Facebook or who I think is, I have no idea it just says "App Facebook", and being a girl on the internet, you’ve kind of got to not so reply so fast! It took me about three days to be convinced that it was actually Facebook, and they wanted me to interview.
They found my blog and they were curious, so I interviewed. I wasn’t looking to move, I lived in Boston at the time – but hey, it’s Facebook why not! So I interviewed a few times, they had me for an onsite interview, and then after a couple of months they shipped me across the country and they moved me in, and I worked there.
Facebook was interesting. (Laughs) Having dropped out of college I didn’t have a very big college experience. It was definitely, a lot of college people there, and just not the right atmosphere for me, I think. But I stuck it out a year. I went through their bootcamp (0:07:20 audio disturbance) besides Apex, because Apex is a Salesforce language, it's definitely a light language, if you look at it compared to other things. But it's akin to Java, which again – light.
An applied, growth mindset gets you noticed.
I realized that I wanted to see what else there was to offer in Silicon Valley, and I went to a few startups from there – and each job I learned as I went. Every time, taking every project, and every opportunity to learn further. Then after the startup, eventually Salesforce came knocking and they were like "hey, we've noticed you’ve been kind of buzzing around our space." I was very popular at their Dreamforces, my Salesforce Girl blog was getting a lot of attention; I actually knew a lot of people internally through my Salesforce Girl blog because I was always reporting bugs to them. Regardless of if it it was something that was a bug in my own code, or because of my code, like maybe they just released a new feature. Like the spring release, they had a knowledge thing, I would go and pioneer that with my code trying to get it to work and I would find all these bugs that were only bugs in the system and I would have to report to them to fix. And, I loved that, it was so cool.
Finding your first niche invites better opportunities.
I have always worked in IT because of that, because of how many issues and bugs and how many problems are constantly plaguing IT. IT doesn’t get any love, so I definitely found my niche in IT. But now I’m working for Salesforce. I’m in the Mother Ship, I got sucked up, it’s awesome! I can affect change internally – it’s amazing. I thought there would be so much red tape and it’s not. I think the reason why it’s not is because of my work ethic, and I’m going to really stress this:
Every job that I have been to, regardless of my background, regardless of whatever, starting at LogMeIn, I have always been able to get custom niche projects, or be this one-woman team because I’m such a hard worker. I don’t let it stop, that it’s not my job. I look into things that nobody would think of. It’s just like, "hey this is a problem why isn’t anyone addressing this?" And, because I raise that, and because I keep going after these things, people kind of let you do that. They say, "hey, this is like a force to be reckoned with, let’s just clear the way and let her do what she’s going to do."
I like that. I like that they can recognize that – some people need to be on a team and some people kind of can lead teams. I think maybe that’s where I’m falling right now. My current role at Salesforce, I got hired as a contractor mainly because I had just had a baby and I wasn’t sure I wanted to go back full-time. But I got hired as a contractor, and then after the first month, I knew it was where I wanted to be. They made me a SCRUM Master within the first month. I got made Test Manager, or I forget what they call it. Basically I’m in charge of all the test suites and the QA stuff, at least for my team inside of Salesforce, even though I was a contractor. They quickly converted me to full-time in July and I have been full-time ever since. But not that it mattered – full-time or contractor – they still treated me like full-time.
I went from a team of like 10 people, all the people on my team left – they got fired, left or just went to another team or another company, and then went all down to me. Which was fine...but you can’t do everything yourself, so I quickly found myself with the PO role, the BA role, the Dev role, the QE role.
That’s a lot of acronyms.
Yes, there’s a lot of acronyms in every business and every company has their own domain language, and acronyms are not the same across all companies. I hate it! But – yes there are a lot of acronyms in Salesforce, at any company. But I am finding that as much as I like the PO and BA roles, I still love being a developer. I love being able to actually see my code like, fix problems. Although at the same time, the PO, the Product Owner role, which is the "protector" of the organization, they’re the one that is supposed to say, "no I don’t want this in, because you’re going to screw up everything else we have in here. Stop that!" And then there’s the BA role, which is the Business Analyst, they’re supposed to go in and talk with the business, see what they need, get the requirements and then talk to the Dev’s. And me playing all those roles makes it really nice, but at the same time I don’t really get much done because I’m stretched so thin. (Laughs)
I don’t know what that has to do with anything, but this is where I am now.
Cool. I think we have a lot of interesting stuff that we can kind of dig into, there are a lot of things that you’re doing right now. It sounds like you touched a number of different areas of the organization, which is kind of what’s really cool I think, one of the reasons why it’s exciting to talk to you here. Specifically, working with the students right now, I think they’re probably feeling like they’re juggling all sorts of different roles.
That’s good though, because that means that you guys are T-Shape people. I don’t know if you know what T-Shape people are, but it’s even though your role is Dev – you can fit the QE or you can fit the BA – and those types of people are sought after in every company because you guys can fit to what’s needed. It’s really good to be able to pivot and flex for whatever comes up...'cause trust me, it comes up!
Is there any way that you could maybe highlight what the difference between someone who might just be I-Shaped or L-Shaped versus T-Shaped, would be, practically speaking, in terms of working?
If you get a problem and your normal skill set is Admin work, or maybe you’re a BA, you’re a Business Analyst. And your team is filled with Dev’s, and they need help from you to maybe do some object changes, or do something that’s not normally in your realm of this is your job title, these are the roles that you do.
Helping others = pushing your comfort zone!
You should be able to – as a T-Shaped person – getting asked to help in something you’re not comfortable with you would say "sure, let me see if I can do that." Even though it’s going to take you two to three times to do something that’s not in your comfort zone, it’s still going to be help, compared to not doing anything and just saying, "no sorry that’s not my job." You do get that, occasionally. Or, people just being unsure of themselves, they don’t know if they can do it and instead of trying they just don’t try. You don’t know how much you can accomplish if you simply try. It kills me to see that still – it’s like come on guys, what’s going to happen if you fail? You’re not going to get fired, you’re not going to die, it’s just trying. I don’t know. (Laughs)
Yeah, actually I don’t want to take over the conversation early, I want to give everyone a chance here to ask questions. I want to open things up right now for questions before I go running off in whatever directions my brain can figure out.
STUDENT Q: [Kit]
Hi, I guess earlier before we started this thing, there was kanban as opposed to the agile scrummy type workflow, I presume you worked in both?
STUDENT Q: [Kit]
I was wondering, how’s the transition? What do you like more about kanban as opposed to – what problems did it solve from the pain that you were feeling from the agile process?
And maybe what the differences are, too?
Sure. From my end of things, sprints in general are a ton better than waterfall. Waterfall is that "OK, we want to get this project done in a year and here are all of our requirements in the beginning of the year and we’ll talk to you at the end of the year when it’s done."
That sucks because things happen, things change in a year, nothing works, so we go to sprints. Sprint means that every two weeks, there’s going to be maybe a bunch of different stories. Depending on what velocity your team can do, if you’re a two or three person team you may only be able to do a few stories, and then the velocity is you point the story so if it’s a small story maybe one or two points, or if it’s going to take more than a day or two, maybe three points. If it’s going to take like a week, five points, and it kind of goes from there.
Those point systems are only applicable to your team, you can have any point system you want. Really, technically to be truly agile, I’m sure there is some strict thing somewhere – but in reality you can assign whatever value to those points that you want as long as you be consistent.
You have a story, you have points and then you do this release planning, you do these backlog grooming, you look at all your stories, you clean through and you say "OK, these people need – we have this sprint coming up and we need these projects out, and these things are due by this priority so let’s assign these stories to these people." You kind of go back and forth and there’s all these meetings around everything, I think that’s the biggest headache for me around sprint – is all of the overhead of planning the sprints.
What’s nice about kanban—if I could show you an example I would, I’m just afraid of what’s on it. But kanban is this great kind of flow. You start with a backlog on one side, a column, and then maybe you have a "ready" column. These stories in the backlog are loosely flushed out, and then the BA and the PO should be flushing these stories out a bit more with the details and put them in the ready column.
When it’s in the ready column a developer can pick up the story and put into the next column, maybe in progress or gathering requirements and we kind of like flush the story through the process. Then you would put in the testing and then into review, and so these columns, it’s nice to visually see your stories in these statuses. It also means that since there’s no planning or any of that kind of thing, you’re able to just take stories and go, you don’t have all this overhead of these meetings. The BA and the PO can handle that. Us as developers, can get through the stories and get them done.
It also means that things start to collect, so you have this ready to test column so the QA people can pick it up and start testing it. There’s all these other kind of ready to – so for Salesforce, we have to push things from Dev to QA where we do all of our testing, so it does the feature work and the business will go in and actually test and make sure it’s what they’re expecting.
Generally it’s kind of the PO that tests, but for my group it’s the business because we’re so small. Then, once they give approval in the QA org, it gets pushed to the UAT org, this is the full environment with complete data and all that stuff. These are all columns in the kanban so we can see the story as it gets pushed and gets approved, and then eventually once it gets UAT approval from the business – that’s final sign off, everyone says OK, we’ve gone through extensive testing and it’s all good – then it gets slotted for the next release whenever that it is.
That’s why kanban can work easier than say a sprint, again mostly for the fact that you remove all that overhead and also kanban typically works a lot better with smaller teams if you want to kind of be more fast and agile. Sprints works a little better for larger teams, but I have seen kanban work really well with large teams – but you need to go through the kanban training. There’s some great stuff online you can look up, some games that I actually had the privilege of playing, that kanban game board, pretty cool. Almost like replace my love of D&D for a minute, just a minute! (Laughs) But it really, I almost wanted to make the game into a program, like an app you could do with friends. It was so fun, I was like this is so stupid I’m having so much fun with a kanban game, but it was awesome! That’s why I like kanban.
Nerds of the world unite. (Laughs) Cool! What did you use over at Facebook?
Facebook, we technically used sprints but I forget what system we had set up. Like in Salesforce we have our system, we developed this huge system. It’s been a few years; it’s been like four years now.
So, one of the advantages of working in the scrum-based system is the idea of estimation that you sort of collect the story points, you get your velocity and based on your velocity you can figure out, "OK – how long is it going to take us to work through our backlog, how long will this release take?"
You can still story point kanban stuff.
OK, so how does that story pointing process work?
It’s the same as in sprints, but instead of doing a velocity – it’s just kind of like this is a big story, so it’s going to take a little bit more time. So it kind of sits in some of those columns a little bit longer, but I don’t know – I haven’t really gotten to the point where you do that sort of planning based off of velocity with kanban. We’re still, as much as we can push into a release, we get in there. We are flying at the seat of our pants a little bit. (Laughs)
It’s the only way to live.
At least for my group because again like I said, we have to be fast, we have to be agile, we can’t – we are just too small. We don’t have enough manpower to follow every little process.
Can you actually give some examples of, specifically, what types of problems you’re solving? Maybe honing in a little bit more?
In-house, applied problem-solving examples.
Sure, my group is in charge of, one the central arteries of support for Salesforce. So the org that I’m in charge of, is all of the support center cases, they all get routed in through my org.
Any time someone does a help desk ticket, or submits for a new asset, anything. The org that I’m in is kind of like the catch-all org for all these random apps. A lot of the problems I come across usually are, due to the fact for this particular org – it’s just really old. Because it’s like ten or so years old, a lot of people kept putting stuff into it and not taking stuff out. The org is kind of at its limits, literally. It’s like busting at the seams!
So I always like to think of it as a rusty bucket, it’s an overflowing rusty bucket. The water’s coming out of the sides – and the top! So my main goal, right now for, at least my group is we’re trying to clean out. We have tons of technical debt, we have tons of "keeping the light on stuff", we have to go through. There are case triggers that have been just like – they put way too much logic in it, again without removing any of the logic. sSo when say a case gets updated or inserted, there’s all this logic that happens and depending on certain fields, depending on certain record types, it needs to follow these processes. But the problem is, that in Salesforce-land they have govern limits, you can only do a certain amount of SQL queries per transaction, a certain amount of records can come down. So, we’re hitting these govern limits constantly because there’s – it’s like this transaction just keeps continuing as they expand these triggers, instead of pushing one to a future method so it doesn’t happen at the same time as the other ones. There’s all these type of balances.
Another problem that’s a big issue is data integrity. I’m always having issues where this would have worked – if the data wasn’t broken. So, instead of, unfortunately I have found in my job it’s easier to code around the user errors than expect the user to do something correctly. A lot of my stuff kind of, does things for the user – anticipating what the user might want to do and then kind of – not allowing them to put in too much. I’ll have triggers or validation that will prevent them from doing certain values or maybe allow them to pick from a pick list, or compare.
Data integrity has to be one of the biggest issues that we come across a lot (laughs) – and you wouldn’t think it would be, but the code relies on the data! You need the code to display the data correctly and because of the data, certain things will display or certain things won’t display and if the data is not right then all hell goes loose. (Laughs)
I can give you more specific examples, though. For instance, some of the stuff that I do isn’t required. We have vending machines in our mini-Salesforce offices and they have IT equipment in them like mouse’s or keyboard or screen protectors, phone – whatever.
The problem that I notice is that A) we don’t know where these vending machines are half the time. There’s no centralized list or some sort of map where can be like "hey, I’m in this building where are all the vending machines so I can find this thing." The next problem I noticed is even if you find a vending machine, you don’t know if it’s going to be carrying the item that you want. So, then you could waste your time going to this building, going up to this floor to find this vending machine that doesn’t even have something you want. Or,r if it does have it, maybe it’s out of stock. So what we can do because when you go to purchase things out of the vending machine, you have to use your badge – that’s putting a line in the database that says this employee with this badge bought this item for this amount from this machine. We can take that data, and then analyze it and say "OK, we’ll create a vending machine object, and we’ll put assets into the object so we know what items are in the vending machines." Then, as the employees purchase, we will subtract from those items and be able to say, "hey, this vending machine seems to be going low", or "hey, this vending machine is getting a lot of purchases for this particular item maybe we should stock more of it or stock it more frequently."
There’s a lot of things like that that you can solve if you just connect the data. (Laughs) That’s one that I’m actually going to be working on in a hackthon soon, so shhh.
We promise this won’t be broadcast on the internet. (Laughs)
Right? Oh well.
Thanks, yes, that’s really helpful for showing how you can take practical skills in an organization and solve actual problems!
I was sick of going to vending machines and not finding what I wanted! So I tracked down the asset management team, and I know that the assets are stored in my org because my org is the catch-all org – so I know I can affect this change, which is great. I love working IT because you can affect so much; there is so much around the company that needs help.
Think about when you’re walking around your school right now. At Facebook it was great, they had these monitors with maps and you could literally go, "show me all the restrooms on this floor, show me all the vending machines on this floor." Or, you could search a person and see where they sat on the floor. You could see all the conference rooms. It was great having these little digital maps everywhere you could interact with and figure out where you needed to go. They need something like that here – soon.
So what sorts of technologies do you find yourself working with the most? Programming languages?
Ah, jeez, it's already dead!
We also connect in the databases. Say we need to have...for instance, all the employee data is stored in this other database system. It’s not stored in my org. My org needs to use that data, so we have to connect through the SQL server to bring that data and do a constant sync. So whenever someone gets hired, fired or updated, my information in my org can get updated so that all of my stuff can work. Because I have things in my org where it’s like: you submit for an approval to your manager but what if your manager isn’t your manager anymore? You need to make sure you’re going to the right manager. What if your manager or you no longer work for the company? That needs to be all brought down. We also need to kick off the return of your assets – right, there’s tons of stuff and we’re just always doing connections, all around data.
I know, I didn’t know I was a database person, data is awesome.
I want to ask around for more questions. Students, viewers, random people of the internet, what do you have for us? What questions do you have?
STUDENT Q: [Andrew]
I have a question. Great story, by the way with the whole narrative.
Basically, have you dealt with imposter syndrome? Like, have you during your transition into the tech as a software engineer, have you developed or felt at moments where (you ask): are you good enough, kind of thing? Or, were there some times when you thought you were better than what you actually are – at that moment? (Laughs)
Vigilant learning dissolves imposter syndrome.
Yeah, constantly – even today – I still feel like I’m not good enough. I know my strengths, but when it comes to real, hardcore code – because I don’t have that traditional computer science background – I don’t have all those basic building blocks that most people have. There are some things that I struggle with, that most people don’t, and so I’m always trying to learn, and I’m always trying to not let that insecurity show. As soon as I do see something that I don’t know about, I try to learn about it. Of course, you don’t always have time, because there’s always so many other pressing things.
But no, definitely. Actually, after I left Facebook...because again, I am so much of a Salesforce software engineer, more than a "regular" software engineer that I interviewed at Twitter. When they went to the code challenge and they started asking me these questions, because I don’t know the terminology...
Now I could do it, but four years ago he was like "oh, can you write this function" and he used these terms, again now I probably would know, but at the time I didn’t know what those terms meant! So I was like "ah ... can you ask me in a different way?" I can do it – I just don’t know how to do it – it’s like when you have a math problem and they give it to you in a word problem versus a math problem. I could always do the number problem easier than the word problem because – for whatever reason – it was harder to understand that way. I don’t know if that helps.
STUDENT Q: [Andrew]
Yeah, that was a great answer, thank you.
How do you fix it? How do you hack your psychology to get around that?
In the sense of just knowing that you’re always learning. I’ve always had this, maybe it’s the Japanese culture, or that you never master anything, right? So you’re always a student – learning. There’s always something new that’s coming out, you can’t say "oh, I’m done, I’ve learned it all."
So I don’t really think there’s much psychology managing there. More of just, I haven’t gotten there yet. I tell people all the time because of how I learned, I learned based off of projects. So if I hadn’t gotten that project yet I won’t know how to do it – yet. It just takes me getting that project and I’ll figure it out.
Cool. Are there other questions from in here?
I don’t know, if I can do it, anybody can do it. If you’re in school you have all the opportunity, all those mentors, all those people. I love advocating for people, you can do anything you put your mind to. It’s just a matter of drive, passion and commitment, right? If you don’t have those things, it’s not going to get done. I have tons of stuff I’d love to do, I could name a ton of stuff, but you don’t have time. I love to learn musical instruments, all this stuff. But, unless I actually dedicate myself to it, it’s not going to happen and that’s same for anybody.
I have a question coming in on the Q&A app here, let me just read that:
"In your opinion, why is blogging and engaging the public as a developer now versus even five years ago relevant and professionally useful? I’m thinking about introverts who may and often do balk at sharing who they are, beyond their GitHub profile!"
Benefits of engaging the public as a developer.
It’s super useful, because of my networking I was able to land a job at Facebook. Because I was out there on social media creating, marketing myself, branding myself the Salesforce Girl and kind of being out there. I’d be on forums helping to answer questions, just having that public presence or showing, "hey, I found an answer to this."
I know it’s uncomfortable. My husband, he doesn’t like blogging. He doesn’t like that he has to reread things 20 times and then, he still doesn’t like it. So I definitely get the insecurity level that can happen with blogging with people who may or may not be as able to put themselves out there. But in this day in age, you need to. You need to market yourself – you need to brand yourself. It sucks, we are all our own marketing teams. You are your own advocate when it comes to your health or your business or whatever. You need to advocate for yourself and you need to show the world what you can do. It’s easy to do that with all the internet stuff you can do nowadays, and if you’re not comfortable as yourself maybe do it anonymously, but start. Do one blog post, and then, see where it goes.
Thank you, actually related to that, obviously you mentioned that people, that you were able to get on the radar by doing things like submitting tickets for releases that came out, and things like that.
If you’re able to put yourself in the shoes of students who maybe don’t have a long or deep background in some specific technology, but who are trying to get on the radar of people like yourself in organizations to sort of standout and highlight that even though they’re from a non-traditional background, they still have hunger and skills. How can they do that?
For Facebook, part of the reason Facebook found me was because when they Googled "Apex developer" or "Apex development" – whatever problem they were looking for – my name came up in those search results.
So if there is something they’re passionate about, or if there’s a company they’re trying to get interested in, they need to make sure that if they blog or they talk about it – that’s how Facebook found me.
Have you noticed anything from people who are applying for jobs? Or, who come across your radar somehow, that they’ve been able to do to get on your radar that maybe, wasn’t just dropping a resume at the door?
They (inaudible) on stuff, again if there’s a – what’s that great forum site that they have...Salesforce has its own version...Anyway, there’s this great code forum where you can go and pose questions and stuff.
And that’s the thing, they have to comment and reply and try to help, or maybe if they see an issue or they see something. Say you’re working...somebody made something on GitHub and you’re utilizing their code to do something and you want to get on the radar. Maybe you want to work in their company – start contributing, start commenting.
Say "hey, I noticed this problem, what can we do to solve it?" Come up with a solution instead of just saying all the problems – come up with your own solutions and that in itself, they are like they are not just reporting issues they’re trying to solve them, and that to me stands out.
You’re not a part of the problem you’re a part of the solution. Other than that, in the photography world people get my attention, they message me or they comment to me, or they’ll show me a picture they’ve done and I’ll kind of look and see. If they have similar style I might talk to them more. (Laughs) But it’s different than code.
That actually brings up another interesting point which is that you have obviously got a variety of different interests and you have a professional job where you’re working your butt off all day but you’re also able to kind of balance things.
You do many things, whether or not that feels like balance or not, how do you actually balance your life when you’re developing?
Getting your life priorities straight.
It's taken a lot of time, and it’s really hard to learn that balance. You need to know your priorities. First priority is yourself – period. Your health, yourself. Then your family, and you need to keep that in check. When I was working at Facebook, my priorities got screwed because I was so focused on working at Facebook and getting all these things done and so absorbed in the race to get the code done, that I wasn’t paying attention to my family. I wasn’t doing all the other things.
I got burnt out very fast. So then, when I went to the next few jobs I kind of learned a little bit better balance, I was able to say "OK even though I really love doing my photography right now, my job pays the bills so I need to put more energy into that until it kind of quiets down and then I can pick up the photography again." Or whatever. If my son is sick he takes precedence over work, I will call out. I don’t care what’s going on at work – that’s more important to me.
I have this conversation with my manager a lot. Even though you have three things, you have family, you have yourself and you have work or whatever, however many things you have – you can’t give 100% – it’s just not possible. You don’t have 300 or 400 percent of yourself to give, so you have to divide yourself up and for someone like me who doesn’t want to do that (and wants to do it all), I tend to burn out a lot. But I try not to. This past year has been really good. I haven’t burned out so much, it’s been great!
But it’s a very fine line of a balance and dance. And really it’s you have to be able to listen to yourself and your body to know when "hey, this maybe shouldn’t, maybe I should take a step back." Again it’s that check: it’s OK, no one is going to die, no one is going to kill you. It’s not that big of a deal if you can’t get it all done – it’s OK. That kind of check prevents me from stressing out completely. It’s not that big of a deal.
I used to work with a Marine, in a very stressful environment and when things started hitting the fan he always used to say, "You know what? this is still a lot easier than getting shot at."
How do you recognize & resolve burn-out?
That’s hard, I’m sure it’s different for everyone. I don’t know how to solve it. I guess break, vacation, shutdown, that’s the only way that I’ve been able to come back from it. But that’s obviously not the best thing.
You want to see it before it happens. I think for me if I notice I’m reaching for a glass wine a little bit earlier than I normally do, or a little bit more than I normally do then I'm kind of like "hey, maybe I should think about why I’m reaching for that glass of wine a little bit more than I normally do."
Or, if I’m a bit testy, I also find that I’ll be short, or I don’t sleep as well because I’m so just absorbed with everything going on in my life. It’s all those normal signs of stress, right? And then it’s kind of like you know you’re burnt out when you practically just can’t bring yourself to get anything done. You don’t mind that your phone has 50,000 messages, you’re just – done. You just can’t do it anymore, you’re done, you don’t care what happens, and you never want to get there, it’s a terrible, terrible place to be.
Do you have strategies for coping with that?
Find a happy place. Find lots of things that make you happy like relax. Let go, it’s not the end of the world. Find people that make you happy and I severely suggest turning all of your devices off for a few days and just kind of getting back into center.
I don’t know if anyone practices mindfulness or anything like that, but some meditation and just really again just checking your priorities. That always helps me because I’m like it’s just work, I can always find another job, I can always do other things, it’s not a big deal. I still have my family, I have me and my health, for the most part, besides the Lyme disease. (Laughs)
Oh well – any other questions from the audience here? I want to hear what you guys want to know.
STUDENT Q: [Andrew]
I have another question, real quick. Like, along your career (path). Did you have any forks in your road where you knew that you wanted to be a developer for sure, as opposed to maybe, you could be a support person, not 100% product manager or something like that? How did you deal with that?
On not wasting time & forks in the road.
I’m facing a few forks right now, (laughs) but in the past, right when I was still working at LogMeIn, my photography was really doing a lot of weddings, and a lot of stuff like that. I kind of had this decision where I’m like "OK I could stop what I’m doing right now and I could pursue the photography and see how that goes." Or, I could continue to code.
For me I realized that the more weddings I did the more I hated photography. And, the more code I did, the more I loved my job. I loved seeing that result, just – I don’t know, there’s something about working in code. Just debugging and logic and architecting solutions, and seeing how the code flows. I love that. I love digging out, so it was kind of an easy choice then.
Now however I’m coming to the point where I’m a Team Lead. I don’t get to Dev as much as I used to, and there’s an opportunity for me to be the PO, since we’re missing one. Or, to continue to be this Dev lead and kind of do that thing. I’m not sure. I kind of tried doing some of the PO stuff, and it’s a lot of meetings and it’s a lot of have to be strong, and you have to kind of wade through the shit a bit. Kind of messing with the business, and they’re going to say "my priority, my project is better", but other people are going to say "no, my stuff’s better" and they’ll start cc:ing their managers and bosses and VPs. Then it’s just this big war of who has the bigger VP cc:d to get their shit done. I don’t really think I want to do that!
So I think the best thing to do is, if you have the opportunity, to try that path that you might take, like even just for a little bit, you can see usually if you like it or not. Forget if it pays more. Forget those type of things. What do you like doing because this is your time that you’re spending on. You can’t get time back. You can’t buy time. So if you’re going to do something for your life – for the majority of your life – pick something that you enjoy, regardless of how it pays.
STUDENT Q: [Andrew]
Great answer, thank you.
Alright, cool. My last question for you. If you are in the situation where these fine folks are – maybe that’s very early in the journey. Obviously, we have a pretty diverse audience here. Everyone from people who are considering the switch into development up to people who are right now actively applying for jobs as developers.
What advice would you give yourself if you were in those shoes?
Final words of advice.
View coding as a creative act.
The best thing to do if you’re considering development: do you like it? Do you like problem solving, do you like puzzles, it’s pretty amazing. It’s actually a really awesome creative thing, as an artist as a photographer, I feel like developing and coding is like the ultimate expression. You can do whatever your imagination gives you and, limits within the coding frame, whatever.
Default to getting the job done.
But, if you’re looking for a job in the coding realm, the best thing that you can do as a person when you’re applying for a job is you want to be the type of person that will solve any problem. You don’t want to be, again, an I-Shaped person, you want to show the employer that you’re willing to do whatever it takes to get the job done, to figure it out, and you’re willing to do more than what you’re hired for.
I don’t know how to say and convey that, but in my interviews I tell them all the time, I look, I see a need and I fill the need. If there’s something broken I want to fix it, it’s just how I work and they kind of can see that from how I talk. I’m very passionate, I lead people. If nobody is willing to take the lead, I’ll take it. Even if it’s in the wrong direction, at least we’re going somewhere. (Laughs) It’s progress, to a point.
Passion & enthusiasm count!
If you really show that passion in the interview – you show that you can figure it out even if you don’t know – you can figure it out. People love that. They love that you’re not constrained to this box, this thing, you can do whatever they need and that means that you could be their ace in the hole...and, they loovve that! (Laughs)
Awesome. Well thank you so much I think that takes us to the end here. Randi, I really appreciate you spending your time with us, here on a fine Tuesday evening in the Bay Area. Everyone else who was able to make it out regardless what time it is, especially in Australia, as I know at least one of you is, thank you for showing up! Thank you for hanging out.
Thanks for asking questions!
Everyone, you can tune in next week as well, our Codecast is every Tuesday. Thank you guys and have a great night.