Showing posts with label meteorJS. Show all posts
Showing posts with label meteorJS. Show all posts

Sunday, 3 December 2023

Ode to my Lenovo

Two weeks back, my trusty Lenovo Z51-70 laptop gave up the ghost. It was showing signs well before that; consistently dropping my network connection, lagging severely when saving files and most tellingly, a noticeable flicker on the monitor. Can't say it didn't give me fair warning when on Saturday, it refused to power on.

Now, that was a sentimental moment.

Rest well, my friend.

I first obtained this flat white beauty during a Christmas Sale in 2014, when I was about to begin a Specialist Diploma in Mobile Apps Development. While my company at the time had issued me a decent notebook, I didn't feel comfortable using company property for my personal enterprise. I had a personal laptop, but it was on its last legs. Thus, I went for an i5 Intel Core that would meet my programming needs.

2015 to 2017

2015 was the second semester of my Specialist Diploma in Mobile Apps Development. With Java being the operating language, I installed Eclipse and the Java Runtime Environment. I also had NodeJS installed, and wrote apps in jQuery Mobile to deploy onto the mobile phone. This would perhaps be the most serious and intensive period of using the Lenovo.

Mobile app development.

Somewhere along the way, in addition to my steady diet of HTML, CSS and JavaScript experimentation, I experimented with things QBasic, LESS and AngularJS. An odd mix, I know, but I was having fun.

MeteorJS came along for me in early 2017. The lessons I learned here would help me years later when I experimented with ReactJS.

2017 to 2019

This was the period of my life where I settled down into a regular nine-to-five. I still experimented on weekends, writing D3 and ReactJS code. It was also the time I picked up Ruby and Rails, for whatever reason.

Like a stallion.

The Lenovo handled it all like a champ. It was tireless, inexhaustible, like a stallion in its prime.

Around the latter half of this period, I started working on my ACTA. Whatever work I needed done, I did it on my trusty laptop.

At some point during this period, I also got married. Late nights at the console were no longer viable, not if I wanted to sleep in the same bed as my wife. Still, I squeezed in whatever time I could.

2019 to 2023

This was the year the COVID-19 pandemic hit, and marked one of the longest durations my wife and I were geographically separated. During this time, my work on the Lenovo intensified, with me trying out Highcharts and VueJS.

During this period, however, I had acquired a MacBook and was gradually transitioning away from my faithful Lenovo which was starting to show its years.

Getting pretty old.

It was also when I embarked on my yet another Specialist Diploma, this time in Data Analytics. The MacBook handled Python and Tableau, but only my Lenovo could run Spotfire and  Power BI. It creaked and groaned, but ultimately delivered.

Why is this particular laptop special?

Why do I feel so strongly about this fella? It's not the first laptop to die on me, after all. I've lived more than forty years. But the last nine years of my professional life have been pretty tumultuous, and also represented the bulk of my career advancement and tech education, spanning two Specialist Diplomas and a Higher Certificate. This Lenovo was with me through all of it. I played no games on it. All I did was write code, and run code. (Some of that code were games I wrote, but we're just splitting hairs at that point!)

Much of whatever important files I have are saved on the cloud - on Google Drive, GitHub and Trello. Thankfully, I can resume my work on a new machine with little trouble. But I'll always treasure my time with this machine.


Rest In PC,
T___T

Tuesday, 6 July 2021

Reference Review: Level Up Tutorials

Developers of all stripes require good sources of knowledge in order to hone their craft. In the past, this took on the form of books. Books are certainly still relevant today, but in the age of the internet, the options for sources of knowledge have significantly expanded. Nowadays, internet videos are a very viable source.



Level Up Tutorials (or Level Up Tuts, if you're feeling slangy) is a channel on YouTube hosted by Scott Tolinski (and occasionally Ben Schaaf, though I have not personally used any of those videos at this time), providing short instructional videos on a variety of development-related subjects. Back in 2016, when I was picking up MeteorJS, this was introduced to me. Over the years that followed, Level Up Tuts has become my go-to source for other subjects - ReactJS, WordPress, CSS and so on.

The Premise

Scott Tolinski walks the user through a video tutorial using an IDE, typing out code as the video progresses. He explains what each line does, and displays the results out on screen. Each subject has an example objective, and is divided into multiple parts.



Scott also does segments named "Scott tries..." where he walks viewers through some exploration of new tech. These are substantially longer than the tutorial videos.

The Aesthetics

The videos tend to be displays of colored text on a black screen, with Scott explaining the implications of the code as he types it.



And since I'm talking about aesthetics, the color scheme of Level Up Tuts, which is cyan (a color I normally hate) on violet, which somehow works really well as a prologue in some of the videos. However, the more recent prologues featuring Scott on a microphone in a studio room, are nice as well.





The Experience

Tolinski's voice is easy to understand, but even with audio turned off, captions make it easy for the user to follow what's going on. The word "smooth" is very appropriate here. Smooth and comfortable.

The Interface

The beautiful thing about using a YouTube tutorial for learning material, is that you can rewind and rewatch. And because the environment is almost identical to what you see when you write code, it's very comfortable.

What I Liked

The most valuable aspect of the tutorials, in my opinion, is their brevity. The courses themselves aren't that short, but they are delivered in several bite-sized pieces, each ranging from three to eight minutes (or so). This is important, as it makes it easy for the user to stop at a certain point and come back later.

The sheer variety of software and languages that Level Up Tuts can teach you for free, is staggering. It really is the fledgling developer's wet dream.

Tolinski's voice is an asset - it's businesslike and friendly at the same time, tonally neutral and easy on the ears.

What I Didn't

"Let's get started on [subject] right now." When I was viewing the MeteorJS series, this seemed to be Tolinski's go-to phrase for ending a prologue, and after a while it got repetitive. Thankfully, he seems to have since ditched that practice.

Conclusion

This is an excellent resource for learning about web development. Level Up Tuts does its job more than adequately. In particular, for absolute beginners, it's even more of a boon due to its ease of use and its commitment to helping the user, well, level up.

My Rating

9 / 10

Tuts and prayers,
T___T

Monday, 24 September 2018

How I Became A Software Engineer (Part 3/3)

Another week passed, and I found myself interviewing at some logistics factory near my place. How near? Well, it was a matter of three bus stops from the MRT station. That's how convenient it was. I had a nice time. The interviewers were friendly and didn't waste my time with stupid questions. They'd seen my demos on my website and knew I could do the job, because some of it was more or less stuff they needed. But it was simply an opening in an IT Department in a non-tech firm. And they were using classic ASP. After everything I'd put myself through trying to level up, I had this niggling feeling I should be doing bigger things. Hell, I was only 39 then!

Then I interviewed at a startup in Ubi. God, not Ubi again?! After everything that had happened, it felt like the Tai Seng/McPherson/Paya Lebar stretch was full of stupid assholes. A dude could develop a serious phobia of the area. But I kind of knew the guy. He was on my Facebook Friends List, for unrelated reasons. He had seen me share my web tutorials and blogposts over the last couple years.

I met the boss at a food court, dressed up as usual, and was fucking flabbergasted when I saw that he was dressed in t-shirt, shorts and slippers. That aside, we bonded over some shop-talk, and I realized immediately that his setup operated at a higher level than I'd ever encountered. This dude was good. And he was looking to replace his front-end guy. I did some reading on MeteorJS, the framework his company was using, and found myself intrigued by the notion of fully-reactive interfaces.



All in all, things looked promising on both sides. I wouldn't mind working for either setup.

Choices

A few days after the interview at the logistics company, one of the interviewers asked me out for coffee and flat-out told me that his company were interested. The only catch was that the hiring process might take months, so if I got anything in the meantime, he advised me to go for it. I have to admit, after all the bullshit I went through the past week, that touch of honesty was a nice gesture.

A nice relaxed session.

Though, it didn't change the fact that the gig at the Logistics company probably wasn't going to help me level up. The pay would be decent, and it would be an easy job... but I would be operating far below what I felt was my current level. I mean, the stuff I code in my free time is all well and good. It's fun. Like all pastimes should be. But as a professional, I want to do something bigger.

Then the startup guy came back to me and told me his front-end guy was leaving. It was game on. He sent me a contract, and to my dismay, there it was - The Probationary Pay Gambit. I would need to take reduced pay (500 SGD less) for three months. What is it with small companies and this reduced pay shit? But because I didn't think this guy was deliberately trying to take advantage of me (he was just under the impression that this was how small companies were supposed to roll) I politely informed him that these terms were not acceptable, and he offered an alternative. I would intern at his company for two weeks - for no pay - after which I would be paid what the contract promised.

Working for free?! WTF?

Now, working for free sounds counter-intuitive, I know. But let's look at it from another perspective.

If I worked three months at reduced pay and somehow didn't make it through probation, that reduced figure would be my last-drawn pay unless I felt like explaining to my next interviewer what I'd been doing the past three months. Two weeks was easier to explain away. Two weeks can fly by just like that.

If I took the three-month probation deal, I would lose (500 x 3 = 1,500) SGD. If I took the two-week deal and got paid half my full wages at the end of the month, I would lose more than two thousand dollars. On paper, just in terms of money (1,500 versus 2,000 plus), the three-month deal sounded better... but when you factor in the time (three months versus two weeks), no, it really wasn't. I was prepared to lose out a little financially for potentially far greater gain (last drawn pay) and insurance against failure.

A fork in the road.

Plenty of people I know would have opted to save that few hundred bucks. Some guys simply aren't big-picture people, and that's OK. I like to think I've gained perspective with age, and the wisdom to make sensible decisions.

There's nothing deep or profound about my decision. It was just math. The way I live my life, that few hundred dollars wouldn't make much of a difference. But time... time is precious for everyone. It goes, and it doesn't come back.

Internship

My internship would only begin after the weekend. In the meantime, my soon-to-be boss put me on a learning contract, where I had to finish items on an On-boarding checklist. I wouldn't say I nailed it, but over the weekend I did the required reading from the You Don't Know JS series, JavaScript: The Good Parts by Douglas Crockford and some web tutorials videos. This was starting to look like a really good learning opportunity. I was being exposed to stuff I never even suspected existed. It was intimidating, yes... and also excited me beyond words.

I went in on Monday and got introduced to the guys, one of whom I would be replacing. It was a rush. We traded nerd jokes and comments on programming. Every day, I went in at 9 AM and left after 8 PM, sometimes 9. Once or twice, even 10. I'd be there on the weekends while my new boss put me through the paces. I wanted this.

And I'm a Software Engineer!

Two weeks later, I got my appointment letter, along with being assigned a brand-new Mac and two large monitors. The appointment letter said that I had been hired as a Front-end Software Engineer from that day forth. Yes, "software engineer" is mostly just a job title. I'm not daft enough to think I can stand toe-to-toe with real engineers who have tons more training and experience. But trying to live up to that label would be fun, and fulfilling.

Most importantly, I was surrounded by people who were smarter than me. People who understood tech. I wasn't the most technically proficient guy in the room anymore. And that feeling was superb. I understood, of course, that I had yet to live up to the term "software engineer". Right now, it was just a title. I was still very much a web developer. But with this group, there was a very real feeling that I could bridge that gap.

My setup, complete with
gorgeous wallpaper.

Did I mention the setup? As a front-end software engineer, I had access to four different screens - one for code, one for running output, a tablet screen for viewing output on mobile devices, and the laptop screen. That alone was a better setup than anything I ever had.

Epilogue

This was sadly not to last. The company ran into cash-flow problems in less than a year. But I had a really good time while I was in this company. And whatever I learned probably propelled me to my next gig.

What was the point of this three-part blogpost?

What's the point of anything, really? It was a good story. I've had to bounce back from setbacks before. And by necessity, I've had to come back stronger. That always makes for a good story.

Also, I thought it was a good illustration for how much preparation a techie needs in order to land a job. All the work I put in on my blog, website and code repositories really paid off.

Good (job) hunting,
T___T