Showing posts with label career. Show all posts
Showing posts with label career. Show all posts

Friday, January 12, 2018

A Word of Thanks to Gleam.io

I wish to thank Gleam.io for the invaluable experience of working as a junior software development intern from August 2017 until January 2018.

When I started my internship, I had about seven months' self-study of Ruby and Rails, with a smattering of HTML, CSS, Github, etc.  During my time at Gleam.io, I got to learn the ins-and-outs of a large commercial codebase, and saw first hand how an excellent product is built, maintained, and supported with intelligence and empathy.

I navigated the choppy waters of dependencies and got a complex commercial application running on my local Linux machine.  (I also updated the README to make life a lot easier for the next person)

I got a bunch of pull requests approved.



I made mistakes, and learned from them, in using Github.

I kept on using Rubymine until it made sense to me.


I spent countless hours reading the code, hunting for clues; Google and Stack Overflow were my constant companions.

I wrote tests that failed, then passed, then failed again, then passed.



I went mountaineering on a learning curve of Ruby and Rails, especially Rails; now I understand essentially how it fits together and is used to build websites that serve the needs of customers. 

A fair representation of the ardour and the rigour of studying Rails.

I got to pair program a bit and work remotely a lot — I enjoy them both very much.



In short, I was given every opportunity to learn from seasoned veterans, the value of which is beyond measure, and was treated with tolerance and respect by everyone on the team.

Chief amongst the myriad things I am grateful for is the self-confidence I am imbued with.  When I started my journey into software development, self-belief was one part reason, two parts faith.  But now I can say that someone saw the potential in me, even though I didn't have the requisite skills and knowledge for the role, and gave me a chance to fail and succeed, fall down and pick myself up.  

The guys at Gleam.io didn't have to take me on, but they did; they didn't have to invest in me, but they did.  They allowed me to see how I measure up against people who have been working with software for half my lifetime, and what I saw (although daunting at times) gives me great hope for my own prospects as developer.

Now that I have been part of a commercial development environment, I know for a fact that I can become a genuinely good developer with a reasonable amount of study, regular practice, and some guidance.  I will apply for junior development positions confident that the requirements of the role are well within my zone of proximal development.

Every time I turn on my System76 laptop (currently running Ubuntu 16.04.1 with Gnome Shell, but I might switch to Arch), I am reminded of the countless kindnesses shown to me, and take heart that the Next Big Thing in my journey is just around the corner.

Thursday, May 18, 2017

State of the Mission: 700 Pomodoros!

Update:

Now up to 800 pomodoros.

Pomodoro Count

Since the beginning of this year (2017), I have invested a total of 700 pomodoros towards the following:

  • Studying programming
  • Coding
  • Looking for work
  • Self-promotion on social media

What Do I Have To Show for My Efforts?

I have a growing body of code: https://github.com/clockworkpc

I have interviewed strongly for junior positions at a number of companies:
  • Envato (2nd round)
  • Zendesk (1st round)
  • reinteractive (2nd round)
  • GreenSync (3rd round)
  • MYOB (3rd round)
  • BlocksGlobal (3rd round)
The feedback has been overwhelmingly encouraging, and with each interview, there is evidence that I am even closer to having the package of skills and knowledge that will distinguish me from other candidates.  Moreover, most of the companies have pointed out to me the precise areas of improvement, and I have incorporated their feedback into my curriculum.

Do I have a job yet? No.
Am I moving inexorably in the right direction? Absolutely.

What Is A Pomodoro?

Italians have been bemused by this term ever since, I imagine.

One pomodoro is 20 minutes of pure, uninterrupted, focused work.
For about 60 seconds before I start the clock, I orient myself; for about 60-120 seconds after the clock rings, I summarise my work.
Add to that the time spent getting up from my desk and making notes on the whiteboard, and that comes to about 25 minutes when all is said and done:
  • Preparation: 1 minute
  • Pomodoro: 20 minutes
  • Summary: 2 minutes
  • Whiteboard: 2 minutes
  • Rest: 5 minutes
Thus, allowing five minutes of rest between a pomodoro and its surrounding activities, one pomodoro amounts to half an hour of productive labour.

Working on the assumption that about five hours of a software developer's eight-hour day are spent on his primary task (coding), and the rest is taken up by meetings, etc, this means that 700 pomodoros are the equivalent of...
  • 350 hours of productive labour
  • 70 working days of productive labour
  • 14 working weeks of productive labour

Pomodoros: A Photographic Overview


Unfortunately, I did not record my pomodoro counts fastidiously from the outset, so some of the data are missing, but a glance across photographs of the completed pomodoro cycles, shows that the amount of time spent on each activity varied.  Sometimes I was focused on my studies, sometimes on coding, sometimes on looking for work.

I spend the least amount of time on promoting myself through social media, which makes sense, because it is more important to me to learn how to code, to code, and to look for work, than to blog and network on LinkedIn and Twitter.

2nd of January 2017 to 15th of January 2017 (100)



16th of January 2017 to 30th of January 2017 (200)

(Image lost to oblivion)

31st of January 2017 to 15th of February 2017 (300)



16th of February 2017 to 6th of March 2017 (400)



7th of March 2017 to 30th March 2017 (500)



1st April 2017 to 23rd April 2017 (600)

(Image lost to oblivion)

April 24th 2017 to 10th of May 2017 (700)


Wednesday, May 10, 2017

Pomodoro Cycle Complete 2017-05-10



Lots of coding exercises and interviews.

Not much study or blogging, but most of what I have been working on is confidential, if you know what I mean.

I should be interested to work out how many pomodoros I've put in since the new year - about 100 per 2½ weeks.

Whatever I'm doing it's starting to work, so I just have to keep at it.

Thursday, February 16, 2017

100 Pomodoros for the Month of February

This cycle was dominated by study (black) -- Toy Robot, Ruby documentation, 'Rails 4 in Action' -- and job seeking (red) -- lots of calls, emails, and networking at the Ruby Conference (2017) in Melbourne, Australia.

Let's see if we can make it two hundred pomodoros for the month of February.

At any rate, it's been a very productive one hundred pomodoros so far.


Tuesday, February 7, 2017

Exciting Developments

I don't want to say too much at this stage, but I have reason to add a few high-priority items to my to-do list.















Friday, December 9, 2016

State of the Mission: Friday, 9th December 2016




At some point I'd like to build my own blogging tool, or help to improve an open source one, but in the meantime Blogger gives me what I need and does a good job of formatting the posts for mobile devices as well.  In the long term I'd like to become independent of Google's services -- it's heading in the same, invasive, politicised direction as Facebook and Apple, so it's important but not urgent yet.

My first task is to transfer the contents of my Pastebin to Gist.

My first major project is a career research tool composed of a web scraper and an analyser.  It'll start by parsing job ads for key words, and ultimately seek out a variety of data points to give a complete overview of what professions are in demand, what skills are up-and-coming in said professions, and what the prospects of someone starting out are.  It can be done in various languages -- Python comes to mind -- but I think Ruby and Rails will give me everything I need.  Maybe some JavaScript too.

I'm up to Chapter 38 of Learn Ruby the Hard Way, and find it to be one of the best resources I've come across.  In fact, I've suspended my Code Academy account until I've got everything I can from Learn Ruby the Hard Way, it's really as good as that.

On Monday, I had a very encouraging catch-up with a local technical recruiter, and he laid out the Three Ps that in his experience are the key ingredients to success: Passion, presence, and projects.
As you can see, I'm putting everything to do with this mission on my blog, which is a big part of answering the question: What do I have to show for my efforts?

I've been thinking, tinkering, reading, deliberating, and pondering since July, and the more good stuff I have to show for my efforts, the better my chances.  As soon as practicable, I want that to be my Github repository, but in the meantime it's my blog.

Kanban Ticket Layout


The Three Ps: Passion, Presence, Projects

To be a successful programmer, I have been told, one needs to have the three "Ps": Passion, projects, and presence.

Passion or Determination?


I know that alliteration makes the set mnemonic, but a better word to my mind is determination.  Passion can wane in the face of difficulty, but determination, or resolve, or just plain grit (or vasbyt in Afrikaans) will see one through the steepest of climbs.  Yes, I am passionate about the things I do, but unless I am determined to see something through, I can't rely on passion alone.

Projects: AKA What Do You Have To Show For It?


When I was 16 I decided that I wanted to speak Afrikaans -- a strange goal, admittedly, but bear with me.  I had no resources but a novel (Die Koperkan by Mikro) and a school dictionary.  Over six months I diligently translated entire chapters word for word, until I had built up enough of a vocabulary, and could understand pronunciation, grammar, and syntax to communicate in Afrikaans.  

I put in six months of solitary study and came out of it with a meaningful grasp of the language: that's what I had to show for my efforts.

There are loads of resources for learning to code out there, but unless I apply my newly acquired knowledge by way of a program that is useful at least to me, I can't very well convince someone else to pay me do the same.

What attracts me greatly to this line of work is that there is minimal paperwork involved: if you're good enough and are a good fit for the team, you stand a good chance of getting hired.  I like that, I respect that, and I want to be part of that.

In light of that, I treat my Github profile and my Gist as my rĂ©sumĂ©, and invite you to see what I've got so far.  (At the time of writing, most of what I have to show for my efforts is in Gist, but I hope to change that over December and January)

Presence: Networking, Schmoozing, Putting Yourself Out There


For the most part I enjoy being left alone to my own devices.  Fortunately, socialising, especially one-to-one and in small groups is not difficult for me, but heading out to the city for events can be tiring.  It is easy to assume that programming is solitary in nature, because an outsider sees individuals absorbed in their work, but working in a team and getting on with one's team mates are equally important.

Those who know me trust my abilities and my work ethic, but as a new-comer to the profession, especially in my position of looking for my first job (presumably entry-level or junior), I have to distinguish myself from the hordes of would-be and aspiring programmers.

People in the industry have to know who I am, what I do, how I'm progressing, and they have to see that I mean business.

See you at the next meet-up.

Wednesday, October 26, 2016

DevOps Career Path Map, Version 0.1

DevOps Career Path
DevOps Career Path, Version 0.1

This is my first attempt at charting the course towards DevOps.  From what I can tell, DevOps engineers are drawn from the ranks of experienced software developers, or failing that, Computer Science graduates who need minimal training to work competently in a DevOps role.

Unfortunately for me, I meet neither of those requirements, which means either working my way into a software development career or going to university.
I have spent enough years at university; as far as I am concerned, if I need a degree for the job, the job's not worth it.
Ergo, the path to DevOps will be via software development, which raises the question of how to become a successful software developer?

I see broadly two avenues:
  1. Working as a junior developer or serving an internship.
  2. Getting an auxiliary role, e.g. in technical support or on the customer helpdesk, to get into the company, from which point I can work to be promoted into the development team.
For the latter I am already eminently qualified.

For the former, my daily work can be divided into three areas:
  1. Studying programming, i.e. learning to code at a professional level.  A good starting point is Code Academy and Udemy.  Once I have completed the courses through those websites, I think I'll have a much better idea of where to go from there.
  2. Online self-promotion.  This includes my blog, using LinkedIn, etc.
  3. Schmoozing with professional developers and DevOps engineers.  In Melbourne, there are Meetup groups for DevOps, Python, Ruby, etc.  I have already joined those and will keep an eye out for any others.  At the moment I'm quite enjoying Ruby; although I started on Python, I think Ruby might become my favourite language.  I'll see how I feel in a couple of months.
That's it for now.  Does this seem like a good plan to you?  Any suggestions?

1,050 hours

It took me 13 working days to complete my first 100 "work" pomodoros as a Junior Software Tester at Profectus Group.  Much of ...