Happy New Year.. Again!

You might be wondering, what am I talking about?

Around this time every year (though this year was fairly early) is the start of a new lunar calendar year.  So Happy Chinese/Lunar New Year!

This weekend was spent with family, lots of food and of course, red envelopes.  Definitely more festive than standard January 1 parties.

Work has been slow to ramp up this year since we just released back near Christmas.  We’ve been mostly working on SRED reports – SRED reports are documents explaining specific projects that may be eligible for research and development credits from the Canadian government – in this case, my Truss Thickness project.  It was quite difficult to remember exact specifics of what we researched over the last few months, but luckily I had notes and code snippets from my process work.

Other than that, I just started my newest project which sounds pretty simple but should be a huge quality of life upgrade for our users.  I cannot divulge details, but I am confident it will be well-liked by our users!

Hopefully by the next blog post, I’ll have some concrete work done in C#/.NET!  Keep an eye out!

Happy New Year!

Wow, it’s already 2017.  It feels like just yesterday I was putting on my graduation gown and walking down the aisles of Convocation Hall.  How time flies.  Naturally many things have happened during this time, both ups and downs.

On the technology side of things, I regretfully haven’t been able to make many contributions lately to Mozilla due to the fact I have been out of the country for the holidays.  Now that I am back, I have been busy with graduate school applications and building connections with recruiters and HR professionals.  To top everything off, the end of December marked the release of CAST Software’s bi-yearly release of wysiwyg and Vivien 2017!  It was a race to the finish dealing with minor left-over bugs, but the satisfaction of having it completed and in the hands of customers before the holidays was rewarding.

My particular project, Truss and Pipe Thickness, was the focus of my efforts these last few blog posts.  I wasn’t really able to reveal it for privacy reasons obviously, but now that it’s public knowledge we’re good to go.  Basically in previous releases, truss (think metal bars that are used to hang lights and other stage equipment off) was drawn in CAD with straight lines.  Obviously this is inaccurate since real 3D objects are not 2D lines.  The implemented thickness is first defaulted to what the truss manufacturer specified in their documentation, but users are able to change the thickness to whatever they desire if necessary.  The truss in CAD then gains “thickness”, visually allowing users to see the equipment as if it were on real schematics.  This feature was highly requested for many releases and several competitors have something similar.  This should put us back up on top, considering we have many other features this release too.  Yay!

On another note, I have been learning C#/.NET as a side project.  My goal is to relocate to Chicago, Illinois at some point working within the financial technology sector.  Having the .NET experience will not only give me a broader skill set, but also provide me with a sought-after ability in the field.  I will likely post some projects I work on here on the blog, so keep your eyes open!

 

Happy American Thanksgiving

I can finally say that I enjoyed my very first Thanksgiving in the United States (Chicago).  I noticed that a lot of things are quite different and Thanksgiving seems to be a pretty big holiday (especially with the frantic shopping on Black Friday and Cyber Monday).

Now that I’m back to the daily grind, I have quite a bit of catching up to do including some new Mozilla issues and whatever stories piled up at work.  Even though I’ll be busy over the next little while, I feel that the one week vacation I took was definitely needed and now I can get back to doing what I love.

On the other front, I’m progressing in my graduate school applications – still working towards getting the recommendation letters I need and potentially taking the GRE.  Luckily my first pick school does not require it.

November Update

Hey everyone, another busy month behind us.

Just in time to celebrate American Thanksgiving!  And yes, I will be in the States during this time (I won’t share an opinion on the recent USA presidential election) to get some time away from my busy schedule back home.

Last month was a hectic one – we recently released our Wysiwyg R38 Closed Beta and are currently working on implementing the feedback we gathered.  Many of the new features I developed over the past few months are being revamped and updated, so we have a lot of great things in store.  It is so exciting to see an idea grow into a feature that people happily report back as “great” or “very useful”!  Being able to provide quality services and software to users everywhere has always been one of my main driving forces.

Having said that, sometimes I think back to all of the work I completed in university and just how much I enjoyed pushing the limits of my own understanding only to spend hours online learning more.  It is because of my desire to learn more that I have begun searching and applying to graduate level computer science programs.  After having been given a taste of the world of technology, I want more.  Having an income is always great, but I strongly believe individual development to be the key focus of my youth.

Interns!  Potential interns have started flocking in as the PEY (Professional Experience Year) application season draws close.  It has only been 6 months and we are already looking to replace our current interns with fresh ones (fresh meat!).  I hope to be given the opportunity to participate in the interviews – this time on the opposite side of the desk!

Happy Canadian Thanksgiving!

Hello my friends, this time of year is back around again.

I know that Canadian and the US thanksgivings are actually not on the same day (or even the same month) but did you know why?  Because Canada has a colder climate, the farmers’ harvest season ends a little sooner than in our southern friend, the US.  Thanksgiving is a time for families to be thankful for the (hopefully) plentiful harvest as they prepare for the frigid winters – obviously you cannot grow crops then!

I guess personally, I like to reflect over the past 10 months to see what exactly I am thankful for.  I am thankful to my parents for giving me the opportunity to study at an excellent university and for enabling and encouraging me to pursue anything I wanted (although I do share the passion for computer science with my Father!).  There are many, many other things I am thankful for, but most of it is cliched and you probably don’t want to hear about them anyway, haha.happy-thanksgiving-images

Onto more serious things, the new round of internship applications have started to trickle in at my company, so the management team will soon be very busy.  In order to alleviate some of this stress, I have opted to take on a few more responsibilities around the office and have taken a bit more liberty on my assignments and projects.  That isn’t to say that I do things how I want to – I ensure that every involved team member is aware of what I am doing and approves.  In other words, I do the heavy lifting and my team can tell me if I am on the right track, or what needs changing.  I gain a bit more experience and independence, and my team can focus on their own work – everyone wins.

As for my open-source work, I have slowly been gaining more challenging tasks.  Most of the issues I resolved previously were isolated and not high on the priority list.  With a bit more understanding under my belt, I am being given more opportunities to discuss with other team members and actually have a voice.  This is a wonderful step forward, and I am eagerly waiting to see what happens next!

Long Time Update

Wow, it’s been nearly a whole month since I last wrote – so many things have been happening.

Work started to pick up a bit and comparing the projects to when I was an intern, it is definitely more a challenge.  Instead of fixing miscellaneous bugs all the time, I am constantly designing and implementing new features and improving on old ones.  I am very happy to be able to significantly contribute to the future of the software, as instead of patching up previous development, I am creating the work for future patchers to fix! Haha, just kidding.

With the completion of the three dimensional CAD drawings from the last month, it has facilitated many new potential projects, and opened the doors to improvements to other areas of the application.  I am currently working on a Manager-type feature that will organize and enable users to specify options for their drawings, such as colour fill, patterns, line-weight, etc.  Every user at any given time has different goals – this allows them to tailor each project to their needs.

On the Mozilla side of things, I am excited to say that three of my bug fixes have been accepted to the main branch of the Mozilla Firefox project!  You can find two of my contributions here and here.  They were mainly refactoring stories that didn’t require extensive knowledge of the code base – a perfect start for a new developer.  It gave me the opportunity to search the code base to find what I needed while at the same time giving me the foundation and understanding of how code interacts with each other, from the back-end C++ to front-end Javascript.

After a small taste, my hunger has not be satisfied but renewed – I have gladly accepted two more issues touching different areas of the code base.  Off I go!

 

Bye bye interns!

Last week marked the end of the PEY journey for the 2015-2016 interns and the effects are already being felt.  The environment is a lot quieter (the new interns aren’t quite as ‘involved’ as the last batch), however, that may not always be a bad thing.  While I will miss their company, I am sure that everyone will still get along just fine and work will continue chugging along at a good pace.

As for me personally, I have inherited all the leftover work from the interns, so at least that should keep me busy for a while.  I finally finished the 3D CAD objects in my previous post, and now I have moved onto another project involving being able to import data from other programs into Wysiwyg.  It’s a pretty interesting task because each software manages their data a specific way – for example, “position” is defined by a specific location in three dimensional space, however, objects do not have a specific reference point.  One software may define the position of the centre of the object whereas another might define it from a different location.  It is my task to accommodate the reference points of several popular software suites to ensure data is imported as expected. While doing so, I am getting a better understanding of linear algebra, which was also a subject I struggled with in school.  I can say soon I will be an expert!  … Hopefully.

As for an update with Firefox, just a few hours ago I pushed my first bug fix to the Mozreview platform for code review.  It was quite a daunting task (it took several hours for such a small bug) as it included understanding and navigating the monolithic code base.  Of course, being a mainly Windows user, I struggled sometimes at getting Firefox to build successfully.  Reading the error/compiler issues and then researching online was a crucial step forward – think of it as laying the foundation for what is to come.  I strongly believe that trying to play with the code first is the most important part of learning, rather than giving up and asking for assistance.  As such, this has given me quite a good understanding of how the front-end Javascript interacts with the backend C++ code.  Refactoring (which was my task) was a great way to begin my open-source contributions because it requires me to look around and see just what effects changing something will have.  I look forward to further contributions!

Firefox Update & Bash on Windows!

Many things have happened over the last little while – the three dimensional CAD drawing features are moving into testing and finalizing which is always great, especially after spending a lot of time in development.  Fleshing out the minor details and polishing the feature will probably be what I’ll be working on the next week or two.  With the interns from last year heading back to school (they were in the same PEY program as I was), we have fewer people at work.  The torch has been passed to the new interns and I hope to build a friendly relationship with them as well.  As a way to “go out with a bang”, the interns and I went to Canada’s Wonderland for a day of fun on Sunday (I’m pretty close in age to them, so we talk often).  Joking around, screaming our heads off and eating together will be something we remember moving forward.

Developments have been occurring on the Firefox end as well – I have decided to proceed with Visual Studio on Windows as my development environment.  After some searching, it seems there is a tool that is used to create the necessary Visual Studio solution files – it appears a push was made to encourage more Windows-based developers to contribute.  Perfect for myself.  I guess what solidified my decision to pass on the UNIX environment was, well, that Windows 10 received an update allowing Ubuntu to actually run within Windows, granting access to the Bash shell.  This was perfectly timed because now I can quickly execute scripts and use the powerful shell commands that would otherwise be absent in Windows (Cygwin and Powershell seemed to be iffy).  Natively running Ubuntu (my distribution of choice) within Windows gives me the best of both worlds, making it a no-brainer.

I will be moving forward with development on both ends, hoping to do as much as I can!

Firefox Development

Things have been moving smoothly for me at CAST as we enter into late summer.  The three-dimensional CAD drawings are nearing its completion, but of course I will be putting my code through rigorous tests to ensure robustness.  On the social side, recruiting season is beginning again and all my friends are talking about jobs and school.

A little news about me, this week marks the beginning of my side-project Firefox contributions.  After the work on Jupyter, I was privileged to be introduced to some other skilled Mozilla members who are working on the Telemetry team for Firefox.  I was assigned a task that was mostly refactoring some histogram code for Firefox’s tests.  Starting small, I am really looking forward to get my foot into the door because I have always favored Firefox over other mainstream web browsers for its customizability and efficiency.  Now is my chance to help bring the experience to other users everywhere.

Having the project code in C++ makes me feel a lot more comfortable and confident that I can produce industry-level code.  This week I will working on setting up my environment (still deciding between VS2015 in Windows or Sublime/GDB in Ubuntu 16.04…) and getting the Firefox debug builds working.  So far I can get them to build, but getting the debugger attached is proving to be problematic in Visual Studio so I may switch to Ubuntu after all.  I will update more as I progress in what I see as a wonderful opportunity to make a difference.