I have been meaning to start writing a blog for some time. Now I have no excuse. The reasons for writing a blog, especially as a software engineer, are numerous, and don't warrant repeating here.
So, what to write about after the customary "Hello, World!"? I suppose an introduction
I have been a software engineer for just over 4 years as of this writting. I got my start at Viking Code School, an online bootcamp, then got my first job in the field doing Ruby on Rails development at an advertising company Connexity. As this was my first role out of bootcamp, there was of course a lot of learning.
One of the principle lessons I took away from working here is how important product domain knowledge is for a software engineer. As most junior developers do, I got started with simple tasks. Add a button here, fix a bug there, etc.; as I grew at this role, I gained a better understanding of the product, and even was able to contribute a small project of my own, an alerting app that I wrote in a new programming language called Elixir (more on that later). I wrote that project during 10% time, and while it never made it into production, I think it was one of the greater learning experiences during my time here.
After working at Connexity for a time, I was ready to move on and try something new. I got a job at a CJ Affiliate, where I worked with Java, Scala, React, and towards the end of my time there, Haskell.
I bucked the trend where developers would move from languages like Java to Ruby, and I am very grateful that I did.
Working in languages such as Java, Scala, and Haskell changed me as a software engineer. Learning to work and think in types definitely helped me, and it was also here that I took on a bigger responsibily in DevOps, learning a lot about AWS.
Working at CJ was very structured. Pair programming was the norm, and doing solo work was highly discouraged. TDD was enforced, strongly, and demos, reviews, retrospectives and plannings seemed to take over the work-week. Nevertheless, I learned a lot. I learned how to write tests. I learned the benefits of pair-programming. I learned the benefits of frequent demos and the importance of working closely with product.
Despite how beneficial working at CJ was for my growth as a software engineer, I was eager for more. I wasn't excited by the product, and I felt I was ready to leave the nest. I got a job at SimpleBet, at sports betting start up. At SimpleBet, I wrote nearly 100% Elixir, a functional programming language that quickly became my favorite language to write.
I was hired as a mid-level software engineer at SimpleBet, but took on the responsibilties of a senior engineer, and was eventually promoted into that role. Like any start I had to learn quickly, and as I a senior engineer, I participated in guiding junior engineers and helping to make key architecture decisions.
Unfortunately, I was let go from SimpleBet due to the COVID-19 crisis, so I am available to hire. This was the principle reason for starting to write a blog. In the near future, I hope to write about the topics bolded above, so look out!
I am not especially particular about working in a certain programming language. I consider myself a generalist, and can pick up any programming language with some time.
I have experience working across both Object-Oriented and Functional languages, and static and dynamically typed languages, but there is always a whole lot to learn! I am eager to find a role where I can both continue to learn and make an impact, whether that is on architecture, culture, teaching other engineers. Reach out to me at firstname.lastname@example.org, and let's talk!
Originally posted at https://joseph-lozano.com