Mid-September marks the end of a peak to work related activities. We hold an annual conference for our users. There’s usually multiple projects that have to be launched right before or the day of the event.
The first week of November is when BlizzCon is usually held, which makes August – November a pretty busy time of the year.
With COVID still here and a danger, there is no BlizzCon this year, which is a bummer. I enjoy being around the community and developers while learning what Blizzard has in the works. I really enjoy the excitement from both fans and developers.
So with no big events coming up and stuff at work settling down, I will have some energy to put towards other things.
I’ve been recovering from the September conference rush. It was less stressful than previous years, but still took a lot out of me.
I haven’t been feeling like doing much creative-wise, which is unfortunate. Right before the conference I was gathering information about other content creators in software engineering that produce content. I’m hoping to make some progress with content creation soon.
I have been catching up on a lot of games, many are titles I’ve been meaning to play for a while.
Each of these were really good. Hellblade in particular was a very immersive experience, and I loved the puzzles and combat.
I’m currently working through Borderlands: The Pre-Sequel and playing Phasmophobia with friends.
I want to share some of the content creators I’ve come across while exploring what content and personalities are out there for web development.
Since I’m planning on generating content myself, I thought it was important to see what common practices and structure is out there.
KimComplete has some videos that cover their own experience in web development, as well as what worked for them and answers important questions that someone new to the industry will want to know.
Reading from the comments of this video, I think it’s really cool how inspirational this content was to others. Not only did Kim successfully get into the web development industry, they are also a woman and person of color.
This video helped remind me that everyone learns differently and that it’s very possible to become discouraged in learning something new if the learning style doesn’t fit.
While written examples and how-tos can be helpful, they aren’t very interactive or don’t have the pacing that some learners desire. This is something I have in mind with my tutorials, I would like them to be interactive.
Coder Foundry is a bootcamp in Northern California, and Bobby is a veteran developer who has been working with software since the early 1990s (which I find super cool).
This video covers important concepts a new developer needs to know and gives advice on strategies to successfully build a portfolio that can be used in an interview.
One takeaway I had from the structure and style of this video touches on a fear I have. I’m afraid the reader doesn’t have the patience to read through conceptual content and is only looking for hands-on material that will give instant gratification. However this video is very conceptual but still got a lot of views and interaction in the comments.
This makes me feel more comfortable writing content that is conceptual and opinion based.
Kevin strikes me as a developer with a good amount of experience, though I wasn’t able to find more info on their history.
Their video is more visual and hands on then the last two examples I’ve given.
The content they produce covers more modern web development topics, such as flex. I really appreciate how these videos go into enough detail to help teach the ins-and-outs of different CSS properties.
I also liked the structure of these videos and how concise they were in covering the journey of the solution, which included running into problems and solving them.
I’m still not sure what structure I want to use for my content, though this helped me build out my topic outline more.
At the very least, this gave me a feel for existing content and structure, and I don’t feel like I’m going through this as blind.
I’ve been working on plans for web development Youtube content this week. I’m hoping to extend it to game development at some point, but I’m focusing on my strengths for now.
I’ve also started streaming developer sessions again, which will continue and cover both web and game development.
📆 Note: I've locked in a streaming schedule. Sundays at 3:00 - 5:00 PM and Wednesdays at 7:00 - 9:00 PM.
My planning so far has involved breaking out topics and scripting the dialogue/narration. So far there are four higher-level topics: Variables, Control Flow, Functions, and Scope.
I’m happy with what I’ve broken out so far, but there’s still a ways to go to make the content unique from what’s already out there (the web development topic on Youtube is pretty saturated).
The most challenging of things to figure out is actually how I want to present the content. I still don’t have a clear idea of the approach and style I want to take.
Presentation is especially going to be difficult for me, I tend to be very mono-tone and over-complicate my explanations. This is actually one of the reasons I want to create this content, so I can improve how I present information.
Like I mentioned, channels that cover the web development topic on Youtube is pretty saturated. This will make discovery more difficult and I also feel like I’ll be duplicating topics with content (my stuff) that is a lower quality.
I spent time this weekend to get a better idea of the Youtube scene to help see what others are doing and get a better idea of where I’ll fit.
Of the videos I watched, half were pro-tips for developers that already had some experience and the other half were breaking into the web development industry.
One thing I would like to note is how much I love to see people getting into development and showing a passion for working with software.
So yep, made some good progress in getting a feel for the web development community on Youtube, and also have made some progress on my tutorial outline.
A goal in the upcoming weeks is to find how I want to present the tutorial information. I’m looking for something engaging but still me.
With that, I’ll end this post with an artist I came across over the weekend. Take care out there and happy creating!
Lately I’ve been thinking more about a narrative for my life and how I can encapsulate my interests and experiences so that I can share and also reference them in the future.
To help with that, I created this journey section, to separate posts meant for sharing knowledge and other posts that are, well, focused on me as a person and my interests.
That may end up being a ton of cat pics 😻 and some technical articles on software engineering 🤓.
There’s a lot of directions I want to go in –a lot to learn and master– which has made it difficult to focus on any particular path or feel dedicated to any one track.
I have a list of skills or hobbies I would like to keep and some I want to expand. To put it simply, I want to be creative and I want to lead teams.
A short list of what I want to do:
Do you remember that feeling when something you’re interested and passionate about pulls you in and keeps you motivated?
With some things, I’m not feeling the pull of interest and enthusiasm that I did a few years ago.
This could be because I had a pretty rough year in 2019 that zapped all my focus and energy, and more recently a big personal change this year while in the midsts of a pandemic.
Turmoil and uncertainty aren’t good motivators.
One problem I’m running into is I’m already being pulled in a couple directions at work that takes time from my personal life.
Because I spend most of my time during the day managing projects and planning work for my team to pick up, I catch up on technologies while at home.
In trying to right this, I’ve made a change where I dedicate a percentage of my week towards engineering, however I end up putting that towards learning/understanding new technology so that it can be passed down or streamlining our deployment pipeline (I really want to improve our build process).
This change to time allocation has helped a bit, but I still find it difficult to fit in game development and languages, such as C++ and C# (because none of them fit into the scope of my day job).
Another contributor to this problem is web technologies and surrounding processes have blown up and are frequently changing. This affects both the web side of things and game development.
For example, Unity has grown a lot over the last couple years and continues to improve and add to its list of features.
Writing this down and spending some time has helped me a bit, and has given me an idea to help align the different factors/elements that are causing me to feel strain.
I think the first step is dedicate some time through the weeks and months towards the things I want to do. At the moment it’s really on a whim.
The larger idea I have to help realign myself combines web development, games, and teaching into one ongoing effort. Why not make a game out of learning?
I have an idea for some interactive tutorials that I want to put together. It would have mini-games.
Revisiting my main gails mentioned at the beginning of this post:
I will be able to touch on each of my long term goals through smaller mini-games or smaller projects that align with the larger idea.
I spent some time this last week putting my ideas on brainstorming boards to work on the foundation of the tutorials and mini-games.
I would like to also tie this into streaming and art, both of which I’ve dabbled with in the past. With streaming in particular, our move put that on pause, but we’re done with moving now.
First I must say I’m amazed I was actually able to put structure to this delima. It was pretty befuddled in my head. (I also had to cut out several asides)
I’m hoping this project will help me stay on top of technologies I need to keep current on at work that are constantly changing, but also expand my knowledge and experience with other things I want to pick up.
So far I’ve been outlining what I want the tutorials/lessons to cover and working out the details.
I can tell that it will be easy to get lost in planning and not actually produce anything, so it’s likely I’ll start off with some simple streaming lessons/sessions to start off with and feel things out.
In February I wrote my first scheduled maintenance piece. It’s my chance to reflect and plan on career goals.
In February I was concerned about keeping my skills sharp. I spend a good chunk of my day talking to people, coordinating on projects, and gathering business requirements. This leaves little time for actual coding.
To be honest, one of the biggest challenges I have been running into for the last year is staying on top of changes and new trends in the stacks we work with.
React and state management tools in particular have been challenging to keep up on because those libraries are evolving quite rapidly and in some cases like React hooks, very dramatically from a design perspective.
I found a nice middle ground here, thanks to some coaching advice. I can use my my spare time to develop tools that help me in my role as a manager while staying in touch with changes in technology.
This inspired me to fix up a custom burndown chart and get it working again. As well as adding a new tab with Github activity stats.
I’m using the burndown chart in our standups and retrospectives, it has been really useful.
The Github activity report is pretty early in development, but it helped me become aware of a SASS file that was refactored (nice improvement) and another file that probably needs to be broken up.
As I mentioned, my progress was inspired by a coaching session. I feel very motivated and have several more things I want to try now.
In addition to the coaching session, I finished the book The Phoenix Project. This has me thinking about continuous deployment and streamlining our development process.
I also virtually-attended Failover Conf, which exposed me to the dev-ops world a bit. There are many takeaways I got from that too.
So what’s next? Work-life balance.
My goal this month (May) is to work my leisure and hobbies back into my routine. This past week I was really focused on the burndown chart and Github reports and didn’t give myself enough time to relax. I felt this towards the end of the week.
In addition, I want to see how I can cut down on meeting. These days I hold and attend LOTS of meeting. I need to have some time for engineering.
I’ve been spending this week getting more familiar with Docker. I’ve learned how to build new images, spin up a collection of related containers with Docker Compose, and push an image to AWS.
I’m pretty excited about how this will help my team, but I’m also nervous about the unknowns we’ll encounter. My goal is to free up time, not take up more.
It’s important to know what Docker is and isn’t. To be honest, I’m still a little fuzzy. I wrote about this in my last post.
Docker utilizes virtualization technology to run processes in isolated environments called Containers. It has some similarities to virtual machine technology, such as VMWare and VirtualBox.
Docker Containers do not hold an OS, but they do have libraries and binaries from other OSes.
After working with Docker a little, I’m now much familiar with commands to setup a container and access the container (docker exec -it is my friend). I’ve also gotten more familiar with docker-compose (docker-compose up/down are pretty cool).
The documentation for Drupal on Docker provides info on both setting up Drupal and MySQl.
I’ve been able to spin up a Redis and MySQL server with Docker, it has simplified the setup and given my team a consistent toolset.
This last week I’ve been working on getting Drupal running through NGINX so I can test out a page builder feature. I was getting a weird error with the dev-server built into PHP.
I didn’t want to have NGINX running on Windows, so I spun up a VM. Setting up an environment can be time consuming and sharing content between host and client is a bit of a pain.
The last two weeks has had a theme: environment/tools setup. So my mind has been on “how do we improve this process?”
Documenting the process helped a little, but it is still a time consuming process. It also seems like there’s always some new gotchas that eat up time. If only there was a way to automate this…
Here is where Docker enters the picture and where it’s suppose to shine. We can create a group of containers that run a web server, database, and other needed services. This setup can be shared across workstations so we maintain a consistent work environment. We can also use Docker in production too with Amazon’s ECS (Elastic Container Service).
It sounds like a smart move and everyone is on board.
Great, now let’s tear down this idea and look at use cases and scenarios, starting with security.
But in order to feel out security we need to know what Docker is. That can be a little confusing. To be honest, I’m still a bit fuzzy.
My understanding is a Docker container is a very thin layer that can have libs and executables. When you run the container the processes run in their own isolated namespaces.
This diagram is the most helpful of everything I’ve come across.
For about the past year I’ve been putting my time towards planning and managing projects and less time with implementation.
I was stubborn in accepting I didn’t have enough time to both manage and code. I learned the hard way.
I tried to code out a complex solution that ended up taking a long time to finish, because I kept getting pulled away. After that, I focused more on coaching. Guiding my developers to make good decisions has become a more effective use of our time.
One challenge with this approach is my coding skills are becoming a little rusty. My memory of higher level design is fine, but my familiarity with the code base and specific implementation has started to become fuzzy.
Another challenge is keeping up to speed on new features that come out for languages and frameworks. Last year I had an instance that caused a little conflict when I wasn’t familiar with with some new React features that had been announced the year before.
There is a question I’m hoping to get an answer for this year; is it possible to be a technical lead and a manager?
I’ve heard of positions that are both, but my personal experience has shown me it’s difficult and probably best there’s a separation of the two.
Regardless of if I hold on to those responsibilities or not, I want to keep my skills up to date. And that requires some routine maintenance.
I think it’s best to focus on one area at a time, which has me a little torn. Do I put that attention on work or hobby? That’s a topic to delve into more in another post. For now, I’m going to side with work and explore Drupal more.
I was tempted to say Drupal and React, but I need to limit myself to reasonable goals.
Putting in any time to perform any maintenance is an improvement over the past two months.
My target is to get Drupal setup in an environment to test out the layout builder and see how their database schema is structured.
Wish me luck!
I’ve been working towards becoming a Software Engineer Manager for several years now. 2019 was a crucial year for my path to management that held as much doubt as it did promise.
At the beginning of the year I was working with my director/manager to officially request a promotion. I had been shadowing and taking on management responsibilities over time.
The more managerial tasks I took on, the less coding I was doing. That was expected and I was fine with that. I was still able to create proofs of concept and stay ahead of my developers.
However I hit a roadblock along the way that postponed my promotion. There were some things I still needed to work on to make others comfortable with me managing. It was a strange time in my career, I felt like I was losing touch with my software engineer skills and I wasn’t a manager either.
To be honest, it was a bit scary because I thought I was existing between roles and facing the reality my path may dead-end.
One fear that kept creeping up in my mind was becoming rusty with programming. If things didn’t pan out with management, would I be in trouble from rusty programming skills?
I got my answer towards the later end of the year after looking into what responsibilities a lead hold in other companies. For some, it didn’t differ much from what I was doing. The responsibilities for management and a lead could overlap quite a bit.
I no longer felt as lost, but I had also gained a lesson; roles aren’t cookie cutter. From company to company, they mean different things. And over time they may be redefined (though there are some foundational attributes that stay the same).
Fast forwarding a bit, as of last week I finally got my promotion. It involved quite a bit of personal growth that I didn’t touch on here.
What I’ve been focusing on here is feeling in between roles and discovering it isn’t abnormal.
However others may have a more well defined sense of roles. Mileage may very.
I still have a fear of letting my skills become rusty. This last weekend it became apparent I need to work on some side projects again to sharpen my skills.
I’m feeling really good about my daily responsibilities though and am looking forward to helping my developers go and working through challenges.
More on that later.