I Got the Job!

I’ve been dreaming about being able to write this blog post. It feels as though I’ve completed a very long cycle (of course to only begin a new one!).

About a year ago I decided I wanted to leave my job and attend a coding bootcamp. Going into it I was set on becoming a developer, although I knew other tech related roles were an option to pursue as well.

The bootcamp was the toughest endeavor I’ve ever pursued. I committed myself everyday for 6 months chucking along through the Flatiron curriculum. There were highs and lows (lots and lots of lows) fueled by discipline and determination. I graduated with 4 projects I was very proud of building but I also experienced burnout.

The end of the program coincided with the end of my apartment lease in Philly, and since I didn’t want to sign a new lease without having a full-time job, I decided it would be best to move back in with my parents so I could figure it out (they were living in Long Beach Island for the summer, poor me!). I took two weeks to myself— sleeping 10 hours a night and catching up with friends and family I had negated while I was enrolled in the bootcamp. I then got a part time job at a beachy, bohemian boutique so I wasn’t under financial pressure while on the job hunt. However, as the weeks went by, I couldn’t bring myself to apply to developer jobs. I couldn’t understand why I felt this way. I had dreamed of finishing the bootcamp so I could get a job as a developer. However, I decided to reflect why I was resistant to become a developer. I realized that I missed aspects of my prior job— being a cross team communicator to help resolve customer issues. The thought of coding for 8 hours a day did not appeal to me. It was tough to admit this to myself, because although going into the program I was open to other roles in tech, after I graduated I felt like I “should” pursue a role as a developer, since I had learned Javascript, Ruby, React, Redux, Rails, and some basic HTML and CSS. I stopped “shoulding” all over myself and started to look for roles which combined my deep interest and knowledge of technology with my communication skills. Although it felt like I had turned full circle, desiring aspects of the role I had previously had, I knew I was going into this round of job search more knowledgeable and hirable because of the skills I learned in the coding bootcamp.

The first step was to figure out what the title of the role was that I was looking for. Initially, I was open to all positions what were “hybrid” roles- roles which desired both business and technical knowledge. This included roles such as a solutions engineer, customer operations engineer, various analyst roles, technology associate, application support service coordinator and technical onboarding specialist. After initial phone screenings and learning about the aforementioned roles, I began to trim down the list of positions I wanted to apply to. Solutions engineer proved to be too much involved with the sales process for my liking. Roles as an analyst seemed too narrow and did not seem to utilize the technical knowledge I had attained. This led me to narrowing down my search primarily to technical support engineer and technical onboarding specialist.

During my interviews I was upfront and clear with the kind of role I wanted. It was my responsibility to communicate that although I completed a coding bootcamp, I did not want to pursue a developer role. I was interested in a role which looked at problems from a technical and analytical standpoint, empathized with stakeholders, and worked with developers to resolve. Coding could be a requirement of the role, but I didn’t want it to be the main focus.

In all, I applied to 20 jobs, had 5 phone screenings, 2 onsite interviews and 2 offers. I want to mention that all phone screenings, and both offers, came from roles I had applied to online, without knowing someone at the organization.

The official role I accepted is an Application Support Services Coordinator with a small consulting and technology agency. I will be the point of contact for clients to reach out to should a web app or website turn buggy or isn’t functioning the way intended. It will be my job to scope, prioritize, and pass on the work for the developers to resolve. I’ll keep both clients and developers updated on deadlines. I’ll work with developers to understand the problem at hand and put it into words so our client understands. I will be responsible to QA the resolved issue. There’s even opportunity down the road to apply by own coding skills and resolve issues once I familiarize myself with the company’s technologies, which sounds exciting.

I’m very happy with this role. It’s everything I was looking for in a role from a professional standpoint, and in a location I want to live in as well— in Monmouth County, New Jersey. I have a quick commute, am close to the beach but also close enough to visit friends I have in nearby cities – New York and Philadelphia. I’m happy I was able to attain a role in tech without having to move to a city, and I’m glad there’s a vibrant tech community at the Jersey Shore. I have been attending networking events all summer in the Jersey Shore and am excited that I’ll be able to continue to attend. The small but mighty tech community is welcoming and personal.

Like they say sometimes you need to leave your job, attend a coding bootcamp, pick up part time jobs as a yoga teacher and studio manager, experience burnt out, graduate from said bootcamp, move home, work in a peaceful feminine beach store for a few months, and brainstorm what kind of role in tech fits your skills before you end up in a role that fits your professional aspirations within a company which aligns with your personal values. This has felt like a long year, which is a good thing, because I felt like I have experienced a lot from a professional development standpoint.

Looking forward to the learning and bright future ahead in my next chapter, onwards and upwards!

What Made You Interested In All This At Such A Young Age?

“So, what made you interested in all this at such a young age?”

One of my classmates was intrigued that I was attending a workshop entitled “Transform Your Energy, Change Your Life” at Kripalu, a center for yoga and wellness.

It’s a question I’ve asked myself as well, noticing that I’m often times the youngest person whether I’m in yoga teacher trainings, reiki courses or other wellness related workshops.

I began to share my story.

I’m fortunate to have discovered yoga while I was in high school. I remember a couple of close friends and I planned to go to a class together at our local gym— plus we heard the instructor was cute. What was originally a mini social event turned into something much more. Yoga seemed to alleviate my monkey mind and the pressure I had put on myself to “do it all”. It was junior year of high school and I was in the midst of over extending myself with AP classes, playing travel soccer year round, and keeping up socially with my friends. At about this time I was also diagnosed with ITP, or idiopathic thrombocytopenic purpura. I’m fortunate that ITP allows me to live my life quite normally, but the one symptom that never leaves is fatigue. Yoga was a source of movement that didn’t completely deplete me, but instead nourished and energized me.

Since my first yoga class, I kept following the “spiritual breadcrumbs” as Pam Grossman likes to say. I can’t really pinpoint when this happened, but after a couple of years of practicing yoga I realized it was not only a physical practice for me, but a spiritual experience as well. Throughout college and onwards I explored different types of yoga classes, a yoga teacher training, reiki classes, a meditation course, and various other workshops and trainings. I notice I do tend to be on the younger side of these classes, but it’s never something that made me feel alienated or uncomfortable.

After all, what attracts people to these types of trainings has nothing to do with age, but everything to do with curiosity, a search for something “bigger than ourselves”, and a desire for community. Furthermore, these trainings are filled with storytelling, which relates people regardless of age and background. Hearing people speak their truth breaks down separateness and differences.

My question is, what is the “correct” age to do all this? My answer: there isn’t. As a lifelong learner, I see these courses I take as “college for adult life”. What all these courses have in common are that they offer ways to alleviate stress and add lightness to everyday life. I tell my peers about the courses I take, and the interest is there. One obstacle for people in their early 20s may be cost, as these courses have ranged anywhere from $250 – $2,400. It’s easier for people to have this kind of disposable income when they are more developed in their careers and have paid off student debt.

As time goes on I believe these trainings will have more representation from younger age groups. Yoga and mediation are being exposed to kids in elementary school these days, and I think exposure has a lot to do it with it. Yoga classes were offered at my local gym while I was in high school. I know that wasn’t the case for my parents. I believe it’s generational.

I’ll continue to explore my spiritual curiosity because I know my presence and participation enhances the experience (that can be said about anyone, no matter the age or background!) for all.

What’s an API? Real World Examples

Now that I’m actively interviewing with companies, I’m learning more about tech to build on top of the knowledge I learned at Flatiron. Two companies I’m interviewing with— Plaid and ICIMS, views their API as a product. Plaid, specifically, sells their API to other SaaS companies in order to connect users with their bank account information. Plaid did all the dirty work of connecting digitally to different banks so companies like Venmo doesn’t have to worry about relationship management with the bank or bank security, they can trust that Plaid has that handled. Therefore Venmo can focus on the front-end and the user experience of the app. Prior to interviews I never though of APIs and being products themselves, and can be used as infrastructure for many different apps.

ICIMS on the other hand, is a software company that sells software for managing recruiting, on boarding, and offer management. ICIMS also has a product called Unifi, which is a platform as a service where clients can shop around for other software companies that will help with payroll, resume storage, and recruitment. When new companies want to be added to this marketplace, they must connect to the API that ICIMS built for Unifi. It’s innovative to perceive an API has a market place and not just as an endpoint to data.

Simple JavaScript Dev Tools I Wish I Had Discovered Earlier…

If you’ve come across any sort of “Intro to JavaScript” reading material, then you probably learned console.log(). A JavaScript code newbie would know that this dev tool prints to the console whatever the user input is inside console.log(). However, there are many other dev tools to use in JavaScript that require elementary understanding, and I’ll walk through so examples. You can follow along by typing inside your console (right click then select inspect from the dropdown).

console.warn('Oh no…')
//similar to console.log() this will print ‘Oh no…’, but instead it will print as a warning message to the console. Warning messages still allow for proper execution, but can be used to communicate that a more efficient or cleaner alternative is available.

console.error('Oh no!')
//’Oh no!’ will be printed as an error message to the console. This tool can be used in programs to display to the user should an error occur.

console.clear()
//This will clear the console!

As for our last example, let’s say we have the following array:
const cats = [{ name: ‘Lucy’, age: 2 }, { name: ‘Stevie’, age: 8 }];

cats.forEach(cat => {
console.groupCollapsed( ` ${cat.name}`)
console.log( ` This is ${cat.name} `);
console.log( `${cat.name} is ${cat.age} years old`);
console.groupEnd($`{cat.name}`);
})

//In the console the data will be organized by name, due to console.groupCollapsed(`${cat.name}`), and when the name is clicked on in the console, the subsequent console.log messages will be revealed. console.groupEnd() then exits the current inline group in the console.

Resources:

https://courses.wesbos.com/account/access/5d2f5c1a85f96c03c1e4ec95/view/194129876
https://developer.mozilla.org/en-US/docs/Web/API/Console/groupEnd

Imperative Programming vs Functional Programming

While I was first learning how to build web apps, I was learning object oriented design using Ruby. This programming paradigm was easy for me to grasp. I took real world models and replicated these situations via code. For example, my first Rails app was a Yoga class tracker. Through my code I demonstrated that a yoga class has a class plan, and belongs to both a client and a teacher. This app also exemplified Imperative programming. When I first started to learn JavaScript, I first learned the language through the lens of imperative programming. Imperative programming is writing a simple script “do this then this”. Imperative programming consists of loops and conditional statements

Alternatively, functional programming deals with how inputs are transformed into outputs. Functional programming is pure meaning the output only depends on the input of the function. Therefore, functional programming does not have side effects. Also, functional programming does not have a “state” like imperative programming. For flow control, functional programming uses function calls and recursion.

The original inspiration for this blog post was to answer a question I had originally come up with. I wish I had a post like this when I first started to learn Functional Programming. Especially since I started to learn Functional Programming from the perspective of Imperative Programming.

Feel free to re-read this article as many times as you like. I re-read my resources repetitively to get clear about the differences between the two styles of programming.

Yoga Flow Focused on Knees, Hips, and Ankles

I created a 25 minute video that touches on how to modify your yoga practice if you want to bring extra care and attention to your knees, hips, and ankles. I believe yoga is a sustainable and accessible practice for everyone, and concerns about certain body parts shouldn’t prevent you from getting to your mat! My ACL surgery on my right knee is actually what catalyzed love for yoga, but that’s for a different time. Grab a blanket or towel some books or blocks, and get ready to pay some extra attention to these hardworking joints!

My First Tech Meetup!

Tuesday was an exciting day for me. I went to my first Tech Meetup! The Meetup was for a group called Jersey Shore Women in Tech. The Meetup was in a local co-working space called Cowerks in the “city by the sea”, Asbury Park, New Jersey. The space had ample natural light, an open office layout, and large windows overlooking a lake.

There were probably 20 women there, so it was easy to mingle and strike up conversation. As a self diagnosed introvert, starting conversations with strangers isn’t exactly my idea of fun, but I know it’s a skill I’ll continue to improve upon. My go to conversation starter was asking if it was someone’s first Jersey Shore Women in Tech meetup. I learned that for a good amount of women, it was their first Meetup!

The Meetup itself was entitled “A Study: Pathways Women Use to Enter the Technology Sector” in which two researchers shared how women in New Jersey have entered the tech field. This topic interested me because as someone who didn’t study CS or IT during undergrad, I was curious to see if my path was similar to other women who wound up in tech. The researchers interviewed 24 women throughout New Jersey and shared the results with us. One of the researchers, Elaine Zundl, concluded that the most common path for women in tech in New Jersey is the non-linear path. She found that most women had humanities degrees but still found their way to tech. This exposed the question of the night- if women are interested and succeeding in the tech field, why aren’t they studying it during undergrad (women only make up ~17% of CS degrees in NJ, for example)? It’s a tough question to answer, but the researchers and the audience alike agreed that it has to do with exposure. Personally, growing up I had no idea what coding was and it wasn’t until my first full-time job that I understood the context and started to gain interest in the craft. Another dev in the room said she started to code only because her dad was a Software Engineer and thought that she would like it.

Elaine shared some policies she had come with in order to expose younger girls to code and to encourage women to improve their technical skills. She thinks having a mandatory Computer Science class would even the playing field. Just like students have to take English and Math, all students should be required to take a Computer Science class. Currently, most students can only get hands on instruction if their parents have the money to send them to a coding camp, which does not reflect an even playing field. She explained a road block would be getting teachers trained for a curriculum. As for adults, Elaine is advocating for a website which would serve as a centralized resource for learning resources in the field, because right now the resources are dispersed throughout the web.

The most interesting part of the night was learning how Harvey Mudd College leveled the playing field for CS graduates. 50% of CS degrees are awarded to women at the college. We didn’t discuss the details of how college president Maria Klawe and the rest of the college achieved this goal, so after the Meetup I set out on my own to discover the how. I learned that Harvey Mudd College splits CS majors into three groups; those who have programming experience, those who do not, and those who are beginners and are interested in the intersection of biology and CS. The intermediate group is challenged by complex topics, but do not get “ahead” of the other groups because the topics they learn are different than those learned in the curriculum’s 2nd CS class. Professors are also told to encourage students to work together on assignments, to frame problems as real world scenarios, and to discourage “macho” behavior such as one student asking/ answering a majority of the questions. This makes CS relatable and more welcoming.

Overall, it was a great Meetup to attend. It was really cool to see that there are local studies and resources going towards helping women and girls lean into tech. Also, learning about how Harvey Mudd College is leveling the playing field was very inspiring! I’m looking forward to attending more Meetups in the future!

Source: https://www.inc.com/kimberly-weisul/how-harvey-mudd-college-achieved-gender-parity-computer-science-engineering-physics.html

I Finished a Coding Bootcamp, Now What?

6 months ago I left my full time job as an Operations Analyst to pursue learning how to code full time with Flatiron’s Online Software Engineering course. I’ll write about my review on the program in a different post, but for now I want to talk about how I plan on moving forward on my coding journey. I can’t describe how good it felt to hear my instructor say I graduated. This was the hardest thing I’ve ever done and not solely because of the content. Yes, learning how to code is HARD work, but the more challenging part of the program was coming up against myself to move forward. There were times when I thought “I’m not cut out for this” or “There’s no way I’ll be able to figure this out” but as time went on and I progressed more into the program I started to prove that voice wrong. I had to make short term sacrifices (a reduced monthly budget, social life, free weekends and travel plans to name a few) but now that I’m on the other side it was well worth it. I have a strong foundation and have a clear direction with how I want to move forward.

I’m Moving!

A couple of months ago I realized my graduation time was coinciding with the end of my lease here in Philly. I didn’t want to renew the lease without a job lined up, so I decided it was best for me to move back in with my parents so I can do the job search from a centered place. It also doesn’t hurt that they live in Long Beach Island, New Jersey. I’m looking forward to spending my summer at my favorite place, the beach! Another note: looking for a job while I was still doing my coding bootcamp seemed unfathomable for me. I wanted to focus on learning how to code while I was in the program and had the resources (i.e. access to instructors) because looking for a job and technical interviews are a beast of their own. Speaking of which…

The Job Search

I’m putting off the job search for a few weeks until after I move, spiff up my personal projects, and work on my resume. Even though I won’t be actively applying to jobs, I will still be working daily towards landing a job by…

Continue to Blog

Blogging has been one of the most enjoyable aspects of my coding journey thus far. I enjoy learning in public and sharing what I know. It can be intimidating to blog as a newbie, but similar to how there’s always someone who knows more than you, there’s always someone who knows less than you. You never know who your post is inspiring or helping out! My goal is to post once a week!

Working on Personal Projects

I plan on styling my websites so they look modern and professional. Our project requirements were not focused on styling and design, so during project weeks I put those aspects on the back burner to focus on project requirements. I have some experience with CSS and bootstrap so I’m looking forward to the visually creative side of programming! Also, once I complete styling, I’m looking forward to deploying the projects on Heroku. Aside from existing projects I have some other project ideas in the pipeline to keep me busy- a tarot app build with React and Redux or a yoga class plan generator using Rails. My personal projects are built to encourage self reflection or to organize and simplify a task.

Continue Learning

One of the reasons why I decided to enroll in a bootcamp was because I needed structure to my learning. Now, with a strong foundation, I know where I need to improve. Currently, I’m taking a Udemy course with Stephen Grider on React and Redux which reenforces concepts I learned with Flatiron, but it also exploring Redux Form and hooks within React. From there, I plan on taking Udemy’s Object Oriented Javascript course. After that, I plan on taking Stephen Grider’s Udemy course on Algorithms and data structures in order to prep for interviews. One of the things that attracted me to programming the most was the limitless ceiling of learning, so I’m excited to learn more!

Freelance

While I was in my program I had friends reach out to me about setting up websites and I had to politely turn them away because I felt like I was busy enough with being in school full time on top of having a part time job. This freelance work is mostly around setting up a WordPress site for blogging, similar to my own.

For the time being I’ll be working part time at a local beachy bohemian store called How To Live, working on my portfolio, blogging, and taking on freelance requests. Let me know if you have any tips for a recent coding bootcamp grad!

The Only Way Out of Coding Bootcamp is Through React and Redux

The final project for Flatiron’s Online Web Development Bootcamp is a React Redux project with a Rails backend. This project cumulates all of what we have learned in the course – Ruby, JS, HTML, CSS, AJAX, React, Rails, and Redux. React and Redux was tough for me to grasp. In addition to Flatiron’s curriculum I used Stephen Grider’s course on React and Redux: https://www.udemy.com/react-redux/. Stephen uses diagrams and analogies to help explain concepts, I highly recommend this course as he walks through building several projects from scratch.

The app that I built is called Daily Code Log in which you can document your daily coding progress. As a self proclaimed code newbie, I realize how important it is to document learnings, especially being aware of what you don’t know. Over time, as you seek out answers to your own questions, you will look back on answered questions and realize how much knowledge you’ve accumulated.

Now that I am on the other side, here are a few quick tips and pointers if you are thinking about tackling a similar project.

Map Out Requirements and a Schedule

The task at hand seemed daunting, so I decided to break the project into smaller parts. Here is my 9 day plan:

Saturday: Map project out- define relationships amongst objects and be clear about the question “What is the point of my app?”

Sunday: Create seed data, setup Rails backend of project.

Monday: Create entire (mockup) UI of project.

Tuesday: Hookup fetch get requests to fetch internal API data.

Wednesday: Hookup fetch post requests so API endpoint could be updated.

Thursday: Set up React routes.

Friday: Final touches/ squash bugs.

Saturday: Record video walkthrough of App/ write blog post on learnings.

Sunday: …Submit project!!!!

Setting a goal for myself each day was very helpful because each morning I knew exactly what I wanted to get accomplished. If I met my goal earlier in the day, I would move on to my next goal.

Use Semantic UI

I used Semantic UI for the web design of my app. Instead of a template, Semantic UI has many different elements- think buttons, cards, icons- that you can use in your app. Semantic gives you the different building blocks, but ultimately the final product can look original and custom made. In order to reference Semantic UI within your application you simply have to import the following link into the client/public/index.html within the <head> tag:

<link rel="stylesheet" href="<https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/semantic.min.css>">

I then used some CSS to reposition and style the elements further.

Here are some screenshots of the simple design of the app:

Form to create a Code Log
Display of all Code Logs

More Than One Way to do the Same Thing…

The trickiest part of the project for me was submitting forms to update my internal API endpoint. Doing a quick google search, most people suggested I use https://redux-form.com/, but my instructor helped me post data to my API without Redux Form. Instead, we used vanilla javascript. In the form’s handleOnSubmit function, we called on an action call addLog which made a post request to the API endpoint:

export const addLog = (log) => {
  return dispatch => {
    return fetch('/logs', {
      method: "POST",
      headers: {'Content-Type':'application/json'},
      body: JSON.stringify({log})
    }).then(resp => resp.json())
      .then(log => dispatch({type: "ADD_LOG", log}))
  }
}

The reducer, “ADD_LOG”, then adds the form’s data to the Redux store.

I’m looking forward to diving into Redux Form but it was worthwhile to learn the vanillas JS way. Now, when I learn Redux Form, I’ll have a solid idea of what Redux Form is doing behind the scenes.

I did it!

I am very proud of the way the project turned out. I have used the app daily to track my coding progress, and once I add authentication, I hope others use the app for their learning benefit as well.

P.S. Here’s a walkthrough of my project!

Yoga Stretch for Runners

Yoga and running certainly complement one another! Since I’ve started running (I’m training for a 18 mile race in October!) I’ve been more intentional about structuring my yoga practice so it can support my running game. These poses help to stretch out sore leg muscles, release tension in the hips, and strengthen the lower back. This would especially be nice as a cool down post run or on off days.