Monday, December 31, 2012

Pregnant, Working and Beyond

Sometime last October we found out that we are expecting a second bundle of joy.  It was not an accident.  We are very very pleased to expand our family.  =)

Unfortunately, this pregnancy is a lot harder than I remember the last one being.  Maybe it's because I know what to expect, that makes the road ahead seem that much longer and harder.  Maybe its because having a toddler to take care of makes everything just a little bit harder.  What I do know is that it has been tough going through my first trimester and adjusting to my new job.

Everyday I find myself desperately needing a nap.  Fortunately my company actually has a "quiet" room where I can go be quiet in a fairly comfortable chair and just zone out for 15-30 minutes.   Unfortunately this brief zone out is not long enough.  I find myself more in need of a 1 or 2 hour nap to REALLY help me recharge.  I wonder how I survived this the first time around?

I'm due in late June, and this time around I have learned my lessons on my rights as a full time worker in California.  Last time I did not take advantage of the paid family leave act, so most of my maternity leave was unpaid.  That was a big financial burden.  My friend wrote up a wonderful blog breaking down the details of maternity leave in california.  She included charts and everything!  The summary is:  We get 24 weeks, with 6 of it unpaid.  But all of it is job protected.  =) 

Check out her blog to see how it is broken down

Last time I tried to work until the very last minute, thinking that it would give me more time with the baby.  Now I see that it doesn't really matter, the amount of baby bonding time does not increase if you take your leave later.  So this time around I'm going to take off at 36 weeks, and use my left over energy to prepare the home and my toddler for the arrival of the new baby!


Sunday, June 3, 2012

How to Boost Company Moral - HIRE MORE PEOPLE!

Since I left my old company, a total of 4 other engineers have also turned in their two weeks notice.  This makes a total of 5 out of 12 engineers.  That is a lot of employees.  Everyone who leaves says that the people were great, but they had to go because morale is just too low.  So how can you boost company morale?

One way is to HIRE MORE PEOPLE!  First thing you have to do is to let the employees know that the COMPANY is invested in them and wants to help them succeed.  This doesn't mean providing cake every month, or paying for training.  Those are obviously nice things to have, but more immediately, it means hiring the right people to join the team.  If the company started hiring more people, then they might feel like there is a chance of a turn-around.  They would feel that the company is investing in them and is willing to take a hit in the short term to produce profits in the long term.

My old company has been running a skeleton crew for the last 2 years.  Over 1 year ago, an engineer left... and he has not been replaced yet.  I left over 2 months ago, and my position has not been replaced yet.  None of the positions vacated by the other engineers has been filled either.  This is very demoralizing for the people who are left.  Can you imagine walking into an office that was once bustling with people, but is now only left with mostly empty cubicles?  Can you imagine the desolate situation of having to pick up the projects and workload of 3 other people?  Everyone who leaves feels like they see no long term future in the company.

Second thing a company can do to boost morale is to let the employees know the WINS.  For example, let the employee know if that project they were working on has landed in a big sale.  Let all the employees know if we land a big contract.  My old company never did this.  The engineers were always kept in the dark, and never knew whether or not our work made a difference.

Sunday, May 27, 2012

Graphics for Mobile Apps or Mobile Websites

Recently I started playing with Inkscape.  It's a great FREE software that is similar to CorelDraw or Illustrator.  I've used to create a few simple cliparts.  I've also discovered that inkscape provides a gallery of FREE copyright/royalty free cliparts that people can contribute to or download from.

I'm pretty happy with it, so if anyone wants to explore their graphic artists side, check out their site.

I wanted to share my creations via a mobile app or maybe a mobile website.  And that got my wondering about what size and resolution these cliparts and pictures should be saved at for optimal display and download speed onto a mobile device?  Do I need to save different sizes of each picture to display correctly on my motorola cliq and my samsung galaxy tab?  

So here's some notes (mainly for my own future reference.

  1. I found this article about designing for mobile web to be educational in covering the basics.  It's written in 2008, so maybe there's new stuff to know about html5 and what not.   But I'm sure the basics of mobile web design has not changed.  Summary, keep your SIMPLE and LINEAR.  Not everyone has a 4G or even a 3G connection =P.  http://www.sitepoint.com/designing-for-mobile-web/ 
  2. Both android and ios prefers *.png over *.jpg. However, jpegs are much smaller than png. So for web images, stick with jpegs.  further information found HERE.
  3. For android development worry more about screen densities than screen size when it comes to your bitmaps.  There are 4 screen densities: low, medium, high and extra-high density.  
    • To generate these images, you should start with your raw resource in vector format and generate the images for each density using the following size scale:

Saturday, May 12, 2012

Android ShapeDrawable Tutorial - RoundRectShape()

I want to draw rectangles in my android application and discovered that ShapeDrawable is the tool I need to do it.  If you look through the provided Android demo's that come with your Android SDK you will find a ShapeDrawable demonstration.   .../ApiDemos/src/com/example/android/apis/graphics/ShapeDrawable1.java


I looked at it and played around with it to better understand the ShapeDrawable library.


Below is the code snippet pulled from ShapeDrawable1.java

float[] outerR = new float[] { 35, 35, 35, 35, 0, 0, 0, 0 };
RectF   inset = new RectF(6, 6, 6, 6);
float[] innerR = new float[] { 12, 12, 0, 0, 12, 12, 0, 0 };

mDrawables[4] = new ShapeDrawable(new RoundRectShape(outerR, inset, innerR));


So let's focus on the parameters on RoundRectShape().

  1. inset defines the shape of the rectangle that will be inside our RoundRectShape.  It basically defines where the left side, right side, top and bottom of the rectangle will be.
  2. outerR defines the the radius of the outer corner of the RoundRectShape.  So in this case, we've defined the top left and top right corners of RoundRectShape to have a rounded corner of 35.  The larger the numbers, the curvier your corner will look.
  3. innerR defines the radius of the inner corner of the RoundRectShape.  Once more, the larger the numbers, the curvier your corner will look.
I recommend you try changing the numbers on your own to get a better feel for what the numbers of outerR and innerR do.  

I still haven't figured out how the PathShape works. When I do, I'll add it this blog.

Saturday, April 28, 2012

Android Graphics Manipulation

I've started try some more Android projects recently. I'm pretty confident in my abilities to create form based apps. They might not be very pretty, but they are functional. I wanted create something more FUN!

Any idiot programmer can understand the basics of creating forms, submitting forms, and manipulating data. But to REALLY be a useful apps programmer, I'm going to need to know how to manipulate graphics to create a good user interface. Once you know how to manipulate graphics, you're on your way to developing mobile app games!

 I wanted to divide the app screen up into 9 squares, and then have the squares change colors each time you tap on it. I thought it might be a fun little app to keep my daughter entertained. Little did I know that with my limited " android-canvas" experience, this was a very difficult task to achieve. So I went back to square one, and looked up some nice 2d graphics tutorials.

Here are the links to what I found.
This "Playing with Graphics in Android" tutorial is very easy to understand. What I like most about this tutorial is that I can see how each step in the tutorial can apply to future apps I might want to write. I'm on part 6 of the tutorial so far and I haven't found any bugs yet.
playing with graphics in android part1

This link goes to a website about how to write/design "game loops." I think the name itself is pretty self-explantory. Anyone who wants to write a good mobile-app game is going to want to know how to design a good game loop. This website is written by a game programmer who promises to enlighten you with his insight.
Dewitters Gameloop

Friday, April 13, 2012

Impression of my job after 3 weeks

After 3 weeks on the job, I think I have started to settle in.  A few perks at my job that I discovered which I think are WONDERFUL.
1.  A masseuse visits the office every Tuesday to offer 40 minute table-top massages for only $25!
2.  A restaurant comes every Thursday to offer $5 taco or enchilada plates.
3.  I can make reservations at the very exclusive Club33 at Disneyland
4.  During Baseball season, there are free ticket giveaways to the MLB games.
5.  Human Resources is on site, and they are getting me a new office chair!  YAY!
6.  A lot of the human resource and administrative forms are available on a intra-website and can be turned in electronically.

What's not so good?
1.  The code has almost no comments in it.
2.  There are no debugging tools being used to step through the code.
3.  It seems like my manager is the one who wrote everything and so he is the one who has transfer knowledge to me. Unfortunately he's very busy so when he brain dumps, it's fast and furious!  There were quite a few times where my brain started drifting off at the 90 minute mark.  I think I need to work on my ability to focus.
4.  There are no free boxes of kleenex to use.  My allergies are acting up, so I have had to blow my nose using the tissue paper in the bathroom.  I think that is kind of gross.  I have brought tissue paper from home to address this last nit-picky issue.

Over all I think this is a good company for me to be at for now.  

Monday, March 19, 2012

First Day of Work- What are good signs? What are bad signs?

The new company I work for is much larger than my previous.  I'm sure the company isn't perfect, but from my impressions on the first day... I'd say it's a good place to work.

Why?

  1. My manager walked me around the company showing me the layout, introducing me to everyone.  (This is in spite of the fact that he had walked me around the company during our interview 3 weeks ago.)
  2. The company has a checklist for the manager to go through for new employee orientation, to make sure that the new employee has all the basics covered.
  3. The entire company's process' and forms are available on an intra-website. 
  4. My manager spent at least 1 or 2 hours going over the product road map with me.  He says that he will probably spend an entire morning in the near future to teach me their design philosphy.
  5. The VP of software spent at least 30 minutes talking to me about the industry technology, their competitors, and showing me a tour of the company. (Yes, it was pretty much the same tour my manager took me on. But still, it shows that they want me to integrate and become comfortable as soon as possible.)
  6. A few coworkers even made conversation with me or dropped by my cube to say "hi" and told me that the company had a very low turn-over rate.
  7. IT seems to have a good inventory of all the software tools that engineering needs.

My last company was a nice place to work when I first started.  But in the last year or two, it had really gone down hill.  No one bothered to say "hi" to the new people because things were so unstable. For example: during the last round of restructuring, a process engineer (who had just been brought on 6 months ago) was let go.  And also, a lot of the installation CD's for the software tools were all missing which made building a new development system very difficult.

A few bad signs that I noticed, but am not too concerned about.

  1. My manager complained that upper management never lets him properly develop software. Even in the most recent product, they want to just dump existing 15 year old code base onto the new platform.  Obviously that is not a good thing to do in the long run.  This is what my old company did... and it was very difficult maintaining that spaghetti logic.  It seems like it is a common problem anywhere in a marketing driven company.  I hope my manager is able to win the fight and get the product developed correctly.

All in all, I'm quite optimistic about my new company.

Friday, March 16, 2012

How I spent my week off

Like most moms, I have a laundry list of chores waiting to be done.  So imagine my glee when I scheduled myself a 1 week break between my old job and my new job.  I imagined myself working out like a fiend and maybe cooking up a feast, and of course practicing my android programming.  But I forgot that I only have 10 or so free hours before it's time for Aria to come home.  Here's what actually went down:

MON: The following chores were all accomplished using my bike for transportation!
  • Gym! 
  • Dropped off my pants to be hemmed. According to my friend, too-long pants that are rolled up are categorized as mommy pants and I refuse to wear mommy pants to my new job
  • Checked out THREE discount clothing stores for clothes for my daughter. The hand-me-downs from her cousins are starting to run low. 
  • Went to the super market to apply for a new membership card
  • Cleaned the house
  • Planted seeds of basil, parsley and lettuce mix.

TUE:
  • Drop off hazardous waste (batteries, cfls, and other electronics) at the county hazardous waste facility.
  • Return christmas gifts for store credit. 
  • Met my mentor for lunch. 
  • Cleaned the house 
  • Went jogging

WED:
  • Disneyland!  (We decided to get annual passes.)  The new Star Tours ride is AWESOME!  It was so good that it brought tears to my eyes.  And then my husband got motion sickness so we had to return home. We were only there for 4 hours.  But it's okay because we got annual passes and I see us going there with Aria on Sunday afternoons at least 20 more times in the future.
  • Napped for 2 hours
  • Washed the diapers (yes, we sometimes use cloth diapers)
  • Picked stuff up from Costco
  • Cleaned the house

THURS:
  • Went jogging
  • Picked up my hemmed pants
  • Got the carpet cleaned using a groupon
  • Had a lunch date with my husband at bluewater grill using a groupon
  • Bought something for my brother. 
  • Planted tomatoes and snow peas in my container garden
  • Cleaned the house some more
  • Laundry
  • Cooked corned beef brisket and quinoa for my friends
FRI:

  • Cleaned the house
  • Took our very first family portraits using a groupon
  • Filed our Taxes (almost done)
  • Gave Aria a bath. It's awful of us, but we only give her a bath once or twice a week. She really doesn't get too dirty so I don't really see the point of it.
Well the weekend is finally here, I have 2 more days to enjoy before I start my new job. So what do I have to look forward to on Saturday and Sunday?

SAT:
  • Choose out family portrait shots (ran late on Friday couldn't wait to choose the photos)
  • Wedding at 2PM, Reception at 6PM
SUN:
  • Church in the morning
  • Church fundraiser for lunch
  • Have dinner with ex-worker and fiancee
 Looking back at the list of things I've accomplished, I feel that I might have wasted my time.  Sure my house hasn't been this clean in 5 years, and a lot of my chores are done... but I am exhausted!  Isn't the point of time-off to relax?   My husband has also been pulled into my whirlwind of errand running and chore finishing.  He said to me: "I need a vacation from your days off."  

Well, I'm going to try my best to relax these next 2 days. I will not add anything else to my to-do list... except maybe to go the gym. But man... I need to prepare food for the rest of the week... and grocery shopping needs to be done.  And that big brick of frozen tilapia needs to be defrosted before I can make anything out of it.  Argh~  I'm so tired.  All I wanted to do on my week off was relax and I ended up being an errand running machine.

Work Advice from a Manager

I'm on a bit of a blogging spree, because I have a bit of free time and I wanted to reflect on what I've learned before I dive into my new job on Monday.

On my last day at work, I asked my manager if he could give me some advice for my next job.  (I'm a smart cookie, and I made sure to leave with all my bridges intact!)  This is what he told me:

1. Give more feedback to your manager. Don't wait for him to ask you for an update.  Update your manager immediately via email or a quick conversation.  Maybe even send him a weekly summary of what you have been working on.
2. Don't send out emails when you are angry. You don't want to develop a reputation as being a hot head. Just think of XX who has a reputation of being difficult. And now even though he is improving and is talented, he's having a very hard time moving up the ladder. No one wants to work with him
3. Keep taking classes from the university extensions program because that will build your resume
4. Be more proactive. Don't wait for the manager to assign you a project, seek work out.

I think it's very significant that both my manager and my coworker mentioned reputation. I never realized that reputation was that important. But now it seems like common sense!

Work Advice from a Friend

On my last day at work, a coworker/friend asked for a bit of time to give me some advice.  He is 60+, and used to be a psychiatrist.  Now he works as the QA of our company.  I respect him very much, and know that he would only tell me something to help me and not to hurt me.  So what did he tell me?

"I want to tell you this so that you can be successful at your next job. You can take it or leave it. But this is what I see.  
1. You are too friendly and talk too much and talk too loud. You need to be more defensive.  The more words you say, the more likely you will piss someone off.  
2.  Don't yawn in a meeting, it shows that you are not interested.
3.  Don't slouch in your chair... ever!  Even if your manager doesn't mind, the people walking by will see and think that you are goofing off.
4.  Don't curse at your computer when your code/project is not working.
5.  Protect your reputation by being more defensive.  Because if you keep a professional reputation, then people won't be bugged when you ask them questions or for help.  If your reputation is one of a goof, then people won't take you seriously and won't take your questions seriously."

When he said "defensive" he meant: keep a professional distance.

His advice is very valuable.  When you work at a company for a while, you get comfortable with everyone.  At this point it's too easy to expect people to give you the benefit of the doubt.  But you must ALWAYS put your best foot forward at work.  Other people may cut slack for Joe Schmoe, but they might not have the same perception of you.  So when you go to work, find a good role model.  Don't try to emulate the genius engineer who has terrible social skills.  Instead, emulate the coworker who is well respected, well liked, and gets his work done.

Wednesday, February 1, 2012

Keeping the Knife Sharp

A very wise software engineer once told me that I should ALWAYS keep my resume updated and always keep a toe in the market.  That way I can see what employers are looking for, make sure my skill sets match, and keep myself highly employable.

So I've recently decided to update my resume and see what's out there.  I'm pretty content at my job right now, but I don't feel that it's as stable as I would like.  Also, I'm contemplating a switch from embedded software engineering to something more fun.  Perhaps mobile application development?

So the next few blog posts will all be about interviewing, resume writing and career goal setting.