A year as a consultant in review
A short story about the first year as an it-consultant.
One year ago I started working as an it-consultant. You can read all about that decision in my article Why I chose a career in IT-consulting. Today I have been working for a year and I thought I would tell you some bits and pieces about that journey. Did it turn out as I expected it would or not?
I started at a very young company, I guess we were around 10 people when I signed. This means that for the past year I have also been a part of building a company. This is no easy task. However, I’m not the one who hides from a challenge (believe me 😉). One of the biggest reasons I joined this company was because I really care about personal development. I realized that joining a smaller company would push me to develop faster and in a broader way than a company with all systems and processes in place.
My personal development as a developer 👨💻
Basically, what have I learned? ~skip this part if you only want the overview~
As I started, my first client was a company that mainly focuses on phone apps but they also have a small web department. This is where I joined. I was tasked with building a product in around 6 months that was going to be used in business-critical situations. Quite an exciting quest for someone who has never really built any real production systems. There was a bad part though, I was alone on that project. No one had any time to guide me or even look at my code. This also made it quite relaxing for me. I could build at my own pace and learn as I go. I built three smaller and similar projects at home during the first four months to really read up on best practices and the framework I was using at work. I learned a ton! At work, I learned about management, the client's business and who my colleagues were. At home, I learned the more specific techniques and architectures that fitted well with Angular, the framework I was using.
After about four months in I had gotten really familiar with my team and the projects we worked on. I got introduced to two other projects written in the older version of the framework, AngularJS. This meant new things to learn and this time much more code reviews and collaboration. This was great. This was, after all, what I was most excited about when starting. Seeing real, live, production code and discuss best practices with more experienced developers. I still kept at it at home, though I switched back to yet another framework at home called React because I thought it was better in general and I wanted to keep up with that as well. Most weeks this past year I have dedicated another 10–20h of coding per week at home, beyond work.
Five months in, my product was ready for pilot testing. It turned out they will actually pilot it in a couple of weeks due to delays in other parts of the system but who knew that that was going to happen. At this time I felt proud. Proud to have accomplished exactly what I was supposed to. I was also proud that I currently worked in almost all projects the team was working with and I contributed heavy at this time. I even got the responsibility to take over a google assistant voice project by myself for a while which made me learn even faster and cutting edge technologies that just been released from google. This was cool, I was loving it!
So I went from someone who had barely worked professionally with code to someone who could and did it 10~15h a day (5–7 of those at home). The best part was it felt natural and fun to me. I could lay awake late at night reading up on architectural patterns for voice assistants without even thinking of it as “work”.
But all good things must have an end right? I hope that is false but I’m not sure. For me, the voice project was put on hold, I had to go back to manly work with the old frameworks that I at that time knew well enough to code in but wasn't particularly interested in learning more about. I believe it will die out in a couple of years anyway so I want to focus on more modern frameworks. This really took the edge of what I was doing. There wasn't much left for me to learn and be excited about. Not enough at least.
Good thing I am a consultant then! I decided to move on and I will, in 2 weeks I start at another client that works with React and Node. They actually use the same architectural style as I do in my passion project at home. Without that project in my skillset, I don’t think they would have invited me onto that project to be honest.
Building a company
What about that thing I said; being a part of building a company?
Teambuilding and workshops have been ongoing all year. There are many late evenings at the office where we come together and discuss and create structures and processes for the company. We focus on self-management and use teams called crews to support you around that. There has also been planning of events, setting up strategies for recruiting, marketing, sales and so forth. I completely love all of this. It isn’t many places where you can gather the whole company and everyone will listen and give you feedback on your ideas. It feels inclusive and the right way to build a company. As an example: I came up with the idea of a clustered article on LinkedIn, 2 months later it was a reality. We also built our own salary model. Anything we want we can do as long as there are people passionate about it!
As I mentioned before (here as well) I am very passionate about personal development. So I set up a structure I called TechTalkTuesdays. My objectives were to:
- Create a natural environment to gather and talk about tech or workshop around tech subjects.
- Subjects ranging from hardware, software frameworks, companies, the industry in general, knowledge sharing and much, much more. Basically, anything remotely related to tech.
- Consistency, every first Tuesday of every month this would occur.
- I will make it happen if no one else does but the evening is free for anyone to lead.
All this is part of personal development and knowledge sharing. Remember the ZPD model I mentioned? (if you don't know ZPD, here is a quick wiki link) I wanted us all to share what we are passionate about in tech. I wanted to be inspired by people doing amazing things!
We have now had 8/12 TechTalkTuesdays. I feel like I have done all I set out to do in with this endeavor. I really like them and the ones I did not lead really inspired me. However, the interest in these gatherings has not been the highest. I’m not sure why… Usually, we are around 4 people, at the highest 6 or 7.
I got a colleague to join me on a hackathon in January. We ended up in the same team and had a blast. I even won “Best hackathon spirit” and walked home with a nice Urban Ears speaker as a price, that’s always nice! Anyway, we decided this is something we should do at our company. Said and done! We got two other colleagues to join us and we created a hackathon. We only sent out the invitations internally because we thought we would fill the spots (24) easily. We had a nice fun hackathon I must say. There were a lot of laughs and I got to code Clojure again with two of my best friends from college (one works with me now). But on the total count, we were 9, including us 4 that arranged it. I was a bit sad that more people did not want to join. Next time we will have to invite externally as well I think.
Some struggles as well…
Engagement in both code and others by sharing knowledge and program together has been found difficult for me.
After a while, I started thinking that my colleagues might not be as passionate about code and tech as I am. In college, I only had two friends who were as crazy about programming as I was (one of them works with me now and joined the hackathon and TechTalkTuesdays sometimes). I always figure this was due to my chapter not being focused solely on computer science but also on education. However, there is also the possibility that they express their passion in other ways than I do. You don't necessarily have to attend meetups, TechTalkTuesdays, and hackathons to be passionate about code. It could also just be that after a day of working with code you are not that eager to gather and talk about even more tech.
I don’t blame people for not showing up, definitely not. I do wonder though, that if this is what I like and what I want; Am I at the right place? Is there another workplace where people are more eager to engage in tech talks, hackathons and coding workshops and in that case, is that where I should be?
I’m not jumping ship yet though. I like a challenge as I mentioned. Perhaps this just means that I need to do more. Can I inspire people to see the fun parts of code and programming the way I do? I did a timelapse video of me challenging myself to do 30h of programming in one weekend. I ended up only doing 23h this time and screen recorded 15h of those. People thought it was really cool and I think it inspired the ones that saw it, so they definitely like tech where I work. Otherwise, nobody would watch some maniac trying to code for 30h in two days without losing his mind 😅.
Perhaps this could be another way of engaging in knowledge sharing and personal development related to programming. Let's make some coding challenges, game hacks or simple bot war leagues, that could be fun!
The best thing about where I work is that they let me be me. If I suggest we buy a couple of robots and program them to fight each other to make TechTalkTuesdays more fun, there won’t be anyone stopping me (probably)!
Update: I wrote this some months ago and just haven't prioritized correcting and publishing it. Sorry about that. Now I’m a couple of months into my new assignment and loving it. It is very challenging both technically and resource-wise. I won't write a full update of today's state but I’ll like to inform you that the company has grown a bit and so have the TechTalkTuesday initiative, now we have been at least 10 fo the past few sessions.
As always, thanks for reading! You can find all of my articles here or via my profile Jonas Johansson on medium.