Managing a tech conference

This semester, a new opportunity came to surface to boost my management skills: I became the conference chair of a 500 attendee, student organized, free tech conference – Talk A Bit.

Talk A Bit is a one-day conference that focuses on the social impact of technology. This subject can be seen from the standpoint of how technology is changing the way we live, through applications like autonomous vehicles or wearable gadgets, but also from the positive impact technology can have in specific scenarios such as helping blind people guide themselves in buildings.

The conference brings together students and companies in a friendly environment where discussion and networking are encouraged, providing a truly unique experience within the inspiring walls of the Faculty of Engineering of the University of Porto.

The fact that this is a student organized free conference shows that the only force behind the organization of the conference is pure passion, and the organization has been determined from the start in making this a great conference, and something that people will already be looking for until next year. With a panel that will bring together international speakers, known personalities and high-level company managers, it is a great opportunity to learn new perspectives and understand how impacting technology can be.

In a world full of hatred and evil, we believe that displaying companies and individuals that look for what good they can bring to the world is essential, and may be a way to inspire young developers and future entrepreneurs to really deliver a positive impact in the world.

Personally, this will also be an incredible experience to add to my management portfolio, and I look forward to learn even more about how to manage people, events and organizations. I will write a new post later to describe all of this.

I hope to see you all in Talk A Bit, on January 20th 2018 at FEUP!

Tales of a “CEO”

In the 4th year of the Master’s I’m attending, we have a course called Project Management Laboratory (LGP, in Portuguese). In LGP, students are divided into 5 virtual companies of 40+ students from different areas each. There are students from computer engineering, multimedia, design and even service management. Each company is then divided into 4 teams, each working with a real company for a real project, as if this companies were the students’ clients.

The purpose of LGP is to teach students how the lifecycle of a real project works, as well as how to manage it. This means that the management of companies and projects is not done by teachers, but by students.

For that, a management structure is created for all LGP companies. At the top of the chain, there is a CEO that is in charge of the entire company, and has frequent contact with his teacher supervisor who keeps track of the company’s work. For each department, there is also a Chief Officer, for example the CTO who is responsible for all the computer engineering students. Finally, each team elects a Team Leader, who manages the evolution of that team’s project in a more direct way, ensuring agile practices.

As I’ve wanted to learn project management for a while, and I have the future wish to have my own company, I wanted to be CEO in LGP for a long time. Because of that, I volunteered to be CEO, and I’m writing now to describe my experience – the good and the bad – and show some of what I’ve learned during the semester.

The first weeks

Chaos. Total chaos.

 

That was the feeling I had for the first couple of weeks as CEO. This happened because all of a sudden, there was a group of 40+ students who didn’t know what to do,  and I was the one everyone was looking at for guidance. At first it was really stressful because even I didn’t know what to do, but I had to do something to get the company rolling, and thankfully I had great people around me to help. The first tasks were not that hard: gathering everyone’s contacts, creating a Slack, establishing roles in the teams. Although simple, these small things can help organize such a large group rather quickly.

We came up with a name and logo for the company – devenire – which means “reaching” or “achieving” in latin, and we decided to use that as a focus point for the company – “reaching tomorrow”, our slogan.

But then, other issues rose. What was the identity of our company? How should we present ourselves? What were we as a group?

We didn’t establish that group culture early enough, and this was, I think, one of my first and biggest mistakes as a CEO. Looking back, I realize how much more united I could’ve made the company if I had thought of team-building actions right from the begining. This could’ve made the entire company more focused into achieving a common goal, and instead I felt like only the core members of the company were interested in that.

Also, by having more “team” activities and less “company” activities, people got the feeling that they didn’t know what the rest of the company was up to, and I also think I could’ve made that better early on.

 

However difficult, we managed to organize the company in a way that was effective, and the companies were producing content at a steady pace. It was not the best we could’ve hoped for, but it was a start.

Intermediate presentation

Around the middle of the semester, there was an LGP intermediate presentation, in which the point was for companies to present the projects they were developing as if they wanted to get the attendees to invest in the company.

This doesn’t seem that hard even though there were over 200 people watching the presentation. However, exactly 1 week before that all teams were supposed to deliver a set of management documents. With the stress and planning of making sure those documents were produced and delivered, everyone – including me – forgot that the intermediate presentation also required some heavy planning and work ahead. Because of that, all the work and planning was stacked in that last week prior to the presentation.

This was, for me, the worst moment as CEO. People got really tired of working on that week, including myself, and everyone got the sense that we could’ve done better. Don’t get me wrong, we did a pretty good presentation compared to the other companies, but I do realise everything could’ve been much better if only I learned how to plan ahead sooner.

Turning point

After the intermediate presentation, I struck a reflection point in my early CEO career, and looked back at what I had done so far, looking for points of improvement. Some of this points were brought to me by other people, but I realized some of the things I had to change in order for devenire to do great until the end of the semester.

First lesson – plan ahead. This was more than obvious by the time of the intermediate presentation. Things need to be planned with calm and time to think. With that in mind, I “forced” the rest of the company’s board to develop a structured plan of what the company had to do all the way until the end of the semester. For each deliverable the course required, we assigned one Chief Officer who should make sure that deliverable was produced on time. This “divide and conquer” strategy proved great as not only it allowed for individual organization and responsibilty, but also made the company much more “self-managed”. Another advantage of doing this is that we had even more time to plan for the LGP closure event, which I will talk about later.

Second lesson – communicate. Even the people who are not directly managing anything in the company like to know what the company is up to, what is going on. I understood the importance of bringing the company even closer, of creating ways for people to communicate outside of their work groups. After the presentation, we created a few ways for people to do exactly that, and the feedback was good.

Third lesson – people are people. Working with other people is usually hard because different people always have different ways of dealing with things. In this case, as I was managing a group of people deciding what the company should do and how to do it, I had to deal with a lot of different opinions, clashing personalities and other conflicts. There is no way for me to explain what I have learned, but dealing with this sort of issues is something you cannot be taught and only learn from practice and time.

Final presentation

The closure of LGP is a presentation called LGP Challenge, a presentation to maybe over 300 people, with the purpose of having the LGP companies presenting the work they have done in a show and sales-pitch way.

This requires a lot more preparation and planning than the intermediate presentation, but thankfully we could put the lessons learned back then to good use.

The preparation for the LGP Challenge began a lot earlier, and we had a lot of good ideas that we could actually make true – wooden brackets (referencing the company logo) on stage, free popcorn for attendees, goodies (stickers, pins, flyers, …), and other stuff. The week before the presentation was also a bit chaotic and busy, but because things were much better organized it was much easier than the intermediate presentation. Obviously, there were setbacks that, as a CEO, always came to me at some point, but eventually everything was sorted out.

Thanks to all the lessons we – and me personally – had learned before, the final presentation was an overall success, and we improved a lot over the intermediate presentation. There was still much room for improvement, but I was very glad to see the results of so many hours of work being truly appreciated by the attendees.

Conclusion

I “forcefully” learned something about managing inter-personal conflicts as we had some in our company (don’t all companies have that?), but I prefer not to dig deep into that to protect the identity of those involved.

I guess the biggest lesson I learned from being a CEO is the one I can’t really describe – how to manage people. After 3 months of managing a 40+ people company there is a lot I learned about how to work with and manage people, however, there is no good way to describe exactly what I learned because management isn’t about concrete rules that say “when X happens do Y”. It’s rather about a gut feeling that makes you feel which is the right decision, even if it isn’t the best choice.

With this experience I improved my gut feeling. I learned some things that work, and some that don’t, and most of all learned how to better lead a group of people into working together for a common goal. Obviously this doesn’t mean I could be a good CEO now because I don’t think I could, not yet…

…but it brought me much closer to that.

My work at Google

It’s been a few months since my internship at Google ended, and I’ve been waiting to write about what exactly I did there. This happened because I am under a confidentiality agreement, which prevents me from talking about confidential things I worked on before they get released to the public.

Recently however, Google released the Android O developer preview, which brought to public some cool Android O features, including one of my internship sub-projects – add Android custom ringtones from audio files (press coverage).

As you might know, on the stock Android version there were only 2 ways for you to add a custom ringtone – use a 3rd party app or place an audio file in a specific folder of the device (and in some cases, reboot the device). This was a pain point for a lot of users, and something that should have been made simpler a while ago.

After I finished my main internship project (which is still confidential), I was given the task of making it easier to add custom ringtones on Android, which I enjoyed a lot since it is a very “visible” feature, and one that will probably be used for all Android O+ users.

The feature

From Android O, you will be able to simply add custom ringtones from any audio file that is in anywhere in the device (yes, even without rebooting!).

If you go to the Sounds section in the Settings app, and open the ringtone picker (by tapping any of the ringtone settings), you will notice something different at the bottom as there will be a “Add new ringtone” option. By tapping that, you will be shown the Android file browser, through which you can browse the device storage for any audio files, and choose your best custom ringtone. After doing that, the custom ringtone becomes available in the ringtone list, and you can even delete the original file without losing your precious ringtone 🙂

How it works

The internal processing behind this feature is quite simple (although maybe not as simple as you may think).

When you select a file in the picker, the system copies it to the ringtone directory in the storage, and directly adds it to the ringtone database without requiring the device to reboot.

Although this seems simple, there are a few issues related to this feature that might not be so obvious. The main concern always has to be security when something is done in the most used mobile operating system in the world, as nothing should be vulnerable to attacks or exploits. This means that developing features like this always requires special attention from the developer. In this case, the user must not be able to access files that it shouldn’t access, e.g. in Android for Work profiles the user can’t access files that belong to the work profile.

Development challenges

The main challenge was to be aware of the security issues that I mentioned above. Paying attention to possible security flaws was something that I was not really used to do, so that meant I had to try my best at focusing on it. All Android code is available for free around the world, so anything can be used for hacks and exploits, and as an Android developer that is something you really need to look out for.

Another interesting aspect was the fact that this feature required some UI work. Although it is a small feature with nearly no impact on UI, I had to talk to several different people because of aspects that are really important for user experience that I didn’t really focus on before (e.g. what is the simplest way for users to actually use this feature, or what is the best text to shortly explain this feature). This was not really a challenge, rather an interesting way to make things that I was also not used to.

Conclusion

Overall I really enjoyed working on this feature, and I was really lucky to have such an interesting project as an intern, a project that I can show people how to use, and a feature that eventually may be used by thousands or millions of people world-wide.

Stay tuned to learn about the other features I developed during the internship 🙂

Applying for Google

As you know, I was a Software Engineering Intern at Google during the Summer of 2016. It was a great experience, and I’ll write all about it soon, but I’d like to first talk about how you can apply to get an internship at a similar company, as well as give some advice on what you should do.

First of all: YES, YOU SHOULD TRY!

A lot of people say they don’t apply for companies like Google because it is too hard to get a position, but I don’t aggree with them because that’s not a reason for not trying! What I always say is: if you don’t apply, you have 0% chance of getting a position, but if you do, you have >0% changes of getting it. To me, that alone makes the “effort” (if you can call it that) worth it.

So, how does it work? (I’ll talk specifically about Google’s hiring process, but it is very similar in other companies like Facebook, Amazon, …)

Applying (CV screening)

First, you should check out careers.google.com. There, you can take a look at the available positions, filtered by location. It’s really easy to apply just choose a few positions and follow the instructions.

During the process you will be asked for a CV. This is very important, because it may be the deciding factor for you to get through. CareerCup offers some great resume tips, and I also recommend the Cracking the Coding Interview book for both interview and resume advice. As an example, you can also take a look at my CV.

At this point you need a lot of luck. Each resume only has a few seconds of attention by the recruiters due to the hundreds of thousands of applications they get every year, so I’d really emphasize on keeping the resume short and specific. If you do get selected, you move on to the interviews stage.

Interviews

At Google, you have 2 45-minute interviews with two different interviewers. These are video-calls via Google Hangouts with the interviewers, in which you write code in a shared Google Docs document.

This is the part that requires most skill to pass. Usually the interviews have 5 minutes at the beggining and end where you can ask questions and get to know the interviewer a little bit. During the rest of the time you are asked algorithms and data structures questions (mostly). I’d recommend the Cracking the Coding Interview book as well as HackerRank for tips and practice questions (especially the book), but here’s some advice:

  • Keep talking to the interviewer. If you don’t talk, the interviewer can’t understand how you are tackling the problems, so walk them through your thought process.
  • Don’t rush. Rushing will make you more stressful and your speech harder to understand, so do your best to stay calm.
  • Ask questions. If you have doubts or want something to be clearer, just ask the interviewers. This shows a lot about your problem-solving process and interviewers often give some tips on the problem if you ask the right questions.
  • Be honest. This is one of the most important points. Be honest about what you are thinking. If you really can’t figure out the solution to a problem, be honest about it instead of going around not making any actual problem. The interviewer might switch to an easier problem and that keeps your chances alive!

Host Matching

Up to a week after the interviews, the recruiter will call you to tell you their feedback. If it was positive, then you move along to the Host Matching stage. At this point you are seen as “Google approved”, so intern hosts will start looking at your profile, and will reach out to your recruiter if they think you are a match for their teams. If this happens, you are scheduled calls with the hosts so that you can understand what they work on and decide if that interests you.

Keep in mind that getting to host matching doesn’t guarantee you a position (and the recruiters tell you that), but especially if you get in at the beggining of the hiring process, it’s almost guaranteed.

If you get through all this stages, then you get to experience what was for me one of the best experiences of my life: working at Google!

I’ll write about the internship experience soon, but I end this post by highly recommending applying for big tech companies, because it doesn’t hurt trying and if you do get it, I almost guarantee you will never forget it!

First blog post

Hi!

I decided to create this website, along with the blog, as a way to not only display my skills and experiences, but also to share any thoughts that I might find useful for other people.

Since this is the first post of the blog, I think I should describe myself a little, so, on to the introductions:

I’m André 🙂 I’m from Portugal and I study Computer Engineering at the University of Porto. I love computer science, it’s one of my biggest passions, and I know for sure that I want to work on technology because I’m just too big of a fan of it! I still feel the same excitement I used to feel as a kid when I learn about some cutting-edge amazing product some company made.

But that’s not all about me. Another great passion I have is music. Nothing can make me feel the way music does, and nothing’s better than plugging in the headphones late at night and listening to some great songs.

Finally, I should tell you about the sport of my life: basketball. I’ve played it since I was a kid, and the complexity and intensity of the sport is simply irreplaceable.

That’s pretty much it 🙂 I hope that by making this blog I can inspire other people to do what I have always tried to do – follow their dreams – because that, I believe, is the true purpose of living.

Enjoy!