S1 – E10 – WORK – Pius – Software Engineering at an Award-Winning Boutique

“…be agile.”

“…Curiosity doesn’t kill the cat – it makes you into a Lion!”

In Summary:

We continue on from the previous episode, and are talking WORK with Pius. In this episode we dive into things like:

  • How to get started in Software Development
  • What is Agile Project Management?
  • What a typical day is like for Pius…
  • What led to Pius getting into Software Development in the first place,
  • He gives some great advice for those considering a career in Software Development
  • And much much more!

You don’t get the chance to speak with someone about this type of thing very often…  so please enjoy episode 10!

Podcast Content and Show Notes:

Please note that I have no affiliation with any products or companies which are referenced in the show notes / hyperlinks. They have been provided for reference purposes.
Also, timestamps may differ slightly by a few seconds. 

00:02:03Plenty of material online for anyone interested in getting into software development
00:02:27Parents getting their kids started in programming from as early as elementary school.
00:02:57Attributes a lot of his success to the fact that he started (programming) at a young age.
The earlier you start the better
Children are learning code gradually at an earlier age
00:05:03Do you need to be good at math/school to get into coding?
The use of existing libraries
00:06:11Matrices and their use in 3D graphics
Terminology mentioned:
    Sine, Z function, differentiate, integrate
     Vectors
00:08:06If you can think logically, and you can break up a larger problem into smaller problems, you can do programming.
00:08:49Many different types for of programming for different types of preferences (mathematical, graphical, etc.)
A lot of misconception about development
People should be encouraged to get into it, rather than automatically discounting themselves from trying it out.
00:09:36The best kept secret about IT/coding is that it’s “friggin easy”. People think that it’s much harder than it actually is.
     Learning more about it will help you see it’s not as cryptic as it looks, but also gives you a better appreciation for the more complex problems, and resolving bugs.
00:11:13But there are also cases when it can be harder than it seems. It goes both ways as well.
00:11:47Pius has been a senior software engineer in the industry for over 12 years.
00:12:08How would you describe your typical work day?
Work-life balance for developers is pretty good
Flexible working hours and working environment
Current company is a 38hr work week  (8.5hr day including lunch -> 9am ~ 5:30pm)
Not required to, but often works overtime
Agile Project Management
     Pius mentioned this is “considered the best”
     Please note that this is specific to his software development environment.
     Agile is good in many scenarios, but not always. For more information please refer to here.
Some related terminology:
     Daily Stand-up Meeting (also known as the Daily Scrum)
     Backlog
     Sprint
     Release
     Feature
     IDE (Integrated Development Environment)
00:17:08Every time a coding task is completed, can check the code and see what he’s done on his computer.
     Gets a sense of reward from this. 
00:18:11From about what time do you actually start coding in the morning?
Slack – Communication tool
Pius’ typical morning
Code Reviews
     Considered “good practice
Pull request
Master / central repository (of code)
Functions
00:20:29How often do you do code reviews?
00:22:09Do you guys have a lot of meetings in general?
Product Manager
UX (User Experience) Designer VS Developers
Developers: communicate well with machines, but not necessarily great at the human interaction aspect  
     Stereotypical nerd: Sheldon Cooper
Collaboration required between UX Designers and Developers
Tech Reviews
Meetings where wire-frame or completely finished polished designs are reviewed and discussed.
Some people make estimations in time (hours), others using (story) points
     That is making estimations in time VS effort
     In Agile estimating the amount of effort required is often considered more useful than estimating time required.
 Review bugs
00:26:18Developing software is a collaborative process (not locked in a room churning out code)
     Communication skills emphasised as much as technical skills
00:27:54Extra information about the following topics to be given in the show notes (which is here!)
     Effort estimation:  Days vs Hours vs Points (refer to notes at: 00:20:06)
     Cloud
     Agile Project Management (refer to notes at: 00:10:05)
     Vs Waterfall Project Management
     Fail fast
00:30:26Agile started in the Software Industry, but increasingly being adopted in other industries as well, as can be seen in Pius’ company as well.
     It’s all about having a feedback mechanism as part of the process, rather than at the end.
00:31:11Coming back to Pius’ typical day, when abouts does Pius have lunch?
     Weekly Netflix sessions at lunch time
            Currently watching Black Mirror at the moment 
     The benefits of doing activities like this.
            Season 3 Episode 1 – was a very good episode
00:33:21Back to a typical day, after lunch, how does the rest of the day typically unfold?
Flexible, friendly, cozy work environment
     It’s importance in recruiting top talent
Working from home
Working in a small vs large company
00:36:55Typically how long does it take to complete a task in your backlog?
00:37:58Coding that they do is mostly fixing bugs in existing product(s), or doing new stuff?
Bugs take 10-20% of the work
The importance of giving developers creative freedom
00:39:58When the customer is a developer himself, and starts being a little rude.. And Pius schools him.. And then solves his problem… that feels amazing.
00:41:03The very cool to-do / timesheet system of the product Pius works on at his workplace.
00:43:35Fulfilling a cheeky request for a customer!
00:46:18What makes a typical day a great day?
     Solving difficult problems
00:48:57What makes a really crappy day?
     They’re pretty rare.
     When you have an argument with another developer
Design Patterns
00:50:36How do you resolve these arguments (if at all)?
We don’t discourage disagreements, but we do discourage rude behaviour.
Disagreements can be constructive
Being able to have these types of conversations is an important skill
00:53:30What is it about your job that you love?
     Sense of satisfaction 
     Building something you believe in, something the customers love – this can be rewarding than money.
00:54:39What do you hate about your job?
     Small company, not much room for promotion, and hence pay rises.
     There is a price for being in such a flexible/good environment.
     Got paid higher than others quicker, but pay hasn’t increased much since reaching that milestone.
     Companies mentioned: Google, Atlassian
     Didn’t want to remain “pigeon holed” into a single role, while working for a big company
     Working for a small company you get exposed to many different types of things.
     Often speaks to the CEO, and has learnt a few things about business and startups.
01:03:01When or how did you know decide that you were going to work in Software Engineering?
     When Pius was 14….
     This was before the high school course was even available (Software Design and Development)
Started doing tutorials in an old language called Pascal.
Developed his own game.
Terminology mentioned:
     UI
     Star Wars
         X-Wing
            TIE Fighter
            A-Wing
            B-Wing
     Trigonometry
     Sin, cosine
Started University in 2004
     This was the time of:
            Facebook  
            MySpace
            YouTube
            eBay
01:12:34Realising the huge potential of The Internet, and getting a job at Sydney University, while attending UNSW
Terminology mentioned: 
     Backups
     Databases
01:14:23What qualifications would someone need to do your job (general kind of field – Software Development)?
     The only qualification you need is: enough money to get a laptop.
     Good to have a degree (e.g.: Computer Science)
     At least 3-5 years relevant experience to become a senior developer
     Terminology:
         Project Management Methodologies
             Agile
You need experience to get a job, but you can’t get a job without experience
     Not necessarily true in Tech.
Terminology:
     Swift Development Environment
01:19:10Do you need a Uni degree?
Adobe AEM
Bitcoin 
Bitcoin Mining
whitepaper
01:22:15What did you study in Uni?
Terminology:
     Back End and Front End
     GET and POST request  (also includes info about GET parameters)
     Post header
Computer Science Degree vs Software Engineering Degree
01:26:31Is there any other general advice you would give those interested in pursuing a career in this field?
     Most important thing: having the enthusiasm, persistence and self-belief
     Be curious (technology is always changing)
     It really pays to be curious… Curiosity doesn’t kill the cat – it makes you into a Lion!
     Lots of new tech these days:
            Robotics
            AI
            Cryptocurrencies
01:28:43If you could have done it all over again, is there a different occupation or career you would have pursued.
New law will be introduced in Europe soon: GDPR

Leave a Reply

Your email address will not be published. Required fields are marked *