Personal Iteration

It is difficult to believe that over a year has passed since I last wrote a post! So much has happened: I have moved to a very nice area that allows me to be able to walk to work, and into the best apartment I’ve ever lived in (there’s an outdoor pool!). In September, I went with a friend to Medellín, Colombia, and we worked remotely for a week. It was such a wonderful week of getting into deep work while visiting a new country. It only took a complete 180 degree career change and a move across the country to only start to accomplish some of my personal and professional goals.

I have been working at a software company as an Integrations Developer since March, learning Python, Django and SQL. I really enjoy how explicit and clean the language is. Perhaps programming concepts are finally coming together, and that is why I am enjoying the language, but in and of itself Python is a good language with which to work. I’ve learned what a datasource, datastore, and dataset mean and how to pull in third-party data out of REST (and even SOAP/XML) APIs. I have finished reading Clean Code , and am currently reading Two Scoops of Django, hoping to start a side project with a friend who is very much into ReactJS. We hope that, in working on a project together, we can learn from one another.

It is funny how past experiences lead to present and future ones. In my last job, I was building RESTful APIs from scratch, using Ruby on Rails, and now I am using APIs in this current job. Prior to my previous job, I was unsure of what an API even was! I look forward to this next year ahead, and to see what else I am able to learn and accomplish!

It sometimes seems that those around me think I am incompetent or don’t know as much as I should, because I am never afraid to ask questions. If I don’t ask someone who does know, I won’t know, or it will take a lot longer to learn. In the end, having that knowledge is more important to me than what people think of me for not having it at that moment.  Perhaps it’s an age thing, and I realize I do not have those decades ahead to “discover” as a 20 year old may have. I have also observed that many people do not ask when they don’t understand something, giving the façade that they know what they’re doing, when really they don’t have that understanding.

Once I know something, I know it.

This is one of the reasons I refuse to fall into the whole “Impostor Syndrome” trap; you can’t know what you don’t know! If I ever feel insecure about my career, I think about one year ago, and all of the things I have learned and am able to do now that I was unable to do before. And then I think about just 3 years ago: I was performing in Symphony Orchestras alongside some of the top artists in the world, yet was unable to sustain it because of a lack of opportunity (which keeps getting worse and worse, sadly enough).

Classical musicians are trained for perfection. We prepare for auditions like athletes, months in advance, in order to execute as perfectly as we can on the spot, in a brief moment in time. Being careless is not an option. I come from this mindset of having a high standard, and apply this standard to my current programming career and life. Unfortunately, mistakes do happen, and if I do make a mistake I take it seriously but try to do better, moving forward. I am not the first and certainly won’t be the last to make a mistake!

The world keeps changing, as do we. It is important to always put one foot in front of the other, moving forward and learning, no matter what. You don’t need to know it all, but if you’ve learned something new today that you did not know yesterday, I’d call that a win.

Keep learning and coding, my friends!

It’s been over a year…

It’s been well over a year since I’ve written a new post. A lot has happened since I started my first developer job at blubeta in Miami! I have built APIs in Rails 4 and Rails 5 for a few projects that are currently in production, including one that has gone national. TIKD is a service that allows you to upload your moving violation, and they take care of your ticket(s) for you. It’s a great business model, and I have not only been working on the Ruby code for the backend, but have built the v1 Admin Panel in JavaScript, using the React framework. Because I am more “comfortable” (I say that word lightly) with backend, the frontend engineer at the startup is currently working on the v2 of a newly designed panel, leaving me to focus more on the data model and adjusting the back when needed.

This project has also gotten my feet wet in Admin support. Whenever an administrator needs something to be done (aka features we have not built out, yet), I have been given access to the production server and database and have been able to go in and update the data on the spot (by sshing into ubuntu). This can be challenging, as it’s important to make sure the correct record is being updated (and updated correctly!). Just the other week, it was requested that I remove a status from a certain ticket tied to a specific order. Instead of removing the record in the join table, I mistakenly removed the object, itself. This was quickly remedied by creating a new status record, ensuring that the ID number was the same as the deleted one. This lesson taught me more about Active Record associations (which make a lot of sense, now!). People are human and make mistakes. What is important is owning up to them immediately, so things can be rectified!

It has been very interesting, going from the very first hire (and only female engineer) to working in a team of 6 engineers: 2 seniors, 2 non-seniors (this is where I am, at the moment), and 2 part-time devs (still the only female engineer). I have learned a lot about how to think about data, how to model a database (erd) to reflect the data, associating models, and building things out little by little. I have also gotten my feet wet with React. JavaScript is not my strongest language (I am working to change this fact!), so it feels good to see familiar patterns in this framework, learn about state management (or passing props/data as is) and Redux for a uni-directional data flow (all goes back to the number one thing we’re working with, here: data!)

As I move forward in this career, I would like to improve my JavaScript skills, create more side projects (I am currently working on a Rails app for my mom, so she can keep track of the movies she’s seen/wants to see), and keep discovering new problems to solve (let’s face it, the world is full of problems to solve!).

I can’t believe that it’s been over 2 years since I’ve performed music in front of an audience. There was a period when I was performing every single week with either the Milwaukee Symphony or the Lyric Opera (sometimes both!). I do miss the comfort and confidence I felt in that career (music was always “natural” and “easy”), but I’m slowly working to feel this was in this new(ish) career! Confidence grows with experience, and 2 years in, I am feeling slightly better about things.

Keep building!

A lot can and will happen in a year

When I decided to move down to South Florida and fundamentally change my life, I was meant to share the burden of change with a partner who was going to change his life as well. Before moving, we broke up, and I am currently doing the “life change” alone. Looking back, if I knew I would be alone during this process, maybe I would not have taken the giant leap of faith to move here, away from friends and family. It is lonely, and I find myself wondering what would have happened if I stayed up north. That being said, not seeing snow for the first time during winter was fantastic!

After Wyncode, I was under the impression that I was going to land a Junior Development position that paid $45,000-$55,000. After living with poverty-level income for the last few years, this idea is what has driven me to take such a drastic leap of faith. Immediately after Wyncode, I was offered a job with a start-up that paid a salary and had benefits! As a musician, this is almost unheard of, so I accepted the offer. That being said, I had a very bad feeling in my gut, as they were never very transparent about what my duties would be, my title, or the amount of hours they expected from me. I was very clear, in the beginning, that I gave up a lot to be a coder, and once I found out they were going to ultimately keep their off-shore developers, I decided to leave that job. It was an “Operations” position; something similar to what I did back in Chicago, part-time, for 7 years in a law office as a supplemental job to my music career.

If I gave up my first love of music, something that has been a vital part of me since age 8, sold all of my furniture, rented out my condo, shelled out $10K to go to a coding school, only to end up working 50 hour work weeks in a job doing “Operations”, what was the point of doing any of the above?! I took an extreme risk to change my life for the better, not to disturb my work-life balance doing something I did not even enjoy!

About 2 months ago, I expressed my frustration to someone who has been able to help me along in this learning process. Needless to say, I left the Operations gig and am currently working, part-time, for a start-up as their Junior backend developer.

The first week on the job was invigorating. I’m finally a “real programmer”! This is the path that I gave so much up to be on! As I met my teammates, who are all very professional, kind and encouraging, I figured out how to set up my environment. I played around in VIM, downloaded iTerm, and read about nginx server configuration.

From there, we quickly moved on to building APIs using Ruby on Rails. Since I’ve started exploring programming, I have been attracted to the Ruby language, and especially the Rails framework. The learning curve is steep when one is learning to think differently and program, but it’s rewarding to learn new things on a daily basis. Just last week, I spent a lot of time reading and trying to implement RSpec tests into one of the APIs. I can’t say that I suffer from “impostor syndrome”, because I truly believe that anyone can learn anything if they are shown or taught in a way they can understand. If I don’t know something, it is simply because I don’t know it, yet! Basically, I can only know what I know.

Almost 3 months into this job, and only really 6 months of programming experience, I can honestly say I have learned a lot and would very much like to continue this path and really master this field, like I mastered my “other career” as a musician. Maybe, one day, the two will converge.

In the meantime, I need to figure out these errors….

Why I want to be a software engineer

It’s been a while since I’ve written a new post. Wyncode cohort 7 has successfully graduated, and we are currently deep into job search mode. After 9 weeks of intensive 12 + hour days learning how to code, I am absolutely certain I want to become a software developer.

It’s been a whirlwind of constantly learning new concepts, figuring things out, and solving problems. This feeling is very similar to my decade’s worth of experience as a professional musician; the same parts of the brain seem to be stimulated!

This past weekend, a group of us from Wyncode travelled up to Fort Lauderdale to participate in the ITPalooza Mobile App & IoT Hackathon powered by AT&T. We hacked away for 24 hours, with minimal “naps”, and ended up tying for first place at the end of it! That experience, alone, of working together on a team, figuring things out, and creating a tangible app that can be used one day confirmed to me that I can do this, and I really want to continue doing this.

We were even in the Miami Herald !

Coming from a musical background, I get “oh, we should JAM sometime!” or, “can you write me a jingle?” People seem to be fundamentally unaware that, even though it is a creative field, the classical musician’s brain really functions similarly to an engineer’s brain. We analyze the structure of a piece, a lot of repetition is involved (in practicing and perfecting our craft), and we are constantly learning new techniques in order to optimize our experience. It is also important to communicate effectively with an audience. Coding is absolutely the same. We need to effectively communicate with a machine, as well as with other coders who will need to read and understand what we are trying to communicate.

This is just the beginning of my journey, and I hope that luck and experience are on my side as I move forward in this new career. Keep coding!